Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Greedy
4 Greedy
=
n j
j
t
n
TMR
1
1
=
j k
l t
i
j
k
1
=
j k n j
l
i
I D
k
1 1
) (
Ejemplo Ejemplo
Almacenamiento en cintas Almacenamiento en cintas
Almacenamiento ptimo en cintas Almacenamiento ptimo en cintas
Ejemplo Ejemplo
n = n = 3 3
(l (l
11
,l ,l
22
,l ,l
33
) = ( ) = (55,,10 10,,33))
Orden Orden I I Valor Valor D(I) D(I)
11,,22,,33 5 5 + + 5 5 + + 10 10 + + 5 5 + + 10 10 + + 33 = = 38 38
11,,33,,22 5 5 + + 5 5 + + 3 3 + + 5 5 + + 3 3 + + 10 10 = = 31 31
22,,11,,33 10 10 + + 10 10 + + 5 5 + + 10 10 + + 5 5 + + 3 3 = = 43 43
22,,33,,11 10 10 + + 10 10 + + 3 3 + + 10 10 + + 3 3 + + 5 5 = = 41 41
33,,11,,22 3 3 + + 3 3 + + 5 5 + + 3 3 + + 5 5 + + 10 10 = = 29 29
33,,22,,11 3 3 + + 3 3 + + 10 10 + + 3 3 + + 10 10 + + 55 = = 34 34
28 28
Ejemplo Ejemplo
Almacenamiento en cintas Almacenamiento en cintas
Almacenamiento ptimo en cintas Almacenamiento ptimo en cintas
Algoritmo Algoritmo greedy greedy
Partiendo de la cinta Partiendo de la cinta vaca vaca
Mientras queden ficheros por guardar Mientras queden ficheros por guardar
Elegir el fichero ms pequeo Elegir el fichero ms pequeo
Aadirlo a continuacin en la cinta Aadirlo a continuacin en la cinta
El algoritmo escoge la opcin ms inmediata sin tener El algoritmo escoge la opcin ms inmediata sin tener
en cuenta si esa decisin ser la mejor a largo plazo... en cuenta si esa decisin ser la mejor a largo plazo...
29 29
Ejemplo Ejemplo
Almacenamiento en cintas Almacenamiento en cintas
Almacenamiento ptimo en cintas Almacenamiento ptimo en cintas
Teorema Teorema
Si l
1
l
2
l
n
,
entonces el orden de colocacin i
j
= j, 1 j n entonces el orden de colocacin i
j
= j, 1 j n
minimiza
para todas las posibles permutaciones i
j
Demostracin: Demostracin: Ellis Horowitz & Ellis Horowitz & Sartaj Sartaj Sahni Sahni: :
Fundamentals of Computer Algorithms Fundamentals of Computer Algorithms, 1978 , 1978 30 30
= =
n
k
k
j
l
i
j
1 1
Ejemplo Ejemplo
Problema de la mochila 0/1 Problema de la mochila 0/1
50
Objeto 2
Objeto 3
30
20
30
Cmo seleccionamos los objetos de la mochila? Cmo seleccionamos los objetos de la mochila? NP NP
31 31
10
20
30
50
60 100 120
Objeto 1
Objeto 2
Mochila
20
220
20
10
160
30
10
180
Ejemplo Ejemplo
Problema de la mochila fraccional Problema de la mochila fraccional
El problema consiste en llenar una mochila: El problema consiste en llenar una mochila:
La mochila puede soportar como mximo un peso P. La mochila puede soportar como mximo un peso P.
Tenemos n objetos Tenemos n objetos fraccionables fraccionables..
Cada objeto i tiene un peso p Cada objeto i tiene un peso p
ii
Cada objeto i tiene un peso p Cada objeto i tiene un peso p
ii
y proporciona un beneficio y proporciona un beneficio bb
ii
Objetivo: Objetivo:
Maximizar el beneficio de los objetos transportados. Maximizar el beneficio de los objetos transportados.
32 32
n i
i i
n i
i i
P p x a sujeto b x
1 1
max
Ejemplo Ejemplo
Problema de la mochila fraccional Problema de la mochila fraccional
Ejemplo Ejemplo
Mochila de Mochila de 100 100kg kg
Cmo seleccionamos los objetos? Cmo seleccionamos los objetos?
Primero el ms ligero Primero el ms ligero
Beneficio () 20 30 65 40 60
Peso (kg) 10 20 30 40 50
Primero el ms ligero Primero el ms ligero
Peso = Peso = 10 10++20 20++30 30++40 40 = = 100 100 kg kg
Beneficio = Beneficio = 20 20++30 30++65 65++40 40 = = 155 155
Primero el ms valioso Primero el ms valioso
Peso = Peso = 30 30 + + 50 50 + + 20 20 = = 100 100 kg kg
Beneficio = Beneficio = 65 65 + + 50 50 + + 20 20 = = 135 135
Primero el que tenga ms valor por unidad de peso Primero el que tenga ms valor por unidad de peso
Peso = Peso = 30 30 + + 10 10 + + 20 20 + + 40 40 = = 100 100 kg kg
Beneficio = Beneficio = 65 65 + + 20 20 + + 30 30 + + 48 48 = = 163 163
33 33
Ejemplo Ejemplo
Problema de la mochila fraccional Problema de la mochila fraccional
Definimos Definimos la la densidad densidad del del objeto objeto OO
ii
como como bb
ii
/p /p
ii
. .
Algoritmo Algoritmo greedy greedy: : Seleccionamos Seleccionamos los los objetos objetos en en
orden orden decreciente decreciente de de densidad densidad. . orden orden decreciente decreciente de de densidad densidad. .
bb
ii
/p /p
ii
b b
i+ i+11
/p /p
i+ i+11
para para 1 1 ii < n < n
Se Se aade aade a la a la mochila mochila todo todo lo lo que que se se pueda pueda: :
Si un Si un objeto objeto OO
ii
no no cabe cabe entero entero, se , se rellena rellena el el espacio espacio
disponible disponible con la con la fraccin fraccin del del objeto objeto que que quepa quepa
hasta hasta completar completar la la capacidad capacidad de la de la mochila mochila..
34 34
Heursticas Heursticas greedy greedy
Hay situaciones en las cuales no podemos encontrar Hay situaciones en las cuales no podemos encontrar
un algoritmo un algoritmo greedy greedy que proporcione una solucin que proporcione una solucin
ptima ptima
En muchas ocasiones, se podran obtener mejores En muchas ocasiones, se podran obtener mejores En muchas ocasiones, se podran obtener mejores En muchas ocasiones, se podran obtener mejores
soluciones reconsiderando alternativas desechadas por soluciones reconsiderando alternativas desechadas por
un algoritmo un algoritmo greedy greedy (cuando, a partir de una solucin (cuando, a partir de una solucin
ptima local no se puede alcanzar una solucin ptima ptima local no se puede alcanzar una solucin ptima
global). global).
Pese a ello, resultan tiles los algoritmos Pese a ello, resultan tiles los algoritmos greedy greedy
que proporcionan que proporcionan una solucin rpida a problemas una solucin rpida a problemas
complejos, aunque sta no sea ptima. complejos, aunque sta no sea ptima. 35 35
Heursticas Heursticas greedy greedy
Heurstica: Heurstica: Procedimiento que proporciona una Procedimiento que proporciona una
solucin aceptable a un problema mediante mtodos solucin aceptable a un problema mediante mtodos
que carecen de justificacin formal (p.ej. por tanteo, que carecen de justificacin formal (p.ej. por tanteo,
usando reglas empricas). usando reglas empricas).
Heursticas para problemas concretos (p.ej. NP) Heursticas para problemas concretos (p.ej. NP) Heursticas para problemas concretos (p.ej. NP) Heursticas para problemas concretos (p.ej. NP)
Metaheursticas Metaheursticas (heursticas de propsito general): (heursticas de propsito general):
Enfriamiento simulado Enfriamiento simulado
Bsqueda tab Bsqueda tab
GRASP GRASP [[Greedy Greedy Randomized Randomized Adaptive Adaptive Search Search Procedures Procedures]]
Algoritmos Algoritmos bioinspirados bioinspirados: algoritmos genticos, : algoritmos genticos,
algoritmos algoritmos memticos memticos, colonias de hormigas , colonias de hormigas 36 36
Heursticas Heursticas greedy greedy
Satisfacer vs. optimizar Satisfacer vs. optimizar
Cuando el tiempo que se tarda en resolver un Cuando el tiempo que se tarda en resolver un
problema es un factor clave, un algoritmo problema es un factor clave, un algoritmo greedy greedy problema es un factor clave, un algoritmo problema es un factor clave, un algoritmo greedy greedy
puede utilizarse como criterio heurstico. puede utilizarse como criterio heurstico.
Tambin puede utilizarse un algoritmo Tambin puede utilizarse un algoritmo greedy greedy para para
encontrar una primera solucin (como punto de encontrar una primera solucin (como punto de
partida para otra heurstica). partida para otra heurstica).
37 37
Ejemplo Ejemplo
Problema de la mochila 0/1 Problema de la mochila 0/1
50
Objeto 2
Objeto 3
30
20
30
Cmo seleccionamos los objetos de la mochila? Cmo seleccionamos los objetos de la mochila?
38 38
10
20
30
50
60 100 120
Objeto 1
Objeto 2
Mochila
20
220
20
10
160
30
10
180
Ejemplo Ejemplo
Problema de la mochila 0/1 Problema de la mochila 0/1
Un algoritmo Un algoritmo greedy greedy proporciona la solucin ptima del proporciona la solucin ptima del
problema de la mochila cuando se pueden fraccionar los problema de la mochila cuando se pueden fraccionar los
objetos. Sin embargo, el problema es ms difcil de objetos. Sin embargo, el problema es ms difcil de
resolver cuando no se pueden fraccionar los objetos resolver cuando no se pueden fraccionar los objetos
39 39
} 1 , 0 { max
1 1
i
n i
i i
n i
i i
x con P p x a sujeto b x
Ejemplo Ejemplo
Problema de la mochila 0/1 Problema de la mochila 0/1
Heurstica Heurstica greedy greedy
Ordenar Ordenar los los objetos objetos por por densidad densidad no no creciente creciente: :
bb
ii
/p /p
ii
b b
i+ i+11
/p /p
i+ i+11
para para 1 1 ii < n < n
Con un Con un nmero nmero ilimitado ilimitado de de objetos objetos de de cada cada tipo tipo, , Con un Con un nmero nmero ilimitado ilimitado de de objetos objetos de de cada cada tipo tipo, ,
si si M M es es el valor el valor mximo mximo de los de los objetos objetos que que se se pueden pueden
llevar llevar en la en la mochila mochila, la , la heurstica heurstica garantiza garantiza obtener obtener, al , al
menos menos, un valor de M/ , un valor de M/2 2 (George (George Dantzig Dantzig, , 1957 1957). ).
Sin embargo, la Sin embargo, la heurstica heurstica puede puede proporcionar proporcionar
resultados resultados mucho mucho peores peores ((muy muy alejados alejados del del ptimo ptimo) )
para para instancias instancias particulares particulares del del problema problema..
40 40
Aplicaciones Aplicaciones
Planificacin de tareas. Planificacin de tareas.
Minimizacin del tiempo de espera = Almacenamiento en cintas. Minimizacin del tiempo de espera = Almacenamiento en cintas.
Planificacin de tareas a plazo fijo = Seleccin de actividades. Planificacin de tareas a plazo fijo = Seleccin de actividades.
Cajero Cajero (devolver un nmero mnimo de monedas/billetes [pero no sellos]). (devolver un nmero mnimo de monedas/billetes [pero no sellos]).
Caminos mnimos en grafos Caminos mnimos en grafos (algoritmo de (algoritmo de Dijkstra Dijkstra))..
rbol generador rbol generador minimal minimal (algoritmos de (algoritmos de Prim Prim & & Kruskal Kruskal))..
Cdigos Cdigos Huffman Huffman y compresin de datos. y compresin de datos.
Construccin de rboles de decisin. Construccin de rboles de decisin.
Heursticas Heursticas greedy greedy
41 41