5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 1/25
mificación y acotación Pág. 1
Ramificación y acotación(Branch and Bound)
y Introducción
y El problema del viajantede comercio
y El problema de la mochila 0-1
y El juego del 15
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 2/25
mificación y acotación Pág. 2
Introducción:Branch and Bound
y Al igual que los métodos debúsqueda con retroceso:
– se aplica a problemas de optimización con
restricciones (algunas veces también aprobl. de decisión)
– se genera el espacio de soluciones,organizándolo en un árbol.
– Se podan subárboles inútiles.
y Terminología:– Nodo vivo: nodo del espacio de soluciones
del que no se han generado aún todos sushijos.
– Nodo muerto: nodo del que no se van a
generar más hijos porque:x no hay másx no es completable,x no producirá una solución mejor que la
solución en curso
– Nodo en curso (o en expansión): nodo delque se están generando hijos
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 3/25
mificación y acotación Pág. 3
y Diferencia fundamental con elmétodo de búsqueda conretroceso:
– Búsqueda con retroceso:
Tan pronto como se genera unnuevo hijo delnodo en curso, este hijo pasa aser el nodo en curso.
– Ramificación y acotación:
Se generan todos los hijos delnodo en cursoantes de que cualquier otronodo vivo pase a ser el nuevo
nodo en curso.
y En consecuencia:– Búsqueda con retroceso:
Los únicos nodos vivos son losque están en el camino de la raízal nodo en curso.
– Ramificación y acotación:
Introducción:(1) Ramificación…
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 4/25
mificación y acotación Pág. 4
Backtracking para
problemas de
optimización(minimización)
algoritmo BackTracking(ent k:entero;
entsal X:vector[1..n]de valor)
{Pre: X[1..k-1] es completable,
cota(X,k-1)<CosteMejorSol}
para todo v en Ci hacer
X[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;
CosteMejorSol:= Coste(X)
fsi;
si k<n entonces BackTracking(k+1,X)
fsi;
fsi
fpara
algoritmo BackTracking(ent k:entero;
entsal X:vector[1..n]de valor){Pre: X[1..k-1] es completable,
cota(X,k-1)<CosteMejorSol}
para todo v en Ci hacer
X[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;
CosteMejorSol:= Coste(X)
fsi;
si k<n entonces BackTracking(k+1,X)
fsi;
fsi
fpara
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 5/25
mificación y acotación Pág. 5
Backtracking Iterativo
algoritmo BackTracking()
variable P es pila de nodo;
CosteMejorSol:=∞pvacia(P); apilar(P,<X,1>)
mientras ¬vacia(P) hacer
<X,k>:=cima(P); desapilar(P); para todo v en C
i hacer
X[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;CosteMejorSol:= Coste(X)
fsi;
si k<n entonces
apila(P,<X,k+1>)
fsi;
fsi
fpara
fmientras
devuelve (MejorSol, CosteMejorSol)
algoritmo BackTracking()
variable P es pila de nodo;
CosteMejorSol:=∞pvacia(P); apilar(P,<X,1>)
mientras ¬vacia(P) hacer
<X,k>:=cima(P); desapilar(P);
para todo v en Ci hacer
X[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;
CosteMejorSol:= Coste(X)
fsi;
si k<n entonces
apila(P,<X,k+1>)
fsi;
fsi
fpara
fmientras
devuelve (MejorSol, CosteMejorSol)
tipo nodo es tuplaX: vector[1..n]de valor
k: [1..n+1]
ftipo // X[1..k-1] es una asignación parcial
tipo nodo es tuplaX: vector[1..n]de valor
k: [1..n+1]
ftipo // X[1..k-1] es una asignación parcial
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 6/25
mificación y acotación Pág. 6
y Diferentes estrategias deelegir el siguiente nododel conjunto de nodos vivos
⇒ Distintos órdenes derecorrido del árbol desoluciones
– pila:
⇒ recorr. en profundidad– cola:
⇒recorrido por niveles
– cola con prioridades (Branch andBound): selección del nodo vivo másprometedor.
⇒ recorrido “extraño”
La prioridad de un nodo secalcula de acuerdo con unafunción de estimación quemide cuánto de “ rometedor” es
Introducción:
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 7/25
mide cuánto de rometedor es
mificación y acotación Pág. 7
Ramificación y poda
algoritmo BranchAndBound()
variable C es cola_prioritaria de nodo;
CosteMejorSol:= ∞cvacia(C); encolar(C,<X,1,pr(X,1)>)
mientras ¬ vacia(C) hacer
<X,k>:=primero(C); desencolar(C);
para todo v en Ci hacer
X[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;
CosteMejorSol:= Coste(X) fsi;
si k<n entonces
encola(C,<X,k+1,pr(X,k+1)>)
fsi;
fsi
fparafmientras
devuelve (MejorSol, CosteMejorSol)
algoritmo BranchAndBound()
variable C es cola_prioritaria de nodo;
CosteMejorSol:= ∞cvacia(C); encolar(C,<X,1,pr(X,1)>)
mientras ¬ vacia(C) hacer
<X,k>:=primero(C); desencolar(C);
para todo v en Ci hacerX[k]:=v;
si (completable(X,k) ∧cota(X,k)<CosteMejorSol) entonces
si Sol(X,k) entonces
MejorSol:= X;
CosteMejorSol:= Coste(X) fsi;
si k<n entonces
encola(C,<X,k+1,pr(X,k+1)>)
fsi;
fsi
fpara
fmientras
devuelve (MejorSol, CosteMejorSol)
tipo nodo es tuplaX: vector[1..n]de valor
k: [1..n+1]
ftipo // X[1..k-1] es una asignación parcial
tipo nodo es tuplaX: vector[1..n]de valor
k: [1..n+1]
ftipo // X[1..k-1] es una asignación parcial
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 8/25
mificación y acotación Pág. 8
y La prioridad sirve para “guiar” labúsqueda y encontrar pronto unasolución óptima.
– Si prioridad(X,k) = “coste de la mejor
extensión de X”, el algoritmo irá directo a lamejor solución
y La cota sirve para descubrir prontoque es inútil continuar por elcamino actual
– Si, además, cota(X,k)= “coste de la mejorextensión de X”, podará el resto de ramas.
y En general, conseguir prioridades ycotas perfectas es imposible.
– Si prioridad(X,k) ≈ “coste de la mejorextensión de X”, el algoritmo irá casidirecto a la mejor solución
– Si cota(X,k) ≈ “coste de la mejor extensiónde X”, el algoritmo podará casi todas lasramas
y En general, el coste espacial ytemporal del método es O(p(n) dn)– d=max{|Ci|}
– p(n) es un polinomio
Ramificación y poda
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 9/25
mificación y acotación Pág. 9
y Punto clave de los métodos deramificación y acotación:
Encontrar buenas funciones deprioridad y buenas cotas.
y Habitualmente se usa la cota comoprioridad del nodo (si la cota es
buena, es una buena medida de loprometedor que es el nodo). Si nodecimos lo contrario, nosotrostambién lo haremos.
Ramificación y poda
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 10/25
mificación y acotación Pág. 10
El problema del viajantede comercio
y Recordar:
– Encontrar un recorrido de longitudmínima para un viajante que tieneque visitar varias ciudades y volveral punto de partida, conocida ladistancia existente entre cadados ciudades.
– Es decir, dado un grafo dirigido con arcosdelongitud no negativa, se trata de encontrarun circuito de longitud mínima quecomience y termine en el mismo vértice ypase exactamente una vez por cada uno delos vértices restantes(circuito hamiltoniano).
¡Estoyhastalas θ’s
de viajar !
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 11/25
mificación y acotación Pág. 11
y Formalización:– Sean G=(V , A) un grafo orientado,
V ={1,2,…,n},
D[i, j] la longitud de (i, j)∈ A,
D[i, j]=∞ si no existe el arco (i, j).– El circuito buscado empieza en el vértice 1.
– Candidatos:E = { 1,X,1 | X es unapermutación de (2,3,…,n) }
|E| = (n-1)!
– Soluciones factibles:
E = { 1,X,1 | X = x 1, x 2,…, x n-1, esuna permutación de (2,3,…,n) talque (i j,i j+1)∈ A, 0< j<n,
(1, x 1) ∈ A , ( x n-1,1) ∈ A}
– Funcion objetivo:
F(X)=D[1,x1]+D[x1, x2] + D[x2,
El problema del viajantede comercio
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 12/25
mificación y acotación Pág. 12
y Representación del espacio deestados:
– Caso de un grafo completo con |V | = 4.
El problema del viajantede comercio
1
1615131211
109876
14
5
432
x 1=2
x 1=3 x 1=4
x 2
=3 x 2
=4 x 2
=2 x 2
=4 x 2=2
x 2=3
x 3=4 x 3=3 x 3=4 x 3=2 x 3=3 x 3=2
Cada hoja es una solución y representa el viajedefinido por el camino desde la raíz hasta la hoja.
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 13/25
mificación y acotación Pág. 13
y Definición de una cota( X ,k ) muysencilla:
– Suma de aristas ya escogidas
– cota( X ,k )=D[1,X [1]]+ Σi=1..k -2 D[ X [i], X [i+1]]
y Ejemplo: (n=5)
El problema del viajantede comercio
∞ 20 30 10 11
15 ∞ 16 4 23 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
Ejemplo de matriz no reducida.
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 14/25
mificación y acotación Pág. 14
y Puede mejorarse usando la matrizde distancias reducida:
– Una fila (columna) de la matriz de
distancias se dice reducida si suselementos son no negativos y contiene almenos un 0.
– Una matriz de distancias se dice reducida sicada fila y columna es reducida.
– Para cada k , 1<k <n, todo circuitohamiltonianoincluye exactamente un arco de la forma
(k ,-) y exactamente un arco de la forma(-,k ).
– Si se resta una constante t de cadaelemento de una fila (columna) de la matriz
El problema del viajantede comercio
∞ 20 30 10 11
15 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
Ejemplo de matriz no reducida.
⇓
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 15/25
mificación y acotación Pág. 15
– Si se elige t como el mínimo de loselementos dela fila (columna) i-ésima y se resta t detodos los elementos de esa fila (columna),
la fila resultante es reducida.
– Repitiendo el proceso para filas y columnas,
siempre se puede conseguir que la matrizdedistancias sea reducida.
El problema del viajantede comercio
Reducción de la fila 1, t = 10.
∞ 20 30 10 11
15 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
∞ 10 20 0 1
15 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
∞ 10 17 0 112 ∞ 11 2 0
0 3 ∞ 0 2
15 3 12 ∞ 0
11 0 0 12 ∞
∞ 20 30 10 1115 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
Reducciónde la matriz,L = 25.
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 16/25
mificación y acotación Pág. 16
– Cálculo de la cota inferior para los nodosdistintos de la raíz y de las hojas:
x Sea A la matriz de distancias reducidapara el nodo y .
x Sea x un hijo de y que corresponda aincluir el arco (i, j) en el recorrido y queno sea hoja.
x La matriz B reducida para x , y por tanto
cota(x), se calcula de la siguienteforma:
1. Cambiar todos loselementos de la fila i y de la
columna j de A por ∞.– Esto evita el incluir más arcos quesalgan de i o lleguen a j.
2. Cambiar el elemento ( j,1)de A por ∞
– Esto evita considerar el arco ( j,1).3. B es la matriz que se
obtiene al reducir todas lasfilas y columnas de la matrizresultante exce to a uéllas
El problema del viajantede comercio
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 17/25
resultante exce to a uéllas
mificación y acotación Pág. 17
y Ejemplo:
El problema del viajantede comercio
∞ 10 17 0 1
12 ∞ 11 2 00 3 ∞ 0 2
15 3 12 ∞ 0
11 0 0 12 ∞
∞ 20 30 10 11
15 ∞ 16 4 23 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
Grafo original. Matriz reducida, L = 25.
1
2 543
x 1 = 2
x 1 = 3 x 1 = 4
x 1 = 5
∞ ∞ ∞ ∞ ∞
∞ ∞ 11 2 0
0 ∞ ∞ 0 2
15 ∞ 12 ∞ 0
11 ∞ 0 12 ∞
∞ ∞ ∞ ∞ ∞
1 ∞ ∞ 2 0
∞ 3 ∞ 0 24 3 ∞ ∞ 0
0 0 ∞ 12 ∞
∞ ∞ ∞ ∞ ∞
12 ∞ 11 ∞ 0
0 3 ∞ ∞ 2∞ 3 12 ∞ 0
11 0 0 ∞ ∞
∞ ∞ ∞ ∞ ∞
10 ∞ 9 0 ∞
0 3 ∞ 0 ∞
12 0 9 ∞ ∞
∞ 0 0 12 ∞
c = 25
c= 25 c=25+10 = 35 c=25+17+11 = 53 c=25+1+5 = 31
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 18/25
mificación y acotación Pág. 18
1
2 543
x 1 = 2
x 1 = 3 x 1 = 4
x 1 = 5
UB = ∞
El problema del viajantede comercio
6 7 8
x 2 = 2
x 2 = 3
x 2 = 5
c= 25
c= 25 c= 35 c= 53 c= 31
c= 28
c= 50
c= 36
9 10
11
x 3 = 3
x 3 = 5 c= 32 c= 28
c= 28
x 4 = 3
Es hoja (solución),se actualiza UB = 28.
El siguiente nodo en curso sería el 5, pero cota(5)>UBluego el algoritmo termina y el hamiltoniano mínimoes 1,4,2,5,3,1.
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 19/25
mificación y acotación Pág. 19
y Otras versiones, basadas en otrarepresentación del espacio deestados:
– G=(V , A),x |V |=n, | A|=a
x A={(oi, di)}, oi ∈V, di ∈ V
x D[oi, di], distancia de la arista
– Un hamiltoniano es un conjunto de n arcos.
– Además, para cada vértice i, 0<i<n+1,debe haber en ese conjunto exactamenteun arco de la forma (i, j) y uno de la forma(k ,i).
– Soluciones Factibles: {X=()| ∀i x i ∈{0,1},Σ x i =n, ∀u ∈V ((∃!i ( x i =1 ∧ oi =u) ∧(∃! j ( x j =1 ∧ d j =u)) }
– Función Objetivo: F(X)= Σ x i D[oi, di]
– Arbol de búsqueda= árbol binario:x
Un hijo izquierdo representa la inclusiónde un determinado arco en elhamiltoniano mientras que su hermanoderechorepresenta la exclusión de ese arco.
El problema del viajantede comercio
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 20/25
mificación y acotación Pág. 20
– Si se elige, para empezar, el arco (i, j):x el subárbol izquierdo representa todos
los recorridos que incluyen el arco (i, j),y
x el subárbol derecho los recorridos queno lo incluyen;
x si hay un recorrido óptimo incluido en elsubárbol izquierdo, entonces sólo faltan
por seleccionar n-1 arcos paraencontrarlo,x mientras que si todos están en el
derecho, hay que seleccionar todavía n arcos.
– Ejercicio: pensar en como se calcula la cotade un nodo, dada la cota de su padre
El problema del viajantede comercio
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 21/25
mificación y acotación Pág. 21
– Por ejemplo, con el grafo de antes:
Se llega al nodo 6.
Se han elegido ya tres arcos:
(3,1), (5,3), (1,4).Para los dos restantes, sóloqueda ya una opción:
(4,2) y (2,5).
Así, se obtiene el recorrido:5,3,1,4,2,5.
Con distancia total: 28 (así, UB = 28)
El problema del viajantede comercio
6 7
4 5
2 3
1
∞ 20 30 10 11
15 ∞ 16 4 2
3 5 ∞ 2 4
19 6 18 ∞ 3
16 4 7 16 ∞
incluir (3,1)
excluir (3,1)
incluir (5,3) excluir (5,3)
incluir (1,4) excluir (1,4)
c= 25
c= 25
c= 28
c= 28
c= 36
c= 37
c= 36
c(3)= 36>UB
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 22/25
mificación y acotación Pág. 22
El problema de lamochila 0-1
y Recordar el problema de lamochila…
– Se tienen n objetos fraccionables y una
mochila.– El objeto i tiene peso pi y beneficio bi.
– El objetivo es llenar la mochila, decapacidad C, de manera que se maximice elbeneficio.
– ya vimos una cota que consistía en resolverel problema permitiendo fracciones en los
objetos sobre los que aún no se hadecidido.
maximizar bi x i1≤ i≤n∑
sujeto a pi x i1≤ i≤n∑ ≤ C
con x i ∈ 0,1{ }, bi >0, pi >0, 1≤ i ≤ n
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 23/25
mificación y acotación Pág. 23
y El problema original:
Decisión: encontrar una secuencia de
movimientos que lleven al objetivo
Optimización: encontrar la secuenciade movimientos más corta
Un primer ejemplo:El juego del 15
Samuel Loyd: El juego del 15 o “taken”.
Problema publicado en un periódico de Nueva York
en 1878 y por cuya solución se ofrecieron 1000dólares.
Problema de Lloyd
1 2 3 4
5 7 8
9 10 1112
1314 15
6
El objetivo
1 2 3 4
5 7 8
9 10 1112
13 1415
6?
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 24/25
mificación y acotación Pág. 24
– Configuración: permutación de (1,2,...,16)
– Solución: secuencia de configuraciones quex empiezan en el estado inicial y acaban
en el final.x De cada configuración se puede pasar a
la siguiente.x No hay configuraciones repetidas
1 2 3 4
57
89 10 11
121314 15
6
1 2
3
4
5
7
8
9 10 11
121314 15
6
1 2 3 4
5
7
8
9 10 11
121314 15
6
1 2 3 4
5 7 8
9 10 11
121314 15
6
1 2 3 4
5
7
8
9 10 11
121314 15
6
1 2
3
4
5
7
8
9 10 11
121314 15
6
1 2
3
4
5
7
8
9 10 11
121314 15
6
1 2 3
45
7
8
9 10 11
121314 15
6
1 2 3 4
5
7
8
9 10
11
121314 15
6
1 2 3 4
5 7 8
9 10 11
121314 15
6
1 2 3 4
5 7 8
9 10 11
121314
15
6
1 2 3 4
5 7 8
9 10 11
121314 15
6
1
2
3 4
5
7
8
9 10 11
121314 15
6
1 2 3 4
5
7
8
9
10
11
121314 15
6
1 2 3 4
5
7
8
9 10 11
121314 15
6
1 2
3
4
5
7
8
9 10 11
121314 15
6
1 23
45
7
8
9 10 11
121314 15
6 1 23
45
7
8
9 10 11
121314 15
6
1 2 3
45
7
8
9 10 11
121314 15
6
1 2 3 45
7
8
9 10
11
12
1314 15
61 2 3 45
7
8
9 10
11
121314 15
6
1 2 3 4
5 7
89 10 11
121314 15
6
1 2 3 4
5 7 8
9 10 1112
1314 15
6
↑→ ↓
←
→ ← ↑ ↓ → ↓ ← ↑ ↓ ←
↓ ↓ ← ← ←↓ ↑ ↓
objetiv
o
1
2 3 4 5
6 7 8 9 1
0
1
1
1
2
1
3
1
4
1
5
16
17
1
8
19
2
0
2
1
22
23
Un primer ejemplo:El juego del 15
5/16/2018 Branch and Bound - slidepdf.com
http://slidepdf.com/reader/full/branch-and-bound-55ab55628fee5 25/25
mificación y acotación Pág. 25
y Problema muy difícil parabacktracking
– El árbol de búsqueda es
potencialmente muy profundo (16!niveles), aunque puede habersoluciones muy cerca de la raíz.
y Se puede resolver con branchand bound (aunque haymétodos mejores)
y funciones de prioridad:– numero de fichas mal colocadas (puede
engañar)
– suma, para cada ficha, de la distancia a laposición donde le tocaría estar
– ...
Un primer ejemplo:El juego del 15
Top Related