Anda di halaman 1dari 45

Optimizacin de Sistemas II

Planos Cortantes

Mtodos que
(iterativamente) refnan la
regin factible o funcin
objetivo mediante
desigualdades lineales,
denominadas cortes.
Cada desigualdad incluye
usualmente ms de una
variable (hiperplano).
Son aplicables en el
contexto de programacin
lineal entera, mixta y
tambin para problemas no
diferenciables convexos.
El algoritmo de separacin
se encarga de generar
cortes dada una solucin
fraccionaria (no entera).
Balance entre llamadas al
algoritmo de separacin y
nmero de cortes por
iteracin.

Planos cortantes

Tipos de planos cortantes


Gomory
Utilizan redondeo en alguna fla del tableau
lineal ptimo con variable bsica entera con
valor fraccional (Simplex-Dual).

Cobertura (Cover)
Tipo knapsack, en donde la suma de un grupo
de variables binarias no puede exceder un
nmero.

Otros: Clique, disjuntivos, lifting, flujo, GUB


(generalized upper bounds), MIR (mixedinteger rounding cuts), etc.

Impacto de planos cortantes


En CPLEX
Planos cortantes reducen en 53.7X el
tiempo de solucin (test en 106
instancias)
Algunas aceleraciones (individuales):
Gomory
2.5X
MIR
1.8X
Knapsack
1.4X
Flow covers
1.2X
Implied bounds 1.2X

Resultados similares obtenidos con


Fuente: The CPLEX Library: Presolve and Cutting Planes, Ed Rothberg,

Planos cortantes

Para que los cortes generados sean vlidos, se tienen


que cumplir dos condiciones:
Condicin 1: Cualquier punto factible para el PLE
(problema original) satisface el corte.
Condicin 2: La solucin ptima actual para la
relajacin del PL, no satisface el corte.
La generacin de cortes sucesivos garantiza el
encontrar la solucin ptima en una cantidad fnita
de iteraciones.

Planos cortantes

Envoltura
Convexa
(Convex
Hull)

Eventualmente despus de
agregar varios planos cortantes

No.

Slo es necesario defnir el


punto extremo asociado a la
solucin ptima mediante
planos cortantes.
Es necesario siempre
encontrar la envoltura
convexa mediante planos
cortantes para resolver un
problema lineal entero/mixto?

Planos cortantes

Ejemplo
max z = 7x1 + 10x2
sujeto a:
-x1 + 3x2 6
7x1 + x2 35
x1, x2 0 y entero

El algoritmo parte de la
solucin ptima de la
relajacin y luego agrega
restricciones especialmente
construidas (cortes)

Planos cortantes de Gomory

Grfcamente

max z = 7x1 + 10x2


sujeto a:
-x1 + 3x2 6
7x1 + x2 35
x1, x2 0 y
entero

ptimo relajado: (4,5;


3,5)

x2

4
3
2

x1

Grfcamente

x2

ptimo: (4,57; 3)
e
rt
Co

II

max z = 7x1 + 10x2


sujeto a:
-x1 + 3x2 6
7x1 + x2 35
x1, x2 0 y
entero

Corte I
3
2

ptimo: (4;
3)
0

x1

Solucin
bsica
factible

x1

x2

x2

7/22

1/22

3,5

x1

-1/22

3/22

4,5

x3

x4

63/22 31/22

Solucin

66,5

A partir de SIMPLEX

Cmo obtenemos los


cortes?

Planos cortantes de Gomory

Planos cortantes de Gomory


De la tabla Simplex obtenemos la siguiente
informacin:
Ecuacin z: z + 63/22 x3 + 31/22 x4 = 66,5
Ecuacin x2: x2 + 7/22 x3 + 1/22 x4 = 3,5
Ecuacin x1: x1 - 1/22 x3 + 3/22 x4 = 4,5
Debido a que todos las variables deben ser
enteras y a que en la solucin ptima relajada
todos los resultados son no enteros, podemos
usar cualquier ecuacin para generar un corte.

2. Movemos los componentes


enteros al lado izquierdo y
los fraccionales al derecho:
x2 3 = -7/22 x3 1/22 x4 +
1/2

