Está en la página 1de 27

Universidad de los Andes-CODENSA

Programacin Cuadrtica y Sistemas


Lineales.

Programacin Entera y Mtodos de Corte.
Programacin Lineal Entera-
Mixta
Un problema de programacin lineal entera-mixta (PPLEM) es un
PPL en el que algunas de las variables toman valores enteros. Si
todas las variables enteras son binarias (0/1) el problema se
denomina 0/1 PPLEM. Si todas las variables son enteras, el
problema se denomina problema de programacin lineal entera
(PPLE).

Hay dos tcnicas de resolucin de este tipo de problemas:
La de bifurcacin y acotacin (BA) y la de los cortes de Gomory
(CG). La BA es la que ms se utiliza y la ms eficiente
computacionalmente. Tambin hay una nueva tcnica Hibrida de
Bifurcacin y Corte (BC). Las variables binarias son muy potentes
para modelar ciertas no linealidades de diversa naturaleza que
ocurren con una cierta frecuencia en Ingeniera. Algunos ejemplos
son:
1. Conjuntos alternativos de restricciones.
2. Restricciones condicionales.
3. Funciones discontinuas.
4. Funciones no convexas a trozos.



Un PPLEM en forma estndar es de la forma

Minimizar

sujeto a



donde N se utiliza para denominar al conjunto {0, 1,2, }. Un
ejemplo de la regin factible en este caso se muestra a
continuacin en la figura 1:







Figura 1. Conjunto de soluciones factibles de un PPLEE.


=
=
n
j
j j
x c Z
1
n j un a a todos para x
n j x
m i b x a
j
j
n
j
i j ij
,..., 2 , 1 lg ;
,..., 2 , 1 ; 0
,..., 2 , 1 ;
1
= N e
= >
= =

=
El mtodo de bifurcacin y acotacin resuelve el PPLEM mediante
una secuencia de PPL que se obtiene relajando las condiciones de
integralidad e incluyendo restricciones adicionales.
El nmero de restricciones adicionales aumenta a medida que el
mtodo progresa. Estas restricciones separan la regin factible en
subregiones factibles complementarias.
Inicialmente se fijan cotas inferiores y superiores de la solucin
ptima. La estrategia de bifurcacin disminuye la cota superior y
aumenta la inferior. La diferencia de ambas es una medida de la
proximidad de la solucin actual a la ptima, si sta existe.
Cuando se minimiza, se puede encontrar una cota inferior
relajando las restricciones de integralidad del problema original y
resolviendo el PPL resultante. De la misma forma, el valor de la
funcin objetivo para cualquier solucin del problema inicial es una
cota superior del valor ptimo.

Este mtodo puede parar debido a tres razones:
1. El problema actual no es factible.
2. La solucin actual satisface las condiciones de integralidad.
3. La cota inferior obtenida es mayor que la superior actual.
Una bifurcacin se aborta por infactibilidad, integralidad o
acotacin.
Para resolver un PPLEM se tienen las siguientes etapas:

Etapa 1: Iniciacin. Fijar una cota superior () y una inferior (-
) a la solucin ptima. Resolver el PPLEM relajando las
condiciones de integralidad. Si este problema es infactible, el
original tambin lo es y no hay solucin. Si la solucin es entera,
es ptima. En otro caso, la cota inferior se actualiza con el valor
de la solucin ptima obtenida.

Etapa 2: Bifurcacin. Usando una variable candidata a entera
x
k
que no es entera, se generan dos problemas, por bifurcacin,
a partir del original, tal como sigue. Si el valor de la variable x
k

es a.b, donde a y b son sus partes entera y fraccional,
respectivamente, el primer problema bifurcado es el original
relajado con la restriccin x
k
a, y el segundo, el original
relajado con la restriccin complementaria x
k
a + 1. Estos
problemas se sitan en una lista de procesado y se consideran
secuencialmente o en paralelo para su resolucin.

