Anda di halaman 1dari 9

Programación Lineal Entera

Percy Antonio Ticona Centeno

1. Método del Plano Cortante


Consideremos el problema de programación lineal entera (PLE):

Minimizar ct x
Ax = b
(1)
x≥0
x ∈ Zn

Se denomina Relajación de este problema, al conocido problema de programación lineal (PL):

Minimizar ct x
Ax = b (2)
x≥0
Supongamos que en una iteración dada, al resolver la Relajación de PLE usando el algoritmo
Simplex, obtenemos una solución básica factible óptima, x∗ . Luego, existe una base factible óptima
B de modo que, probablemente después de una reordenación de componentes:

xB = B −1 b − B −1 N xN (3)
X
= b̄ − B −1 aj xj (4)
j∈R
X
= b̄ − yj xj (5)
j∈R
· ¸ · ¸
xB B −1 b
Observe que haciendo xN = 0, el vector = es una SBF para PL. Mientras que
xN 0
· ¸
xB
dando valores arbitrarios a xN , generamos arbitrarios vectores satisfaciendo Ax = b en (2).
xN

Sea b̄r la r-componente de b̄, vamos a suponer que las variables no básicas están indexadas de
manera ordenada j = m + 1, m + 2, ..., n.

Definamos las partes fraccionarias de yr,j y b̄r por:

Fr,j = yr,j − Ir,j y Fr = b̄r − Ir (6)

donde ¥ ¦
Ir,j = byr,j c y Ir = b̄r
En consecuencia, cuando la solución básica actual tiene la componente correspondiente a b̄r frac-
cionaria, se tiene:
0 ≤ Fr,j < 1 y 0 < Fr < 1 (7)

1
Definición 1.1 (Corte de Gomory) Con respecto a x∗ definido arriba. La inecuación
n
X
Fr − Fr,j xj ≤ 0 (8)
j=m+1

se denomina corte de Gomory.


Teorema 1.2 Considere el corte de Gomory dado en (8), el cual fue añadido al las restricciones
dadas en el problema (2):
Minimizar ct x
Ax = b
Pn
Fr − j=m+1 Fr,j xj ≤ 0
x≥0
·
¸ · ¸
B −1 b b̄
1. La SBF óptima del problema de relajación de PLE, x∗ = = , la cual no es
0 0
un vector con todas las componentes enteras, pues b̄r es fraccionario, no satisface el corte de
Gomory.
2. Ningún punto factible con todas las componentes enteras fue eliminado con el corte de Go-
mory.
Prueba. Para mostrar la primera parte, basta reemplazar x∗ en (8). Como
xj = 0, j = m + 1, m + 2, ..., n
entonces Fr ≤ 0, lo cual contradice (7).
Para mostra la segunda parte, suponemos
· que¸ x es un punto factible arbitrario para el problema
xB
original (1), Desde (5), notamos que x = puede ser generada a partir de la base actual B
xN
mediante la siguiente ecuación:
X n
xB = b̄ − yj xj
j=m+1
Tomando una sola ecuación, la r-ésima, tenemos
n
X
xr = b̄r − yr,j xj
j=m+1

de donde
n
X
xr + yr,j xj = b̄r
j=m+1
Usando la definición de Fr y Fr,j dada en (6) y reemplazando en la ecuación anterior, tenemos
n
X
xr + (Fr,j + Ir,j ) xj = Fr + Ir
j=m+1

n
X n
X
xr + Fr,j + Ir,j xj = Fr + Ir
j=m+1 j=m+1

n
X n
X
xr + Ir,j xj − Ir = Fr − Fr,j xj (9)
j=m+1 j=m+1

2
· ¸
xB
Como xr es una componente de xB y xj es una componente de xN , dado que x = fue
xN
asumida con todas sus componentes enteras, entonces el lado izquierdo de (9) es un entero, es decir
n
X
xr + Ir,j xj − Ir ∈ Z
j=m+1

Pero a su vez, el lado derecho de (9) es menor que 1, pues Fr < 1 y Fr,j ≥ 0
n
X
Fr − Fr,j xj < 1
j=m+1

De donde concluimos que


n
X
Fr − Fr,j xj ≤ 0
j=m+1

Por lo tanto, una solución factible arbitraria para el problema original (1) satisface el corte de
Gomory, lo cual significa que ésta no fue eliminada por el corte.

El teorema anterior nos dice que el corte de Gomory sólo elimina la solución básica factible
óptima de la relajación de PLE, con alguna componente no entera, pero no elimina vectores factibles
para el problema original (1).

Esto nos lleva a plantear la siguiente estrategia, denominada Método del Plano Cortante: Re-
solver la relajación del problema inicial usando el Método Simplex y obtener una SBF óptima
x∗ .

1. Si x∗ tiene todas sus componentes enteras, entonces ésta es la solución óptima buscada.

2. Caso contrario, crear el corte de Gomory y añadir a la última relajación del problema original,
formando el siguiente problema:

Minimizar ct x
Ax = b
Pn
Fr − j=m+1 Fr,j xj ≤ 0
x≥0

Este procedimiento se repite hasta encontrar una solución entera óptima (si ella existe). Observe
que en cada iteración un nuevo corte es añadido. Por ejemplo, si hubiera en la siguiente iteración
un nuevo fracaso, al añadir un segundo corte obtendriamos el siguiente problema relajado:

Minimizar ct x
Ax = b
Pn
Fr − j=m+1 Fr,j xj ≤ 0
P
F̄r − nj=m+1 F̄r,j xj ≤ 0
x≥0

