Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Greedy PDF
4 Greedy PDF
Algoritmos Greedy
Caractersticas generales
Elementos de un algoritmo greedy
Esquema de un algoritmo greedy
Ejemplos
Seleccin de actividades
Almacenamiento ptimo en cintas
Problema de la mochila fraccional
Heursticas greedy
Ejemplo: El problema de la mochila
Aplicaciones
1
Caractersticas generales
Se utilizan generalmente para resolver problemas de
optimizacin (obtener el mximo o el mnimo).
Caractersticas generales
greedy (adj):
avaricioso, voraz, vido, codicioso, glotn
3
Caractersticas generales
NOTA IMPORTANTE
El enfoque greedy
greedy no nos garantiza obtener
soluciones ptimas.
Elementos
Para poder resolver un problema usando el enfoque
greedy,, tendremos que considerar 6 elementos:
greedy
1. Conjunto de candidatos (elementos seleccionables).
2. Solucin parcial (candidatos seleccionados).
3. Funcin de seleccin (determina el mejor candidato
del conjunto de candidatos seleccionables).
4. Funcin de factibilidad (determina si es posible
completar la solucin parcial para alcanzar una solucin
del problema).
5. Criterio que define lo que es una solucin (indica
si la solucin parcial obtenida resuelve el problema).
6. Funcin objetivo (valor de la solucin alcanzada). 5
Esquema general
Se parte de un conjunto vaco: S = .
Esquema general
Greedy (conjunto de candidatos C): solucin S
S =
while (S no sea una solucin y C ) {
x = seleccin(C)
C = C {x}
(S{x} es factible)
if (S
S{x}
S = S
}
if (S es una solucin)
return S;
else
return No se encontr una solucin;
7
Ejemplo
Seleccin de actividades
Tenemos que elegir de entre un conjunto de actividades:
Para cada actividad, conocemos su hora de comienzo
y su hora de finalizacin.
Podemos asistir a todas las actividades que queramos.
Sin embargo, hay actividades que se solapan en el
tiempo y no podemos estar en dos sitios a la vez.
Posibles objetivos
1. Asistir al mayor nmero de actividades posible.
2. Minimizar el tiempo que estamos ociosos.
8
Ejemplo
Seleccin de actividades
Problema de seleccin de actividades
Ejemplo
Seleccin de actividades
Estrategias greedy alternativas
Orden en el que se pueden considerar las actividades:
11
Ejemplo
Seleccin de actividades
Estrategias greedy alternativas
Contraejemplos (para descartar alternativas)
12
Ejemplo
Seleccin de actividades
Algoritmo Greedy
SeleccinActividades (C: actividades): S
Ejemplo
Seleccin de actividades
B
H Tiempo
15
Ejemplo
Seleccin de actividades
B
H Tiempo
16
Ejemplo
Seleccin de actividades
B
H Tiempo
B C
17
Ejemplo
Seleccin de actividades
B
H Tiempo
B A
18
Ejemplo
Seleccin de actividades
B
H Tiempo
B E
19
Ejemplo
Seleccin de actividades
B
H Tiempo
B D
E
20
Ejemplo
Seleccin de actividades
B
H Tiempo
B E F
21
Ejemplo
Seleccin de actividades
B
H Tiempo
B E G
22
Ejemplo
Seleccin de actividades
B
H Tiempo
B E H
23
Ejemplo
Seleccin de actividades
Demostracin de optimalidad
Por reduccin al absurdo:
Suponemos que el algoritmo
no calcula la solucin ptima
La actividad ir+1 termina antes que la jr+1
greedy i1 i1 ir ir+1
Por qu no reemplazar la
actividad jr+1 con ir+1? 24
Ejemplo
Seleccin de actividades
Demostracin de optimalidad
Por reduccin al absurdo:
Suponemos que el algoritmo
no calcula la solucin ptima
La actividad ir+1 termina antes que la jr+1
greedy i1 i1 ir ir+1
26
Ejemplo
Almacenamiento en cintas
Almacenamiento ptimo en cintas
Tenemos n ficheros que hay que almacenar en una
cinta de longitud L.
Cada fichero i tiene una longitud li , 1 i n
Todos los ficheros se recuperan del mismo modo,
siendo el tiempo medio de recuperacin (TMR),
1
TMR =
n 1 j nt j
t j = li1 k j
k
Ejemplo
Almacenamiento en cintas
Almacenamiento ptimo en cintas
Algoritmo greedy
29
Ejemplo
Almacenamiento en cintas
Almacenamiento ptimo en cintas
Teorema
Si l1 l2 ln,
entonces el orden de colocacin ij = j, 1 j n
minimiza n k
li
k =1 j =1
j
Ejemplo
Problema de la mochila 0/1
Objeto 3 30
Objeto 2 50 30
20
Objeto 1 30
20 20
10 10 10
Objetivo:
Maximizar el beneficio de los objetos transportados.
max xb
1i n
i i sujeto a x p
1i n
i i P
32
Ejemplo
Problema de la mochila fraccional
Ejemplo Beneficio () 20 30 65 40 60
Mochila de 100kg
100kg Peso (kg) 10 20 30 40 50
Algoritmo greedy:
greedy: Seleccionamos los objetos en
orden decreciente de densidad
densidad..
bi/pi bi+
i+11/pi+
i+11 para 1 i < n
Heursticas greedy
Hay situaciones en las cuales no podemos encontrar
un algoritmo greedy que proporcione una solucin
ptima
Heursticas greedy
37
Ejemplo
Problema de la mochila 0/1
Objeto 3 30
Objeto 2 50 30
20
Objeto 1 30
20 20
10 10 10
Ejemplo
Problema de la mochila 0/1
Un algoritmo greedy proporciona la solucin ptima del
problema de la mochila cuando se pueden fraccionar los
objetos. Sin embargo, el problema es ms difcil de
resolver cuando no se pueden fraccionar los objetos
max xb
1i n
i i sujeto a x p
1i n
i i P con xi {0,1}
39
Ejemplo
Problema de la mochila 0/1
Heurstica greedy
Ordenar los objetos por densidad no creciente:
creciente:
bi/pi bi+
i+11/pi+
i+11 para 1 i < n
Aplicaciones
Planificacin de tareas.
Minimizacin del tiempo de espera = Almacenamiento en cintas.
Planificacin de tareas a plazo fijo = Seleccin de actividades.
Cajero (devolver un nmero mnimo de monedas/billetes [pero no sellos]).
Caminos mnimos en grafos (algoritmo de Dijkstra)
Dijkstra).
rbol generador minimal (algoritmos de Prim & Kruskal)
Kruskal).
Cdigos Huffman y compresin de datos.
Construccin de rboles de decisin.
Heursticas greedy
greedy
41