Beruflich Dokumente
Kultur Dokumente
2. Paradigma greedy
Ventaja:
Desventaja:
No siempre trabajan.
Estudiaremos:
1 Problema del cambio de moneda
2 Problema de la Mochila
3 Problema de hallar el rbol Expandido Mnimo
4 Problema de la ruta corta.
TAMBIEN :
Por qu funciona?
M adecuado y nmero suficiente de monedas.
No funciona con cualquier M:
Ejemplo: M={1, 4, 6}, n=8, S={6, 1, 1} en vez de {4, 4} (ptimo)
Este problema se resolver con Programacin Dinmica
La funcin Devolver cambio es voraz (algoritmos vidos, greedy)
Por qu voraz?
Selecciona el mejor candidato que puede en cada iteracin, sin
valorar consecuencias.
Una vez seleccionado un candidato, decide definitivamente:
- aceptarlo, o
- rechazarlo
sin evaluacin en profundidad de alternativas, sin retroceso...
Algoritmos sencillos: tanto en diseo como en implementacin.
Cuando la tcnica funciona, se obtienen algoritmos eficientes.
a)
Monedas 50 25 5 1
Cantidad 3 4 1 6
Si hay que devolver la cantidad 110 siguiendo el mtodo del
algoritmo voraz, se tomara primero una moneda de 50,
quedando una cantidad restante de 60. Como 50 es an menor
que 60, se tomara otra moneda de 50. Ahora la cantidad
restante es 10, por tanto ya tenemos que devolver una moneda
de 5, ya que 50 y 25 son mayores que 10, y por tanto se
desechan. La cantidad a devolver ahora es 5. Se tomara otra
moneda de 5, pero puesto que ya no nos queda ninguna,
debern devolverse 5 de valor 1, terminando as el problema de
forma correcta.
b)
Monedas 6 4 1
Cantidad 3 4 1
Si queremos devolver la cantidad 8, siguiendo el
procedimiento anterior, el algoritmo tomara primero una
moneda de 6, quedando un resto de 2. Tomara 2
monedas de valor 1, Pero slo habiendo una moneda de
1 sol, no se puede hallar solucin. Cuando es fcil ver
que con 2 monedas de valor 4 se obtiene el resultado
pedido.
Algoritmo:
Problema de la mochila
Algoritmo voraz:
Funcin a minimizar:
longitud del rbol de recubrimiento
Candidatos:
las aristas del grafo
Funcin solucin:
rbol de recubrimiento de longitud mnima
Funcin factible:
el conjunto de aristas no contiene ciclos
Funcin de seleccin:
- Seleccionar la arista de menor peso que an no ha sido
seleccionada y que no forme un ciclo (Algoritmo Kruskal)
- Seleccionar la arista de menor peso que an no ha sido
seleccionada y que forme un rbol junto con el resto de
aristas seleccionadas (Algoritmo Prim)
Algoritmo de Kruskal
Seleccionar la arista de menor peso
que:
an no haya sido seleccionada
y que no conecte dos nodos de la misma
componente conexa
- es decir, que no forme un ciclo
Algoritmo de Prim
Comenzando por un nodo cualquiera,
seleccionar la arista de menor peso que:
an no haya sido seleccionada
y que forme un rbol junto con el resto de
aristas seleccionadas
COMPLEMENTOS:
Observaciones:
-