Está en la página 1de 13

Problemas resueltos C3 IN770 2008

Profesores: Cristián Cortés, Daniel Espinoza


Auxiliares: Gustavo Angulo, Diego Morán y José Mu~
noz

P1 Sea S = {s1 , . . . , sn } subconjunto de Rn y considere y ∈ Rn \ conv(S). Use el Lema de Farkas para


demostrar que existe una desigualdad πx ≤ πo que separa y de conv(S), es decir, que:

πy > πo
πx ≤ πo , ∀ x ∈ conv(S)

Solución:
Sólo daremos la siguiente indicación:
     
n s1 s2 ··· sn x
x ∈ conv(S) ⇔ λ∈R : λ= , λ ≥ 0 6= φ
1 1 ··· 1 1

Además, recuerde que, en general, si α = (α1 , . . . , αn )


     
a1 a2 ... an a1 a
α = α1 + · · · + αn n
1 1 ... 1 1 1

P2 Considere el poliedro P definido a partir de las siguientes ecuaciones:

P :
x2 − x1 ≤ 7 (1)
5x1 + x2 ≥ 13 (2)
2x1 + 3x2 ≥ 13 (3)
x1 ≥ 1 (4)
x2 ≥ 1 (5)
x2 ≤ 11 (6)
x ∈ R2

a) Bosqueje un dibujo de P .
b) Encuentre todas las caras de P .
c) Determine las dimensiones del poliedro y de cada una de sus caras. ¿Cuáles son facetas?
d ) ¿Cuáles restricciones son redundantes? Encuentre una representación minimal.
e) Determine el Espacio Lineal y el Cono caracterı́stico asociado.
f ) ¿Es P un polı́topo?

Solución:
Para ordenarnos escribimos, P = {x ∈ Rn : Ax ≤ b}, obteniendo:

1
    

 −1 1 7 



 −5 −1 −13
    

 −2 −3 −13

x ∈ R2
  
P = : 
−1 ≤
0  −1 
  
  
0 −1 −1 

   

 

0 1 11
 

a) Propuesto.
b) Recordemos que una cara F de P , se puede escribir como

F = {x ∈ P : A0 x = b0 }
con A0 , b0 subsistemas de A y b, es decir, un subconjunto de las filas.
Por otro lado, como x ∈ R2 , basta considerar sólo los subsistemas de tamaño n ≤ 2, pues para
n > 3 los subsistemas son redundantes.
Empecemos con los subsistemas de tamaño n = 1, es decir, encontremos las caras asociadasa cada
una de las desigualdades:
F1 = {x ∈ P : x2 − x1 = 7}:

Si x ∈ F1 , entonces x2 = x1 +7, reemplazando esto en las ecuaciones que definen P obtenemos:

x2 − x1 = 7
6x1 + 7 ≥ 13
5x1 + 21 ≥ 13
x1 ≥ 1
x1 + 7 ≥ 1
x1 + 7 ≤ 11

Reordenando, nos queda:

x2 − x1 = 7
x1 ≥ 1
5x1 ≥ −8
x1 ≥ 1
x1 ≥ −6
x1 ≤ 4

Y de esto, si eliminamos las ecuaciones redundantes, concluimos que:

F1 = {x ∈ R2 : x2 = x1 + 7, 1 ≤ x1 ≤ 4}
En otras palabras, F1 son los puntos contenidos en la recta x2 = x1 + 7, cuando x1 toma
valores entre 1 y 4.

Análogamente, F2 = {x ∈ R2 : x2 = −5x1 + 13, 1 ≤ x1 ≤ 2}.

2
De la misma forma, F3 = {x ∈ R2 : x2 = − 32 x1 + 13
3 , 2 ≤ x1 ≤ 5}.

Ahora, F4 = {x ∈ P : −x1 = −1}:

Tomando x ∈ F4 , y reemplazando en las ecuaciones que definen a P obtenemos:

P :
x2 − 1 ≤ 7
5 + x2 ≥ 13
2 + 3x2 ≥ 13
x1 = 1
x2 ≥ 1
x2 ≤ 11
2
x∈R

