Está en la página 1de 4

Metodo Simplex Revisado

Daniel Severin

A continuacion, vamos a resolver el ejercicio 7 de la practica 4. El enun-


ciado dice:

Resolver el siguiente problema mediante el metodo simplex revisado.


max z = 2x2 + x3
s/a
x1 2x2 + x3 4
x1 + x2 + x3 9
2x1 x2 x3 5
x 1 , x2 , x3 0

Preliminares. Lo primero que debemos hacer es convertir el problema


a su forma standard. En nuestro caso,
max z = 2x2 + x3
s/a
x1 + 2x2 x3 + x4 = 4
x1 + x2 + x3 + x5 = 9
2x1 x2 x3 + x6 = 5
x 1 , x2 , x3 0

Matricialmente,
max z = c.x
s/a
A.x = b
x0

1
donde,

x1
x2
1 2 1 1 0 0 4
x3
A= 1 1 1 0 1 0 ,b =
9 ,x =

x4
2 1 1 0 0 1 5
x5
x6

y c = (0, 2, 1, 0, 0, 0). Estos vectores/matrices van a permanecer constantes


a lo largo del ejercicio. No obstante, cuando introduzcamos B, N , xB , xN ,
cB y cN , estos ultimos van a variar segun la base establecida en cada iteracion.

Busqueda primer solucion factible. El problema es origen factible,


as que no tenemos necesidad de utilizar el metodo de las dos fases. Sim-
plemente, podemos comenzar con la base B = (a4 , a5 , a6 ). Obviamente,
N = (a1 , a2 , a3 ). Esto indica que,

1 0 0 1 2 1 x4 x1
B = 0 1 0 = B 1 , N = 1 1 1 , xB = x 5 , xN = x 2 ,
0 0 1 2 1 1 x6 x3

cB = (0, 0, 0) y cN = (0, 2, 1).

Test de optimalidad. Recordemos la forma general del diccionario,


xB = B 1 .b B 1 .N.xN
.
z = cB .B 1 .b + (cN cB .B 1 .N ).xN
Debemos investigar los coeficientes de la funcion objetivo (i.e. cN cB .B 1 .N ).
Llamemos w al vector que resulta del producto cB .B 1 . Utilizando la pri-
mer solucion factible hallada, cB resulta ser el vector nulo, as que tambien
w = (0, 0, 0).
Lo siguiente es evaluar los coeficientes de la funcion objetivo (correspondien-
tes a las variables no basicas) hasta encontrar uno que sea estrictamente
positivo:
c1 w.a1 = 0,
c2 w.a2 = 2,
c3 w.a3 = 1, por lo tanto entra x3 a la base.

2
NOTA: No es necesario calcular todos los coeficientes cj w.aj j NoBase.
Solamente debemos calcular hasta encontrar un coeficiente no negativo.

Test de factibilidad. Ahora tenemos que hallar la variable saliente que


mas restriccion impone, cuando x3 comienza a crecer. De la forma general
del diccionario, veamos que

xB = B 1 .b B 1 .N.xN = b N.xN = b a3 .x3 ,

pues B 1 = I y x3 dejara de ser cero, pero no as las otras variables no


basicas (x1 = x2 = 0). En resumen,
x4 = 4 + x3 , que no impone restriccion,
x5 = 9 x3 , que impone la restriccion x3 9,
x6 = 5 + x3 , que no impone restriccion.
La variable que mas restriccion impone es x5 y, por lo tanto, sale de la base.

Actualizacion. Para poder pasar a la proxima iteracion (la cual comien-


za con el test de optimalidad) debemos actualizar la base, y con ella, los
vectores/matrices B, N , xB , xN , cB y cN . Todas ellas se hallan mediante un
reordenamiento de sus componentes (donde estaba antes la columna/valor
correspondiente a la variable entrante, ahora estara la de la variable saliente
y viceversa). Es decir, B = (a4 , a3 , a6 ), N = (a1 , a2 , a5 ), xB = (x4 , x3 , x6 )T ,
xN = (x1 , x2 , x5 )T , cB = (0, 1, 0) y cN = (0, 2, 0).

Cabe destacar que tambien podemos aprovechar a calcular la nueva B 1


de una manera eficiente, a partir de la B 1 previa. Llamemos B1 a la matriz
B antes de iterar y B2 a la matriz luego de iterar. Observemos que

B2 = (a4 , a3 , a6 ) = (a4 , a5 , a6 ).T = B1 .T,

donde
1 1 0
T = 0 1 0 .
0 1 1
T es una identidad modificada, en donde se ha cambiado su columna del me-
dio por la columna correspondiente a x3 en el resultado B 1 .N ya calculado
en el paso anterior (dicha columna haba resultado ser simplemente a3 ).

3
Luego,

1 1 0
B21 = (B1 .T )1 = T 1 .B11 = T 1 .I = T 1 = 0 1 0 .
0 1 1

En general, T 1 es tambien una identidad, salvo que la columna cambiada


k (en nuestro caso, es la del medio, k = 2) esta formada por la columna
(t1k /tkk , t2k /tkk , , 1/tkk , )T . Observese que la fila k de esta columna
se calcula de una manera diferente al resto.

Test de optimalidad. Nuevamente, volvemos a calcular los coeficientes


de la funcion objetivo correspondientes a las nuevas variables no basicas. En
primer lugar, w = cB .B 1 = (0, 1, 0).
c1 w.a1 = 1,
c2 w.a2 = 3,
c5 w.a5 = 1.
Como todos los coeficientes no son estrictamente positivos, hemos alcanzado
el optimo.

Resultado. Para conocer los valores de x y z , volvemos a recordar la


forma general del diccionario, y hacemos

xB = B 1 .b, xN = 0, z = cB .B 1 .b = w.b.

Nos queda xB = (13, 9, 14) y z = 9. En particular, las slacks no nos interesan


y podemos descartarlas, dejando x1 = x2 = 0 y x3 = 9.

También podría gustarte