Sei sulla pagina 1di 25

Solucin programas enteros o

Complejidad computacional No existe an un mtodo universalmente poderoso para u e resolver PE


Estrategia de hacer pequeos cambios a una solucin para n o encontrar una solucin mejor no funciona o PE: mltiples ptimos locales que son mucho peores que el u o o ptimo global

El mtodo Branch and Boundpuede resolver un gran e nmero de PE y PEM u Ciertos tipos de problemas pueden resolverse con algoritmos especialistas (ej. redes)

Solucin programas enteros o

Principios: Reducir la discrepancia entre la solucin verdadera y la o relajacin lineal o El PE deber tener un unico propsito claro a o

Relajacin lineal de un PE
5

PL. Z=8.5
4

x2
2

PE. Z=3
1

Max x1+x2 s.a 10x1-8x2 13 2x1-2x2 1 x1,x2 0, enteros

0 0 1 2 3 4 5

x1

7 6 5

z
Max x1+x2 s.a 2x1+2x2 3 2x1-2x2 3 2x1+4x2 19 x1,x2 0, enteros
0 1 2 3 4 5

x2

4 3 2 1 0

x1

Mtodo ramas y l e mites (Branch and Bound)


Para resolver cualquier programa entero (puro o mixto). min x1 + x2 s.a : 2x1 + 3x2 3 2x1 2x2 3 2x1 + 4x2 19 x1 , x2 0, enteros

0. Resolver la relajacin lineal o x1 = 4,167, x2 = 2,667 z = 6,833 1. Escoger una variable con valor fraccional e imponer restricciones extra para forzarla a ser entera
Criterio heur stico. p.e, la variable ms cercana a un valor a entero Si x = N + f , donde 0 < f < 1, x N o x N + 1

Mtodo ramas y l e mites (Branch and Bound)


1. Escoger una variable con valor fraccional e imponer restricciones extra para forzarla a ser entera x2 2 o x2 3

Mtodo ramas y l e mites (Branch and Bound)

2. las soluciones en los nodos 1 y 2 no son enteras. Desarrollar uno de los dos nodos
- De nuevo la seleccin es heur o stica - La heur stica usada puede tener un gran efecto en el tiempo de solucin total del modelo o - Regla simple: desarrollar el nodo con mejor valor objetivo Proceder con el nodo 2

x1=4.167 x2=2.667 z=6.833

0 x22
x1=3.5 x2=2 z=5.5

x23
x1=3.5 x2=3 z=6.5

1 x13 7
Entera

2 x13
x1=3 x2=3.25 z=6.25

x14
x1=3 x2=2 z=5 No 8 factible Terminado

x14
factible 3 Terminado No

acotada

x23
x1=3 x2=3 Entera z=6

x24
x1=1.5 x2=4 z=5.5

6
acotada

Branch and Bound


1. En cada nodo se resuelve la relajacin lineal porque es fcil de o a calcular. 2. Para escoger la variable a ramicar se aplica un mtodo e heur stico. En un PEM, se ramican slo las variables enteras o 3. Para escoger el nodo a desarrollar se aplica heur stica y se sigue la estrategia de solucin. o 4. Cuando se ramica, la variable de ramicacin asume o inmediatamennte el valor de la cota impuesta por la relajacin o lineal 5. Si la relajacin lineal es no acotada, el modelo entero puede o ser no acotado o no factible. Branch and Bound no puede determinarlo. 6. Si la regin factible de la relajacin lineal no es cerrada as el o o modelo sea acotado, no existe garant de que BB converja. a

Branch and Bound


Algoritmo Vainillapara un problema de maximizacin binario o 1. Inicializacin o
a Fijar el l mite inferior LB = o algo ms inteligente LB = 0 a b Resolver la relajacin lineal con la restriccin adicional de que o o las variables binarias estn en [0,1] e Si el resultado es entero, detenerse, PL brinda la solucin o o ptima. Si el resultado no es entero, Z UB = ZLP

2. Ramicacin o
a Escoger un subproblema no terminado (el nodo raiz en la primera iteracin) o b Escoger una variable xi que no fuera entera en la solucin o o ptima del PL del nodo actual. Hacer xi = 0 y xi = 1 c Crear dos subproblemas nuevos, aadiendo la restriccin xi = 0 n o a uno de ellos y xi = 0 al otro.

Branch and Bound


Algoritmo Vainillapara un problema de maximizacin binario o 3 Acotamiento Resolver la relajacin LP de los dos subproblemas y actualizar o LB, UB con base en la solucin o
a Actualizar LB si la solucin al LP del subproblema es entera y o mejor que la LB actual b Actualizar UB si todos los nodos de un mismo nivel del rbol a han sido explorados, en cuyo caso UB es igual al mximo valor a Z del nivel

4 Terminacin o Terminar un nodo si:


El subproblema es no factible El subroblema tiene solucin entera o Zsubproblema Z LB

5 Repetir hasta que todos los nodos se hayan examinado o terminado

Branch and Bound


Y si el problema es de minimizacin? o 1. Inicializar
a Z UB = b Resolver la relajacin de PL. si la solucin es entera, terminar. o o De lo contrario, Z LB = Z LP .

