![Page 1: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/1.jpg)
Diseño y análisis de algoritmos
Técnica Branch and Bound
![Page 2: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/2.jpg)
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
![Page 3: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/3.jpg)
Técnica de diseño Branch and Bound IIProblemas 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: )()()(ˆ)(ˆ:, ycxcycxcyx
![Page 4: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/4.jpg)
Técnica de diseño Branch and Bound IIProblemas 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:
)(ˆ xc
)()()(ˆ)(ˆ zcyczcyc
)(ˆ xc
)()(ˆ xcxc
)()(ˆ xcxc
![Page 5: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/5.jpg)
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 mientrasfin
Técnica de diseño Branch and Bound IIProblemas de optimización
Algoritmo de minimización
![Page 6: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/6.jpg)
Técnica de diseño Branch and Bound IIProblemas 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.
)(ˆ xc
)()(ˆ xcxc
)()(ˆ xcxc
![Page 7: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/7.jpg)
Técnica de diseño Branch and Bound IIProblemas 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
)()(ˆ xcxc
Uxcxcx
)(min)( *
)(ˆ xc
![Page 8: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/8.jpg)
Técnica de diseño Branch and Bound IIProblemas 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.
Uxcxcyc )(ˆ)()(Uxcx )(ˆ:
![Page 9: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/9.jpg)
Técnica de diseño Branch and Bound IIProblemas 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.
)(ˆ xc )()(ˆ xcxc
![Page 10: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/10.jpg)
Técnica de diseño Branch and Bound IIProblema 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
i
n
ii xv
1
Wxw i
n
ii
1
niwvx iii 1,0,0},1,0{
![Page 11: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/11.jpg)
Técnica de diseño Branch and Bound IIProblema 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:
n2 ix
![Page 12: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/12.jpg)
Técnica de diseño Branch and Bound IIProblema 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
Wxw i
n
ii
1
i
n
ii xv
1
)( izxc )( dexc
izx dex
![Page 13: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/13.jpg)
Técnica de diseño Branch and Bound IIProblema 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
)()()(ˆ xUxcxc
Uxvxc i
j
ii
1
)(
ix
c
c
ix}1,0{ix
10 ix
![Page 14: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/14.jpg)
Técnica de diseño Branch and Bound IIProblema 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:
ix15
)9,6,4,2(),,,(
)18,12,10,10(),,,(
1111
4321
W
wwww
vvvv
)1(c
![Page 15: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/15.jpg)
Técnica de diseño Branch and Bound IIProblema 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
![Page 16: Diseño y análisis de algoritmos Técnica Branch and Bound](https://reader036.vdocuments.net/reader036/viewer/2022062315/5665b4581a28abb57c90b741/html5/thumbnails/16.jpg)
Técnica de diseño Branch and Bound IIProblema 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