Etapa 3: Solucin. Resolver el problema siguiente en la lista de
procesado.

Etapa 4: Actualizacin de cotas. Si la solucin del problema
actual es entera y el correspondiente valor de su funcin objetivo
es menor que la cota superior en curso, se actualiza sta a ste
y se almacena el problema como candidato a ptimo. En otro
caso, si el valor de la funcin objetivo est entre ambas cotas,
se actualiza la cota inferior con dicho valor, y se procede a
bifurcar aadiendo los dos problemas a la lista de procesado.

Etapa 5: Corte. Si la solucin suministrada por el problema en
curso es entera, no es posible la bifurcacin, por lo que se
aborta la bifurcacin debido a la integralidad de la solucin. Si la
solucin no es entera y el valor de la funcin objetivo es mayor
que la cota superior actual, no se puede mejorar la solucin por
esa rama, por lo que se aborta el proceso por esa rama, debido
a acotacin. Si el problema en curso no es factible, no es
posible continuar por esa rama, por lo que se aborta el proceso,
debido a infactibilidad.

Etapa 6: Optimalidad. Si la lista de procesado est no vaca se
contina con la Etapa 3. En otro caso, el proceso concluye. Si
hay un candidato a ptimo, ste da la solucin. En otro caso, el
problema es infactible. Este algoritmo revuelve la solucin
ptima o informa sobre su no existencia en la Etapa 1 la 6.

Cualquier variable que no sea entera puede ser candidata para la
bifurcacin. La eleccin de cul elegir es un problema que debe
resolverse basndose en el conocimiento sobre el problema de
que se trate. Los problemas de la lista de procesado pueden
procesarse mediante las estrategias de anchura primero o altura
primero o una mezcla de ambas. La figura 2 muestra ambas
alternativas.






Figura 2. Estrategias de (a) bsqueda en anchura, y (b) bsqueda en
profundidad.

Una estrategia de altura primero genera rpidamente problemas
restringidos que generalmente suministran buenas cotas superior e
inferior. Adems suministra rpidamente problemas infactibles y,
por tanto, el abortado de las ramas. Una estrategia de anchura
primero procesa problemas muy parecidos, lo cual puede
explotarse convenientemente. Las tcnicas de computacin
paralela pueden explotarse con ambas estrategias.

El Mtodo de Bifurcacin y
Acotacin
Ejemplo
Minimizar

sujeto a


La regin factible es la que se muestra en la figura 3.






Figura 3. Estrategias de (a) bsqueda en anchura, y (b) bsqueda en
profundidad.




2 1
x x Z =
N e
s
s
s
2 1
2
2 1
1
,
9 2
1 2 2
0
x x
x
x x
x
Etapa 1: Iniciacin. Las cotas son + y -. El problema
relajado, que se designa como P0, es

Minimizar

sujeto a

con solucin, no entera, en el punto P
1
en la figura: x
1
= 5; x
2
=
4.5; Z = -9.5.
Se actualiza la cota superior de - a -9.5.

Etapa 2: Bifurcacin. La variable x
2
, genera los dos problemas
con las restricciones x
2
4 y x
2
5.
Problema P1:
Minimizar

sujeto a



2 1
x x Z =
1
1 2
2
0
2 2 1
2 9
x
x x
x
s
s
s
2 1
x x Z =
1
1 2
2
2
0
2 2 1
2 9
4
x
x x
x
x
s
s
s
s
Problema P2:
Minimizar

sujeto a

Etapa 3: Solucin. La solucin, no entera , del problema
P
1
es (Punto P
2
en la figura):
x
1
= 4.5; x
2
= 4; Z = -8.5:

Etapa 4: Actualizacin de cotas. Puesto que el valor -8.5 est
entre las dos cotas, se actualiza la cota inferior de -9.5 a -8.5 y se
bifurca de nuevo.
La variable x
1
, genera los problemas con las restricciones x
1
4 y
x
1
5.
Problema P3:
Minimizar

sujeto a

