La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Diseño y análisis de algoritmos

Presentaciones similares


Presentación del tema: "Diseño y análisis de algoritmos"— Transcripción de la presentación:

1 Diseño y análisis de algoritmos
Técnica Branch and Bound

2 Temario Técnica de diseño Técnica Branch and Bound II
Aplicación a problemas de optimización Aplicaciones Problema de la mochila 0-1

3 Técnica de diseño Branch and Bound II
Problemas de optimización A diferencia del juego de 15 donde se la función de costo a minimizar era la distancia de la raiz al estado solución del juego, en un problema genérico de optimización se deme maximizar o minimizar una función dada. Por ejemplo si se está minimizando, el algoritmo hasa ahora planteado no necesariamente encontrará la solución óptima: Se expande la raiz, sus hijos se añaden a la cola de nodos vivos , se elige el nodo izquierdo, se expande y se obtiene una solución de costo 20, cuando la óptima es 10. Por qué? Por que:

4 Técnica de diseño Branch and Bound II
Problemas de optimización Teorema: si para cada nodo x del árbol del espacio de estados, es una estimación de c(x) tal que para todo par de nodos y, z Entonces el algoritmo termina y encuentra siempre una solución de mínimo costo, óptima. Para maximizar es lo mismo, pero con las desigualdades invertidas. Problema: no es fácil encontrar o definir una función de estimación con tales características y fácil de calcular. Puesto que es difícil matener esta restricción, se manejará una función fácil de calcular y tal que para todo nodo x: y para cada solución En este caso el siguiente algoritmo ya visto, tal como se ejemplificó no siempre encuentra una solución de mínimo costo . Una nueva versión del algoritmo:

