You are on page 1of 52

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

You might also like