M´ etodo eto do Simplex Revisado Revisad o con Cotas Daniel Severin Esta vez, vamos a resolver un ejercicio cuyo enunciado es: Resolver el e l siguiente si guiente problema mediante el m´etodo etodo simplex revisado con cotas.
m´ax ax z = x 1 − x2 s/a x1 − 2x2 ≤ −2 x1 + x + x2 ≤ 10 x1 ≤ 4 2 ≤ x2 ≤ 5 Preliminares. Lo primero que hacemos es convertir el problema a su
forma standard: m´ax ax z = x 1 − x2 s/a x1 − 2x2 + x + x3 = −2 + x2 + x + x4 = 10 x1 + x x1 ≤ 4 2 ≤ x2 ≤ 5 0 ≤ x3 0 ≤ x4 Matricialmente, m´ax ax z = c.x s/a A.x = A.x = b b l≤x≤u
1
donde,
x 0 2 x , b = , x = x 1 10
1
A =
1 1
−2
1
1 0
−
2 3
x4
y c = (1, −1, 0, 0). Las cotas inferiores y superiores son l = (−∞, 2, 0, 0) y u = (4, 5, +∞, +∞) respectivamente. etodo es el siguiente: Se B´ usqueda primer soluci´ on factible. El m´ propone una soluci´ on b´asica y, si es factible, se comienza a trabajar con ella como primer soluci´ on factible. Si, en cambio, resulta no factible, se resuelve primero el problema de inicializaci´ on. A primera vista, la funci´ on objetivo muestra que conviene hacer crecer x1 tanto como se pueda, y conviene hacer decrecer x2 tambi´en. As´ı que proponemos como soluci´ on b´asica, la que env´ıa x 1 a su cota superior y x 2 a su cota inferior. Es decir, x1 = 4, x2 = 2, x3 = −2, x4 = 4. Sin embargo, es no factible pues x3 se vuelve negativa. Entonces, vamos a resolver un problema auxiliar. Cuando a cada restricci´ on le corresponde una etodo posible es agregar tantas variables artificiales como restricslack , un m´ ciones se violen (en nuestro ejercicio se viola la primera restricci´ on) y tomar como variables b´ asicas a las artificiales m´as las slacks cuyas restricciones asociadas no se violan (en nuestro ejercicio, x4 ). m´ax v = x 5 s/a x1 − 2x2 + x3 + x5 = −2 x1 + x2 + x4 = 10 x1 ≤ 4 2 ≤ x2 ≤ 5 0 ≤ x3 0 ≤ x4 x5 ≤ 0 La variable artificial agregada es x5 . La idea es que x5 alcance su cota superior que vale cero. Las matrices y vectores que conforman el problema auxiliar
2
son A =
1 1
−2
1 0 0 1
1
x 2 x 1 , b = , x = x 0 10 x −
1 2 3 4
x5
y c = (0, 0, 0, 0, 1). Las cotas inferiores y superiores son l = (−∞, 2, 0, 0, −∞) y u = (4, 5, +∞, +∞, 0) respectivamente. Ahora, la primer base factible es B = [a5 , a4 ] = I = B
−1
, N 1 = [a2 , a3], N 2 = [a1 ]
(recordar que x 1 tomaba su cota superior y x 2 su cota inferior, y gracias a la adjunci´on de la variable artificial, x3 puede tomar su cota inferior). En todo lo que sigue, N 1 corresponder´ an a las columnas de la no-base correspondientes a las variables que toman su cota inferior. Y N 2 corresponder´ an a las columnas de la no-base correspondientes a las variables que toman su cota superior. Test de optimalidad. Recordemos que
v = c B .B 1 .b + (cN −
1
− cB .B
−1
.N 1 ).xN + (cN 1
2
− cB .B
−1
.N 2 ).xN
2
Debemos investigar los coeficientes de la funci´ on objetivo. Llamemos w al 1 vector que resulta del producto cB .B . Utilizando la primer soluci´on factible hallada, w = (1, 0).I = (1, 0). Lo siguiente es evaluar los coeficientes de la funci´ on objetivo hasta encontrar una variable no b´ asica que, al modificarse, pueda mejorar el objetivo: c1 − w.a1 = −1 < 0, por lo tanto entra x 1 a la base y dejamos de buscar en los coeficientes de la funci´ on objetivo. −
NOTA: Las variables que est´ en en sus cotas superiores deben tener coeficientes negativos para entrar a la base. Las variables que est´en en sus cotas inferiores deben tener coeficientes positivos para entrar a la base. Test de factibilidad. Ahora tenemos que hallar la variable saliente que
m´as restricci´ on impone, cuando x1 comienza a decrecer. Supongamos que x1 → x1 − ∆, con ∆ ≥ 0. Entonces, el cambio que efect´ uan las variables b´asicas es xB → xB + B 1 .a1 .∆. −
3
Es decir, si x1 → 4 − ∆ entonces x5 → x5 + 1.∆ = −2 + ∆, x4 → x4 + 1.∆ = 4 + ∆. NOTA: Dividiremos este test en 4 partes. En la primer parte estudiaremos xB ≥ lB y asignaremos γ 1 al ∆ m´as restringido que podamos obtener. En la segunda parte estudiaremos x B ≤ uB y asignaremos γ 2 al ∆ m´as restringido que podamos obtener. En la tercer parte estudiaremos x1 ≥ l1 y asignaremos γ 3 al ∆ m´as restringido que podamos obtener. Finalmente, calcularemos γ = m´ın(γ 1 , γ 2 , γ 3 ) y, si γ = +∞ el problema es no acotado. Por otra parte, si γ = γ 3 entonces x1 no entra a la base , saltando de su cota superior a su cota inferior simplemente. En el resto de los casos, x1 entrar´ a a la base con valor x1 − γ y existir´a una variable b´ asica que saldr´ a (justamente, aquella que imponga la mayor restricci´ on). restricciones son x5 = 4 + ∆ ≥ 0. Como ninguna acota a ∆, γ 1 = +∞. PRIMERA PARTE. Las
−2
+∆
≥ −∞,
y x4 =
SEGUNDA PARTE. Las
restricciones son x 5 = −2 + ∆ ≤ 0, y x 4 = 4 + ∆ ≤ +∞. Por lo tanto, x5 es una posible candidata a salir de la base y γ 2 = 2. TERCERA PARTE. La
restricci´ o n es x1 = 4
−
∆
≥ −∞.
Nuevamente,
γ 3 = +∞. a γ = m´ın(+∞, 2, +∞) = 2. En consecuencia, x5 resulta ser la variable saliente. Cabe aclarar que x5 va a pasar a su cota superior. PARTE FINAL. Tenemos
oxima iteraci´ on (la cual comienActualizaci´ on. Para poder pasar a la pr´ za con el test de optimalidad) debemos actualizar la base: B = [a1 , a4 ], B
−1
=
1 0 −1 1
, N 1 = [a2 , a3 ], N 2 = [a5]
Algunas observaciones son: Dado que x 5 pasa a valer su cota superior, el problema auxiliar alcanza su o´ptimo. Adem´as, ´este o´ptimo es cero lo que quiere decir que la soluci´on b´asica que tenemos es factible en el problema original. De este modo, en la siguiente iteraci´ on ya podemos volver al problema original. 4
¿Sirve de algo mantener x5 en el problema original? NO! Es una variable que no aporta nada; su valor es cero. Podemos quitarla de la no-base. Por lo tanto, consideraremos N 2 = [ ] y c = (1, −1, 0, 0). Test de optimalidad. Debemos investigar otra vez los coeficientes de
la funci´on objetivo. Sea w = c B .B 1 = (1, 0). Ahora procedemos a evaluar los coeficientes de la funci´ on objetivo: c2 − w.a2 = −1 + 2 = 1 > 0, por lo tanto entra x 2 a la base y dejamos de buscar en los coeficientes de la funci´ on objetivo. −
Test de factibilidad. Supongamos que x2 → x2 + ∆, con ∆ ≥ 0. En-
tonces, el cambio que efect´ uan las variables b´ asicas es xB
→
xB − B 1 .a2.∆. −
Es decir, si x2 → 2 + ∆ entonces x1 → x1 − (−2).∆ = 2 + 2∆, x4 → x4 − 3.∆ = 6 − 3∆. Al valor del x2 previo ya lo conoc´ıamos por que sab´ıamos que estaba en su cota inferior (x2 = 2). A los valores de las variables b´asicas los podemos calcular usando B 1 .b − B 1 .N 1.xN − B 1 .N 2 .xN : −
−
−
1
x 1
x4
=
1 0 −1 1
2 .
−
10
−
2
1 0 −1 1
.
−2
1
1 0
2 2 .
0
=
6
restricciones son x1 = 2 + 2∆ ≥ −∞, y x4 = 6 − 3∆ ≥ 0. Por lo tanto, x4 es una posible candidata a salir de la base y γ 1 = 2. PRIMERA PARTE. Las
SEGUNDA PARTE. Las
restricciones son x 1 = 2+ 2∆ ≤ 4, y x 4 = 6 − 3∆ ≤ +∞. Por lo tanto, x1 es una posible candidata a salir de la base y γ 2 = 1. verificar que x2 (que actualmente est´ a en su cota inferior) no sobrepase su cota superior. La restricci´ on es x 2 = 2+∆ ≤ 5, lo que genera γ 3 = 3. TERCERA PARTE. Debemos
a γ = m´ın(2, 1, 3) = 1. En consecuencia, x1 resulta ser la variable saliente. Cabe aclarar que x1 va a pasar a su cota superior. PARTE FINAL. Tenemos
5
oxima iteraci´ on debemos actuaActualizaci´ on. Para poder pasar a la pr´ lizar la base: B = [a2 , a4 ], B
−1
=
/2 0 1/2 1
−1
Test de optimalidad. Sea w = c B .B
, N 1 = [a3 ], N 2 = [a1 ]
−1
= (1/2, 0). Ahora procedemos a evaluar los coeficientes de la funci´ on objetivo: 1 1 c3 − w.a3 = 0 − /2 = /2 ≤ 0, c1 − w.a1 = 1 − 1/2 = 1/2 ≥ 0. −
Como no encontramos ninguna variable en N 1 (i.e. x3 ) con coeficiente positivo estricto, ni ninguna variable en N 2 (i.e. x1 ) con coeficiente negativo estricto, se cumple la condici´ on de optimalidad. olo nos interesa saber x 1 y x2 , podemos aprovechar la Resultado. Como s´ ∗
∗
informaci´on de la u ´ ltima iteraci´ on. x 1 pas´o a su cota superior, as´ı que x 1 = 4. Tambi´en, x2 entr´ o a la base con el valor 2 + γ , es decir x2 = 3. Con esto es suficiente para computar la funci´ on objetivo, z = x 1 − x2 = 1. ∗
∗
∗
∗
∗
NOTA: La forma general de calcular los resultados es apelando al u´ltimo diccionario, xB = B 1 .b − B 1 .N 1.xN − B 1 .N 2.xN z = c B .B 1.b + (cN − cB .B 1 .N 1 ).xN + (cN − cB .B 1 .N 2 ).xN ∗
−
−
∗
−
∗
1
∗
−
−
2
∗
1
−
1
2
∗
.
2
OTRA NOTA: En realidad, en este ejercicio hubo una restricci´ o n que se podr´ıa haber eliminado. N´ otese que x1 − 2x2 ≤ −2, x1 ≤ 4 y 2 ≤ x2 ≤ 5 implican x 1 + x2 ≤ 9 (se puede observar claramente si se dibuja el poliedro). Es decir, que la segunda restricci´ on del ejercicio siempre se cumple. Y adem´ as, no se cumple por igualdad. En el m´etodo simplex, una restricci´ on as´ı s´olo genera una fila extra en la matriz A y una variable slack in´util (en este caso, x4 ) pues nunca puede salir de la base.
6