19
Método goloso José Luis Allende Reiher

metodoGoloso

Embed Size (px)

DESCRIPTION

metodoGoloso

Citation preview

Page 1: metodoGoloso

Método goloso

José Luis Allende Reiher

Page 2: metodoGoloso

Método goloso Ejemplo

Índice

1 Método golosoEl método

2 EjemploProblema de entregar vuelto

Page 3: metodoGoloso

Método goloso Ejemplo

Método goloso

Método Goloso

Utiliza la mejor alternativa al escojer alguna de las posiblessoluciones factibles.No se preocupa de lo que pueda producir más adelante.Tomando desiciones por lo que tiene de inmediato.No realiza retrocesos ni se preocupa del pasado.Muy utilizados en optimización.

Page 4: metodoGoloso

Método goloso Ejemplo

Método goloso

Método Goloso

Son fáciles de crear.Fáciles de implementar.Si funcionan son eficientes.Se suelen usar para generar una solución inicial factible.

Page 5: metodoGoloso

Método goloso Ejemplo

Método goloso

Características generales

Se tiene un problema de forma óptima.Se tiene un conjunto de candidatos (o lista) para resolver elproblema.Cuando va avanzando el algoritmo, se acumulan dosconjuntos:

1 El de los candidatos ya seleccionados.2 El de los candidatos no seleccionados o rechazados.

Este conjunto de candidatos que constituyen la solución, noverifica la optimalidad.

Page 6: metodoGoloso

Método goloso Ejemplo

Método goloso

Funciones generales de los algoritmos golosos

Existe una función que comprueba si un conjunto decandidatos constituyen una solución.Función de factibilidad, comprueba que un cierto conjunto decandidatos son factibles.

Si agrega o no otro candidato para obtener una solución alproblema.

Función de selección, indica cuál de los candidatos restantes esel mejor, descartando los seleccionados o rechazados (si fueronrechazados, nunca más se los vuelve a considerar).Función objetivo, obtiene un valor de la solución que se haencontrado.En ningún caso, se verifica la optimalidad de la solución.

Page 7: metodoGoloso

Método goloso Ejemplo

Método goloso

Resumiendo

Se busca un conjunto de candidatos que constituya unasolución y que optimice la función objetivo.Inicialmente el conjunto de seleccionados está vacío.En cada paso se considera añadir el mejor candidato, sinconsiderar los restantes, estando guiados por la funciónobjetivo.Si en el conjunto de seleccionados, incluyendo el mejorcandidato ya no es factible, se descarta este candidato en estemomento.Si en el conjunto de seleccionados, incluyendo el mejorcandidato sigue siendo factible, se añade al conjunto deseleccionados.Cada vez que se amplía el conjunto de candidatosseleccionados, se comprueba la factibilidad.

Page 8: metodoGoloso

Algoritmo 1 Algoritmo golosoEntrada: C:ConjuntoRetorna: conjunto

//C es el conjunto de candidato no seleccionados.1: S ← ∅//S conjunto solución2: mientras C 6= ∅ y no solucion(S) hacer3: x← seleccionar(C)4: C ← C \ x//“\”: resta el elemento al conjunto5: si factible(S ∪ {x}) entonces6: S ← S ∪ {x}7: fin si8: fin mientras9: si solucion(S) entonces

10: retornar S11: sino12: retornar “no hay soluciones”13: fin si

Page 9: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Entregar vuelto

Se tiene que entregar un vuelto, utilizando el menor número demonedas posibles.Ejemplo: se debe dar vuelto de 675.Se disponen monedas de 500, 100, 50, 10 , 5 y 1.La solución sería:

1 de 500.1 de 100.1 de 50.2 de 10 y1 de 5.

¿Qué fue lo que se realizó?

Page 10: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Entregar vuelto

Se tomó la moneda de mayor tamaño y se vio si se acercaba ami solución.En cada paso se fue tomando una moneda de menor tamañosiempre y cuando no nos pasemos de lo que debemos entregar.Para este caso, la solución fue óptima.

Page 11: metodoGoloso

Algoritmo 2 Algoritmo entrega de monedasEntrada: n: vuelto a entregarRetorna: conjunto de monedas1: C = {500, 100, 50, 10, 5, 1}2: S ← ∅ //S conjunto que tendrá la solución3: s← 0 //s es la suma de los elementos de S4: mientras s 6= n hacer5: x←el mayor eleento de C tal que s+ x ≤ n6: si @ ese elemento entonces7: retornar “No encuentro la solución”8: fin si9: S ← S ∪ {una moneda de valor x}

10: s← s+ x11: fin mientras12: retornar S

Page 12: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Relacionando con las características

Los candidatos son un conjunto de monedas: 500, 100, 50, 10,5 y 1. Se asume que la cantidad es infinita. El conjunto decandidatos debe ser finito.El conjunto de monedas será factible si su valor no sobrepasael vuelto que ha de darse.La función selección toma el valor más alto que puede en elconjunto de los candidatos.La función objetivo cuenta la cantidad de monedas utilizadasen la solución.

Page 13: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Consideraciones

Con los valores dados y disponiendo una cantidad suficiente demonedas, este algoritmo produce una solución óptima.Existen casos, en que puede llegar a una solución, pero que nosea la óptima.Hay otros casos, en que puede a no llegar a ninguna solución.

Page 14: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde no se entrega solución óptima

El vuelto a entregar es 8.Se tienen monedas de: 6, 4 y 1.El algoritmo goloso entregaría:

1 de 6.2 de 1.

La solución óptima es:2 de 4.

Page 15: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde no se entrega solución óptima

El vuelto a entregar es 8.Se tienen monedas de: 6, 4 y 1.El algoritmo goloso entregaría:

1 de 6.2 de 1.

La solución óptima es:2 de 4.

Page 16: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde no se entrega solución óptima

El vuelto a entregar es 8.Se tienen monedas de: 6, 4 y 1.El algoritmo goloso entregaría:

1 de 6.2 de 1.

La solución óptima es:2 de 4.

Page 17: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde falla

Se quiere entregar vuelto de 7.Las monedas disponibles son 3 y 2.Si el algoritmo toma 2 de 3, no da la solución.La solución es 2 de 2 y 1 de 3.

Page 18: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde falla

Se quiere entregar vuelto de 7.Las monedas disponibles son 3 y 2.Si el algoritmo toma 2 de 3, no da la solución.La solución es 2 de 2 y 1 de 3.

Page 19: metodoGoloso

Método goloso Ejemplo

Problema de entregar vuelto

Ejemplo en donde falla

Se quiere entregar vuelto de 7.Las monedas disponibles son 3 y 2.Si el algoritmo toma 2 de 3, no da la solución.La solución es 2 de 2 y 1 de 3.