Beruflich Dokumente
Kultur Dokumente
Mtodo goloso
Ejemplo
ndice
1 Mtodo goloso
El mtodo
2 Ejemplo
Ejemplo
Mtodo Goloso
Utiliza la mejor alternativa al escojer alguna de las posibles soluciones factibles. No se preocupa de lo que pueda producir ms adelante. Tomando desiciones por lo que tiene de inmediato. No realiza retrocesos ni se preocupa del pasado. Muy utilizados en optimizacin.
Ejemplo
Mtodo Goloso
Son fciles de crear. Fciles de implementar. Si funcionan son ecientes. Se suelen usar para generar una solucin inicial factible.
Ejemplo
Caractersticas generales
Se tiene un problema de forma ptima. Se tiene un conjunto de candidatos (o lista) para resolver el problema. Cuando va avanzando el algoritmo, se acumulan dos conjuntos:
1 2
Ejemplo
Funcin de seleccin, indica cul de los candidatos restantes es el mejor, descartando los seleccionados o rechazados (si fueron rechazados, nunca ms se los vuelve a considerar). Funcin objetivo, obtiene un valor de la solucin que se ha encontrado. En ningn caso, se verica la optimalidad de la solucin.
Ejemplo
Resumiendo
Se busca un conjunto de candidatos que constituya una solucin y que optimice la funcin objetivo. Inicialmente el conjunto de seleccionados est vaco. En cada paso se considera aadir el mejor candidato, sin considerar los restantes, estando guiados por la funcin objetivo. Si en el conjunto de seleccionados, incluyendo el mejor candidato ya no es factible, se descarta este candidato en este momento. Si en el conjunto de seleccionados, incluyendo el mejor candidato sigue siendo factible, se aade al conjunto de seleccionados. Cada vez que se ampla el conjunto de candidatos seleccionados, se comprueba la factibilidad.
Algoritmo 1 Algoritmo goloso Entrada: C:Conjunto Retorna: conjunto //C es el conjunto de candidato no seleccionados. 1: S //S conjunto solucin 2: mientras C = y no solucion(S ) hacer 3: x seleccionar(C ) 4: C C \ x// \: resta el elemento al conjunto 5: si f actible(S {x}) entonces 6: S S { x} 7: n si 8: n mientras 9: si solucion(S ) entonces 10: retornar S 11: sino 12: retornar no hay soluciones 13: n si
Ejemplo
Entregar vuelto
Se tiene que entregar un vuelto, utilizando el menor nmero de monedas posibles. Ejemplo: se debe dar vuelto de 675. Se disponen monedas de 500, 100, 50, 10 , 5 y 1. La solucin sera:
1 1 1 2 1 de de de de de 500. 100. 50. 10 y 5.
Ejemplo
Entregar vuelto
Se tom la moneda de mayor tamao y se vio si se acercaba a mi solucin. En cada paso se fue tomando una moneda de menor tamao siempre y cuando no nos pasemos de lo que debemos entregar. Para este caso, la solucin fue ptima.
Algoritmo 2 Algoritmo entrega de monedas Entrada: n: vuelto a entregar Retorna: conjunto de monedas 1: C = {500, 100, 50, 10, 5, 1} 2: S //S conjunto que tendr la solucin 3: s 0 //s es la suma de los elementos de S 4: mientras s = n hacer 5: x el mayor eleento de C tal que s + x n 6: si ese elemento entonces 7: retornar No encuentro la solucin 8: n si 9: S S {una moneda de valor x} 10: ss+x 11: n mientras 12: retornar S
Ejemplo
Los candidatos son un conjunto de monedas: 500, 100, 50, 10, 5 y 1. Se asume que la cantidad es innita. El conjunto de candidatos debe ser nito. El conjunto de monedas ser factible si su valor no sobrepasa el vuelto que ha de darse. La funcin seleccin toma el valor ms alto que puede en el conjunto de los candidatos. La funcin objetivo cuenta la cantidad de monedas utilizadas en la solucin.
Ejemplo
Consideraciones
Con los valores dados y disponiendo una cantidad suciente de monedas, este algoritmo produce una solucin ptima. Existen casos, en que puede llegar a una solucin, pero que no sea la ptima. Hay otros casos, en que puede a no llegar a ninguna solucin.
Ejemplo
Ejemplo
Ejemplo
Ejemplo
Se quiere entregar vuelto de 7. Las monedas disponibles son 3 y 2. Si el algoritmo toma 2 de 3, no da la solucin. La solucin es 2 de 2 y 1 de 3.
Ejemplo
Se quiere entregar vuelto de 7. Las monedas disponibles son 3 y 2. Si el algoritmo toma 2 de 3, no da la solucin. La solucin es 2 de 2 y 1 de 3.
Ejemplo
Se quiere entregar vuelto de 7. Las monedas disponibles son 3 y 2. Si el algoritmo toma 2 de 3, no da la solucin. La solucin es 2 de 2 y 1 de 3.