5 Técnica de diseño Branch and Bound II
Problemas de optimización Algoritmo de minimización Algoritmo minimoCosto(ent x0:nodo) variables c:cola; {con prioridad, <x,costo(x)> ;exito:booleano;xcurso,x:nodo inicio creaVacia(c);{cola de nodos vivos} añadir(c,<x0,costo(x0)>); éxito:=falso; mientras not éxito and not esVacia(c) hacer xcurso:=min(c);{nodo en curso} eliminarMin(c); si esSol(xcurso) entonces escribir (xcurso) exito:=verdad sino para todo x hijo de xcurso hacer añadir(c,<x,costo(x)>); fin-para fin si fin mientras fin

6 Técnica de diseño Branch and Bound II
Problemas de optimización Diferencia con el algoritmo original: El primer algoritmo: si encuentra un hijo que es solución factible, ya no incluye el resto de los hijos en la cola de nodos vivos con prioridades; El segundo algoritmo: incluye en la cola de nodos vivos con prioridades a todos sus hijos, sin mirar sin son solución factible o no. Este último es un aloritmo más “prudente”, pero más costoso. Teorema: si para cada nodo x del árbol del espacio de estados es una estimación de c(x) tal que Y para cada solución se verifica que Entonces si el algoritmo minimoCosto encuentra una solución, esta es óptima, es desir la de menor costo.

7 Técnica de diseño Branch and Bound II
Problemas de optimización Hasta ahora se ha visto la técnica Branch o ramificación, pero para hacerla más eficiente, es necesario acotar (Bound) Aplicación en un problema de minimización de una función c(x), función objetivo. Se utiliza una función de estimación que sea una cota inferior de todas las soluciones obtenidas desde x Suponer que se conoce una cota superior, U, del valor mínimo de c. Cota pesimista de la solución del problema

8 Técnica de diseño Branch and Bound II
Problemas de optimización Regla de acotación : o “poda” x,puede ser podado porque para todo y, solución descendiente de x: Valor inicial de U: Utilizar alguna heurística basada en información extra sobre el problema, o Infinito Si el valor inicial de U es mayor o igual que el costo de la solución de mínimo costo, la regla no elimina ningún nodo ascendente de una solución de coste mínimo.

9 Técnica de diseño Branch and Bound II
Problemas de optimización Construcción del algoritmo Definición de la función de costo c(x) de forma que c(x) sea mínimo para todos los nodos que representen una solución óptima. De manera que: Si x es solución factible del problema de optimización : c(x) =función objetivo (x) Si x no es factible : c(x) = infinito Si x representa una solución parcial , por ejemplo, x puede ser completada a factible: c(x)=min{c(y) |y es descendiente de x} Para que cumpla todos estos requisitos, es muy difícil encontrar una c(x) Se utiliza una función estimadora tal que para todo x La función de estmación , estima el valor de la función objetivo y no del costo computacional de alcanzar una solución. Se debe encontrar un buen orden de recorrido o ramificación de los nodos, es decir una buena función de prioridad de los nodos vivos , para que las soluciones buenas se encuentren rápidamente. Encontrar una buena función de acotación o poda , U, para producir retroceso lo antes posible.

10 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 El problema Es un problema ya tratado con dos técnicas, en sus variantes continuas, con un enfoque greedy, donde se elige la mejor razón utilidad peso. La variante 0-1, no permite cantidades fraccionales de objetos, o se incluye completo o no se incluye. Esta variación se resolvió con programación dinámica, pero con una restricción, que la capacidad de la mochila, los pesos de los objetos, sean enteros. Extender el paroblema a que W, la capacidad de cada objeto wi , y sus utilidades vi sean simplemente números reales positivos. Se puede usar backtracking, pero la idea es mejorar la eficiencia. Transformando el problema de maximización a un problema de minimización: minimizar sujeto a donde

11 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Espacio de soluciones Existen modos de asignar los valores 0 o 1 a las Dos formas de representar la solución: tuplas de tamaño fijo o variable. Tamaño fijo:

12 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Definición de función de costo,c: Las hojas x que ponen fin a caminos desde la raiz, tales que Representan soluciones no factibles, y para ellas c(x)=infinito El resto de las hojas x representan soluciones factibles. Para ellas Para nodos x que no sean hojas, c(x) es el mínimo entre y , siendo y los hijos izquierdo y derecho de x. Es este último punto, tan difícil e calcular como resolver el problema original

13 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Es por eso que es necesario definir dos funciones y U tales que Función U: Solución más sencilla, si x es un nodo de nivel j , con 0<=j<=n, se han asignado ya valores a , 1<=i<=j , por tanto: Ejemplo, beneficio actual cambiado de signo Función Es una función acotadora o “de poda”, que se calcula de la siguiente forma: En el nodo actual ya se han determinado , 1<=i<=j Relajar el requisito de integridad : , j+1<=i<=n se sustituye por , j+1<=i<=n Aplicar el criterio greedy

14 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Ejemplo: n=4, Nodo 1: primer nodo vivo, raiz, nivel 0 ninguna , asignada :calcular problema completo “relajado” usando greedy= -38 Calculando U cota superior, incluye todos los objetos menos el último, U(1)=-32 que es mayor que c estimado por lo que se expande el nodo:

15 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Nodo 2: siguiente nodo en curso , se expande primero que 3 pues su función estimadora es menor.(se está minimizando) Nodo 4 es el siguiente nodo en curso, se expande

16 Técnica de diseño Branch and Bound II
Problema de la mochila 0-1 Siguiente nodo en curso?. Nodos 6 y 7 tienen la misma prioridad –38. Si se opta por orden de numeración, se elige el 6, se generan sus hijos: el izquierdo es eliminado por infactible, el derecho se añade en la cola de vivos (con prioridad –32 , mayor que el nodo 7), luego el siguiente elegido es el 7. Siguiente nodo en curso 7. Nuevo valor de U = -38, se expande ... Los nodos 9,5,3 tienen valores mayores que U, por lo que el nodo 8 comletó todas las variables con costo mínimo: -38. Solución (1,1,0,1)=38


Descargar ppt "Diseño y análisis de algoritmos"

Presentaciones similares


Anuncios Google