Los coefciente fraccionales


se reescriben como la suma
de una parte entera ms una
parte fraccional positiva.

x2 + (0 + 7/22) x3 + (0 +
1/22) x4 = (3 + 1/2)

1. Transformamos la ecuacin
x2 en:

Arbitrariamente elegimos la
ecuacin x2:

Planos cortantes de Gomory

Planos cortantes de Gomory


Sabemos que x3 y x4 son no negativos por lo que
respecto al lado derecho podemos decir:
-7/22 x3 1/22 x4 + 1/2 1/2 (1)
Dado que x2, x3 y x4 son enteros, entonces x2 3
debe ser entero y por lo tanto -7/22 x3 1/22 x4 +
1/2 tambin lo es.
As la restriccin (1) se transforma en:
Corte I
-7/22 x3 1/22 x4 + 1/2 0

-7/22 x3 1/22 x4 + s1 = -1/2 ,


s1 0 (Corte I)

El Corte I lo podemos escribir:

En el ptimo relajado esta


inecuacin no se cumple.

-7/22 x3 1/22 x4 + 1/2 0

Planos cortantes de Gomory

Planos cortantes de Gomory

Solucin
bsica
factible

x1

x2

x3

x4

s1

Solucin

63/22

31/22

66,5

-7/22 x3 1/22 x4 + s1 = -1/2 , s1 0 (Corte I)


x2

7/22

1/22

Agregamos esta nueva restriccin al


x1
1
0
-1/22
3/22
0
Simplex:
s1

-7/22

-1/22

Es
Es esta
esta tabla
tabla factible?
ptima?

3,5
4,5

-1/2

NO
SI

Planos cortantes de Gomory

Solucin
bsica
factible

x1

x2

x3

x4

s1

Solucin

62

x2

x1
x3

Debemos iterar hacia un punto factible. Para eso


1
0
0
1/7
-1/7
4,57
usamos:
SIMPLEX
DUAL
0
0
1
1/7
-22/7
1,57

Hemos

NO

-1/7 x4 -6/7 s1 + s2 = -4/7 ,


s2 0 (Corte II)

Tenemos entonces:

x1 + (0 + 1/7)x4 + (-1 +
6/7)s1 = (4 + 4/7)

La ltima solucin tiene a x1


y a x3 no enteros
Debemos generar otro corte
Usamos x1 como fuente
generadora de corte

Planos cortantes de Gomory

Planos cortantes de Gomory

Solucin
bsica
factible

x1

x2

x3

x4

s1

-1/7
x4 -6/7
s10 + s2 =
-4/7,1 s2
0
z
0
0
9
II)
x2
0
1
0
0
1
Agregamos esta nueva restriccin al
x1 Simplex:
1
0
0
1/7
-1/7

s2
0

Solucin

