Optimizacin de Sistemas II
Ramificacin y Acotamiento
Conjunto de Soluciones
Un problema de PLE pura,
donde el conjunto
Ax b es acotado, tiene un
conjunto finito o infinito de
soluciones?
Finito por qu?
Al ser un conjunto finito de
soluciones, ser fcil de
resolver?
Estrategia de Solucin
Cmo podramos usar los
conceptos de solucin de PL
para resolver PLE?
Relajacin y Aproximacin
Consideremos dosRelajacin
problemas de
optimizacin:
P1: min {z(x): x S}
P2: min {z(x): x S}
Se dice que P2 es una relajacin de
P1 si S S.
En otras palabras, las soluciones
posibles para x en P2 incluyen las
soluciones de x en P1 y otras
soluciones que no estn incluidas en
P1 .
Relajacin (2)
Relajar es eliminar restricciones (con o sin
penalizacin).
En un PLE se habla de la solucin de PLE
relajada asociada cuando se han eliminado
las restricciones enteras.
El valor ptimo de la solucin relajada es
siempre igual o mejor que el valor ptimo
del problema original
Relajacin (3)
max z =
8x1 + 5x2 x2
sujeto a:
x1 + x 2 6
9x1 + 5x2 45
x1, x2 0
x1, x2, enteros
PLE
(Original)
PL relajado
x1
Relajacin y Optimalidad
Toda solucin factible del problema original,
es tambin una solucin factible del
problema relajado.
Si una solucin ptima del problema relajado
es tambin factible en el problema original,
entonces sta es la solucin ptima al
problema original.
Aproximar? Grficamente
x2
Z=
Z1
ZOOM
7
6,8
6
Z=
2
ZZ=
Z3
3,6 4
Z=
Z0
x1
Solucin ptima relajada: (3,6, 6,8)
Solucin ptima con aproximacin: (4,
7)
Solucin ptima entera: (4, 6)
Aproximar? Grficamente
Tenemos 4
candidatos
Podramos
reducir el anlisis
a los puntos
enteros
adyacentes de la
solucin del PL?
Cuntos
puntos
adyacentes
habran si
hubieran 3
variables?...
y 4?
Por qu no aproximar?
Cul es la solucin correcta?
Solucin entera: (4, 6)
Aproximar la solucin relajada nos puede llevar a
un superptimo (mejor que el ptimo pero no
factible)
Por qu no aproximar?
El analizar los puntos adyacentes candidatos
puede ser eficaz pero no eficiente.
La cantidad de estos puntos crece en forma
exponencial en funcin de la cantidad de variables
a una razn de 2n
Enumeracin
Enumeracin
Problema con 100
variables binarias:
Posibilidades: 2 x 2 x
x 2 = 2100 ~ 1030
K-computer realiza 1016
operaciones por
segundo
1 ao < 108
El problema no es la
enumeracin, el
problema es la
capacidad
computacional y la
bsqueda de
algoritmos ms
Cmo resolvemos PLE?
Enumeracin Exhaustiva
Mtodo Grfico
Heursticas/Metaheursticas
Algoritmos Exactos
Enumeracin Exhaustiva
i.
Cantidad de puntos factibles es en general finito
(PE pura + regin acotada)
n variables 2n soluciones. Cada vez que se
aumenta n en 1 el nmero de soluciones se
duplica (crecimiento exponencial)
La enumeracin exhaustiva es muy demandante
en tiempo. Aunque los computadores progresen
rpidamente, la enumeracin exhaustiva puede
ser eterna:
ii.
iii.
Recuerden el K-Computer que realiza (~1016) de
operaciones aritmticas por segundo. Un problema con
100 variables requerir 2100 clculos. Tenemos entonces
que tomar:
2100/1016 = 1,27 x 1014 segundos
4 mil siglos
i.
Mtodo Grfico
Podemos graficar fcilmente
en 2 dimensiones
ii. Podemos graficar con
dificultad en 3 dimensiones
iii. No podemos graficar en ms
de 3 dimensiones
iv. El mtodo grfico es muy
limitado y puede fcilmente
conducirnos a error.
Vecino
ms cercano (Nearest
Heurstica/Metaheursticas
Neighbour)
Insercin ms barata
(Cheapest-Insertion)
Algoritmo Voraz (Greedy
Algorithm)
Algoritmo Gentico (Genetic
Algorithm)
Recocido Simulado
(Simmulated Annealing)
Colonia de Hormigas (Ant
Colony)
Algoritmos Exactos
Algoritmo ramificacin y
acotamiento (branch-and
-bound)
Algoritmo de plano cortante
(cutting plane / branch-andcut)
Algoritmo de generacin de
columnas (column
generation / branch-andprice)
Algoritmo Exacto Genrico
1. Aumente el espacio de la solucin del PLE,
reemplazando cualquier variable binaria y con la
gama continua y [0, 1] y eliminando las
restricciones enteras en todas las variables enteras.
El resultado de la reduccin es un PL regular.
2. Resuelva el PL e identifique su solucin ptima
continua.
3. Empezando desde el punto ptimo continuo, aada
restricciones especiales que modifiquen
iterativamente el espacio de solucin del PL de
forma que al final del proceso, el punto extremo
ptimo satisfaga los requerimientos enteros.
El algoritmo usa las bondades de la PL, en
particular el excelente rendimiento del mtodo
Ramificacin y Acotamiento
max z = 5x1 + 4x2
sujeto a:
x1 + x2 5
10x1 + 6x2 45
x1, x2 0 y entero
Veamos el espacio de solucin.
Ramificacin y Acotamiento (2)
x2
8
7
6
5
ptimo
relajado
x1 = 3,75
x2 = 1,25
z = 23,75
Z = Z0
PL0
3
2
1
x1
La solucin ptima no satisface las restricciones del
problema original. Debemos iterar!
Ramificacin y Acotamiento (3)
Elegimos arbitrariamente alguna variable que en el PLE est definida
entera y que en la solucin ptima del PL0 no sea entera
x1
Eliminamos la parte de la regin factible que ya no pueda contener la
solucin ptima. Para esto agregamos nuevas restricciones.
x1 3
x1 4
Con esto reemplazamos el PL0 por dos nuevos problemas, PL1 y PL2
Espacio PL1 = espacio PL0 + (x1 3)
Espacio PL2 = espacio PL0 + (x1 4)
Ramificacin y Acotamiento (4)
x2
6
x1 4
x1 3
5
PL1
PL2
0
x1
Esta nueva figura tiene los mismos puntos enteros
factibles que la figura original
Ramificacin y Acotamiento (5)
Ahora tenemos dos nuevos
problemas
PL1
PL2
Debemos nuevamente
resolver estos problemas y
estudiar su solucin
Podemos usar SIMPLEX en
cada PL
Ramificacin y Acotamiento (6)
PL0
x1 =3,75; x2 = 1,25; z =
23,75
x1 3
PL1
Ramificacin y Acotamiento (7)
x2
6
x1 4
x1 3
5
ptimo PL1
x1 = 3
x2 = 2
z = 23
PL1
x1
Ramificacin y Acotamiento (8)
1
PL0
x1 =3,75, x2 = 1,25, z =
23,75
x1 3
PL1
x1 =3, x2 = 2, z =
23 (ptimo)
Cota inferior
x1 4
PL2
3
Ramificamos nuevamente PL1?
Debemos resolver PL2?
Ramificacin y Acotamiento (9)
La solucin de PL1 es entera por lo
tanto esa rama se sondea.
Esto es, se detiene la ramificacin por
esta rama. No es posible obtener una
solucin mejor que la obtenida si
seguimos ramificando PL1.
La solucin de PL1 es entonces una
cota inferior sobre el valor objetivo.
Debemos analizar PL2. Es posible al
ramificar PL2 obtener una mejor
solucin que la actual cota inferior?
Ramificacin y Acotamiento (10)
El algoritmo est terminado
Todas las ramas se han sondeado
Podemos ramificar x2 en vez de x1?
Podemos resolver PL2 antes de PL1?
Veamos qu pasa si resolvemos
primero PL2
Ramificacin y Acotamiento (11)
PL0
x1 =3,75; x2 = 1,25; z =
23,75
1
x1 3
x1 4
PL1
7
PL2
2
x1 =3; x2 = 2; z =
23 (ptimo)
Cota inferior
x1 = 4; x2 = 0,83; z = 23,33
x2 0
x2 1
PL3
PL4
x1 = 4,5; x2 = 0; z =
22,5
x1 4
x1 5
PL6
6
x1 = 4; x2 = 0; z = 20
Cota inferior
PL5
5
Sin solucin
Sin solucin
Ramificacin y Acotamiento (12)
Claramente elegir ramificar
PL2 fue una mala decisin.
Hace la bsqueda del ptimo
un proceso ms ineficiente
(mismo resultado con ms
recursos)
Existen tcnicas heursticas
que ayudan a hacer una
buena eleccin
Ramificacin y Acotamiento: Conceptos
Sondear/Podar
Detener anlisis en la rama. Existen tres tipos de sondeos:
por cota, por factibilidad y por infactibilidad.
Cotas (superior e inferior)
Limitan el valor de la funcin objetivo del problema original.
Esto es, la solucin del problema original siempre ser igual
o superior a la cota inferior e igual o inferior a la cota
superior. Cuando la cota superior e inferior son iguales, se ha
encontrado la solucin ptima del problema.
Ramificacin y Acotamiento: Conceptos (2)
Solucin incumbente
Mejor solucin factible encontrada (cota inferior para un
problema de maximizacin y cota superior para un problema
de minimizacin)
Gap
Diferencia absoluta entre las cotas. Representa el mximo
error esperado en trmino absolutos.
Gap relativo
Diferencia relativa entre las cotas con respecto a la solucin
incumbente. Representa el mximo error esperado relativo.
Ramificacin y Acotamiento: Algoritmo
PROBLEMA DE MAXIMIZACIN:
Definir z = - (cota inferior inicial), i = 0
Paso 1. Seleccione el siguiente problema a ser examinado (PLi).
Resuelva PLi y trate de sondearlo utilizando una de tres
condiciones
a)
El valor ptimo z de PLi no puede producir un mejor valor objetivo
que la cota inferior actual.
b) PLi produce un solucin entera factible.
c) PLi no tiene solucin factible.
Dos casos:
i. Si se sondea PLi, actualice la cota inferior si se encuentra una
mejor solucin del PLE (solucin entera). Si se han sondeado todos
los subproblemas, detngase; el PLE ptimo est asociado con la
cota inferior actual, si la hay. De otra manera, haga i = i + 1 y
repita Paso 1.
ii. No se sondea PLi, vaya al Paso 2 para efectuar ramificacin.
Paso 2. Seleccione una de las variables enteras x j, cuyo valor
ptimo xj* en la solucin PLi no es un entero. Elimine la regin
[xj*] < xj* < [xj*] + 1 (donde [v] define al entero ms grande
v) creando dos subproblemas de PL que corresponden al
espacio factible definido por PLi ms:
Ramificacin y Acotamiento: Binaria
River Power tiene 4 generadores
disponibles para produccin y quiere
decidir cules pone en marcha para
alcanzar un nivel de produccin de
700 megawatt que es el punto ms
alto de demanda.
La siguiente tabla muestra losGenerador
costos
1
2
de operar cada generador
(en
miles 3
Costo
de Operacin por hora)
7
12
5
de dlares
y su produccin
Potencia
de salida
300
600
500
(en megawatts).
4
14
1600
Ramificacin y Acotamiento: Binaria (2)
Modelo de PB:
xj = 1, si el generador j entra en
operacin
0, e.o.c.
min 7x1 + 12x2 + 5x3 + 14x4
sujeto a:
300x1 + 600x2 + 500x3 +
1600x4 700
x1, x2, x3, x4 {0, 1}
PL0: z = 6,125
(x1, x2, x3, x4) = (0, 0, 0,
0,4375)
x4 = 1
x4 = 0
PL1: z = 14
PL2: z = 9
(x1, x2, x3, x4) = (0, 0, 0, 1)
(x1, x2, x3, x4) = (0, 1/3, 1, 0)
x2 = 1
x3 = 1
x2 = 0
PL3: z = 13
PL6: z = 9,7
(x1, x2, x3, x4) = (0, 1, 0,2, 0)
(x1, x2, x3, x4) = (2/3, 0, 1, 0)
x3 = 0
PL4: z = 17
PL5: z = 14,3
(x1, x2, x3, x4) = (0, 1, 1, 0)
(x1, x2, x3, x4) = (1/3, 1, 0, 0)
x1 = 0
x1 = 1
PL10: INFACTIBLE
PL7: z = 11
(x1, x2, x3, x4) = (1, 0, 0,8, 0)
x3 = 1
PL8: z = 12
(x1, x2, x3, x4) = (1, 0, 1, 0)
x3 = 0
PL9: INFACTIBLE
Ramificacin y Acotamiento: NASA
max 200x1 + 3x2 + 20x3 + 50x4 + 70x5 + 20x6 + 5x7 + 10x8 + 200x9 + 150x10+ 18x11
+ 8x12 + 300x13 + 185x14
sujeto a:
6x1 + 2x2 + 3x3 + 1x4 + 4x5 10
3x2 + 5x3 + 5x5 + 8x7 + 5x9 + 8x10 + 7x12 + 1x13 + 4x14 12
8x5 + 1x6 + 4x10 + 2x11 + 4x13 + 5x14 14
8x6 + 5x8 + 7x11 + 1x13 + 3x14 14
10x4 + 4x6 + 1x13 + 3x14 14
x4 + x5 1
x8 + x11 1
x9 + x14 1
x11 x2
x4 x3
x5 x3
x6 x3
x7 x3
xj = {0,1} j = 1,., 14
PL0: z = 826,25 x 10 = 0,875
Redondeo: z = 695 (nueva cota
inferior)
x10 = 1
x10 = 0
PL1: z = 798,75 x14 = 0,75
PL3: z = 793,171 x 3 = 0,78
Redondeo: z = 660
Redondeo: z = 510
x14 = 1
x3 = 1
x14 = 0
PL2: z =
545
x9 = 1
PL9: INFACTIBLE
x3 = 0
PL8: z = 780 x9 =
0,6
PL4: z = 791,25 x9 =
0,25
Redondeo: z =
660
x9 = 0
Redondeo: z = 540
PL10: z = 713,5
x9 = 0
x9 = 1
PL14: z = 714
PL5: z = 787 x4 = 0,60
PL11: z =
704
x4 = 1
Redondeo: z = 725 (nueva cota
inferior)
x4 = 0
PL6: z = 770,5 x2 = 0,5
PL12: z = 757 x5 =
0,4
Redondeo: z = 755 (nueva cota
inferior)
x2 = 1
PL7: z = 700,167
Redondeo: z = 725
x2 = 0
x5 = 1
PL15: z = 766,905 x7 = 0,09
PL13: z = 732
Redondeo: z = 765 (nueva cota
inferior)
x7 = 1
PL18: INFACTIBLE
x7 = 0
PL16: z = 766,6 x12 =
0,2
Redondeo: z = 765
x12 = 1
PL19: z = 174,667
x5 = 0
x12 = 0
PL17: z = 765
Ramificacin y Acotamiento: NASA (3)
El tener disponible soluciones factibles no
necesariamente ptimas hace ms eficiente la
operacin de RyA.
Esto porque el tener una solucin factible,
permite terminar la exploracin de ramas que sin
tener esa solucin habran sido exploradas.
El redondeo, que usado con cuidado permite
encontrar soluciones factibles a partir de una
solucin de la relajacin, es una tcnica que
facilita lo anterior.
Resultado
del PL
Solucin del PL
Valor
redondeado
Accin
826,25
(1, 0, 0, 0, 0, 0, 0, 1, 0, 0,875, 0, 0, 1, 1)
695
Primera cota: (1, 0, 0, 0, 0, 0, 0, 1, 0, 0 , 0, 0, 1,
1)
Ramificar en x10
798,75
(1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0,75)
660
Ramificar en x14
545
793,171
(1, 0, 0,78 , 0,463, 0,537, 0,780, 0, 1, 0,415, 0, 0, 0, 1,
0,585)
510
Ramificar en x3
791,250
(1, 0, 1, 0,65, 0,35, 1, 0, 0,55, 0,25, 0, 0, 1, 1, 0,75)
540
Ramificar en x9
787
(1, 0, 1, 0,6, 0,4, 1, 0, 0,4, 0, 0, 0, 0, 1, 1)
725
Nueva cota: (1, 0, 1, 0, 0, 1, 0, 0, 0, 0 , 0, 0, 1,
1)
Ramificar en x4
770,5
(1, 0,5, 1, 1, 0, 0, 0, 0,5, 0, 0, 0,5, 0, 1, 1)
755
Nueva cota: (1, 0, 1, 1, 0, 0, 0, 0, 0, 0 , 0, 0, 1,
1)
Ramificar en x2
700,167
780
Infactible
10
713,5
11
(1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1)
(0,833, 1, 1, 1, 0,188, 0, 0, 0, 0, 1, 0, 1, 0,750)
(1, 0, 0, 0, 0, 0, 0, 1, 0,6, 1, 0, 0, 1, 0)
--
-660
Terminar por cota
Terminar por cota
Ramificar en x9
--
--
Terminar por infactibilidad
(1, 1, 0, 0, 0, 0, 0, 0, 0,5, 0, 1, 0, 1, 0,5)
--
Terminar por cota
704
(0,5, 0, 1, 0,8, 0,2, 1, 0, 1, 1, 0, 0, 0, 1, 0)
--
Terminar por cota
12
757
(1, 0, 1, 0, 0,4, 1, 0, 0,4, 0, 0, 0, 0, 1, 1)
13
732
(1, 0,462, 1, 0, 0, 0,846, 0, 0,077, 0, 0, 0, 0,462, 0, 1, 1)
--
Terminar por cota
14
714
(1, 0, 0,6, 0,6, 0, 0,6, 0, 0, 1, 0, 1, 0, 0, 1,0)
--
Terminar por cota
15
766,909
16
766,6
17
765
18
19
725
Ramificar en x5
(1, 0, 1, 1, 0, 0, 0,091, 1, 0, 0, 0, 0,182, 1, 1)
765
Nueva cota: (1, 0, 1, 1, 0, 0, 0, 1, 0, 0 , 0, 0, 1,
1)
Ramificar en x7
(1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0,2, 1, 1)
765
Ramificar en x12
(1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1)
--
Terminar por cota
Infactible
--
--
Terminar por infactibilidad
174,667
(0,33, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0)
--
Terminar por cota
Ramificacin y Acotamiento: NASA (5)
Luego del nodo
Valor cota
inferior
Mejor nodo
activo
Luego del
nodo
Valor cota
inferior
Mejor nodo
activo
695
826,25
10
755
791,25
695
826,25
11
755
780
695
826,25
12
755
780
695
798,75
13
755
780
695
798,75
14
755
770,5
725
798,75
15
765
766,909
755
798,75
16
765
766,909
755
798,75
17
765
766,909
755
793,171
18
765
765
755
793,171
Como se puede ver en esta secuencia de soluciones, ya en la sptima iteracin se
obtuvo una solucin muy cercana al ptimo (755). Todo el esfuerzo posterior,
doce iteraciones, produjo un aumento muy marginal en mejorar la funcin
objetivo.
Tendr sentido hacer este esfuerzo computacional?
Ramificacin y Acotamiento: NASA (6)
Y si no tenemos el tiempo para
explorar todo el rbol?
Podemos detenernos antes? Cul
es el costo?
Supongamos que detenemos la
bsqueda en el nodo 6.
PL0: z = 826,25 x 10 = 0,875
Redondeo: z = 695 (nueva cota
inferior)
x10 = 1
x10 = 0
PL1: z = 798,75 x14 = 0,75
PL3: z = 793,171 x 3 = 0,78
Redondeo: z = 660
Redondeo: z = 510
x14 = 1
x3 = 1
x14 = 0
x3 = 0
PL4: z = 791,25 x9 =
0,25
PL2: z =
545
Redondeo: z = 540
x9 = 0
x9 = 1
PL5: z = 787 x4 = 0,60
x4 = 1
PL6: z = 770,5 x
Cul es la solucin encontrada?
z = 755
Redondeo: z = 725 (nueva cota
inferior)
x4 = 0
= 0,5
Redondeo: z = 755 (nueva cota
inferior)
Cul es la mejor solucin terica alcanzable con la informacin
actual?
z = 798,750
Por lo tanto el mximo error esperado (GAP) es:
GAP = (798,75 755) / 755 = 5,8%
Es buena decisin parar en el nodo 6?
Ramificacin y Acotamiento: Comentarios
La tcnica de parada temprana permite encontrar
buenas soluciones o soluciones heursticas.
Si en una iteracin ms de una variable se puede
ramificar, seleccione aquella ms prxima a un
entero.
Existen distintas estrategias de exploracin, entre las
que estn:
Profundidad primero: Se exploran las ramas que hayan
agregado ms restricciones, es decir las ms profundas del
rbol (sta es la que se aplic en el ejercicio de los
generadores).
Mejor primero: Se exploran las ramas que ofrezcan la mejor
solucin activa.
Profundidad y mejor: Luego de una ramificacin, se explora
Optimizacin de Sistemas II
Ramificacin y Acotamiento
ANEXOS
Solucin Grfica de PLs en Lmina:
Ramificacin y Acotamiento (11)
x2
PL2
x1 4
5
x1
x2
PL3
x1 4
5
2
x2 1
1
x1
x2
PL4
x1 4
5
1
x2 0
0
x1
x2
PL5
x1 4
5
x1 5
4
1
x2 0
0
x1
x2
PL6
x1 4
x1 4
1
x2 0
0
x1
x2
PL1
x1 3
5
x1