Está en la página 1de 7

Mtodo de la Gran M

No de Visitas:17421

Descripcin clara del Mtodo de la Gran M para resolver problemas de Programacin Lineal usando el
Simplex con restricciones de >= e =
Mientras que los Programas Lineales que solo tienen restricciones de <= se pueden resolver slo
usando variables de holgura, para aquellos programas lineales que involucren restricciones de tipo
>= e = es necesario como ya lo habamos comentado, usar variables artificiales. Dijimos tambin
que las variables de holgura tenan un significado fsico real que corresponda a las disponibilidades o
requerimientos no usados en las restricciones, pero que las variables artificiales no tenan ninguna
representacin fsica y que slo eran usadas como un comodn matemtico para ayudar en la solucin
del problema. Pues bien, cuando tenemos que usar variables artificiales al tener restricciones de >= e
= debemos usar uno de las siguientes variantes del simplex:

El Mtodo de la Gran M
El Mtodo de las dos fases

Aqu detallaremos el Mtodo de la Gran M.

Definimos la letra M como un nmero muy grande pero finito para usarlo como coeficiente de las
variables artificiales en la funcin objetivo y con sentido contrario a la misma para penalizar de
manera muy grande la existencia de las mismas en la solucin. Si el objetivo es minimizar las
variables artirficiales entraran con M positivo y si es maximizar las variables artificiales se usaran
como -M.

Ejemplo:
Min Z = 2X1 + X2 + 3X3
Sujeto a:
3X1 + X2 + 2X3 <=
X1 - 2X2 + 3X3
2X1 + 3X2 -

X3

X1 + X2 +2X3

10

>=

<=

C.N.N

1. Convertir al Modelo Estndar:


Cada restriccin debe ser convertida de inecuacin a una igualdad, agregando variables como se
requiera. Con las restricciones de tipo <=, es supremamente fcil. Simplemente se agrega una en
cada restriccin con coeficiente 1 en la misma restriccin y con coeficiente cero en la funcin
objetivo. Por ejemplo:

3X1 + X2 + 2X3 <=

10 queda:

3X1 + X2 + 2X3 + S1 =

10

Se puede leer as: el uso de la primera restriccin no puede superar la disponibilidad de 10 unidades,
lo que equivale a decir que lo usado mas lo que sobre (s1) es igual a 10. Para las restricciones de tipo
mayor o igual, la lgica es la misma, de esta manera decir:
X1 - 2X2 + 3X3

>=

Se puede leer como: el uso de la restriccin 2 debe ser como mnimo 6 unidades. Eso significa que el
uso podra ser 6.1 o tal vez 7 u 8... etc. Podramos escribirlo tambin como 6+0.1 o 6+1 o 6+2 ... o
en trminos generales:
X1 - 2X2 + 3X3

6 + S2 que es equivalente a decir: lo usado en la restriccin2es

igual al mnimo requerido que es 6 mas el adicional que esta en S2. Esto lo podemos reescribir como:
X1 - 2X2 + 3X3 - S2 =

Sin embargo para el mtodo simplex, cuando aparece esta restriccin tipo >= es necesario adicionar
una variable comodn, llamada Variable Artificial, sin ningn significado fsico, slo como artificio
matemtico. Lo sumamos al lado izquierdo de la restriccin como se muestra a continuacin:
X1 - 2X2 + 3X3 - S2 + A1 =

Al usar una variable artificial debemos penalizar la funcin objetivo all la vamos a incluir con un
coeficiente muy grande, llamado M, al estar minimizando la sumamos + .MA1.
La tercera restriccin es de tipo <=, por lo que no tenemos ningn problema con ella:
2X1 + 3X2 -

X3

<=

9 queda

2X1 + 3X2 -

X3 + S3 =

La cuarta restriccin es de tipo =. Para este tipo de restriccin simplemente adicionamos una
variable artificial al lado izquierdo:
X1 + X2 +2X3

X1 + X2 +2X3

7 queda:

+ A2 =

