diseño y análisis de algoritmos técnica branch and bound

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

Upload: gabriela-mariano

Post on 23-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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