Es decir,

P :
x2 ≤ 8
x2 ≥ 8
3x2 ≥ 11
x1 = 1
x2 ≥ 1
x2 ≤ 11

De estas ecuaciones se concluye que x ∈ F4 ⇔ x1 = 1, x2 = 8. Ası́,


 
1
F4 =
8
Es decir, F4 es un sólo punto, y por lo tanto, es un vértice (o punto extremo de P ).

F5 = {x ∈ P : x2 = 1}:

Considerando x ∈ F5 y usando que el x ∈ P , podemos decir que:

1 − x1 ≤ 7
5x1 + 1 ≥ 13
2x1 + 3 ≥ 13
x1 ≥ 1
x2 = 1
1 ≤ 11

Simplificando

3
−6 ≤ x1
12
x1 ≥
5
x1 ≥ 5
x1 ≥ 1
x2 = 1

Eliminando las restricciones redundantes, se concluye que:

F5 = {x ∈ R2 : x2 = 1, 5 ≤ x1 }
Como comentario, podemos observar que otra forma de escribir F5 es
    
5 1
F5 = +λ : λ≥0
1 0
En particular, F5 es una cara de P que no es acotada.

Similarmente, se obtiene F6 = {x ∈ R2 : x2 = 11, 4 ≤ x1 }


 
6
Ahora pasamos a buscar las caras con n = 2. Note que hay = 15 formas de escoger los pares
2
de filas que formaran los subsistemas de tamaño 2.
F7 = {x ∈ P : x2 − x1 = 7, x2 = 11}, es decir, el subsistema está compuesto por las filas 1
y 6 de A:

Si x ∈ F7 , x cumple con el sistema de ecuaciones:

x1 − x2 = −11
x2 = 11

Que tiene como solución única a


 
4
x=
11
Luego,
 
4
F7 =
11

F = {x ∈ P : x1 = 1, x2 = 11}, asociada a las filas 4 y 6 de A.

Si x ∈ F , entonces podemos decir, usando las ecuaciones que definen P :

4
11 − 1 ≤ 7
5 + 11 ≥ 13
2 + 33 ≥ 13
x1 = 1
11 ≥ 1
x2 = 11

que, claramente, es un sistema de inecuaciones infactibles, pues 10 > 7. Se concluye entonces


que:

F =φ

Razonando análogamente, se obtienen las siguientes caras de P


 
1
F8 =
8
 
2
F9 =
3
c) El dibujo nos indica que P tiene dimensión completa, lo que, en nuestro caso, se traduce en
dim(P ) = 2. Para probar esto último, debemos encontrar 3 puntos afı́nmente independientes en
P.      
1 2 4
Podemos elegir los vértices , , ∈ P . Este conjunto es afı́nmente independiente,
8 3 11
pues
     
2 1 1
− =
3 8 −5
     
4 1 3
− =
11 8 3
 
1 3
Y estos 2 últimos vectores son linealmente independientes pues la matriz es invertible.
−5 3
Ası́, hemos encontrado 3 vectores afı́nmente independientes en P , luego, por la definici’on de
dimensión de un poliedro dim(P ) ≥ 2. Pero, como estamos en R2 , no hay conjuntos afı́nmente
independientes con más de 3 elementos, lo que implica que dim(P ) ≤ 2. Concluimos dim(P ) = 2.

Ahora, para las caras Fi , con i = 4, 7, 8, 9, que son vértices, se tiene que los máximos conjun-
tos afı́nmente independientes contenidos en cada una de ellas contienen sóiı́lo un punto. Luego,
dim(Fi ) = 1 − 1 = 0, para i = 4, 7, 8, 9
Calculemos dim(F5 ), recordemos que:
    
5 1
F5 = +λ : λ≥0
1 0
Claramente, F5 no puede contener 3 puntos afı́nmente independientes, por la forma en que se
escriben los puntos que pertenecen a F5 .

5
   
5 6
Si tomamos , ∈ F5 , como
1 1
       
6 5 1 0
− = 6=
1 1 0 0