3
P
donde F̄r − nj=m+1 F̄r,j xj ≤ 0 denota el nuevo corte. Así, mientras más cortes realicemos, estaremos
resolviendo cada vez problemas más grandes. Esto lo torna un método poco atractivo para resolver
PLE.
Las figuras 1, 2 y 3 nos muestran el comportamiento del método en el cual se incluyeron dos
sucesivos cortes de Gomory.

Figura 1: Región factible de PLE. Región factible del primer problema relajado PL y su respectiva
solución óptima.

Figura 2: Primer corte y nueva región factible (la parte sombreda).

2. Método de Ramificación y Acotación (Branch and Bound)


Como antes, consideremos el problema (PLE):
Minimizar ct x
Ax = b
x≥0
x ∈ Zn
Denominaremos grafo al par (N, A), donde N es un conjunto de objetos llamados nodos y A un
conjunto de pares (i, j) denominados aristas, cada arista (i, j) conecta a los nodos i, j ∈ N . Cuando
a cada arista se le otorga una orientación, entonces se denominan arcos.

4
Figura 3: Segundo corte y obtención de una solución óptima entera.

Las figuras 4 y 5 representan de una manera clásica dos grafos.

Figura 4: Representación clásica de un grafo orientado

Para resolver el problema principal (1), la estrategia ahora es nuevamente resolver la relajación
de (1):
Minimizar ct x
Ax = b
x≥0
£ ¤t
donde x∗ = x∗1 · · · x∗k · · · xn es una solución óptima de la relajación. Supongamos que el

vector x no tiene todas las componentes enteras, digamos que justamente la k.ésima componente
x∗k es fraccionaria (por ejemplo x∗k = 3,75).

La figura 6 muestra la región factible de la relajación (2), en ella, se indican también los puntos
factibles para el problema original (1).

Por otro lado, la figura 7 muestra la ubicación de un punto óptimo en un extremo de la región
factible del problema relajado, probablemente después de haber aplicado el Algoritmo Simplex.
Note que en este caso, a diferencia del Método de Gomory, podemos utilizar cualquier método para
resolver programación lineal.

Como hemos asumido que x∗k es fraccionaria, la solución óptima para (1) no debería estar en la
franja especificada en la figura 8.

5
Figura 5: Un árbol binario dirigido

Figura 6: Región factible de la relación del problema (1) y región factible entera

Figura 7: Solución óptima de la relajación (2)

6
Figura 8: Franja definida por x∗k

Así, retirando de la región factible la franja caracterizada por:

bx∗k c < xk < bx∗k c + 1

donde xk es la k-componente del vector factible x para el problema original (1), no estaremos
desechando ninguna solución factible que realmente nos interesa.

La nueva región factible ahora estaría caracterizada por dos subconjuntos del mismo, los cuales
se pueden apreciar en la figura 9.

Esta situación puede ser descrita formalmente de la siguiente manera.

1. Resolver la relación (2) obteniendo un punto óptimo x∗ .

a) Si x∗ tiene todas sus componentes enteras, el problema está resuelto. Detenerse.


b) Caso contrario, proseguir con los demás pasos.

2. Determinar una componente de x∗ que sea fraccionaria, digamos la k-componente, x∗k .

3. Construir dos nuevos problemas de programación lineal (nuevas relajaciones) definidos por
las siguientes restricciones:

Minimizar ct x Minimizar ct x
Sujeto a: Sujeto a:
Ax = b (PL1) Ax = b (PL2)
xk ≤ bx∗k c xk ≥ bx∗k c + 1
x≥0 x≥0

Observe que xk ≤ bx∗k c y xk ≥ bx∗k c + 1 cumplen un rol de cortes en los subproblemas (PL1)
y (PL2), respectivamente.

7
Figura 9: Dos subregiones relajadas

4. Repetir el procedimiento, ahora sobre cada subproblema (PL1) y (PL2), hasta que algún
criterio de detención sea cumplido.

Esto nos lleva a pensar en un método recursivo, en el cual, en cada iteración, dos subproblemas
con cortes adicionales son generados. La situación después de algunas iteraciones vendría a ser tal
como muestra la figura 10, donde el nodo raíz representa la resolución de la primera relajación,
mientras que los nodos intermedios son las relajaciones intermedias. Cada relajación intermedia
tiene una restricción más que su antecesor, esto obviamente perjudicará el desempeño de cualquier
implementación.

Tenemos que poner énfasis en los nodos finales (hojas), debido a que ellos representan las
últimas relajaciones. Pero, en este procedimiento, ¿qué significaría resolver las últimas relajaciones?
Claramente, si seguimos tirando franjas a la región factible, en algún momento se debería tener
subregiones vacías. En realidad, no es necesario quizá analizar todas las opciones.

Considere el grafo (árbol) de la figura 10, supongamos que la solución óptima en la relación
P L100 tenía todas sus componentes enteras y su valor objetivo fue z̄, entonces es claramente una
probable solución óptima para el problema original (1). Decimos probable, debido a que aún no
se comparó con respecto a los demás subproblemas. Ahora, digamos que el valor objetivo ẑ de la
relajación P L2 es mayor z̄, entonces podemos desechar cualquier solución entera del problema P L2
y de toda su descendencia, debido a la siguiente propiedad:

Si X ⊂ Y , entonces mı́n ct x ≥ mı́n ct x


x∈X x∈Y

No se debería esperar un método eficiente para resolver el Problema de Programación Lineal


Entera, debido a que según la teoría de complejidad computacional, este tipo de problema está en
la Clase NP-Completo, allí donde están varios problemas difíciles de resolverse, y por ahora, no se
conocen algoritmos de tiempo polinomial para su resolución.

8
Figura 10: Esquema de acotación

Anda mungkin juga menyukai