2. Ramicar
a Escoger problema no terminado b Escoger xi no entero xi = 1, xi = 0 c Resolver los dos subproblemas con las restricciones generadas en [b].

3. Acotar. Resolver la relajacin lineal y actualizar UB, LB o


a Actualizar la cota superior si la solucin del subproblema es o menor que la actual b Actualizar la cota inferior cuando todos los nodos se exploren: Z LB = menor valor de Z en el nivel

4. Terminar un ramal si Z Z UB

Branch and Bound

Y si las variables son enteras, no binarias? xi = xi , xi = xi

Mtodos para programacin entera e o

Estrategia: mx f (x) s.t x R a Encuentre x 1 = mxxR1 f (x) y R R1 a Si R1 es una regin convexa, y f (x) es cncava se pueden o o aplicar mtodos como el Simplex para encontrar x 1 e Si x 1 R, x 1 resuelve el P.E Si x 1 R, modicar R1 para que excluya x 1 pero ningn otro / u punto de R. Si conocemos x 0 R , R1 modicado no puede excluir ningn u punto de R tal que f (x) > f (x 0 ). Si se encuentra x R|f (x) > f (x 0 ), reemplazamos x 0 por x.

Formulacin Eciente o

Variables enteras que se presten para ramicar Relajacin lineal ms restringida o a Ejemplo: m z = 2x1 + 7x2 + 2x3 n s.a : x1 + 4x2 + x3 10 4x1 + 2x2 + 2x3 13 x1 + x 2 x 3 0 x1 , x2 , x3 , x4 entero

x1=2.286 x2=1.929 x3=0 z=18.07

0 x21
x1=2.5 x2=1 x3=3.5 z=19

x22
x1=2.25 x2=2 x3=0 z=18.5

2 x12

x13
x1=2 x2=2 x3=0.5 z=19

7
No-factible

8
Entera

x1=3 x2=1 x3=3 z=19

4
Entera

x1=3 x2=2 x3=0 z=20

x30 5
acotada x1=2 x2=2.5 x3=0 z=21.5

x31
x1=1.75 x2=2 x3=1 z=19.5

6
acotada

x1=2.57 x2=1.86 x3=0 z=18.14

0 x21
x1=2.5 x2=1 x3=3.5 z=19

x22
x1=2.5 x2=2 x3=0 z=19

1 x12 3
No-factible

acotada

x13 4
Entera

x1=3 x2=1 x3=3 z=19

4x1+2x2+2x313 2x1+x2+x36.5 2x1+x2+x37

Planos cortantes
Restricciones que cortan parte de la regin factible de la relajacin o o lineal pero no cortan ninguna solucin entera. o Ej. para restricciones tipo pueden generarse: Agregando restricciones en mltiplos adecuados u Dividiendo por factores comunes Redondeando el lado derecho de la restriccin hacia el entero o siguiente () o hacia el entero anterior () En teor siempre es posible reformular un PE de forma que a, sus restricciones denan la envolvente convexa de las soluciones enteras factibles.

Unimodularidad e integralidad

Clase de modelos cuya relajacin lineal produce soluciones o enteras


- Redes de m nimo costo, mximo ujo a - Algoritmos especialistas

Matrices unimodulares
- Todos los determinantes de una matriz unimodular son iguales a 0 1 o - Si A es unimodular y b es entero, la relajacin lineal del o problema entero con restricciones Ax = b tiene una solucin o entera - La matriz A de un problema de red es totalmente unimodular

Regin factible PE
5 4 3

x2

2 1 0 0 1 2 3 4 5

x1

Envolvente convexa
5 4 3

x2

2 1 0 0 1 2 3 4 5

x1

Solucin entera
5 4 3

x2

2 1 0 0 1 2 3 4 5

Max x1+x2 s.a x1+x2 2 x21 x1-x2 1 x13 x1+2x2 9 x24 x10

x1

Algoritmos de planos cortantes

Usar una secuencia de relajaciones lineales del programa entero cada vez ms ajustada a Encontrar una desigualdad vlida que corta la solucin decimal a o En cualquier otra solucin de la relajacin lineal, al menos una o o de las variables no bsicas es positiva. Ya que las variables son a enteras, al menos una debe ser mayor o igual que 1 xj 1
jN

Algoritmos de planos cortantes


Para una variable bsica decimal de la solucin ptima a o o xi +
jN

aij xj = a10

Sea fij la parte decimal de aij fij = aij aij Para cada solucin con xi entera o xi +
jN

(fij + aij )xj = a10 fij xj = entero + f10

jN

fij 0, xj 0, 0 < f10 < 1 fij xj 0 f10


jN

Algoritmos de planos cortantes

Cortes de Chvtal a Cortes de Gomory


Si estos cortes se aplican de forma sistemtica, obtenemos un a algoritmo nito para resolver un PE. Problema: se requiere un nmero extremadamente grande de u cortes para alcanzar la convergencia

Cortes de Gomory incorporados en los solver comerciales


Resolver la relajacin lineal o Agregar cortes como los descritos arriba Resolver la relajacin lineal usando el simplex dual o

Potrebbero piacerti anche