Luego, este punto forma un conjunto linealmente independiente. Ası́, dim(F5 ) ≥ 1, y como
habı́amos dicho que dim(F5 ) < 2, se concluye dim(F5 ) = 1.
Para el resto de las caras es análogo, es decir, dim(Fi ) = 1 , cuando i = 1, 2, 3, 6

Las facetas son las caras maximales, es decir que no hay otra cara (6= P ) que las contenga.
Por lo calculado en la parte anterior, se ve que las caras que cumplen con esta condición son
F1 , F2 , F3 , F5 .F6 .
d ) La descripción minimal viene de eliminar las restricciones at x = b que no definen facetas, es decir,
tales que

{x ∈ P at x = b}
no es una faceta de P . La descripicón minimal entonces es:

P :
x2 − x1 ≤ 7
5x1 + x2 ≥ 13
2x1 + 3x2 ≥ 13
x2 ≥ 1
x2 ≤ 11
2
x∈R

e) Recordemos las definiciones de cono caracterı́stico y de espacio lineal:

El cono caracterı́stico de P o char.cone(P ) es

char.cone(P ) = {y : ∀x ∈ P, x + y ∈ P }

o equivalentemente,

char.cone(P ) = {y : Ay ≤ 0}

El espacio lineal de P o lin.space(P )

lin.space(P ) = {y : ∀x ∈ P, x ± y ∈ P }
o equivalentemente,

lin.space(P ) = {y : Ay = 0}

Encontremos char.cone(P ), por definición

6
    

 −1 1 0 


 −5 −1 0
       
−2 −3 y1 0
   
char.cone(P ) = y : 
−1 ≤

  0 y2
0
 
0 −1 0

 

 

0 1 0
 

Si y ∈ char.cone(P ), se cumplen las siguentes ecuaciones:

y2 − y1 ≤ 0
5y1 + y2 ≥ 0
2y1 + 3y2 ≥ 0
y1 ≥ 0
y2 ≥ 0
y2 ≤ 0

En particular, y2 = 0, luego, podemos escribir, simplificando las ecuaciones anteriores:

−y1 ≤ 0
y1 ≥ 0
y1 ≥ 0
y1 ≥ 0
y2 ≥ 0
y2 ≤ 0

Ası́,

char.cone(P ) = {y ∈ R2 : y1 ≥ 0, y2 = 0}

Ahora veamoe el cálculo de lin.space(P ), por definición:


    

 −1 1 0 


 −5 −1 0
      
 −2 −3 y1
 0
char.cone(P ) = y : 
−1 = 


  0  y2

0
0 −1 0

 

 

0 1 0
 

Tomando y ∈ lin.space(P ), se cumple

7
y2 − y1 = 0
5y1 + y2 = 0
2y1 + 3y2 = 0
y1 = 0
y2 = 0
y2 = 0

de donde, inmediatamente, se concluye que y1 = y2 = 0. y, por lo tanto:


 
0
lin.space(P ) =
0

f ) No, pues P no es un poliedro acotado. Para ver esto, note que que el cono caracterı́stico es 6= {0},
por lo tanto P no puede ser acotado. Otra forma de verlos es recordar que F5 ⊆ P es una cara
no acotada de P , y por lo tanto, P es no acotado.

P3 Considere el conjunto X = {x ∈ {0, 1}4 : 3x1 + x2 + 4x3 + 2x4 ≤ 7}.


a) Enumere un cubrimiento minimal asociados al conjunto X.
b) ¿Cuál es el máximo valor que puede tomar α para que la desigualdad

x1 + x2 + x3 + αx4 ≤ 3

sea válida para X? ¿Define esta desigualdad una faceta de conv(X)?

Solución:

a) Cuando consideramos el Knapsack Problem


 
 n
X 
S= x ∈ {0, 1}n : aj xj ≤ b
 
j=1

Un cubrimiento (o cover), es un subconjunto C de ı́ndices tales que:


X
aj > b (1)
j∈C

Y C es un cubrimiento minimal si,


X
∀ k ∈ C, aj ≤ b (2)
j∈C\{k}

