Está en la página 1de 16

Método Simplex Dual en Programación

Lineal

El Método Simplex Dual nos ofrece una


alternativa algorítmica para abordar la resolución de modelos
de Programación Lineal. En particular este método se puede
utilizar cuando luego de llevar a la forma estándar un modelo de
Programación Lineal no se dispone de una solución básica
factible inicial con la cual se pueda dar inicio a las iteraciones del
algoritmo. En este contexto a continuación se presenta un ejemplo
con los detalles de la aplicación de este procedimiento.

Ejemplo del Método Simplex Dual

Consideremos el siguiente problema para ilustrar sobre la aplicación


del Método Simplex Dual:

Para llevar el problema anterior a la forma estándar se requiere


agregar 2 variables de exceso no negativas para la restricción 1 y
2, que llamaremos respectivamente X4 y X5. De esta forma el
problema en su formato estándar queda definido por:
Luego construimos la tabla inicial del Método Simplex:

¿Cómo continuar con las iteraciones del Método Simplex?


Antes de ello es necesario disponer de una solución básica
factible inicial.

En este contexto si quisiéramos usar X4 y X5 como variables


básicas (y en consecuencia X1, X2 y X3 como variables no
básicas) se requiere que X4 y X5 sean mayores o iguales a cero,
sin embargo, sus coeficientes en las respectivas filas son negativos
y por tanto no se dispone de la identidad (matriz con «1» como
diagonal y el resto de coeficientes igual a cero).

En consecuencia, para formar la identidad podemos multiplicar


por «-1» la fila 1 y 2, obteniendo lo siguiente:

En la tabla anterior se tiene una solución básica (infactible en las


variables primales), pero al tener costos reducidos no negativos
esto define una solución básica factible en el dual.
Ahora X4 y X5 son variables básicas y adoptan los valores de -
1 y -3/2, respectivamente, lo que claramente no satisface las
condiciones de no negatividad para las variables de decisión, es
decir, no corresponde a una solución básica factible.

Sin embargo, en esta instancia podemos aplicar el Método Simplex


Dual como alternativa de resolución. Para ello seleccionaremos una
variable que deje la base y adoptaremos como criterio de selección
aquella variable básica asociada al lado derecho «más
negativo» (con esto se busca favorecer la rapidez de
convergencia).

En el ejemplo dicha variable es X5. Luego para determinar que


variable entra a la base realizamos un mínimo cociente entre el
negativo del costo reducido de las variables no básicas y las
entradas estrictamente menores a cero para las variables no
básicas en la fila 2 (fila asociada al lado derecho más negativo).

Es decir: Min {-160/-2; -120/-2; -280/-2} = 60 ==> el cociente


mínimo se alcanza en la segunda columna asociada a la variable no
básica X2, por tanto, dicha variable entra a la base.

En cada iteración del Método Simplex Dual se escoge un lado


derecho con valor negativo, identificando la respectiva variable
básica primal, quien deja la base.
Finalmente se realiza una iteración realizando las operaciones filas
que sean necesarias, de modo de ingresar X2 a la base al mismo
tiempo que X5 deja la base. Los resultados serían:

Notar que ahora las variables básicas son X4 y X2 donde sólo X4=-


1/4 lo que no satisface la condición de ser una solución básica
factible. Por lo tanto, realizamos una nueva iteración, en este caso
sacando de la base a la variable X4 y calculamos el mínimo
cociente: Min {-40/-1; -160/-3; -60/-1/2} = 40 ==> el cociente
mínimo está en la primera columna por tanto la variable X1 entra a
la base.
En consecuencia, se actualiza la tabla quedando lo siguiente:

Las variables básicas ahora son X1=1/4 y X2=1/2 (que cumplen las


condiciones de no negatividad). Adicionalmente el costo reducido
de las variables no básicas también es mayor o igual a cero,
por tanto, estamos frente a la solución óptima del problema.

Se puede reconocer adicionalmente que el valor óptimo


es V(P)=100 que se obtendría al evaluar la solución óptima del
problema en la función objetivo, sin embargo, en el procedimiento
dicho valor se obtiene con signo cambiado.

El ejemplo anterior nos permitió apreciar cómo a través del Método


Simplex Dual se puede abordar la resolución de un modelo de
Programación Lineal que luego de ser llevado a la forma estándar
no provee una solución básica factible inicial.

Cabe destacar que el Método Simplex Dual que no es la única


alternativa algorítmica a la cual podemos recurrir para resolver el
problema propuesto. Por ejemplo, podríamos haber alcanzado
idénticos resultados aplicando el Método Simplex de 2 Fases con
algo más de trabajo.