2 1
x x Z =
1
1 2
2
2
0
2 2 1
2 9
5
x
x x
x
x
s
s
s
>
1
( ) x e
2 1
x x Z =
1
1 2
2
2
1
0
2 2 1
2 9
4
4
x
x x
x
x
x
s
s
s
s
s
Problema P4:
Minimizar


sujeto a



Etapa 5: Corte. No ocurre nada en esta etapa.
Etapa 6: Optimalidad. Puesto que la lista de procesado no est
vaca se va a la Etapa 3 con P2.
Etapa 3: Solucin. El problema P2 es infactible, por lo que no
ocurre nada en esta etapa.
Etapa 4: Actualizacin de cotas. No ocurre nada.
Etapa 5: Corte. Puesto que el problema es infactible, se aborta
esta rama.
Etapa 6: Optimalidad. Puesto que la lista de procesado no est
vaca se va a la Etapa 3 con P3.
Etapa 3: Solucin. La solucin, entera, del problema P3 (punto
P3 de la figura 3) es: x
1
= 4; x
2
= 4; Z = -8
2 1
x x Z =
1
1 2
2
2
1
0
2 2 1
2 9
4
5
x
x x
x
x
x
s
s
s
s
>
Etapa 4: Actualizacin de cotas. Por ser entera , y
estar el valor -8 entre las cotas, se actualiza la cota superior de
+ a -8, y se almacena este problema como candidato a ptimo.
Etapa 5: Corte. Por ser entera, se aborta el proceso en esta
rama.
Etapa 6: Optimalidad. Puesto que la lista de procesado no est
vaca se va a la Etapa 3 con P4.
Etapa 3: Solucin. El problema P4 es infactible, por lo que no
ocurre nada.
Etapa 4: Actualizacin de cotas. No ocurre nada.
Etapa 5: Corte. Por ser no factible, se aborta esta rama.
Etapa 6: Optimalidad. Puesto que la lista de procesado est
vaca, y hay candidato a ptimo, ste da la solucin:

( 1, 2 ) x x e
* * *
1 2
4; 4; 8 x x Z = = =
El Mtodo de los Cortes de
Gomory
Una alternativa al mtodo anterior es el mtodo de los cortes de
Gomory. En cada iteracin de este mtodo, se resuelve el
problema original relajado incluyendo restricciones adicionales,
que reducen la regin factible sin excluir soluciones enteras. En
cada iteracin se aade una restriccin adicional, que se denomina
corte de Gomory. Esta tcnica genera progresivamente una
envolvente convexa de la regin factible y de esta forma se obliga
a satisfacer las condiciones de integralidad. La regin factible del
problema es:

Empleando la particin estndar del simplex obtenemos:



Despejando x
B
se obtiene:


Ax b =
( )
B
N
x
B N b
x
| |
=
|
\ .
B N
Bx Nx b + =
1 1
B N
x B Nx B b

=
En forma matricial tenemos:


Empleando la notacin estndar del Simplex



Sea una variable bsica no entera. La fila correspondiente a esta
variable en la ecuacin anterior es:
(1)
Puesto que la solucin en curso es bsica y factible, las variables
, al ser no bsicas, son nulas; entonces, , y puesto que es
no entera, tiene que ser no entera. Por otra parte, todo elemento
u
ij
puede expresarse como la suma de un entero (positivo o
negativo) y una fraccin no negativa menor que 1, es decir

(2)
donde para todo j es entero, y para todo j es una fraccin no
negativa menor que 1.


( )
1 1 B
N
x
I B N B b
x

| |
=
|
\ .
( )
B
N
x
I U b
x
| |
=
|
\ .
B N
x Ux b + =
i
B
x
i j
i
B i j N
j
x u x b + =

j
N
x
B
b x =
i
B
x
i
b
;
ij ij ij
u i f j = +
ij
i
ij
f
Anlogamente se puede descomponer como:
(3)
donde es un entero (positivo o negativo) y es una fraccin no
negativa menor que 1.
Algunos pueden ser nulos, pero es necesariamente
positivo.
Sustituyendo las ecuaciones (2) y (3) en la ecuacin (1) obtenemos:





El trmino de la izquierda tiene que ser entero dado que todas las
variables lo son, y entonces, el de la derecha tiene que ser tambin
entero.
Adicionalmente, f
ij
para todo j, y para todo j son no
negativos, por lo que
es no negativo. El trmino de la derecha de la
ecuacin anterior
, es simultneamente: Un entero, y menor que una
fraccin positiva,
, menor que 1, por lo tanto este termino es un entero no positivo.


ij
f
i
f
i i
i
b i f = +
i
b
i
i
i
f
( )
i j
i
B ij ij N i
j
x i f x i f + + = +

i j j
i
B ij N ij N i
j j
x i x i f f x + =

j
N
x
j
ij N
j
f x

j
ij N i
j
f f x

i
f
Entonces:




La ltima desigualdad se llama el corte de Gomory asociado a la
variable bsica .

Cuando se quiere resolver un PPLE se utilizan los siguientes
pasos:

0
j
ij N i
j
f f x s

0
j
ij N i
j
f x f >

i
B
x
PASOS
Cuando se quiere resolver un PPLE se utilizan los siguientes
pasos:

Paso 1: Iniciacin. Resolver el problema inicial relajado. Si no
es acotado (infactible), parar; el problema original es no acotado
(infactible).

Paso 2: Control de Optimalidad. Si la solucin es entera,
parar, es la ptima. En otro caso, ir a la Etapa siguiente.

Paso 3: Generacin de Corte. Usar una variable bsica con un
valor no entero para generar un corte de Gomory.

Paso 4: Solucin del Problema. Aadir un corte de Gomory al
problema en curso, resolverlo, y continuar con la Etapa 2.

Debe sealarse que el nmero de restricciones crece con el
nmero de iteraciones, ya que se aade una nueva en cada una
de ellas Por ello, es conveniente usar el MPE, ya que el problema
original se transforma en infactible y el dual en no ptimo, pero
factible.
Ejemplo

Maximizar

sujeto a




cuya funcin admisible se muestra en la figura 4.








Figura 4. Ilustracin grfica de los Cortes de Gomory.

1 2
120 80 Z x x = +
2 1 2 6
7 1 8 2 28
1 0
2 0
1
x x
x x
x
x
x
+ s
+ s
>
>
e
El problema anterior relajado y en forma estndar es

Maximizar

sujeto a


la solucin de este problema es (punto P1 de la Figura):
z
*
= 391.11
Teniendo



Si se usa x
2
para generar corte obtenemos

1 2
120 80 Z x x = +
1 2 3
1 2 4
1 2 3 4
2 6
7 8 28
, , , 0
x x x
x x x
x x x x
+ + =
+ + =
>
*
* * 1
*
2
20 8 1
9 9 9
;
14 7 2
9 9 9
B
x
b x Y
x
| | | |

| |
| |
= = = = | |
|
| | \ .

| |
\ . \ .
2 3 4
7 2 14
9 9 9
x x x + =
Por tanto se obtiene





y el corte es





Ntese que el corte puede expresarse en funcin de variables
originales x
1
y x
2
. En efecto, usando las igualdades del problema
relajado en forma estndar, x
3
y x
4
se expresan:
21 21 21 21
22 22 22 22
2
2 2 2
7 2 2
1
9 9 9
2 2 2
0
9 9 9
14 5 5
1
9 9 9
y i f f
y i f f
b i f f
= + = + =
= + = + =
= + = + =
3
4
5 2 2 2 2 5
0 3 4
9 9 9 9 9 9
x
x x
x
| |
| |
s + >
| |
\ .
\ .
3 4
5
2
x x + >
3 1 2
4 1 2
6 2 ,
28 7 8
x x x
x x x
=
=
Para obtener el primer corte (lnea de trazos de la figura 4):


