Está en la página 1de 7

Algoritmos voraces

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:

los elementos que

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

esquema genrico del algoritmo voraz es:

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

ngel Sanabria Valdez

David

Arturo Valdivia Loza

Gracias a ti

También podría gustarte