Alternativamente podríamos definir el modelo dual al problema


propuesto y resolverlo por el Método Simplex para posteriormente
utilizar las condiciones del Teorema de Holguras
Complementarias.

En resumen, ante un modelo de optimización contamos con varias


alternativas de resolución y es deber de quien resuelve evaluar los
distintos caminos en términos de su complejidad y representación.
Método de las Dos Fases
El método de las Dos Fases se utiliza cuando aparecen
variables artificiales en la forma canónica o estándar del
problema. La primera fase trata de resolver el problema
auxiliar Z' de minimizar la suma de las variables artificiales y
conseguir que sea cero (con objeto de evitar incongruencias
matemáticas). Una vez resuelto este primer problema, y
siempre y cuando el resultado sea el esperado, se
reorganiza la tabla resultante para utilizarla en la segunda
fase sobre el problema original.

En caso contrario el problema no es factible, es decir, no


tiene solución y no será necesario continuar con la segunda
fase.

FASE 1

Esta primera fase es muy similar al método Simplex, con


la excepción de la construcción de la primera tabla, además
de la necesidad de estudiar el resultado obtenido para
determinar si se desarrolla la segunda fase.

En tal caso, la última tabla de esta fase será, con


algunas modificaciones, la utilizada como tabla inicial para la
segunda fase.

 Construcción de la primera tabla:

Se elabora de manera análoga a la tabla inicial del


método Simplex, pero con algunas diferencias.

Como se ha comentado, en esta primera fase se


