Casos Especiales de método Simplex Kevin Gil 6590-24-5740 Nartin Orellana 6540-14-4277 Mynor Cáceres 6590-14-5012 Donald Marroquín 6590-14-8066 Emanuel Rodríguez 6590-13-3158
Método Simplex Dual El método simplex dual resulta ser una estrategia algorítmica eficiente cuando luego de llevar un modelo de programación lineal a su forma estándar, la aplicación del método simplex no es inmediata o más bien compleja, por ejemplo, puede requerir la utilización del método simplex de 2 fases. Una aplicación típica del método simplex dual es en la resolución de problemas con una función objetivo de minimización, con restricciones del tipo mayor o igual y donde las variables de decisión son mayores o iguales a cero.
Ejemplo
Paso 1: Se lleva el modelo a su forma estándar. En nuestro ejemplo esto se logra agregando variables de exceso en cada una de las restricciones (3 primeras: S1, S2, S3, respectivamente). Luego, se multiplica cada fila de las restricciones por -1 de modo de disponer una solución básica inicial (infactible) en las variables de exceso S1, S2 y S3. B C S1 S2 S3 De esta forma se obtiene la siguiente tabla inicial. A -15
-2
-1
1
0
0
-200
-7,5
-3
-1
0
1
0
-150
-5
-2
-1
0
0
1
-120
315
110
50
0
0
0
0
Paso 2: Se selecciona el lado derecho "más negativo" lo cual indicará cuál de las actuales variables básicas deberá abandonar la base. En el ejemplo el lado derecho más negativo se encuentra en la primera fila, por tanto S1 deja la base. Para determinar cual de las actuales variables no básicas (A, B, C) entrará a la base se busca el mínimo de {-Yj/aij} donde aij es el coeficiente de la respectiva variable no básica en la fija i (del lado derecho más negativo, marcado en verde) y donde Yj es el costo reducido de la respectiva variable no básica. De esta forma se obtiene: Min {-315/-15, -110/-2, -50/-1} = 21, donde el pivote (marcado en rojo) se encuentra al hacer el primer cociente, por tanto A entra a la base. Paso 3: Se actualiza la tabla anterior siguiendo un procedimiento similar al utilizado en el Método Simplex. En el ejemplo se debe dejar a la variable A como básica y S1 como no básica. La tabla que resulta es la si guiente:
A
B
C
S1
S2
S3
1
2/15
1/15
-1/15
0
0
40/3
0
-2
-1/2
-1/2
1
0
-50
0
-4/3
-2/3
-1/3
0
1
-160/3
0
68
29
21
0
0
-4.200
Paso 4: Continuar las iteraciones y siguiendo el mismo procedimiento hasta disponer de una solución básica factible. Luego de unas iteraciones se obtiene la siguiente tabla final: A 1 0 0 0
B
C
S1
S2
S3
0 1 0 0
0 0 1 0
-1/10 1/4 0 4
0 -1 2 10
1/10 3/4 -3 36
8 10 60 -6.620
La solución óptima es A=8, B=10, C=60 (marcado en verde) con valor óptimo V(P)=6.620 (marcado en rojo se obtiene con signo cambiado). También es interesante notar que los costos reducidos de las variables artificiales S1, S2 y S3 (marcado en amarillo), corresponde a la solución óptima del modelo presentado en el tutorial de solver, esto dado que dicho modelo resulta ser el problema dual de nuestro ejemplo.
Método de las 2 Fases
FASE 1: Al agregar S1 como variable de exceso en la restricción 1 resulta evidente que no se dispone de una solución básica factible inicial, por tanto utilizaremos una variable auxiliar "y" que incluiremos en el lado izquierdo de la restricción y que servirá como variable básica inicial. Esto define el problema inicial de la Fase 1 junto a su tabla.
Luego la variable X2 entra a la base (costo reducido negativo) y claramente "y" deja la base. Se actualiza la tabla utilizando el método simplex:
Con esta tabla finaliza la Fase 1. Notar que el valor de la función objetivo al finalizar la Fase 1 es cero, por tanto podemos continuar la Fase 2. Luego la variable X2 entra a la base (costo reducido negativo) y claramente "y" deja la base. Se actualiza la tabla utilizando el método simplex:
Con esta tabla finaliza la Fase 1. Notar que el valor de la función objetivo al finalizar la Fase 1 es cero, por tanto podemos continuar la Fase 2.
FASE 2: Se elimina la columna asociada a la variable artificial "y" y se actualiza el vector de costos reducidos considerando la función objetivo original. De esta forma se obtiene la tabla inicial de la Fase 2.
Dado que X2 es variable básica al finalizar la Fase 1 buscamos dejar esta misma variable como básica al iniciar la Fase 2. Para ello multiplicamos por -3 la fila 1 y luego la sumamos a la fila 2.
En este sencillo ejemplo se llega inmediatamente a la tabla final de la Fase 2, con solución óptima X1=0 y X2=10. El valor óptimo V(P)=-30.
Método de la Gran M Método de la M Grande (o Gran M) en Programación Lineal: En el contexto de la aplicación del Método Simplex no siempre es inmediata la obtención de una solución básica factible inicial, en las variables originales del modelo. Para conseguir esto existen varios procedimientos como son el Método Simplex de 2 Fases y el Método de la M Grande (o Gran M) el cual abordaremos en este artículo. Para ello consideremos el siguiente modelo de Programación Lineal en 2 variables:
A continuación agregaremos las variables no negativas x3 (holgura restricción 1), r1 (auxiliar restricción 2 ), x4 (exceso restricción 3) y r2 (auxiliar restricción 3) El modelo ahora es:
Donde el parámetro M es una constante positiva suficientemente grande para representar una penalización adecuada en la función objetivo. La tabla inicial del método esta dada por:
Antes de continuar con las iteraciones se debe procurar que el costo reducido de las variables r1 y r2 sean ceros. Para ello multiplicamos por -M la fila 2 y la fila 3 y luego sumamos a la fila 4, obteniendo lo siguiente:
Ahora debemos seleccionar que variable no básica ingresa a la base. El menor costo reducido corresponde a la variable x1 en consecuencia dicha variable ingresa a la base. Luego calculamos el mínimo cociente en dicha columna: en la fila 1, por tanto la variable deja la base. Se actualiza la tabla:
, el cual se alcanza
Siguiendo con las iteraciones ahora la variable x2 entra a la base. El criterio de factibilidad indica que: la variable abandona la base (el pivote se encuentra en la fila 3). Actualizamos la tabla:
Una nueva iteración indica que x3 ingresa a la base. El mínimo cociente en la respectiva columna es: (recordar que se omiten denominadores menores a cero). Ahora el pivote se encuentra en la fila 2 y en consecuencia deja la base. Se actualiza la tabla:
Se ha alcanzado la solución óptima con y . Notar que las variables auxiliares (r1 y r2) son no básicas en el óptimo. El valor óptimo es 21/4 (notar que el signo esta cambiado).