Recordemos: las variables de holgura quedan con coeficiente 0 en la funcin objetivo y las
variables artificiales con coeficiente M. Positiva si es minimizando o negativa si es maximizando .

En resumen el modelo queda de la siguiente manera:


Min Z = 2X1 +

X2

+ 3X3 + 0S1 + 0S2 + MA1 + 0S3 + MA2

Sujeto a:
3X1 +

X2

+ 2X3

X1 -

2X2

+ 3X3

2X1 +

3X2

X3

+ S1

=
- S2 + A1

=
+ S3

10

6
=

X1 +

X2

+ 2X3

+ A2 =

C.N.N (Condicin de No Negatividad)

2. Escribir en formato de Tabla Simplex.


Si lo escribimos como una matriz, indicando los nombres de las variables en negro queda asi:

Fig 1

Min Z
R1
R2
R3
R4

X1
2
3
1
2
1

X2
1
1
-2
3
1

X3
3
2
3
-1
2

S1
0
1
0
0
0

S2
0
0
-1
0
0

A1
M
0
1
0
0

S3
0
0
0
1
0

A2
M
0
0
0
1

RHS
10
6
9
7

Dnde X1, X2, X3 son las variables de decisin, S1, S2 y S3 son las variables de Holgura. R1, R2, R3,
R4 son las restricciones y RHS son las disponibilidades o Requerimientos de las restricciones,
(RHS= Right Hand Side: "el lado derecho" es decir los valores numricos).

3. Definir la Variable que entra

Recordemos que tenemos un grupo de variables que llamamos base a las que tenemos en cuenta en
cada iteracin para dar la solucin, las dems variables las llamamos No Bsicas y se se toman con
valor cero (de manera anloga a cuando resolvemos un sistema de ecuaciones que tiene ms
variables que ecuaciones, tenemos que hacer cierta cantidad de estas variables iguales a cero).

En la primera iteracin la regla para escoger las variables que estarn en la base es la siguiente:
-Si hay variables de decisin y de holgura, se toma la de holgura.
-Si hay variables de decisin, de holgura y artificiales se toma la variable artificial.
-Si hay variables de decisin y artificiales se toma la variable artificial.

Por esta razn para la primera restriccin dnde hay variables de decisin (Xi) y la de holgura S1,
tomamos la S1 para la base, en la segunda restriccin hay de holgura, de decisin y artificial,

tomamos la artificial A1, en la tercera hay de decisin y de holgura, tomamos la de holgura S3 y por
ltimo en la cuarta restriccin hay de decisin y artificial, por lo que tomamos la A2 para la base.
Todas las dems se asumen en la primera iteracin con valor cero.

Llenar la tabla inicial. Tal como se ve en la tabla de abajo. Hay muchos formatos de tablas, pero
en esencia son el mismo. Esta el listado de variables que se tienen en la base (en la segunda columna
rotulada como base), en la primera columna estn los coeficientes de las variables bsicas, luego
vienen las restricciones con sus coeficientes, las disponibilidades/requerimientos de las restricciones
en la columna RHS, una columna vaca llamada Theta que ya llenaremos. Las dos ultimas filas son
para determinar que variable va a entrar a la base. Algunas personas omiten la fila Z. Realmente no
es necesaria, slo para dar un poco ms de claridad a la iteracin.

La fila Z es el resultado de la suma del producto de la columna 'coef' y de cada columna en la


restriccin, as:
0*3+M*1

+ 0*2 + M*1

= 2M

0 * 1 + M * (-2) + 0*3 + M*1

= -M

0*2+M*3

= 5M ...de igual manera para las otras 5 columnas.

+ 0 *-1 + M*2

La fila Cj-Zj es el resultado de restar el coeficiente de la funcin objetivo (la segunda fila de negro)
con el valor de Z que acabamos de calcular.
2-2M = 2-M (evidente!)
1-(-M) = 1+M... etc.