resuelve un problema auxiliar (la minimización de la
suma de las variables artificiales) con una función
objetivo auxiliar. Por lo tanto en la primera fila de la
tabla, donde se muestran los coeficientes de las
variables de la función objetivo, aparecerán todos los
términos a cero excepto los coeficientes de variables
artificiales. El valor de cada uno de estos coeficientes
es "-1" debido a que se está minimizando la suma de
dichas variables (recuerde que minimizar Z' es igual
que maximizar (-1)·Z').

La otra diferencia para la primera tabla radica en


que ahora sí es necesario calcular la fila Z (o fila
indicadora).

Tabla

C .. Cn- ..
    C1 C2 Cn
0 . k .
Tabla
Bas P .. Pn- ..
Cb P1 P2 Pn
e 0 . k .
.. a1n- ..
P1 Cb1 b1 a11 a12 a1n
. k .
.. a2n- ..
P2 Cb2 b2 a21 a22 a2n
. k .
.. ..
... ... ... ... ... ... ...
. .

Cb b am am .. amn .. am
Pm m m 1 2 . -k . n

.. ..
Z   Z0 Z1 Z2 Zn-k Zn
. .

Siendo Zj = Σ(Cbi·Pj) - Cj para i = 1..m, donde si j


= 0, P0 = bi y C0 = 0, y en caso contrario Pj = aij.

 Condición de parada y paso a la fase 2:

La condición de parada es la misma que en el método


Simplex normal. Esto es, cuando en la fila indicadora
ninguno de los valores de los costes reducidos es
negativo (ya que tal y como se ha planteado el
objetivo es la maximización de (-1)·Z').

Cumplida la condición de parada es necesario


determinar si es posible pasar a la segunda fase para
obtener la solución óptima del problema original. Esto
se hace observando el resultado obtenido en la
primera fase: si su valor es 0, significa que el
problema original tiene solución y es posible
calcularla, en caso contrario indica que se trata de un
problema no factible y no tiene solución.

FASE 2

La segunda fase del método de las Dos Fases se


desarrolla exactamente igual que el método Simplex, con la
salvedad de que antes de iniciar las iteraciones hay que
eliminar las columnas correspondientes a las variables
artificiales, y reconstruir la tabla inicial.

 Eliminar Columna de variables artificiales:

Si hemos llegado a la conclusión de que el problema


original tiene solución, debemos preparar nuestra
tabla para la segunda fase. Este paso es muy
sencillo, se trata únicamente de eliminar las columnas
correspondientes a las variables artificiales.
 Construcción de la tabla inicial:

La tabla inicial en este caso se mantiene casi igual a


la última tabla de la primera fase. Únicamente habrá
que modificar la fila de la función objetivo por la del
problema original y calcular nuevamente la fila Z (de
la misma forma que en la primera tabla de la fase 1).

A partir de este punto, todas las iteraciones hasta llegar


a la solución óptima del problema no presentan ninguna
diferencia con el método Simplex.

En el artículo anterior nos referimos a Cómo resolver un modelo


de Programación Lineal con el Método Simplex Dual, siendo
ésta una alternativa de resolución cuando al llevar un modelo
de Programación Lineal a su forma estándar no se dispone de
una solución básica factible inicial.

A continuación tomaremos el mismo ejemplo pero aplicaremos una


metodología conocida como Método Simplex de 2 Fases que
como el nombre lo sugiere consiste en una variante del Método
Simplex que permite abordar esta clase particular de problemas.

Ejemplo Método Simplex de 2 Fases

Para llevar el problema a la forma estándar agregamos


las variables de exceso no negativas X4 y X5 para la primera y
segunda restricción, respectivamente. El problema queda como
sigue:
Sabemos que las variables X4 y X5 no tienen la estructura de la
identidad para utilizarlas como variables básicas y en consecuencia
no provee un punto de partida válido para realizar las iteraciones.

¿Qué podemos hacer? Una alternativa es aplicar el Método


Simplex Dual pero también podemos utilizar el Método Simplex
de 2 Fases. Para ello agregaremos 2 variables artificiales (o
variables auxiliares) no negativas que llamaremos X6 y X7 (una
para cada restricción) que nos permitirá tener una solución básica
factible inicial.

Luego, el método en su Fase I minimiza la suma de las variables


auxiliares (en este caso 2 variables). En consecuencia, el problema
de la Fase I queda definido por:

Construimos la tabla inicial de la Fase 1:

Para utilizar X6 y X7 como variables básicas necesitamos llevar sus


costos reducidos a cero. Para ello realizamos operaciones fila
multiplicando la fila 1 por -1 y luego sumando a la fila 3. Repetimos
el procedimiento multiplicando por -1 la fila 2 y sumando a la fila 3.
La tabla actualizada corresponde a:

Continuando con las iteraciones del Método Simplex ingresamos la


variable X3 a la base (criterio: variable no básica con costo reducido
más negativo) y realizamos el mínimo cociente: Min{1/4;
3/2/2}=1/4 ==> el pivote se encuentra en la fila 1 por tanto deja la
base la variable básica X6 (variable básica asociada a la fila 1).

Se realiza una iteración del Método Simplex y se actualiza la tabla:

Ahora las variables no básicas con costo reducido negativo


son X1 y X4. Hacemos entrar a la base a la variable X1 y
calculamos el mínimo cuociente: Min{1/4/1/2; 1/1}=1 ==> el pivote
está en la fila 1 y por tanto la variable X3 deja la base. En este
punto es importante destacar un aspecto: «es una situación
inusual (pero no por ello incorrecto) que una variable que en
una iteración previa haya ingresado a la base, deje ésta
inmediatamente en la iteración posterior». Si bien este es el caso
al cual nos enfrentamos continuaremos con las iteraciones
del Método Simplex:

IMPORTANTE: El lector podrá identificar que la variable no básica


con costo reducido más negativo en la tabla anterior es X2 y por
tanto dicha variable debería ser la que ingrese a la base. No
obstante, de forma involuntaria se omitió dicha situación y se
incorporó a la base la variable X1 como se muestra en la tabla a
continuación. El efecto de esta decisión sólo tiene que ver con la
rapidez de convergencia del Método Simplex y no afecta en
absoluto los resultados finales. Esto se puede corroborar revisando
tanto este artículo como el que trata sobre Criterios para la Rapidez
de Convergencia del Método Simplex. Sin embargo, cabe destacar
que no hay garantías que incorporando la variable no básica con el
costo reducido más negativo el Método Simplex alcance la solución
óptima (de existir) de forma más rápida.

Para seguir con las iteraciones podemos seleccionar tanto la


variable X2 como X4 como variables que ingresan a la base (ambas
con similar costo reducido negativo). En este caso optaremos por la
variable X2 y calculamos el mínimo cuociente: Min{1/2/1/2;
1/2/1}=1/2 ==> X7 deja la base. Actualizamos la tabla obteniendo lo
siguiente:

Notar que ahora tenemos una solución básica factible con las


variables X1=1/4 y X2=1/2. Adicionalmente todas las variables no
básicas (X3, X4, X5, X6, X7) tienen costos reducidos mayores o
iguales a cero. Por último y muy importante el valor de la función
objetivo al finalizar la Fase I es cero, condición indispensable para
seguir a la Fase II del método.

Si el valor de la función objetivo al concluir la Fase I del Método


Simplex de 2 Fases es distinto a cero el problema es infactible, es
decir, no tiene solución (su dominio de soluciones factibles es
vacío).
Para seguir con la Fase II eliminamos la(s) columna(s) asociadas a
las variables artificiales y actualizamos el vector de costos
reducidos considerando la función objetivo original. Se obtiene en
consecuencia la siguiente tabla:
Buscamos ahora llevar a cero el costo reducido a cero para las
variables X1 y X2 (variables básicas al finalizar la Fase I). Para ello
desarrollamos operaciones fila multiplicando la fila 1 por -1 y luego
sumando a la fila 3 (también multiplicamos por -1 la fila 2 y
sumando a la fila 3).

Finalmente se logra conservar la estructura de variables básicas


para las variables X1 y X2 y las variables no básicas tienen
costos reducidos mayores o iguales a cero. En consecuencia,
estamos frente a la solución óptima del problema
con X1=1/4 y X2=1/2.

Te recomendamos verificar que la solución alcanzada es similar a la


obtenida a través del Método Simplex Dual pero evidentemente
con un esfuerzo en la resolución distinto

PROBLEMA # 2

Minimizar   

Sujeto a:

Minimizar 
Sujeto a:

FASE I

Minimizar: 

Sujeto a:

Minimizar 

Sujeto a:

Z X1 X2 S1 S2 R1 R2 Solución
Z 1 0 0 0 0 -1 -1 0
R1 0 2 3 -1 0 1 0 36
R2 0 3 6 0 -1 0 1 60

V.B. Z X1 X2 S1 S2 R1 R2 Solución
Z 1 5 9 -1 -1 0 0 96
R1 0 2 3 -1 0 1 0 36
R2 0 3 6 0 -1 0 1 60
 

V.B. Z X1 X2 S1 S2 R1 R2 Solución
Z 1 1/2 0 -1 1 /2 0 3/2 6
R1 0 1/2 0 -1 1 /2 1 -1/2 6
X2 0 1/2 1 0 -1/6 0 1/6 10

V.B. Z X1 X2 S1 S2 R1 R2 Solución
Z 1 0 0 0 0 -1 -1 0
X1 0 1 0 -2 1 2 -1 12
X2 0 0 1 1 -2/3 -1 2/3 4

 FASE II.

 Minimizar 

V. Básica Z X1 X2 S1 S2 Solución
Z 1 -2000 -500 0 0 0
X1 0 1 0 -2 1 12
X2 0 0 1 1 -2/3 4

V. Básica Z X1 X2 S1 S2 Solución
Z 1 0 0 -3500 5000/3 26000
X1 0 1 0 -2 1 12
X2 0 0 1 1 -2/3 4

 
V. Básica Z X1 X2 S1 S2 Solución
Z 1 -5000/3 0 -500/3 0 6000
S2 0 1 0 -2 1 12
X2 0 2/3 1 -1/3 0 12

PROBLEMA 3

Maximizar 

Sujeto a:

FASE I.

 En la FASE I siempre es un problema de minimización.

 Minimizar 

Sujeto a:

  

V. Z X1 X2 X3 S1 R1 Solución
Básica
Z 1 0 0 0 0 -1 0
S1 0 3 6 1 1 0 20
R1 0 3 1 2 0 1 15
 

V. Z X1 X2 X3 S1 R1 Solución
Básica
Z 1 3 1 2 0 -1 15
S1 0 3 6 1 1 0 20
R1 0 3 1 2 0 1 15

V. Z X1 X2 X3 S1 R1 Solución
Básica
Z 1 0 0 0 0 -1 0
S1 0 0 5 -1 1 -1 5
X1 0 1 1/3 2/3 0 1/3 5

Aquí termina la fase I.

FASE II.

 Maximizar   

V. Básica Z X1 X2 X3 S1 Solución
Z 1 -6 -4 -4 0 0
S1 0 0 5 -1 1 5
X1 0 1 1/3 2/3 0 5

V. Básica Z X1 X2 X3 S1 Solución
Z 1 0 -2 0 0 30
S1 0 0 5 -1 1 5
X1 0 1 1/3 2/3 0 5
 

V. Básica Z X1 X2 X3 S1 Solución
Z 1 0 0 -2/5 2/5 32
X2 0 0 1 -1/5 1/5 1
X1 0 1 0 11/15 -1/15 14/3

V. Básica Z X1 X2 X3 S1 Solución
Z 1 6/11 0 0 4/11 380/11
X2 0 3/11 1 0 2/11 25/11
X1 0 15/11 0 1 -5/11 70/11

También podría gustarte