(Corte
62

4,57

x3

1/7

-22/7

1,57

s2

-1/7

-6/7

-4/7

Solucin
bsica
factible

x1

x2

x3

x4

s1

x2

x1

-1

x3

-4

x4

Iteramos con SIMPLEX


DUAL

Planos cortantes de Gomory

s2

Solucin

58

-7

El corte fraccional supone que


todas las variables, incluyendo
las de holgura y supervit, son
enteras.

Problema resuelto!

La solucin ptima (x1 = 4, x2


= 3, z = 58) es entera

Planos cortantes de Gomory

Planos cortantes de Gomory


Resumen del algoritmo de planos cortantes:
Paso 1. Encuentre el tableau ptimo para la
relajacin de la PL. Si todas las variables de
solucin ptima asumen valores enteros, entonces
ha encontrado una solucin ptima para el PLE; en
caso contrario siga al Paso 2.
Paso 2. Elija una restriccin en el tableau ptimo
de la relajacin del PL cuyo lado derecho tiene la
parte fraccionaria ms cercana a 1/2 . Esta
restriccin se usa para generar un corte.
Paso 2a. En el caso de la restriccin identifcada en
el Paso 2, escriba su lado derecho y cada
coefciente de las variables de la forma [x] + f,

Planos cortantes de Gomory


Paso 2b. Vuelva a escribir la restriccin usada para generar un
corte como:
Todos los trminos con coefciente entero = todos los trminos
con coefciente fraccionario.
Entonces el corte es:
Todos los trminos con coefciente fraccionario 0.
Paso 3. Encuentre la solucin ptima para la relajacin del PL,
con el corte como una restriccin adicional, mediante el
algoritmo SIMPLEX DUAL. Si todas las variables asumen valores
enteros en la solucin ptima, ha encontrado una solucin
ptima para el PLE. En caso contrario, escoja la restriccin cuyo
lado derecho tenga la fraccin ms cercana a y sela para
generar otro corte, el cual se suma al tableau. Contine con este
proceso hasta que obtenga una solucin en la cual todas las
variables sean enteras.

Normalmente un nmero
grande de planos
cortantes son necesarios.
Los cortes tienden a ser
ms dbiles a medida que
se progresa en el
algoritmo.
Ninguna solucin factible
se obtiene hasta el fnal.

Desventajas:

Utilizan poca memoria


(son baratos)

Ventajas:

Planos cortantes de Gomory

Planos cortantes de cobertura


Este tipo de cortes son conocidos como 0-1
Knapsack (problema de la mochile)
El set
C N

es conocido como una cobertura si

a x b
j

jC

El corte asociado a esta cobertura es

x C 1
jC

Se aplican slo a variables binarias


Requiere de una heurstica para identifcar C
(cobertura)

5 x1 5 x2 5 x3 5 x 4 3 x5 8 x6 17

Slo si las variables son


binarias

Podemos identifcar
cortes de cobertura que
sean vlidos para esta
restriccin?

Ejemplo.

Planos cortantes de cobertura

Planos cortantes de cobertura


max 8x1 7x2 5x3 4x4 2x5 6x6
sujeto a:
30x1 25x2 20x3 20x4 20x5 15x6 55
xj {0,1}, j 1,,6

Algoritmo
Ramifcacin y Corte

de

Buscando
mayor
efciencia en la bsqueda
de un ptimo para una
problema de PLE, surge
una estrategia combinada
entre el algoritmo de
Ramifcacin
y
Acotamiento
y
el
algoritmo
de
Planos
Cortantes:

Ramifcacin y Corte

La nueva restriccin debe


admitir todas las soluciones
discretas del modelo, pero
debe eliminar el ltimo ptimo
relajado obtenido.

Ramifcacin y Corte modifca


la estrategia de Ramifcacin y
Acotamiento tratando de
fortalecer la relajacin con
nuevas restricciones antes de
ramifcar una solucin activa.

La idea fundamental del


algoritmo es mejorar la
bsqueda que hace el
algoritmo de RyA a travs de
la incorporacin de nuevas
restricciones (cortes), que
hacen ms rpida la
convergencia a una solucin
entera.

Ramifcacin y Corte

min 7x1 + 12x2 + 5x3 + 14x4


sujeto a:
300x1 + 600x2 + 500x3 +
1600x4 700
x1, x2, x3, x4 {0, 1}

xj = 1, si el generador j entra
en operacin
0, e.o.c.

Volvamos al ejemplo de River


Power:

Ramifcacin y Corte

PL0: z = 6,125

(x1, x2, x3, x4) = (0, 0, 0, 0,4375)

Veamos qu propone RyC

En RyA, habramos ramifcado


en x4.

Recordemos que la solucin


del PL relajado es:

Ramifcacin y Corte

0 + 0 + 0 + 0,4378 < 1

Adems, tenemos que esta


restriccin corta la solucin de
PL0: (0, 0, 0, 0,4375):

x1 + x2 + x3 + x4 1

Siguiendo con el ejemplo de


River Power, se puede ver que
cualquier solucin factible del
problema original debe al
menos contemplar la puesta
en marcha de un generador.
Esto es:

Ramifcacin y Corte

PL1: z = 6,636

(x1, x2, x3, x4) = (0, 0, 0,818, 0,182)

Podemos ahora ramifcar en


x3.

Se aprecia que esta solucin


es mejor que la solucin de
PL0por qu?

Al resolver PL0 incluyendo esta


restriccin tenemos un nuevo
PL1:

Ramifcacin y Corte

PL0: z = 6,125
(x1, x2, x3, x4) = (0, 0, 0, 0,4375)
x 1 + x2 + x 3 + x4 1

PL1: z = 6,636
(x1, x2, x3, x4) = (0, 0, 0,818, 0,182)
x3 = 1

x3 = 0

PL2: z = 6,75
(x1, x2, x3, x4) = (0, 0, 1, 0,125)

Se puede apreciar que la ecuacin:


x1 + x2 + x3 + 2x4 2
Es un buen corte para PL2por qu?

PL0: z = 6,125
(x1, x2, x3, x4) = (0, 0, 0, 0,4375)
x1 + x2 + x3 + x4 1

PL1: z = 6,636
(x1, x2, x3, x4) = (0, 0, 0,818, 0,182)
x3 = 0

x3 = 1

PL2: z = 6,75

PL6: z = 14

(x1, x2, x3, x4) = (0, 0, 1, 0,125)

(x1, x2, x3, x4) = (1, 0, 0, 0,5)

x1 + x2 + x3 + 2x4 2

PL3: z = 12
(x1, x2, x3, x4) = (0, 0, 1, 0,5)

x4 = 1

x4 = 0

PL4: z = 19

PL5: z = 12

(x1, x2, x3, x4) = (0, 0, 1, 1)

(x1, x2, x3, x4,) = (1, 0, 1, 0)

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
PL5: z = 14,3

x1 = 0

x1 = 1

(x1, x2, x3, x4) = (1/3, 1, 0, 0)


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

Haga la nica solucin activa


aquella que tenga todas las
variables discretas libres e
inicialice el ndice de solucin t
0. Si alguna solucin es
conocida para el modelo,
tambin escoja la mejor como
cota inferior x con valor
objetivo z. De otro modo
asigne z -.

Paso 0: Inicializacin

Algoritmo de Ramifcacin y Corte (Minimizacin)

Si la solucin activa
permanece, seleccione x(t) y
prosiga al Paso 2. De otro
modo detngase. Si existe una
cota inferior x, es ptima,
sino, el modelo es infactible.

Paso 1: Detencin

Algoritmo de Ramifcacin y Corte (Minimizacin)

Intente resolver la relajacin


lineal del problema tratado
que corresponde a x(t).

Paso 2: Relajacin

Algoritmo de Ramifcacin y Corte (Minimizacin)

Si la solucin de la relajacin
lineal da como resultado
infactible, entonces no es
posible construir una solucin
entera a partir de este nodo.
Termine x(t) e incremente t t
+ 1. Retorne al Paso 1.

Paso 3: Trmino por


infactibilidad

Algoritmo de Ramifcacin y Corte (Minimizacin)

Si la solucin de la relajacin
lineal da un resultado de z que
es menor que la cota inferior
actual, el nodo actual no
puede producir un mejor
resultado. Termine x(t) e
incremente t t + 1. Retorne
al Paso 1.

Paso 4: Trmino por cota

Algoritmo de Ramifcacin y Corte (Minimizacin)

Si la solucin de la relajacin
lineal da un resultado que
satisface todos las
restricciones del problema
original, entonces sta es la
mejor solucin que puede
ofrecer el nodo actual. Luego
de guardar este resultado
como la nueva cota inferior,
termine x(t) e incremente t t
+ 1. Retorne al Paso 1.

Paso 5: Trmino por


factibilidad

Algoritmo de Ramifcacin y Corte (Minimizacin)

Intente identifcar una


restriccin vlida para el
modelo original (PLE) que sea
violada por la solucin de la
relajacin activa actual. Si lo
logra, haga a esta restriccin
como parte del modelo
original. Incremente t t + 1.
Retorne al Paso 2.

Paso 6: Restriccin vlida

Algoritmo de Ramifcacin y Corte (Minimizacin)

Escoja alguna variable binaria


libre que sea fraccional en la
solucin activa actual y
ramifque.
Incremente t t + 1. Retorne
al Paso 1.

Paso 7: Ramificacin

Algoritmo de Ramifcacin y Corte (Minimizacin)

Optimizacin de Sistemas II
Planos Cortantes

Anda mungkin juga menyukai