As se reduce la regin factible sin excluir soluciones enteras. El
problema a resolver es ahora:

Maximizar

sujeto a




Ntese que el corte de Gomory se ha introducido usando la
variable adicional x
5
.
Su solucin es:


1 2
7
2
x x + s
1 2
120 80 Z x x = +
2 1 2 3 6
7 1 8 2 4 28
5
3 4 5
2
1, 2, 3, 4, 5 0
x x x
x x x
x x x
x x x x x
+ + =
+ + =
+ =
>
*
1
* * * *
4
*
2
5
1
1
2
9
5
380; ; 1 1
2
2
1
1
9
B
x
Z x x U
x
| |
| |
|

|
| |
|
|
|
|
= = = =
|
|
|
| |
|
\ .

|
|
| \ .
\ .
Usando x
1
para generar un nuevo corte, puesto que


Por tanto, se puede escribir





y el corte queda:



Este segundo corte es funcin de las variable originales x
1
y x
2
:



*
1
1
5
2
b x = =
1 5
1 3 5
9 2
x x x + =
11 11 11 11
12 12 12 21
1
1 1 1
1 1 0 0
1 8 8
1
9 9 9
5 1 1
2
2 2 2
y i f f
y i f f
b i f f
= + = + =
= + = + =
= + = + =
3
5 5
5
1 8 8 1 9
0 0 , x
2 9 9 2 16
x
x
x
| |
| |
s > >
| |
\ .
\ .
1 2
55
16
x x + s
El problema ahora consiste en:

Maximizar

sujeto a





Cuya solucin es


1 2
120 80 Z x x = +
1 2 3
1 2 4
3 4 5
5 6
1 2 3 4 5 6
2 6
7 8 28
5
2
9
16
, , , , , 0
x x x
x x x
x x x
x x
x x x x x x
+ + =
+ + =
+ =
=
>
*
1
*
* * * 4
*
5
*
2
41
1
16
1
9
49
1 1
16
377.5; x ;
9 0 1
16
2
1
7
9
8
B
x
x
Z U
x
x
| |
|
| |

|
|
| |
|
|
|
|
|
|
= = = =
|
|
|

|
|
|
|
|
\ .

|
|
\ .
|
\ .
Usando x
2
para generar un nuevo corte, puesto que
tenemos:


Por ello:





y el corte resulta:



El tercer corte en funcin de las variables originales resulta:





2
7
8
b =
2 3 6
2 7
9 8
x x x + =
41 41 41 41
42 42 42 42
4
4 4 4
1 1 0 0
2 2 2
0
9 9 9
7 7 7
0
8 8 8
y i f f
y i f f
b i f f
= + = + =
= + = + =
= + = + =
3
6 6
6
7 2 2 7 63
0 0 ,
8 9 9 8 16
x
x x
x
| |
| |
s > >
| |
\ .
\ .
1 2
3 x x + s
Finalmente el problema es

Maximizar

sujeto a






con solucin:








1 2
120 80 Z x x = +
1 2 3
1 2 4
3 4 5
5 6
6 7
1 2 3 4 5 6 7
2 6
7 8 28
5
2
9
16
63
16
, , , , , , 0
x x x
x x x
x x x
x x
x x
x x x x x x x
+ + =
+ + =
+ =
=
=
>
*
3
*
4
* *
*
5
*
6
*
1
0
7
9
360;
2
63
16
3
B
x
x
Z x
x
x
x
| |
|
| |
|
|
|
|
|
|
= = =
|
|
|
|
| |
\ .
|
\ .
Puesto que es entera es la solucin del problema original buscada:





* * *
1 2
3; 0; 360 x x Z = = =
Bibliografa

Formulacin y Resolucin de Modelos de Programacin Matemtica en
Ingeniera y Ciencia, Enrique Castillo, Antonio J. Conejo, Pablo
Pedregal, Ricardo Garca, Natalia Alguacil, 2002.

También podría gustarte