programaci on entera · introducci on relajaci on lineal m etodos de plano cortante cortes de...

45
Introducci´on Relajaci´onLineal etodos de Plano Cortante Cortes de Gomory Algoritmo Branch & Bounds Programaci´ on Entera Nelson Devia C. IN3701 - Modelamiento y Optimizaci´on Departamento de Ingenier´ ıa Industrial Universidad de Chile 2011 Basado en Bertsimas, D., Tsitsiklis, J. (1997) “Introduction to Linear Optimization” Cap´ ıtulos 10 y 11 Nelson Devia C. Programaci´onEntera

Upload: others

Post on 01-Jan-2020

49 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IntroduccionRelajacion Lineal

Metodos de Plano CortanteCortes de Gomory

Algoritmo Branch & Bounds

Nelson Devia C. Programacion Entera