Para nuestro caso particular, un conjunto de ı́ndices que cumple las condiciones (1) y (2) es

C = {1, 2, 3}
b) Claramente la desigualdad, para x4 = 0 es válida, pues siempre se cumple:

x1 + x2 + x3 ≤ 3

8
Para encontrar el α, usemos la técnica de lifting.

Sabemos que se debe cumplir α ≤ 3 − ζ, donde ζ = máx { x1 + x2 + x3 : x ∈ X, x4 = 1}.

Para calcular ζ, notemos que si x4 = 1, la desigualdad de la mochila nos queda:

3x1 + x2 + 4x3 + 2 ≤ 7
O, equivalentemente

3x1 + x2 + 4x3 ≤ 5 (∗)


De donde ζ < 3, pues (∗) nos dice que las 3 variables no pueden ser todas no nulas.

Si tomamos x1 = 0, x2 = 1, x3 = 1, entonces la desigualdad (∗) se cumple, y, por lo tanto, ζ ≥ 2.

Luego, ζ = 2.

En conclusión, α ≤ 3 − 2, es decir, α ≤ 1. Ası́, el máximo α posible es α = 1.

Se obtiene la siguiente desigualdad válida1 :

x1 + x2 + x3 + x4 ≤ 3

Antes de seguir resolviendo problemas como locos:

Recordemos que es lo que dice el teorema de Holgura complementaria:

TEOREMA de HC:

Si (P) y (D) son un par primal-dual (de programación lineal), entonces

x∗ es óptimo de (P), y ∗ es óptimo de (D)

⇐⇒

x∗ es f actible para (P), y ∗ es f actible para (D) y se cumplen las ecuaciones


yi (bi − Ai· x) = 0 ∀i
xj (cj − Atj· y) =0 ∀j

1 Esta desigualdad también se podrı́a haber obtenido planteando la desigualdad asociada al cubrimiento (no minimal)

C = {1, 2, 3, 4}. Pero la idea del problema era usar lifting, para encontrar el máximo valor de α válido.

9
Podemos ocupar el Teorema de para comprobar si un punto factible x∗ (resp. y ∗ ) es óptimo de
(P) (resp. (D)). La idea es utilizar las ecuaciones que aparecen en el teorema para intentar despejar
un y ∗ (resp. x∗ ). Si es posible encontrar éste y ∗ (resp. x∗ ) y comprobamos que es un elemento factible
de (D) (resp. (P)), por el Teorema de HC podemos concluir que x∗ y y ∗ son los óptimos respectivos
OBS: en otras palabras, es importante no sólo resolver la ecuación, sino que también comprobar que
la solución de la ecuación se factible.

P4 (Ejercicio 3 del capı́tulo 7 del Wolsey)

Considere el 0-1 knapsack problem


 
Xn n
X 
máx cj xj : aj xj ≤ b, x ∈ {0, 1}n
 
j=1 j=1

con aj , cj > 0 ∀j.


r−1
X r
X
c1 cn
(a) Pruebe que si a1 , . . . , an > 0, aj ≤ b y aj > b, entonces el óptimo de la relajación lineal es
j=1 j=1
b− r−1
P
j=1 aj
xj = 1 si j = 1, . . . , r − 1, xr = ar y xj = 0 si j = r + 1, . . . , n.
(b) Resuelva el siguiente problema:

máx 17x1 + 10x2 + 25x3 + 17x4


5x1 + 3x2 + 8x3 + 7x4 ≤ 12
x ∈ {0, 1}4

Solución:

(a) Hay al menos 2 formas: por contradicción o usando la observación a anterior sobre HC.
(b) Primero resolvamos la relajación lineal del problema, si la solución resulta entera estamos listos, si
no al menos obtenemos una cota superior z para el valor de la solución óptimo entero.
Para resolver el problema relajado usaremos la parte (a). Ordenando de mayor a menor los cuo-
c
cientes ajj , obtenemos la solución x∗ = (1, 1, 21 , 0), cuyo valor de la función objetivo es 39,5
(ası́ z = 39,5). Lamentablemente la solución no es entera, debemos usar otra metodologı́a para
resolver el problema. Usaremos Branch & Bound:
Usaremos una ramificación tı́pica en problemas con variables binarias: en cada paso dividiremos
el conjunto factible en 2 partes, una en la cual fijamos alguna variable xi = 0 y en la otra
parte fijamos la misma variable xi = 1.
para “acotar” usaremos algunos de los criterios vistos en clase para podar nodos, y la parte
(a) para resolver las relajaciones lineales.
Empecemos!: como el óptimo del relajado tiene la tercera coordenada no entera decidimos rami-
ficar en x3 (podrı́amos haber hecho cualquier otra elección, no tenemos alguna razón de peso para
elegir x3 ), ası́ particionamos el conjunto factible

S = {x ∈ {0, 1}4 : 5x1 + 3x2 + 8x3 + 7x4 ≤ 12}


en los 2 conjuntos siguientes:

10
S0 = {x ∈ {0, 1}4 : 5x1 + 3x2 + 8x3 + 7x4 ≤ 12, x3 = 0}

S1 = {x ∈ {0, 1}4 : 5x1 + 3x2 + 8x3 + 7x4 ≤ 12, x3 = 1}


que simplificados se pueden escribir

S0 = {x ∈ {0, 1}4 : 5x1 + 3x2 + 7x4 ≤ 12, x3 = 0}

S1 = {x ∈ {0, 1}4 : 5x1 + 3x2 + 7x4 ≤ 4, x3 = 1}


Una de las decisiones importantes que uno toma en Branch & Bound es el orden en que uno
empieza a mirar (explorar) los nodos que se van formando, en este caso dados por los conjuntos
S0 , S1 . Partamos mirando el nodo asociado a S1 .
S1 :
Como se tiene x3 = 1 el número el problema se vuelve más fácil de analizar, pues recuerden que
queremos el máximo posible de variables con valor igual a 1, para que la función valga lo máximo
posible; mirando un poco la restricción asociada al conjunto, vemos que la única variable que puede
ser 1 es x2 , por lo tanto concluimos que x∗ = (0, 1, 1, 0), con valor de la función objetivo 35. Como
el máximo en S es más grande que el máximo sólo considerando S1 se tiene que z = 35 es una cota
inferior para el problema.
Además, el nodo asociado a S1 no es necesario seguir explorandolo, pues encontramos su óptimo
(entero!!), por lo que podemos decir que el nodo es podado por optimalidad.
S0 :
En este caso encontrar el óptimo entero no es tan fácil, ası́ que no nos calentamos la cabeza y
calculamos (usando la parte (a)) el óptimo de la relajación lineal, que nos da x∗ = (1, 1, 0, 74 ), con
valor de función objetivo 36 57 . OBS: No es necesario, pero con esto y lo anterior nos damos cuenta
de que tenemos una nueva cota superior z = máx{35, 36 75 } = 36 57 .
Sigamos con el problema. Ramificando en x4 , obtenemos los siguientes conjuntos:

S00 = {x ∈ {0, 1}4 : 5x1 + 3x2 ≤ 12, x3 = 0, x4 = 0}

S01 = {x ∈ {0, 1}4 : 5x1 + 3x2 ≤ 5, x3 = 0, x4 = 1}


S00 :
Análogamente a lo hecho al analizar S1 , podemos fácilmente encontrar el óptimo entero x∗ =
(1, 1, 0, 0), con valor objetivo 27.
Este nodo puede se podado por optimalidad, o bien por cota, pues se tiene 27 < z = 35, ie, el
máximo del problema completo es mucho mayor que 27.
S01 :
De la misma manera podemos encontrar acá el óptimo entero x∗ = (1, 0, 0, 1), con valor función
objetivo 17.
Este nodo puede se podado por optimalidad, o bien por cota, pues se tiene 17 < z = 35, ie, el
máximo del problema completo es mucho mayor que 17.

