Este documento describe algoritmos voraces y sus características. Explica que los algoritmos voraces toman decisiones ópticas en cada paso sin considerar el futuro. Estos algoritmos dan soluciones ópticas cuando el problema tiene subestructura óptima, pero no necesariamente en otros casos. También discute posibles problemas como la sobreposición de subproblemas y formas de abordarlos como establecer una profundidad global o usar programación dinámica.
Estrategia de prompts, primeras ideas para su construcción
Informe final1
1. Republica Bolivariana de Venezuela
Ministerio de Educación, Cultura y Deportes
I.U.P “Santiago Mariño” – Extensión CARACAS
Ingeniería de Sistemas
ALGORITMOS DEVORADORES
ALUMNOS:
MARIA RIERA C.I:18.589.486
ELIO ARIZA C.I:20.914.946
JOSE CABELLO C.I:18.010.302
DIANA ROMERO C.I:16.814.765
ARTURO MEDINA C.I:16.223.878
DANNY MENDES C.I:15.540.352
CARACAS; AGOSTO 2016
2. Algoritmos devoradores
Es una serie de pasos que se repiten con la intención de ir utilizando la
mayor cantidad de datos por vez cumpliendo con las condiciones para así
resolver el problema.
Generalmente el desarrollo de esta clase de algoritmos no es difícil, solo
hay que estar seguro de que es adecuado para el problema que queremos
resolver, este tipo de algoritmos es muy utilizado en los problemas de
optimización, problemas en los cuales se tiene un conjunto de candidatos
(datos de entrada), de los cuales se debe elegir un subconjunto que
satisfaga una cierta condición de optimalizad (posibles soluciones no
necesariamente optimas) y eventualmente condiciones de factibilidad
.Árbol de expansión mínimo (algoritmo de Prim).
Los algoritmos Greedy
Son algoritmos que toman decisiones óptimas en cada instancia, sin pensar
en el futuro, por ejemplo si la instancia del problema es parte de un
problema mayor, Por eso estos algoritmos dan soluciones óptimas cuando
el problema tiene subestructura optimal, pero no necesariamente al
revés. Cuando no tiene, puede o no dar solución óptima.
¿Problemas que pueden pasar?
En algún momento puedo recalcular los problemas y sub problemas porque
estos se superponen. Cuando esto pasa, el algoritmo no es eficiente.
3. Soluciones:
Establecer una profundidad global para el camino: Es decirle al algoritmo,
que no se pase de x profundidad porque entonces no será buena la
solución otorgada.16
Emplear Programación dinámica almacenando en tablas los cálculos ya
hechos
Esquemas:
Dado un conjunto finito de entradas C , un algoritmo voraz devuelve un
conjunto S (seleccionados) tal que y que además cumple con las
restricciones del problema inicial. A cada conjunto que satisfaga las
restricciones se le suele denominar prometedor, y si este además logra
que la función objetivo se minimice o maximice (según corresponda)
diremos que es una solución óptima.
Elementos de los que consta la técnica
El conjunto C de candidatos, entradas del problema.
Función solución. Comprueba, en cada paso, si el subconjunto actual de
candidatos elegidos forma una solución (no importa si es óptima o no lo
es).
Función de selección. Informa de cuál es el elemento más prometedor
para completar la solución. Éste no puede haber sido escogido con
anterioridad. Cada elemento es considerado una sola vez. Luego, puede
ser rechazado o aceptado y pertenecerá a C/S.
Función de factibilidad. Informa si a partir de un conjunto se puede
llegar a una solución. Lo aplicaremos al conjunto de seleccionados unido
con el elemento más prometedor.
Función objetivo. Es aquella que queremos maximizar o minimizar, el
núcleo del problema.
4. Funcionamiento
El algoritmo escoge en cada paso al mejor elemento XϵC posible, conocido
como el elemento más prometedor. Se elimina ese elemento del conjunto
de candidatos y, acto seguido, comprueba si la inclusión de este elemento
en el conjunto de elementos seleccionados produce una solución factible.