En este momento nos hacemos la siguiente pregunta: cul variable al entrar a la base hace que la funcin
objetivo disminuya ms (porque estamos minimizando)? O en otras palabras, cul es el valor ms negativo
de Cj-Zj? Recordemos que M representa un nmero finito, muy, muy grande. Rapidamente nos damos cuenta
que corresponde a 3-5M, puesto que de todas es la que tiene el valor negativo de M con mayor valor absoluto. Si
no lo ve tan rpido, haga lo siguiente: reemplace M por un valor grande positivo en la fila Cj -Zj, digamos por
1000.000, notar de inmediato que el valor ms negativo esta en la columna respectiva a la variable X3. Por lo
tanto sta variable debe entrar a reemplazar a otra variable en la base... a cul??

Fig 2

X1

X2

X3

S1

S2

A1

S3

A2

Coef Base
2
1
3
0 S1
3
1
2
M A1
1
-2
3
0 S3
2
3
-1
M A2
1
1
2
Z
2M
-M 5M
Cj- Zj 2-2M 1+M 3-5M
Entra

0
1
0
0
0
0
0

0
0
-1
0
0
-M
M

M
0
1
0
0
M
0

0
0
0
1
0
0
0

M RHS Theta
0 10 5.00
0
6 2.00 Sale
0
9
M
1
7 3.50
M 13M
0

3. Definir la Variable que Sale


Para establecer que variable debe salir de la base, hacemos un cociente entre la disponibilidad (RHS)
y la columna de la variable que entra, en nuestro caso, acabamos de decir que es la variable X3. Este
cociente lo vamos a llamar Theta. Algunos libros lo llaman 'ratio'.
10 /2 = 5
6/3 =2
9 / -1 = ... bueno, en caso que dividamos por un valor negativo, no lo vamos a tener en cuenta para salir, por
lo que lo rotulamos como M.
7/2 = 3.5
La variable que ms nos restringe, por lo tanto la que el valor de theta es menor (pero positivo) es de 2,
correspondiendo a la variable A1. Por lo tanto sale A1 y entra X3.

A la interseccin entre la columna de la variable que entra y de la fila de la variable que sale, la
llamamos pivote. Sobre ella se emplear el mtodo de Gauss-Jordan. Aqu siempre he sealado el
pivote de color verde. En la fig 2 corresponde al valor 3.

4. Iteracin: Gauss-Jordan
Luego que se ha encontrado que variable sale de la base, y cual entra y que pr lo tanto ya tenemos
una celda pivote, es necesario realizar la eliminacin gaussiana. Ello lo podemos resumir como:
* Convertir la celda pivote en 1, dividiendo toda la fila por ella misma
* Convertir todas las celdas por encima y por debajo de la celda pivote en cero.
Vamos paso por paso: Convertir la celda pivote en 1.
Llenamos un formato vacio simplex, la fila que contiene el pivote la vamos a pasar al nuevo formato convertida
mediante la siguiente operacin: dividimos toda la fila por el valor del pivote. (Para convertir el pivote en 1).
1/3 = 0.33
-2/3 = -0.67
3/3 = 1(Pivote)
0/3= 0
-1/3= -0.33
1/3=0.33
0/3=0
0/3=0
6/3= 2 (En la columna del RHS)

Y la pasamos al nuevo formato (Fig3).


Esta nueva fila que hemos calculado va a servir para convertir las demas celdas por la columna del
pivote en cero, como es el requisito del mtodo. Fijemonos un momento en la fig 2, en el pivote en
verde, que contiene el 3, precisamente el que acabamos de convertir en 1. Por encima encontramos
el 2 y por debajo encontramos el -1 y el 2. Estos valores son los que debemos convertir en ceros.
Para ello hacemos operaciones entre filas y columnas de la siguiente manera (s recuerda bien los
detalles de esto, de sus clases de algebra lineal sientase libre de saltar esta explicacin):
Multiplicamos la fila que contenia el pivote por el opuesto de cada nmero que deseamos eliminar y
se lo sumamos a la fila que deseamos convertir. Ej
Para la primera fila que contiene el 2 que deseamos eliminar multiplicamos la fila pivote por -2 y se la sumamos
asi:

La fila pivote que qued convertida en esto:


0.33 -0.67 1 0 -0.33 0.33 0 0 2
La multiplicamos por -2 y nos da:
-0.67 1.33 -2 0 0.67 -0.67 0 0 -4
El valor anterior lo sumamos componente a componente a la fila en la que queremos hacer la
eliminacin: que es la siguinte:
3 1 2 1 0 0 0 0 10
Y el resultado es:
2.33 2.33 0 1 0.67 -0.66 0 0 6
Este valor es el que copiamos en el nuevo formato en la fig 3 en la fila correspondiente, la primera.
Repetimos este procedimiento para la fila 3 y la fila 4. Con ello ya llenamos todo el formato.

5. Prueba de Optimidad:

La prueba de optimidad se debe hacer cada vez que se evalua si hay una variable que debe entrar a
la base. Y es sencillamente lo siguiente. Se hace la pregunta: Hay alguna variable que al entrar
mejora la solucin? Ello lo vemos en la fila Cj-Zj. Si al calcular esta fila an hay valores negativos y
estamos minimizando, entonces es posible mejorar an ms la solucin. Lo mismo para el caso de la
maximizacin. Si hay valores positivos en la fila Cj-Zj y estamos maximizando, an no hemos llegado
al ptimo.

En la fig 2 nos damos cuenta que haban todavia valores negativos en Cj-Zj, por lo tanto no se haba
terminado, ahora en la fig 3, an quedan valores negativos, el ms negativo de ellos esta en la
variable X2 por lo tanto debe entrar.

Continuando el algoritmo en la fig3 evaluamos que la variable A2 debe salir, la reemplazamos en el


tablero de la figura 4. Hacemos gauss-jordan, luego calculamos Z y calculamos Cj-Zj.

Fig 3.

X1
X2
Coef Base
2
1
0 S1
2.33
2.33
3 X3
0.33
-0.67
0 S3
2.33
2.33
M A2
0.33
2.33
Z 1+0.33M -2+2.33M
Cj- Zj 1-0.33M 3-2.33M
Entra

X3
3
0.00
1.00
0.00
0.00
3
0

S1
S2
A1 S3 A2
0
0
M 0 M RHS Theta
1.00
0.67
-0.67 0 0
6 2.57
0.00
-0.33
0.33 0 0
2
M
0.00
-0.33
0.33 1 0
11 4.71
0.00
0.67
-0.67 0 1
3 1.29 Sale
0 -1+0.66M 1-0.66M 0 M 6+3M
0 1-0.66M -1+1.66M 0 0

Aqu en el tablero de la figura 4, evaluamos si hay algun valor negativo en la fila Cj-Zj, nos damos
cuenta que no, por lo que no hay ninguna variable que al entrar mejore la solucin.

Hemos llegado al ptimo: La solucin es Z=9.8571 X1=0 (Por que no estaba en la base.) X2= 1.29,
X3=2.86

Fig 4

Coef Base
0 S1
3 X3
0 S3
1 X2
Z
Cj- Zj

X1
2
2.00
0.43
2.00
0.14
1.43
0.57

X2
1
0.00
0.00
0.00
1.00
1.00
0.00

X3
3
0.00
1.00
0.00
0.00
3.00
0.00

S1
0
1.00
0.00
0.00
0.00
0.00
0.00

S2
A1
0
M
0.00
0.00
-0.14
0.14
-1.00
1.00
0.29
-0.29
-0.14
0.14
0.14 M+0.62

S3
A2
0
M
RHS Theta
0.00 -1.00
3.00
0.00
0.29
2.86
1.00 -1.00
8.00
0.00
0.43
1.29
0.00
1.29 9.8571
0.00 M+2.43

Nota: al escribir esto he tenido la duda de si explico demasiado bsico para mis lectores o si por el
contrario asumo cosas y no explico lo suficiente. Usted tiene la palabra en los comentarios .

También podría gustarte