programaci on entera · introducci on relajaci on lineal m etodos de plano cortante cortes de...
TRANSCRIPT
![Page 1: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/1.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Programacion Entera
Nelson Devia C.
IN3701 - Modelamiento y OptimizacionDepartamento de Ingenierıa Industrial
Universidad de Chile
2011Basado en Bertsimas, D., Tsitsiklis, J. (1997)
“Introduction to Linear Optimization”Capıtulos 10 y 11
Nelson Devia C. Programacion Entera
![Page 2: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/2.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Contenidos
1 Introduccion
2 Relajacion Lineal
3 Metodos de Plano Cortante
4 Cortes de Gomory
5 Algoritmo Branch & Bounds
Nelson Devia C. Programacion Entera
![Page 3: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/3.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Introduccion
Los problemas de programacion lineal entera (IP1) son equivalentes a losproblemas de programacion lineal (LP2), excepto que algunas de lasvariables se restringen a tomar solo valores enteros.
En general, se tiene el siguiente problema de programacionmixta(MIP3):
(MIP) mın z = c ′x + d ′y
Ax + By = b
y ≥ 0
x ∈ Zn+
Si no hay variables continuas, entonces se tiene un problema deprogramacion entera:
(IP) mın z = c ′x
Ax = b
x ∈ Zn+
1Integer Programming
2Linear Programming
3Mixed Integer Programming
Nelson Devia C. Programacion Entera
![Page 4: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/4.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Introduccion
Las variables binarias son aquellas que solo pueden tomar los valores 0o 1.
Claramente, las variables binarias tambien son enteras, ya que {0, 1} ⊂ ZSi todas las variables son binarias se tiene un problema de programacionentera binaria:
mın z = c ′x
Ax = b
x ∈ {0, 1}n
El caso mas general es cuando se tienen todo tipo de variables:mın z = c ′x + d ′y + e′z
Ax + By + Cz = b
x ≥ 0
y ∈ Zn+
z ∈ {0, 1}m
Es importante destacar que para que un problema sea entero lasvariables deben ser enteras, no ası el valor de la funcion objetivo.
Nelson Devia C. Programacion Entera
![Page 5: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/5.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Introduccion
Los problemas enteros y mixtos son mas difıciles de resolver que los problemaslineales, por varias razones:
No se tiene una region factible.
El conjunto S de soluciones factibles es no convexo.
El optimo del problema entero no se encuentra necesariamente en un“vertice” de S .
Ejemplo de Problema Entero en R2:
max x1
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1, x2 ∈ Z+
Nelson Devia C. Programacion Entera
![Page 6: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/6.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Introduccion
Los problemas enteros y mixtos son mas difıciles de resolver que los problemaslineales, por varias razones:
No se tiene una region factible.
El conjunto S de soluciones factibles es no convexo.
El optimo del problema entero no se encuentra necesariamente en un“vertice” de S .
Ejemplo de Problema Mixto en R2:
max x1
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1 ≥ 0
x2 ∈ Z+
Nelson Devia C. Programacion Entera
![Page 7: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/7.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Relajacion Lineal
La relajacion lineal de un problema entero (o mixto) corresponde al mismoproblema, pero en el que se les permite a todas las variables ser continuas.Ejemplo:
(P) max z = x1
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1, x2 ∈ Z+
⇒Relajacion
Lineal
(PR) max z = x1
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1, x2 ≥ 0
Nelson Devia C. Programacion Entera
![Page 8: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/8.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Relajacion Lineal
En toda relajacion, se tiene que el conjunto de soluciones factibles es masgrande que el del problema original.
Si llamamos SP a la region factible del problema entero y SPR a la delproblema relajado, siempre se tiene que:
SP ⊆ SPR
Por esta razon, el optimo del problema relajado siempre sera mejor oigual al optimo del problema entero. En el ejemplo, como se trataba deun problema de maximizacion:
z∗PR ≥ z∗P
Concretamente: z∗PR = 3,5, mientras que z∗P = 3.
Notar que la solucion optima de (PR), x∗PR =(3, 5 0,5
)es infactible en
el problema (P), pues no es entera.
En general, el optimo del problema relajado (z∗PR) sirve como una cotapara el problema original.
Nelson Devia C. Programacion Entera
![Page 9: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/9.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Metodos de Plano Cortante
Como no existen algoritmos eficientes para resolver problemas enteros, seplantean metodos que buscan el optimo resolviendo una serie de problemaslineales.Ejemplo: Consideremos el problema (P) y su relajacion (PR):
(P) mın c ′x
Ax = b
x ∈ Z+
(PR) mın c ′x
Ax = b
x ≥ 0Un algoritmo de plano cortante generico es el siguiente:
1. Resolver la relajacion lineal (PR). Sea x∗ la solucion optima.
2. Si x∗ ∈ Z+ terminar, x∗ es el optimo de (P).
3. Si no, agregar una restriccion a (PR), tal que sea satisfecha por todasolucion entera de (P), pero no por x∗. Volver al paso 1.
Nota: La forma en que se eligen estas restricciones determina la eficiencia del
algoritmo.
Nelson Devia C. Programacion Entera
![Page 10: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/10.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Metodos de Plano Cortante
Ejemplo: (P) max z = 3x1 − x2
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1, x2 ∈ Z+
(PR) max z = 3x1 − x2
x1 + x2 ≤ 4
x1 − x2 ≤ 3
x1, x2 ≥ 0
⇒Plano
Cortante
(PR1) max z = 3x1 − x2
x1 + x2 ≤ 4
x1 − x2 ≤ 3
7x1 − x2 ≤ 21
x1, x2 ≥ 0
Nelson Devia C. Programacion Entera
![Page 11: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/11.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Uno de los primeros algoritmos para problemas enteros lo propuso Gomory(1958), usando informacion que entrega Simplex:
Sea (PR) un problema lineal en forma estandar que representa larelajacion de un problema entero:
(PR) mın z = c ′x
Ax = b
x ≥ 0
De Simplex sabemos que, dada una base AB , se tiene que:
xB + A−1B ANxN = A−1
B b
xB + ANxN = b
Sea aij = (Aj)i y supongamos que bi /∈ Z. Se tiene que:
xi +∑j /∈B
aijxj = bi
Nelson Devia C. Programacion Entera
![Page 12: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/12.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Denotamos bpc a la parte entera inferior de p.
Como se tiene que xj ≥ 0 ∀j , se tiene:
xi +∑j /∈B
baijcxj ≤ xi +∑j /∈B
aijxj = bi
Como los xj deben ser tambien enteros, el lado izquierdo de ladesigualdad es entero, por lo que:
xi +∑j/∈B
baijcxj ≤ bbic
Notar que esta desigualdad la satisfacen todas las soluciones enterasfactibles en (PR), pero no por el optimo x∗, ya que x∗i = bi /∈ Z yx∗j = 0 ∀j /∈ B.
Nelson Devia C. Programacion Entera
![Page 13: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/13.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Ejemplo:
mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1, x2 ∈ Z+
⇒Forma
Estandar
(P) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x1, x2, x3, x4 ∈ Z+
Nelson Devia C. Programacion Entera
![Page 14: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/14.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Ejemplo: El problema relajado es el siguiente:
(PR) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x1, x2, x3, x4 ≥ 0
El optimo de este problema esta dado por la base: xB = {x1, x2} yxN = {x3, x4}, donde:
AB =
(−4 61 1
)AN =
(1 00 1
)b =
(94
)A−1
B =
(−110
610
110
410
)AN =
(−110
610
110
410
)b =
(15102510
)
Nelson Devia C. Programacion Entera
![Page 15: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/15.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Ejemplo:
(PR) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x1, x2, x3, x4 ≥ 0
Luego, x∗B + ANx∗N = b implica que:(
x∗1x∗2
)+
(−110
610
110
410
)·(x∗3x∗4
)=
(15102510
)Con esto se tiene que:
x∗1 +−1
10x∗3 +
6
10x∗4 =
15
10
x∗2 +1
10x∗3 +
4
10x∗4 =
25
10Nelson Devia C. Programacion Entera
![Page 16: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/16.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Ejemplo:
(PR) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x1, x2, x3, x4 ≥ 0
Notar que se trata de las restricciones activas en el optimo de (PR)
Eligiendo cualquiera de las ecuaciones con lado derecho no entero, se tiene uncorte de Gomory:
x∗1 +
⌊−1
10
⌋x∗3 +
⌊6
10
⌋x∗4 ≤
⌊15
10
⌋⇒ x∗1 + (−1) · x∗3 + 0 · x∗4 ≤ 1 ⇒ x∗1 − x∗3 ≤ 1
x∗2 +
⌊1
10
⌋x∗3 +
⌊4
10
⌋x∗4 ≤
⌊25
10
⌋⇒ x∗2 + 0 · x∗3 + 0 · x∗4 ≤ 2 ⇒ x∗2 ≤ 2
Nelson Devia C. Programacion Entera
![Page 17: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/17.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Si se elige la primera en el ejemplo, se tiene:
(PR1) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x1 − x3 + x5 = 1
x1, x2, x3, x4, x5 ≥ 0
Notar que en la region factible de (PR1) se “corto” la solucion optima de(PR) sin eliminar ninguna de sus soluciones enteras factibles.
x∗PR =(
1510
2510
0 0 0)
no satisface la nueva restriccion.
Nelson Devia C. Programacion Entera
![Page 18: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/18.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Si se elige la segunda en el ejemplo, se tiene:
(P1) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x2 + x5 = 2
x1, x2, x3, x4, x5 ≥ 0
Notar que en la region factible de (PR1) se “corto” la solucion optima de(PR) sin eliminar ninguna de sus soluciones enteras factibles.
x∗PR =(
1510
2510
0 0 0)
no satisface la nueva restriccion.
El optimo de este nuevo problema es x∗PR1=(
34
2 0 54
0)
Nelson Devia C. Programacion Entera
![Page 19: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/19.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
(PR1) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x2 + x5 = 2
x1, x2, x3, x4, x5 ≥ 0
Del mismo modo que en el caso anterior, se tiene que una de lasrestricciones activas en el optimo de (PR1) es:
x∗1 −1
4· x∗3 +
6
4· x∗5 =
3
4Luego:
x∗1 −⌊
1
4
⌋x∗3 +
⌊6
4
⌋x∗5 ≤
⌊3
4
⌋⇒ x∗1 + (−1)x∗3 + 1x∗5 ≤ 0 ⇒ x∗1 − x∗3 + x∗5 ≤ 0
Reemplazando x∗3 y x∗5 con las demas restricciones, se tiene que:
−3x∗1 + 5x∗2 ≤ 7
Nelson Devia C. Programacion Entera
![Page 20: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/20.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Cortes de Gomory
Agregando esta nueva restriccion a (PR1) se tiene el problema (PR2):
(PR2) mın z = x1 − 2x2
−4x1 + 6x2 + x3 = 9
x1 + x2 + x4 = 4
x2 + x5 = 2
−3x1 + 5x2 + x6 = 7
x1, x2, x3, x4, x5, x6 ≥ 0
El optimo de este problema se alcanza para:
x∗PR2=(1 2 1 1 0 0
)∈ Z6
Como la solucion de este problema es entera, tenemos una solucionoptima del problema original (P).
Nelson Devia C. Programacion Entera
![Page 21: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/21.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
El algoritmo Branch & Bounds (Ramificacion y Acotamiento) se basa enla division o ramificacion de la relajacion lineal del problema entero, conel objetivo de encontrar cotas al valor optimo.
Consideremos el problema (P) y su relajacion (PR):
(P) mın zP = c ′x
Ax = b
x ∈ Z+
(PR) mın zPR = c ′x
Ax = b
x ≥ 0
Una cota inferior al optimo del problema entero (z∗P) es el optimo de surelajacion lineal (z∗PR). (Cota superior si (P) fuera de maximizacion)
z∗P ≥ z∗PR
Una cota superior al optimo del problema entero (z∗P) es el valor z decualquier solucion factible en (P). (Cota inferior si (P) fuera demaximizacion)
z∗P ≤ z
La mejor solucion factible Z encontrada hasta el momento se conocecomo incumbente.
Nelson Devia C. Programacion Entera
![Page 22: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/22.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Un algoritmo de ramificacion y acotamiento generico es el siguiente:Inicializacion:Incumbente: Z = +∞Problema activo: Pi = PR
1. Elegir problema activo Pi aun sin resolver. Si no hay, terminar: el optimodel problema entero es el incumbente Z .
2. Resolver el problema activo (Pi ).
3. Si Pi es infactible, volver a 1.
4. Sea x∗ la solucion optima de (Pi ) y cx∗ su valor optimo. Si cx∗ > Z ,volver a 1.
5. Si x∗ ∈ Z+ actualizar el incumbente Z = cx∗ y volver a 1.
6. Si no, elegir x∗i /∈ Z+. Activar 2 nuevos problemas, agregando una de las
siguientes restricciones a cada uno:
a. (PR1) = (PR) ∪ {xi ≤ bx∗i c}b. (PR2) = (PR) ∪ {xi ≥ dx∗i e}
Volver a 1.
Nelson Devia C. Programacion Entera
![Page 23: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/23.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
En otras palabras, en cada iteracion en la que se llega a una solucion no entera,se generan 2 cortes que eliminan el intervalo no entero en el que se encontrabaalguna de las variables.Notar que la ramificacion de B&B tiene 3 criterios de detencion:
1. Se llega a un problema infactible.
2. Se llega a una solucion entera.
3. El valor optimo encontrado es peor que el incumbente.
Ejemplo:
(P) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1, x2 ∈ Z+
Nelson Devia C. Programacion Entera
![Page 24: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/24.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos la relajacionlineal de (P):
(P0) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1, x2 ≥ 0
Se obtiene que:
x∗P0=
(1,5 2,5
)zP0 = −3,5
Elegimos una variable noentera para ramificar: x1
Nelson Devia C. Programacion Entera
![Page 25: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/25.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos la relajacionlineal de (P):
(P0) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1, x2 ≥ 0
Se obtiene que:
x∗P0=
(1,5 2,5
)zP0 = −3,5
Elegimos una variable noentera para ramificar: x1
Nelson Devia C. Programacion Entera
![Page 26: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/26.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P1):
(P1) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P1=
(1 2,16
)zP1 = −3.3
Elegimos una variable noentera para ramificar: x2
Nelson Devia C. Programacion Entera
![Page 27: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/27.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P1):
(P1) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P1=
(1 2,16
)zP1 = −3.3
Elegimos una variable noentera para ramificar: x2
Nelson Devia C. Programacion Entera
![Page 28: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/28.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P3):
(P3) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1, x2 ≥ 0
Se obtiene que:
x∗P3=
(0,75 2
)zP3 = −3,25
Elegimos una variable noentera para ramificar: x1
Nelson Devia C. Programacion Entera
![Page 29: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/29.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P3):
(P3) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1, x2 ≥ 0
Se obtiene que:
x∗P3=
(0,75 2
)zP3 = −3,25
Elegimos una variable noentera para ramificar: x1
Nelson Devia C. Programacion Entera
![Page 30: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/30.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P5):
(P5) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x1, x2 ≥ 0
Se obtiene que:
x∗P5=
(0 1,5
)zP5 = −3
Elegimos una variable noentera para ramificar: x2
Nelson Devia C. Programacion Entera
![Page 31: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/31.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P5):
(P5) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x1, x2 ≥ 0
Se obtiene que:
x∗P5=
(0 1,5
)zP5 = −3
Elegimos una variable noentera para ramificar: x2
Nelson Devia C. Programacion Entera
![Page 32: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/32.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)Resolvemos (P7):
(P7) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x2 ≤ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P7=
(0 1
)zP7 = −2
Como se tiene quex∗P7∈ Z2
+ se detiene laramificacion y se actualizael incumbente Z = −2.
Nelson Devia C. Programacion Entera
![Page 33: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/33.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)Resolvemos (P7):
(P7) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x2 ≤ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P7=
(0 1
)zP7 = −2
Como se tiene quex∗P7∈ Z2
+ se detiene laramificacion y se actualizael incumbente Z = −2.
Nelson Devia C. Programacion Entera
![Page 34: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/34.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P8):
(P8) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x2 ≥ 2
x1, x2 ≥ 0
Se obtiene un problemainfactible, por lo que sedetiene la ramificacion.
Nelson Devia C. Programacion Entera
![Page 35: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/35.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P8):
(P8) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≤ 0
x2 ≥ 2
x1, x2 ≥ 0
Se obtiene un problemainfactible, por lo que sedetiene la ramificacion.
Nelson Devia C. Programacion Entera
![Page 36: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/36.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)Resolvemos (P6):
(P6) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≥ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P6=
(1 2
)zP6 = −3
Como se tiene quex∗P6∈ Z2
+ se detiene laramificacion y se actualizael incumbente Z = −3.
Nelson Devia C. Programacion Entera
![Page 37: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/37.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)Resolvemos (P6):
(P6) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≤ 2
x1 ≥ 1
x1, x2 ≥ 0
Se obtiene que:
x∗P6=
(1 2
)zP6 = −3
Como se tiene quex∗P6∈ Z2
+ se detiene laramificacion y se actualizael incumbente Z = −3.
Nelson Devia C. Programacion Entera
![Page 38: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/38.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P4):
(P4) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≥ 3
x1, x2 ≥ 0
Se obtiene un problemainfactible, por lo que sedetiene la ramificacion.
Nelson Devia C. Programacion Entera
![Page 39: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/39.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P4):
(P4) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≤ 1
x2 ≥ 3
x1, x2 ≥ 0
Se obtiene un problemainfactible, por lo que sedetiene la ramificacion.
Nelson Devia C. Programacion Entera
![Page 40: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/40.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P2):
(P2) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≥ 2
x1, x2 ≥ 0
Se obtiene que:
x∗P2=
(2 2
)zP2 = −2
Como se tiene quez∗P2
> Z = −3 se detiene la
ramificacion, ya quecualquier subproblema de(P2) tendra una solucionmayor o igual a z∗P2
.
Nelson Devia C. Programacion Entera
![Page 41: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/41.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Resolvemos (P2):
(P2) mın z = x1 − 2x2
−4x1 + 6x2 ≤ 9
x1 + x2 ≤ 4
x1 ≥ 2
x1, x2 ≥ 0
Se obtiene que:
x∗P2=
(2 2
)zP2 = −2
Como se tiene quez∗P2
> Z = −3 se detiene la
ramificacion, ya quecualquier subproblema de(P2) tendra una solucionmayor o igual a z∗P2
.
Nelson Devia C. Programacion Entera
![Page 42: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/42.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Como no quedan
problemas por resolver se
tiene que el optimo de
(P) es el incumbente
Z = −3, generado por el
nodo P6:
x∗ =(1 2
)z∗ = −3
Nelson Devia C. Programacion Entera
![Page 43: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/43.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Algoritmo Branch & Bounds (B&B)
Como no quedan
problemas por resolver se
tiene que el optimo de
(P) es el incumbente
Z = −3, generado por el
nodo P6:
x∗ =(1 2
)z∗ = −3
Nelson Devia C. Programacion Entera
![Page 44: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/44.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Dudas y/o Comentarios a:[email protected]
Nelson Devia C. Programacion Entera
![Page 45: Programaci on Entera · Introducci on Relajaci on Lineal M etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Introducci on Los problemas de programaci on lineal](https://reader030.vdocuments.us/reader030/viewer/2022040502/5e2ae5bbd347a46fac5f14cf/html5/thumbnails/45.jpg)
IntroduccionRelajacion Lineal
Metodos de Plano CortanteCortes de Gomory
Algoritmo Branch & Bounds
Nelson Devia C. Programacion Entera