Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los
algoritmos voraces suelen ser bastante simples. Se emplean sobre todo para resolver problemas de optimizacin, como por ejemplo, encontrar la secuencia ptima para procesar un conjunto de tareas por un computador, hallar el camino mnimo de un grafo, etc.
Habitualmente,
intervienen son:
un
conjunto o lista de candidatos (tareas a procesar, vrtices del grafo, etc.); un conjunto de decisiones ya tomadas (candidatos ya escogidos); una funcin que determina si un conjunto de candidatos es una solucin al problema (aunque no tiene por qu ser la ptima);
una
funcin que determina si un conjunto es completable, es decir, si aadiendo a este conjunto nuevos candidatos es posible alcanzar una solucin al problema, suponiendo que esta exista; una funcin de seleccin que escoge el candidato an no seleccionado que es ms prometedor; una funcin objetivo que da el valor/coste de una solucin (tiempo total del proceso, la longitud del camino, etc.) y que es la que se pretende maximizar o minimizar
El
funcin
voraz(C: conjunto): conjunto { C es el conjunto de todos los candidatos } S <= vaco { S es el conjunto en el que se construye la solucin} mientras solucin(S) y C <> vaco-hacer x <= el elemento de C que maximiza seleccionar(x) C <= C \ {x} si completable(S U {x}) entonces S <= S U {x}si solucin(S) entonces devolver S si no devolver no hay solucin
Present
Sergio Miguel
de la Torre Hernndez
David
Gracias a ti