Recapitulemos: Todas las hojas que se nos han formado en el árbol están todas podadas, por
lo tanto no hay ninguna que nos quede por explorar, por lo que podemos afirmar que hemos
encontrado el óptimo. ¿Cómo encuentro el óptimo? Fácil, corresponde al mejor óptimo entre los
nodos que fueron podados por optimalidad, como el problema es de maximización, se concluye que
el mejor óptimo (el de valor más grande) fue encontrado en el nodo S1 .

Conclusión: el punto óptimo es x∗ = (0, 1, 1, 0).

11
P5 Considere el siguiente LP :

mı́n x1 + 2x2
x1 + x2 ≥ 4
x1 + 5x2 ≥ 5
x ∈ Z2+

(a) Pruebe que x∗ = ( 15 1


4 , 4 ) es la solución óptima de la relajación lineal del problema anterior.
(b) Encuentre un corte de Gomory para x∗ .

Solución:

(a) Se puede hacer gráficamente o como en el Problema 1.


(b) Recuerdo: un problema lineal {mı́n ct x : Ax = b, x ≥ 0} puede ser escrito como:

mı́n cB xB + cN xN
xB + B −1 N xN = B −1 b
xB , xN ≥ 0
donde estamos diciendo que A = [B | N ], con B una base, xB son las variables básicas, xN las no
básicas y cB , cN los costos respectivos.
 −1 
∗ B b
En particular lo anterior se puede hacer si tenemos un óptimo x = , con B su base
0
asociada.  
eb
e = I | B −1 N , eb = B −1 b, los cortes de Gomory asociados al óptimo x∗ =
 
Si llamamos A
0
se pueden escribir, para cada i ∈ B:
X j k j k
Aeij − A eij xj ≥ ebi − ebi
j∈N

Si observamos bien las desigualdades anteriores, que son válidas pues se obtienen usando el método
B −1 b


de Chvátal-Gomory, dejan fuera al óptimo x = si y sólo si x∗ posee una coordenada
0
no entera. En efecto, por ejemplo, si ebi es no entera la desigualdad i-ésima, evaluada en el óptimo
x∗ resulta:
j k
0 ≥ ebi − ebi > 0

Osea no se cumple la desigualdad, por lo tanto deja fuera del espacio factible a x∗ . OBS: note que
basta sólo una desigualdad para deshacernos de x∗ , la correspondiente a alguna coordenada no
entera.
Volvamos con el ejercicio. Escribamos la relajación del problema dado en el enunciado usando
variables de holgura:

mı́n x1 + 2x2
x1 + x2 − x3 = 4
x1 + 5x2 − x4 = 5
x≥0

12
Ası́ podemos escribir el óptimo x∗ = ( 15 1
4 , 4 , 0, 0). Con esto:
   
1 1 −1 0
B= N=
1 5 0 −1
Y haciendo unos calculillos:

− 54 1
 
1 0 4
A
e= 1
0 1 4 − 41

Con esto podemos escribir fácilmente las 2 desigualdades (una por cada variable básica):
   
5 1 15
− − (−2) x3 + − 0 x4 ≥ −3
4 4 4
   
1 1 1
− 0 x3 + − − (−1) x4 ≥ − 0
4 4 4
es decir,

3 1 3
x3 + x4 ≥
4 4 4
1 3 1
x3 + x4 ≥
4 4 4
Observamos que como las 2 coordenadas básicas del óptimo son no enteras ambas restricciones
dejan fuera al óptimo.
Dado que, en este caso, las restricciones están escritas en función de las variables de holgura,
una pregunta interesante es ¿cómo escribir las desigualdades en función de las variables originales
(que es lo que nos interesa)? La respuesta es despejandolas del sistema Ax = b. En nuestro caso
obtenemos:

3 1 3
(x1 + x2 − 4) + (x1 + 5x2 − 5) ≥
4 4 4
1 3 1
(x1 + x2 − 4) + (x1 + 5x2 − 5) ≥
4 4 4
O equivalentemente,

x1 + 2x2 ≥ 5
x1 + 4x2 ≥ 5
Ambas desigualdades “cortan” a x∗ = ( 15 1
4 , 4 ).

The End

13

También podría gustarte