Está en la página 1de 21

Algoritmos Algoritmos Greedy Greedy

Anlisis y Diseo de Algoritmos Anlisis y Diseo de Algoritmos


Algoritmos Algoritmos Greedy Greedy
Caractersticas generales Caractersticas generales
Elementos de un algoritmo Elementos de un algoritmo greedy greedy
Esquema de un algoritmo Esquema de un algoritmo greedy greedy
Ejemplos Ejemplos
Seleccin de actividades Seleccin de actividades Seleccin de actividades Seleccin de actividades
Almacenamiento ptimo en cintas Almacenamiento ptimo en cintas
Problema de la mochila fraccional Problema de la mochila fraccional
Heursticas Heursticas greedy greedy
Ejemplo: El problema de la mochila Ejemplo: El problema de la mochila
Aplicaciones Aplicaciones
1 1
Caractersticas generales Caractersticas generales
Se utilizan generalmente para resolver problemas de Se utilizan generalmente para resolver problemas de
optimizacin (obtener el mximo o el mnimo). optimizacin (obtener el mximo o el mnimo).
Toman decisiones en funcin de la informacin que Toman decisiones en funcin de la informacin que
est disponible en cada momento. est disponible en cada momento. est disponible en cada momento. est disponible en cada momento.
Una vez tomada la decisin, sta no vuelve a Una vez tomada la decisin, sta no vuelve a
replantearse en el futuro. replantearse en el futuro.
Suelen ser rpidos y fciles de implementar. Suelen ser rpidos y fciles de implementar.
No siempre garantizan alcanzar la solucin ptima. No siempre garantizan alcanzar la solucin ptima.
2 2
Caractersticas generales Caractersticas generales
greedy (adj):
avaricioso, voraz, vido, codicioso, glotn
Cmete siempre todo
3 3
Cmete siempre todo
lo que tengas a mano!
Caractersticas generales Caractersticas generales
NOTA IMPORTANTE NOTA IMPORTANTE
El enfoque El enfoque greedy greedy no nos garantiza obtener no nos garantiza obtener
soluciones ptimas. soluciones ptimas. soluciones ptimas. soluciones ptimas.
Por lo tanto, siempre habr que estudiar la Por lo tanto, siempre habr que estudiar la
correccin del algoritmo correccin del algoritmo para demostrar si las para demostrar si las
soluciones obtenidas son ptimas o no. soluciones obtenidas son ptimas o no.
4 4
Elementos Elementos
Para poder resolver un problema usando el enfoque Para poder resolver un problema usando el enfoque
greedy greedy, tendremos que considerar , tendremos que considerar 6 6 elementos: elementos:
1. 1. Conjunto de candidatos Conjunto de candidatos (elementos seleccionables). (elementos seleccionables).
2. 2. Solucin parcial Solucin parcial (candidatos seleccionados). (candidatos seleccionados).
Funcin de seleccin Funcin de seleccin (determina el mejor candidato (determina el mejor candidato 3. 3. Funcin de seleccin Funcin de seleccin (determina el mejor candidato (determina el mejor candidato
del conjunto de candidatos seleccionables). del conjunto de candidatos seleccionables).
4. 4. Funcin de factibilidad Funcin de factibilidad (determina si es posible (determina si es posible
completar la solucin parcial para alcanzar una solucin completar la solucin parcial para alcanzar una solucin
del problema). del problema).
5. 5. Criterio que define lo que es una solucin Criterio que define lo que es una solucin (indica (indica
si la solucin parcial obtenida resuelve el problema). si la solucin parcial obtenida resuelve el problema).
6. 6. Funcin objetivo Funcin objetivo (valor de la solucin alcanzada). (valor de la solucin alcanzada). 5 5
Esquema general Esquema general
Se parte de un conjunto vaco: S = Se parte de un conjunto vaco: S = ..
De la lista de candidatos, se elige el mejor (de De la lista de candidatos, se elige el mejor (de
acuerdo con la acuerdo con la funcin de seleccin funcin de seleccin). ).
Comprobamos si se puede llegar a una solucin con el Comprobamos si se puede llegar a una solucin con el Comprobamos si se puede llegar a una solucin con el Comprobamos si se puede llegar a una solucin con el
candidato seleccionado ( candidato seleccionado (funcin de factibilidad funcin de factibilidad). ).
Si no es as, lo eliminamos de la lista de candidatos Si no es as, lo eliminamos de la lista de candidatos
posibles y nunca ms lo consideraremos. posibles y nunca ms lo consideraremos.
Si an no hemos llegado a una solucin, Si an no hemos llegado a una solucin,
seleccionamos otro candidato y repetimos el proceso seleccionamos otro candidato y repetimos el proceso
hasta llegar a una solucin [o quedarnos sin posibles hasta llegar a una solucin [o quedarnos sin posibles
candidatos]. candidatos].
6 6
Esquema general Esquema general
Greedy Greedy (conjunto de candidatos C): solucin S (conjunto de candidatos C): solucin S
S = S =
while while (S no sea una solucin y C ) { (S no sea una solucin y C ) {
x = seleccin(C) x = seleccin(C)
C = C C = C {x} {x} C = C C = C {x} {x}
if if (S (S {x} es factible) {x} es factible)
S = S S = S {x} {x}
} }
if if (S es una solucin) (S es una solucin)
return return S; S;
else else
return return No se encontr una solucin; No se encontr una solucin;
7 7
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Tenemos que elegir de entre un conjunto de actividades: Tenemos que elegir de entre un conjunto de actividades:
Para cada actividad, conocemos su hora de comienzo Para cada actividad, conocemos su hora de comienzo
y su hora de finalizacin. y su hora de finalizacin.
Podemos asistir a todas las actividades que queramos. Podemos asistir a todas las actividades que queramos. Podemos asistir a todas las actividades que queramos. Podemos asistir a todas las actividades que queramos.
Sin embargo, hay actividades que se solapan en el Sin embargo, hay actividades que se solapan en el
tiempo y no podemos estar en dos sitios a la vez. tiempo y no podemos estar en dos sitios a la vez.
Posibles objetivos Posibles objetivos
1. 1. Asistir al mayor nmero de actividades posible. Asistir al mayor nmero de actividades posible.
2. 2. Minimizar el tiempo que estamos ociosos. Minimizar el tiempo que estamos ociosos.
8 8
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Problema de seleccin de actividades Problema de seleccin de actividades
Dado un conjunto C de n actividades, con Dado un conjunto C de n actividades, con
s s
ii
= tiempo de comienzo de la actividad i = tiempo de comienzo de la actividad i
f f
ii
= tiempo de finalizacin de la actividad i = tiempo de finalizacin de la actividad i
encontrar el subconjunto S de actividades compatibles encontrar el subconjunto S de actividades compatibles
de tamao mximo (esto es, actividades que no se de tamao mximo (esto es, actividades que no se
solapen en el tiempo). solapen en el tiempo).
9 9
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Elementos del problema Elementos del problema
Conjunto de candidatos: C = {actividades ofertadas}.
Solucin parcial: S (inicialmente, S=). Solucin parcial: S (inicialmente, S=).
Funcin de seleccin: menor duracin, menor
solapamiento, terminacin ms temprana
Funcin de factibilidad: x es factible si es compatible
(esto es, no se solapa) con las actividades de S.
Criterio que define lo que es una solucin: C=.
Funcin objetivo (lo que tratamos de optimizar):
El tamao de S.
10 10
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Estrategias Estrategias greedy greedy alternativas alternativas
Orden en el que se pueden considerar las actividades: Orden en el que se pueden considerar las actividades:
Orden creciente de hora de comienzo. Orden creciente de hora de comienzo.
Orden creciente de hora de finalizacin.
Orden creciente de duracin: f f
i i
- - s s
ii
Orden creciente de conflictos con otras actividades Orden creciente de conflictos con otras actividades
(con cuntas actividades se solapa). (con cuntas actividades se solapa).
11 11
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Estrategias Estrategias greedy greedy alternativas alternativas
Contraejemplos (para descartar alternativas) Contraejemplos (para descartar alternativas)
Orden creciente de hora de comienzo. Orden creciente de hora de comienzo.
Orden creciente de duracin: f f
i i
- - s s
ii
Orden creciente de conflictos con otras actividades Orden creciente de conflictos con otras actividades
12 12
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Algoritmo Algoritmo Greedy Greedy
SeleccinActividades SeleccinActividades (C: actividades): S (C: actividades): S
Ordenar Ordenar C en orden creciente de tiempo de finalizacin. C en orden creciente de tiempo de finalizacin. Ordenar Ordenar C en orden creciente de tiempo de finalizacin. C en orden creciente de tiempo de finalizacin.
Seleccionar Seleccionar la primera la primera actividad de C actividad de C
(esto es, extraerla del conjunto C y aadirla a S). (esto es, extraerla del conjunto C y aadirla a S).
Repetir Repetir
Extraer Extraer la siguiente actividad la siguiente actividad del del conjunto conjunto ordenado: ordenado:
Si comienza Si comienza despus de que la actividad despus de que la actividad previa en S previa en S
haya terminado, seleccionarla (aadirla a S). haya terminado, seleccionarla (aadirla a S).
hasta que hasta que C C est vaco. est vaco. 13 13
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Algoritmo Algoritmo Greedy Greedy
SeleccinActividades SeleccinActividades (C: actividades): S (C: actividades): S
{ {
sort sort(C); (C); // ordenar segn tiempo // ordenar segn tiempo de finalizacin de finalizacin sort sort(C); (C); // ordenar segn tiempo // ordenar segn tiempo de finalizacin de finalizacin
S[ S[0 0] = C[ ] = C[0 0]; ]; // // seleccionar seleccionar la primera actividad la primera actividad
i = i = 1 1; ; prev prev = = 0 0; ;
while while (i< (i<C.length C.length) ) { { // // solucin(S)? solucin(S)?
x = x = C[i C[i]; ]; // // seleccionar x seleccionar x
if if ( (x.inicio x.inicio >= >= S[ S[prev prev].fin) ].fin) // factible(x)? // factible(x)?
S S[++ [++prev prev] ] = x; = x; // aadir x a S // aadir x a S
i++; i++;
} }
} }
14 14
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
15 15
Tiempo
F
D
G
H
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
16 16
Tiempo
F
D
G
H
B
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
17 17
Tiempo
F
D
G
H
B C
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
18 18
Tiempo
F
D
G
H
B A
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
19 19
Tiempo
F
D
G
H
B E
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
20 20
Tiempo
F
D
G
H
B E D
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
21 21
Tiempo
F
D
G
H
B E F
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
22 22
Tiempo
F
D
G
H
B E G
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
A
C
B
E
23 23
Tiempo
F
D
G
H
B E H
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Demostracin de Demostracin de optimalidad optimalidad
Por reduccin al absurdo: Por reduccin al absurdo:
Suponemos que el algoritmo Suponemos que el algoritmo
no calcula la solucin ptima no calcula la solucin ptima no calcula la solucin ptima no calcula la solucin ptima
24 24
j
1
j
2
j
r
i
1
i
1
i
r
i
r+1
. . .
greedy
ptimo
j
r+1
Por qu no reemplazar la
actividad j
r+1
con i
r+1
?
La actividad i
r+1
termina antes que la j
r+1
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Demostracin de Demostracin de optimalidad optimalidad
Por reduccin al absurdo: Por reduccin al absurdo:
Suponemos que el algoritmo Suponemos que el algoritmo
no calcula la solucin ptima no calcula la solucin ptima no calcula la solucin ptima no calcula la solucin ptima
25 25
j
1
j
2
j
r
i
1
i
1
i
r
i
r+1
. . .
greedy
ptimo
Pero entonces, la solucin parcial del algoritmo
greedy sigue siendo factible y, adems, es ptima
La actividad i
r+1
termina antes que la j
r+1
i
r+1
Ejemplo Ejemplo
Seleccin de actividades Seleccin de actividades
Demostracin de Demostracin de optimalidad optimalidad
Jon Jon Kleinberg Kleinberg & Eva Tardos: & Eva Tardos: Algorithm Algorithm Design Design..
Seccin 4.1 Seccin 4.1 Interval Interval Scheduling Scheduling: : The The greedy greedy algorithm algorithm
stays stays ahead ahead. .
Thomas H. Thomas H. Cormen Cormen, Charles E. , Charles E. Leiserson Leiserson, Ronald L. , Ronald L.
Rivest & Rivest & Clifford Clifford Stein Stein: : Introduction Introduction to to Algorithms Algorithms. .
[2 edicin] Seccin 16.1 [2 edicin] Seccin 16.1 An An activity activity- -selection selection problem problem. .
26 26
Ejemplo Ejemplo
Almacenamiento en cintas Almacenamiento en cintas
Almacenamiento ptimo 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 l
i
, 1 i n
Todos los ficheros se recuperan del mismo modo, Todos los ficheros se recuperan del mismo modo,
siendo el tiempo medio de recuperacin (TMR),
Nos piden que encontremos una permutacin de los n
ficheros tal que, cuando estn almacenados en la cinta
el TMR sea mnimo, lo que equivalente a minimizar
27 27


=
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

También podría gustarte