Minimizar ct x
Ax = b
(1)
x≥0
x ∈ Zn
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.
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
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
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.
4
Figura 3: Segundo corte y obtención de una solución óptima entera.
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
6
Figura 8: Franja definida por x∗k
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.
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:
8
Figura 10: Esquema de acotación