0 évaluation0% ont trouvé ce document utile (0 vote)
91 vues3 pages
El documento describe dos algoritmos: 1) "Divide y vencerás" que divide un problema complejo en subproblemas más sencillos, 2) Voraces que resuelven problemas de optimización seleccionando de forma voraz la mejor opción en cada paso sin preocuparse por el futuro. Como ejemplo, se usa un algoritmo voraz para pagar una cantidad con el menor número de monedas posible.
El documento describe dos algoritmos: 1) "Divide y vencerás" que divide un problema complejo en subproblemas más sencillos, 2) Voraces que resuelven problemas de optimización seleccionando de forma voraz la mejor opción en cada paso sin preocuparse por el futuro. Como ejemplo, se usa un algoritmo voraz para pagar una cantidad con el menor número de monedas posible.
El documento describe dos algoritmos: 1) "Divide y vencerás" que divide un problema complejo en subproblemas más sencillos, 2) Voraces que resuelven problemas de optimización seleccionando de forma voraz la mejor opción en cada paso sin preocuparse por el futuro. Como ejemplo, se usa un algoritmo voraz para pagar una cantidad con el menor número de monedas posible.
Se trata de una forma de enfrentar un problema complejo dividindolo en otros ms sencillos y de resolucin directa, o al menos con esa tendencia. Esquema. Plantear el problema de forma que se pueda dividir en sub-problemas ms pequeos del mismo tipo, (divisin). Resolver estos sub-problemas independientemente, a estos problemas se les llama casos base. Combinar las soluciones de los casos base para obtener la solucin del problema original. Ejemplo: Buscar el nmero 9 en un vector de tamao 5. 1. Divisin---- dividir el problema bsqueda en 5 sub-problemas de comparacin.
Comparacin [0] [1] [2] [3] [4] I 2 4 1 9 7 X 9 9 9 9 9 k - - - * - IVector XObjetivo KSoluciones de los sub-problemas o casos base Uniendo todos los resultados de los sub-problemas, se obtiene que en los campos i[0], i[1], i[2], i[4], el contenido del vector es diferente del objetivo (9), y slo en el campo i[3], el contenido del vector es igual al objetivo (9), lo que constituye la solucin del problema inicial.
Por: Ortiz Macas Jairo Uriel Algoritmos Voraces. Para resolver el problema de optimizacin hay que encontrar un conjunto de candidatos que optimiza la funcin objetivo. Los algoritmos voraces proceden por pasos. Inicialmente el conjunto de candidatos es vaco. A continuacin, en cada paso, se intenta aadir al conjunto el mejor candidato de los an no escogidos, utilizando la funcin de seleccin. Si el conjunto resultante no es completable, se rechaza el candidato y no se le vuelve a considerar en el futuro. En caso contrario, se incorpora al conjunto de candidatos escogidos y permanece siempre en l. Tras cada incorporacin se comprueba si el conjunto resultante es una solucin del problema. Un algoritmo voraz es correcto si la solucin as encontrada es siempre ptima. El esquema genrico del algoritmo voraz es:
Los algoritmos voraces se utilizan en su mayora para problemas de optimizacin, y las partes que lo componen e intervienen son: un conjunto de candidatos; un conjunto de decisiones ya tomadas (candidatos ya escogidos); una funcin que determina si un conjunto de candidatos es una solucin al problema; 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;
Por: Ortiz Macas Jairo Uriel funcin voraz(C:conjunto):conjunto { C es el conjunto de todos los candidatos } S <= vacio { S es el conjunto en el que se construye la solucin} mientras solucin(S) y C <> vaciohacer x <= el elemento de C que maximiza seleccionar(x) C <= C \ {x} si completable(S U {x}) entonces S <= S U {x} si solucion(S) entonces devolver S si no devolver no hay solucin
El nombre voraz proviene de que, en cada paso, el algoritmo escoge el mejor "pedazo" que es capaz de "comer" sin preocuparse del futuro. Nunca deshace una decisin ya tomada: una vez incorporado un candidato a la solucin permanece ah hasta el final; y cada vez que un candidato es rechazado, lo es para siempre.
Ejemplo: Se desea pagar una cantidad de dinero a un cliente empleando el menor nmero posible de monedas. Los elementos del esquema anterior se convierten en: candidato: conjunto finito de monedas de, por ejemplo, 1, 5, 10 y 25 unidades, con una moneda de cada tipo por lo menos; solucin: conjunto de monedas cuya suma es la cantidad a pagar; completarle: la suma de las monedas escogidas en un momento dado no supera la cantidad a pagar; funcin de seleccin: la moneda de mayor valor en el conjunto de candidatos an no considerados; funcin objetivo: nmero de monedas utilizadas en la solucin.