1-Metodo Simplex - Teoria
1-Metodo Simplex - Teoria
1-Metodo Simplex - Teoria
EL MÉTODO SIMPLEX
Hasta ahora, la única forma que conocemos de resolver un problema de programación lineal,
es el método gráfico. Este método es bastante engorroso cuando aumenta el número de restricciones
e impracticable en más de dos dimensiones. Para resolver estos problemas, se aplica el método
simplex. Este método se puede aplicar a problemas de cualquier tamaño. (Si bien el ejemplo que
veremos es de dos variables con tres restricciones, su generalización es inmediata).
Problema:
La empresa Seventeen SRL se dedica a la fabricación de manteles de mesa. Fabrica dos
2
modelos, el redondo y el rectangular. Cada uno consume 2 y 3 m de tela, respectivamente. Además
deben ser cortados y cosidos a mano, tarea que lleva una hora para los manteles rectangulares y dos
para los redondos. Por último, a los manteles rectangulares se les deben colocar cuatro esquineros de
refuerzo.
Semanalmente se pueden conseguir 600 m2 de tela, 600 esquineros y 500 horas de corte y
costura. Los márgenes de ganancias son de $8 para los manteles redondos y $10 para los
rectangulares.
Resolución:
2 X1 + 3 X2 ≤ 600
4 X2 ≤ 600
2 X1 + X2 ≤ 500
Z(máx) = 8 X1 + 10 X2
Para aplicar el método Simplex, el primer paso consiste en transformar las desigualdades en
igualdades. Por ejemplo, la primera restricción dice que 2 X1 + 3 X2 es menor o igual que 600. Eso es
lo mismo que decir que 2 X1 + 3 X2 mas una cantidad que puede ser cero o mayor que cero, es igual
a 600. Si esta cantidad es positiva o cero, entonces puede asignársele su valor a una variable
cumpliendo con las condiciones de no negatividad. Por una convención, se le asigna a esta variable el
nombre de X3 (O el subíndice que correspondiera, según la cantidad de variables del problema).
2 X1 + 3 X2 + X3 =600
Esto no cambia las condiciones del problema (que sigue siendo el mismo), ya que si, por
ejemplo, la suma 2 X1 + 3 X2 resulta ser 480, el Simplex asignará los 120 restantes a la variable X3.
Si intentara asignar un valor de 700 a la suma mencionada, el Simplex no encontrará un valor para
darle a la variable X3 (ya que no puede darle valores negativos) y nos dirá que no existe una solución
-1-
METODO SIMPLEX INVESTIGACION OPERATIVA
válida para el problema. Podemos ver, entonces, que la variable X3 nos va a indicar cuántos metros
2
cuadrados de tela quedan sin utilizar (o sea, cuantos m faltan usar para llegar al límite máximo de
600). A este tipo de variables se las denomina variables slacks, o de holgura.
Se denomina variable slack o de holgura a la variable que se debe sumar a uno de los
miembros de una restricción para que ambos miembros sean iguales.
2 X1 + 3 X2 + X3 = 600
4 X2 + X4 = 600
2 X1 + X2 + X5 = 500
Z(máx) = 8 X1 + 10 X2 + 0 X3 + 0 X4 + 0 X5
Se dice que un problema de programación lineal está escrito en su forma estándar cuando
todas sus restricciones son igualdades y todos los segundos miembros de dichas
ecuaciones son constantes.
Para armar la tabla inicial, se debe comenzar por la matriz A. Esta matriz tiene tantas filas
como restricciones tenga el problema, y tantas columnas como variables haya, incluidas las slacks.
Los valores de cada elemento de la matriz serán los coeficientes de cada variable (columna de la
matriz) en cada restricción (fila de la matriz).
En nuestro problema, la matriz A quedaría expresada así:
La matriz A tiene tantas filas como restricciones haya en el problema y tantas columnas
como variables haya. Se forma con los coeficientes de cada variable (columna) en cada
restricción (fila).
Esta matriz debe incluir a la matriz identidad de orden N, siendo N la cantidad de restricciones
del problema. Siempre habrá más columnas que filas en A, ya que en el paso anterior hemos
-2-
METODO SIMPLEX INVESTIGACION OPERATIVA
agregado una variable slack por cada restricción. La diferencia entre la cantidad de columnas y de filas
será, entonces, la cantidad de variables reales del problema original. (En este caso, 2). Las columnas
que forman la matriz identidad no necesitan estar ordenadas (En este caso lo están).
En este caso, por ser todas las restricciones del problema de menor o igual, la matriz identidad
estará formada por las columnas de las variables slack. Más adelante, veremos qué sucede cuando
esto no es así. (En el apartado Variables Artificiales).
La matriz A pasa a formar la parte central o estructura de la tabla, que se arma así:
En la columna X se deben colocar los nombres de las variables correspondientes a cada fila.
(Las que tienen coeficiente 1 en esa fila de la matriz identidad).
En la columna C y sobre la estructura de la tabla, se colocan los coeficientes en el funcional de
las variables asociadas a cada fila o columna.
-3-
METODO SIMPLEX INVESTIGACION OPERATIVA
La tabla así armada representa un vértice del poliedro del problema. Este vértice es el
determinado por la intersección de las rectas asociadas a las variables que no están representadas
por la base canónica. (Esta base está formada por las variables incluidas en la matriz identidad, o sea
cuyas columnas tienen como coeficientes uno en la intersección con su propia fila y cero en las
demás). En este problema, las variables que no están en la base canónica son X1 y X2. En dicho
vértice, los valores de estas variables son iguales a cero (no se produce ningún mantel), y las demás
variables tienen los valores indicados en la columna B (X3 = 600; X4 = 600 y X5 = 500; o sea sobra la
totalidad de los recursos).
Las variables que forman la base canónica se indican en la columna X de la tabla. Son las
únicas variables que pueden tomar un valor distinto de cero; y su valor está indicado en la
columna B.
El valor del funcional en este vértice puede calcularse multiplicando el valor de cada variable
(Columna B) por su coeficiente en el funcional (Columna C). (Aquí: 0 . 600 + 0 . 600 + 0 . 500) Las
variables que no están en la columna X no influyen en el funcional, ya que tienen valor cero.
En este vértice, el funcional vale cero, ya que no se fabrica ningún producto (X1 y X2 = 0) y
está sobrando la totalidad de los recursos (X3 = 600, X4 = 600 y X5 = 500).
El valor contenido en cada coeficiente de la tabla nos indica en cuanto aumentaría o disminuiría
el valor de la variable correspondiente a dicha fila de la tabla por cada unidad que disminuyera o
aumentara la variable indicada en dicha columna. Por ejemplo, si quisiera darle valor a X1 (O sea,
fabricar un mantel redondo), debería disminuir en 2 a X3 (2 m2 de tela), en 0 a X4 (no utiliza
esquineros) y en 2 a X5 (Horas de costura). Estos coeficientes se denominan coeficientes
tecnológicos.
Entonces puedo saber cómo afectaría a las variables que actualmente influyen en el funcional,
aumentar en una unidad el valor de las variables correspondientes a cada columna. El resultado de
este cálculo, lo coloco en la parte inferior de la tabla (fila Zj).
-4-
METODO SIMPLEX INVESTIGACION OPERATIVA
Pero si aumento el valor de alguna variable, para saber el cambio real en el funcional, debo
restar al valor obtenido anteriormente, el coeficiente en el funcional de la variable representada por
cada columna. Este nuevo resultado (Zj – Cj) me indica en cuanto disminuirá el funcional por cada
unidad que aumente la variable correspondiente a cada columna.
El valor de los Zj – Cj indica cuánto disminuirá el funcional por cada unidad que aumente la
variable indicada en dicha columna.
En este caso, aumentar en una unidad la variable X1 hará que el funcional disminuya –8 (o
sea, que aumente 8) y producir una unidad más de X2 generará un aumento de 10 (Aquí parece obvio,
pero luego no será así). Con estos datos, sabemos que será mejor aumentar en una unidad el valor de
X2 que el de X1, ya generará una mayor ganancia. (Recordemos que el objetivo de este problema es
encontrar los valores de las variables que maximicen las ganancias).
Pero el simplex sólo puede analizar vértices. (Además, sabemos que el óptimo estará en un
vértice). Entonces, si X2 va a tomar valor, es preciso que una de las variables que actualmente tienen
valor, tome valor cero. El próximo vértice a analizar será la intersección de la recta X1 = 0 y la recta
correspondiente a la variable que pasa a tomar valor cero. (Y sale, entonces de la base canónica).
Para saber cuál es la variable que toma valor cero, debemos calcular los cocientes entre el valor actual
de cada variable (Columna B) y los coeficientes que indican en cuanto disminuye el valor de las
variables de la base por cada unidad que aumenta la variable que pasa a tomar valor (En este caso,
columna A2).
-5-
METODO SIMPLEX INVESTIGACION OPERATIVA
Estos cocientes (también llamados θ o titas) nos indican que podemos aumentar X2 hasta 200
para que X3 valga cero; hasta 150 para que X4 valga cero o hasta 500 para que X5 valga cero.
Pero aumentar X2 va a hacer variar a las tres variables. Entonces debemos elegir el menor de
los cocientes, ya que elegir uno mayor causará que las variables que tenían cocientes menores tomen
valores negativos, lo cual viola las condiciones de no negatividad del problema.
Al elegir qué variable va a salir de la base, debe optarse SIEMPRE por el tita positivo más
pequeño, ya que elegir uno mayor nos llevará fuera del poliedro. Nunca deben tenerse en
cuenta los titas negativos.
Entonces, X2 debe tomar valor 150, que es cuando X4 pasa a valer cero. Esto significa que se
van a fabricar manteles rectangulares hasta que se acaben los esquineros, que serán el primer
recurso en agotarse. X4, entonces, saldrá de la base y su lugar será ocupado por X2. La tabla
correspondiente al nuevo vértice comienza a completarse así:
Para calcular los valores de la estructura de la tabla debemos aplicar el método del pivote.
En este caso, el pivote será X4 ∩ X2 = 4. El primer paso consiste en dividir todos los elementos
de la fila en la que está el pivote por el valor de éste; para que quede 1 en el lugar del pivote.
-6-
METODO SIMPLEX INVESTIGACION OPERATIVA
Aquí podemos ver que X2 tomará valor 150, que es lo que habíamos predicho. En el segundo
paso, se debe formar en la tabla del simplex un rectángulo entre el elemento que quiero transformar y
el pivote. Por ejemplo, para el B3, el rectángulo será el siguiente:
Para calcular el nuevo valor del elemento; se debe restar al valor anterior el producto de
las diagonales del rectángulo dividido por el pivote.
Para el resto de los valores se procede análogamente hasta completar la tabla. En realidad, las
columnas de las variables que están en la base (Incluida la columna del pivote), deben formar siempre
-7-
METODO SIMPLEX INVESTIGACION OPERATIVA
la base canónica, de manera que no es necesario pivotear sus elementos, con lo cual los cálculos se
simplifican notablemente.
El nuevo valor del funcional puede calcularse multiplicando los Ck por los Bk en la nueva tabla;
o restando al valor anterior del funcional el producto del Zj-Cj de la variable que entra (recordemos que
nos indicaba cuánto aumentaría el funcional por cada unidad que aumente la variable) por el tita de la
variable que sale (cuántas unidades podía aumentar la variable). Obviamente, ambos resultados
deben ser iguales.
Esta tabla representa un vértice distinto del poliedro, en donde no se fabrican manteles
redondos (X1=0) y se fabrican 150 manteles rectangulares (X2=150), lo que deja una ganancia de
$1500. De tela sobran 150 m2 (B3); sobran 350 horas de costura (B5); y los esquineros se utilizan
todos (B4 = 0). Para ver si este vértice es óptimo, debemos calcular los Zj-Cj. Mientras alguno de éstos
sea negativo significa que la variable correspondiente puede ingresar a la base y hacer aumentar el
valor del funcional.
Una tabla de Simplex de maximización es óptima cuando todos sus Zj-Cj son positivos o
cero. Análogamente, una tabla de Simplex de minimización es óptima cuando todos sus
Zj-Cj son negativos o cero.
Una vez determinada la variable que entrará a la base (la que tenga el Zj-Cj negativo de mayor
valor absoluto), se calculan los θ, para ver cuál es la variable que saldrá de la base:
En este caso vemos que uno de los elementos de la columna de la variable que quiere entrar a
la base da cero; con lo cual no se puede realizar la división. Este cero en el denominador indica que se
-8-
METODO SIMPLEX INVESTIGACION OPERATIVA
podría aumentar X1 hasta el infinito y X2 nunca tomará valor cero. Si nunca toma valor cero, quiere
decir que nunca se llegará a la intersección con dicha recta, o sea que no existe el vértice de
intersección de ambas rectas (X4=0 y X2=0). Si no hay vértice, no nos interesa analizar dicha variable,
en esta tabla. En este caso, como valor de Tita (θ), se indica infinito(∞).
Entonces, en el próximo paso X1 entrará a la base (es el que tiene el Zj-Cj negativo de mayor
valor absoluto), y X3 saldrá de la misma (Es el que tiene el menor Tita). El pivote será el elemento
ubicado en la intersección de ambas variables (A13, o sea 2). La siguiente tabla queda:
En este caso, uno de los posibles denominadores es negativo. Tampoco debe tenerse en
cuenta esta variable, ya que nos está indicando que para que X1 llegue a cero, entonces X4 debe
disminuir su valor. Pero como X4 vale cero, no puede disminuir más su valor, ya que un valor negativo
es inconcebible. Sólo se deben calcular entonces, los titas cuyo denominador sea positivo. (El
numerador siempre lo será, ya que un Bk nunca puede ser negativo.) En el caso de que el Bk fuera
cero (lo cual es válido); si el denominador es positivo, se efectúa la división (Tita = 0). Si el
denominador es negativo, entonces no se calcula este tita. Procedemos a iterar a la siguiente tabla (en
donde entrará X4 y saldrá X5).
Aquí, todos los Zj-Cj de las variables que no están en la base son positivos; o sea que cualquier
variable que ingrese a la base hará disminuir al funcional. Por lo tanto, hemos hallado el punto óptimo.
En este punto, se fabrican 225 manteles redondos y 50 manteles rectangulares, con una ganancia de
$2300. La tela y las horas de trabajo se consumen en su totalidad y sobran 400 esquineros.
-9-
METODO SIMPLEX INVESTIGACION OPERATIVA
RESOLUCIÓN GRÁFICA
Esta es la resolución gráfica del ejercicio. La primera tabla, en donde X1 y X2 valen cero y
sobra la totalidad de los recursos, es el punto A (el origen de coordenadas). Luego se pasa al punto B,
donde X1 vale cero y X2 vale 150. La traza del funcional que pasa por este punto, ya no pasa por el
origen, entonces su valor ya es distinto de cero (es 1500).
El siguiente es el punto C, la intersección de X4 = 0 y X3 = 0. Las demás variables valen 75
(X1), 150 (X2) y 200 (X5). La traza del funcional continúa alejándose del origen y ahora vale 2100. La
tabla óptima corresponde al punto D, donde están saturados los recursos 1 y 3 (correspondientes a X2
y X5). Este es el punto óptimo, ya que si pasáramos al siguiente punto (E), el funcional retrocedería.
Propuesta:
En este caso, hubiera sido más rápido si en la primer tabla hubiéramos hecho entrar a X1 en
lugar de X2, ya que nos hubiéramos ahorrado una tabla en el camino al óptimo. El simplex hubiera
hecho el camino A-E-D; en lugar de A-B-C-D.
- 10 -
METODO SIMPLEX INVESTIGACION OPERATIVA
VARIABLES ARTIFICIALES
6 X1 + 5 X2 ≤ 30
X2 ≥ 1
-2 X1 + 2 X2 ≤ 6
Z(máx) = 5 X1 + 8 X2
Lo primero que debemos hacer es transformar las inecuaciones en igualdades. Para lograr
esto, se debe sumar al menor miembro de cada inecuación una variable que represente la diferencia
entre ambos. En las restricciones de menor o igual (la primera y la tercera) se debe agregar una
variable adicional (llamada slack o de holgura) que indica cuánto le falta a la suma algebraica que
contiene a las variables reales ( X1 y X2) para alcanzar el valor del término independiente (En este
caso 30 y 6). En las restricciones de mayor o igual, la variable slack se debe sumar al termino
independiente para alcanzar el valor de las variables. El problema quedaría expresado como:
6 X1 + 5 X2 + X3 = 30
X2 = 1 + X4
-2 X1 + 2 X2 + X5 = 6
Z(máx) = 5 X1 + 8 X2 + 0 X3 + 0 X4 + 0 X5
Pero preciso tener todas las variables en el primer miembro, y en la segunda ecuación X4 está
en el segundo. Entonces:
6 X1 + 5 X2 + X3 =30
X2 - X4 =1
-2X1 + 2 X2 + X5 = 6
Z(máx) = 5 X1 + 8 X2 + 0 X3 + 0 X4 + 0 X5
- 11 -
METODO SIMPLEX INVESTIGACION OPERATIVA
Para armar la tabla inicial, debemos encontrar tres variables cuyos coeficientes en la tabla
inicial formen la base canónica ([1,0,0], [0,1,0], [0,0,1]). Dos de esas variables pueden ser las slacks
X3 y X5. Pero no podemos utilizar X4, ya que sus coeficientes son [0,-1,0] y no [0,1,0]. Entonces
debemos agregar una variable que sólo aparezca sumando en la segunda ecuación que quedaría
expresada como:
X2 – X4 + µ1 = 1
La presencia de esta variable implica que pueda colocar menos de un par de parlantes por día,
o sea que X2 pueda tomar un valor menor que uno ( 0,5 - 0 + 0,5 = 1 cumple la igualdad), algo que
viola claramente la segunda restricción del problema. Esta variable se llama variable artificial, y debe
llevarse su valor a cero para arribar a una solución factible. Para disminuir su valor, agregamos la
variable artificial restando en el funcional, multiplicada por una constante muy grande. (Se resta porque
es un problema de maximización. Si fuera una minimización, esta constante deberá sumarse). De esta
forma, el funcional tratará de reducir a cero el valor de µ1. El problema completo, listo para armar la
tabla inicial queda:
6 X1 + 5 X2 + X3 = 30
X2 - X4 + µ1 = 1
-2X1 + 2 X2 + X5 =6
Z(máx) = 5 X1 + 8 X2 + 0 X3 + 0 X4 + 0 X5 – Mµ1
En un problema con restricciones de ≥ se debe agregar una variable artificial por cada
restricción de este tipo, para poder formar la base canónica.
C X B A1 A2 A3 A4 A5 A6
0 X3 30 6 5 1 0 0 0
-M µ1 1 0 1 0 -1 0 1
0 X5 6 -2 2 0 0 1 0
Z = -M -5 -M-8 0 M 0 0
Debemos hacer ingresar a la base a la variable con el Zj-Cj negativo de mayor valor absoluto.
(Porque estamos maximizando, si estuviéramos minimizando deberíamos elegir el positivo de mayor
valor absoluto) Esto es, X2, ya que M es superior a cualquier otro valor. Es razonable que el simplex
elija X2, ya que es la única variable que al aumentar hará disminuir el valor de µ1 (Es la única con un
valor positivo en la fila de µ1), y µ1 es la variable que más afecta al funcional. Al calcular los titas,
vemos que la variable que sale es µ1 (Podría ser cualquier otra).
- 12 -
METODO SIMPLEX INVESTIGACION OPERATIVA
5 8 0 0 0 -M
C X B A1 A2 A3 A4 A5 A6 θ
0 X3 30 6 5 1 0 0 0 6
-M µ1 1 0 1 0 -1 0 1 1
0 X5 6 -2 2 0 0 1 0 3
Z = -M -5 -M-8 0 M 0 0
5 8 0 0 0 -M
C X B A1 A2 A3 A4 A5 A6 θ
0 X3 25 6 0 1 5 0 -5 5
8 X2 1 0 1 0 -1 0 1 -
0 X5 4 -2 0 0 2 1 -2 2
Z=8 -5 0 0 -8 0 M-8
Al llegar a esta segunda tabla, vemos dos cosas: La primera es que las columnas A4 y A6
tienen coeficientes con el mismo valor absoluto, pero distintos signos. Esto sucede porque los
coeficientes de las variables asociadas a estas columnas (X4 y µ1) en las restricciones iniciales del
problema son iguales con signos opuestos; y seguirá ocurriendo lo mismo a lo largo de todo el
desarrollo del problema.
El otro aspecto a resaltar es que el único lugar de la tabla en el que quedó la constante M es
restando en el C6, o sea sumando en el Z6-C6. Si M está sumando aquí y su valor es mayor a
cualquier otro coeficiente del problema, entonces Z6-C6 siempre será positivo, y µ1 nunca volverá a
entrar en la base (o sea, a tener valor). Entonces podemos omitir esta columna a partir de la próxima
tabla del problema, que sigue desarrollándose normalmente hasta alcanzar el óptimo.
Una vez que una variable artificial salió de la base, puedo estar seguro de que no volverá a
entrar, por lo que se puede omitir su columna a partir de la próxima iteración.(*)
5 8 0 0 0
C X B A1 A2 A3 A4 A5 θ
0 X3 15 11 0 1 0 -5/2 15/11
8 X2 3 -1 1 0 0 1/2 -
0 X4 2 -1 0 0 1 1/2 -
Z = 24 -13 0 0 0 4
- 13 -
METODO SIMPLEX INVESTIGACION OPERATIVA
5 8 0 0 0
C X B A1 A2 A3 A4 A5
0 X1 15/11 1 0 1/11 0 -5/22
8 X2 48/11 0 1 1/11 0 3/11
0 X4 37/11 0 0 1/11 1 3/11
Z = 459/11 0 0 13/11 0 23/22
(*) Esto es válido si el problema tiene alguna solución factible. La variable artificial que salió de la base podría volver a entrar
si el problema no fuera factible. Ver apartado INCOMPATIBLE.
- 14 -
METODO SIMPLEX INVESTIGACION OPERATIVA
RESOLUCIÓN GRÁFICA
En la tabla inicial del problema, tenemos en la base a X3, µ1 y X5. Eso quiere decir que las
demás variables (X1, X2 y X4) valen cero. En esa tabla, no se coloca ni se quita ningún parlante,
sobran los 30 minutos de tiempo y los 6 parlantes que había en stock. Sin embargo vemos que no se
cumple con la restricción de instalar al menos un parlante (X2 ≥ 1), ya que X2 = 0. La diferencia entre
el valor actual y el mínimo válido de la restricción (Cuánto “le falta” para cumplirla”) es el valor de
µ1(1).
Ahora bien, viendo el gráfico, vemos que no hay ningún punto del plano en que esto suceda
(Particularmente, X2 y X4 nunca pueden ser cero simultáneamente).
Esto es porque en el punto en el que está esta tabla, µ1 tiene valor y eso, como dijimos, no
tiene significado en el problema real. Al iterar a la segunda tabla, vemos que X1 y X4 valen cero, lo
que quiere decir que estamos en el punto “A”, luego X4 toma valor y X5 pasa a valer cero (Punto “B”).
Por último, ingresa a la base X1, reemplazando a X5. Esto sucede en el punto “C”, que es el
óptimo.
El principal obstáculo para aplicar el método explicado arriba en los programas de resolución
de problemas lineales (como el LINDO) consiste en determinar el valor de M. Si se elige un valor
demasiado pequeño, es posible que el simplex no elimine a las variables artificiales aunque pudiera
hacerlo y las deje en la solución optima, la cual no tendría significado real. Si en cambio, se elige un
valor demasiado grande, se perdería precisión al incluir en el mismo funcional coeficientes muy
grandes (la M de las variables artificiales) y muy pequeños (los de las variables reales); para el simplex
sería igualmente óptima cualquier solución que no incluya a las variables artificiales.
Es por eso que los programas informáticos utilizan el método de las dos etapas. La primera
etapa consiste en plantear el modelo con las variables artificiales que sean necesarias, pero con el
- 15 -
METODO SIMPLEX INVESTIGACION OPERATIVA
funcional minimizando la suma de todas las variables artificiales del problema. El problema antes
planteado, quedaría así:
6 X1 + 5X2+ X3 = 30
X2 - X4 + µ1 = 1
-2 X1+ 2 X2 + X5 =6
Z(mín.) = µ1
Si el funcional del óptimo es igual a cero, quiere decir que se está en un punto que cumple
todas las restricciones del problema en el que, además, las variables artificiales valen cero. Entonces,
es un punto en el que se cumplen las restricciones originales del problema. A partir de este punto,
entonces, se puede proseguir con la segunda etapa, que consiste en cambiar el funcional por el
original del problema y continuar aplicando el método a partir del último vértice hallado en la primera.
Si en la primera fase del problema no se llegara a un funcional igual a cero, quiere decir que no
hay una solución válida para el mismo (ver caso INCOMPATIBLE).
Se te pide, entonces, que resuelvas el problema visto anteriormente por el método de dos
etapas (Naturalmente, deberías llegar a la misma solución)
X2 ≤ 3
4 X1 + 6 X2 ≤ 24
2 X1 + 2 X2 ≥ 0
Z(máx) = -2 X1 + 4 X2
X2 + X3 =3
4 X1 + 6 X2 + X4 = 24
2 X1 + 2 X2 – X5 + µ = 0
Z(máx) = -2 X1 + 4 x2 – M µ
Sin embargo, en la última restricción (la que genera la variable artificial), vemos que el término
independiente es cero. En este caso, podemos multiplicar ambos miembros por –1 y dar vuelta la
restricción. (No podríamos hacer esto con un término independiente distinto de cero, ya que quedaría
la slack de esa ecuación con un valor negativo).
X2 ≤ 3
4 X1 + 6 X2 ≤ 24
-2 X1 - 2 X2 ≤ 0
Z(máx) = -2 X1 + 4 X2
- 16 -
METODO SIMPLEX INVESTIGACION OPERATIVA
Entonces, se puede resolver el problema (que es el mismo, ya que lo único que hicimos fue
multiplicar una restricción por una constante), sin necesidad de recurrir a la variables artificiales. Esto
sólo es posible cuando el término independiente de la restricción es igual a cero.
- 17 -
METODO SIMPLEX INVESTIGACION OPERATIVA
CASOS PARTICULARES
PUNTO DEGENERADO
X1 + 2 X2 ≤ 24
2 X1 + X2 ≤ 30
X1 ≤ 15
Z(máx) = 6 X1 + 4 X2
X1 + 2 X2 + X3 = 24
2 X1 + X2 + X4 = 30
X1 + X5 = 15
Z(máx) = 6 X1 + 4 X2
6 4 0 0 0
C X B A1 A2 A3 A4 A5 θ
0 X3 24 1 2 1 0 0 24
0 X4 30 2 1 0 1 0 15
0 X5 15 1 0 0 0 1 15
Z=0 -6 -4 0 0 0
Aquí vemos que hay dos titas positivos mínimos ¿Cuál de ellos es el que se debe elegir? Si
recordamos el significado de tita, este es el valor que va a tomar la variable que entra a la base (X1)
en el nuevo vértice, o dicho de otro modo, a qué distancia está el nuevo vértice del actual. Si los dos
puntos están a la misma distancia, sobre la misma recta, quiere decir que son el mismo punto o sea,
en ese punto se intersectan las rectas de la variable que quiere entrar a la base(X1) y las de las
variables cuyo tita es igual (X4 y X5). Matemáticamente, ese punto está formado por tres vértices
diferentes (Las intersecciones de X1 con X4, X4 con X5 y X1 con X5). A esta acumulación de vértices
en un mismo punto se la denomina punto degenerado o sobredefinido.
Ya que cualquiera de los dos vértices nos va a conducir al mismo punto, podemos elegir
cualquiera de ambos. Elegimos (X5) para que el pivote sea 1, y eso nos simplifique los cálculos.
(Analizando el gráfico, se puede ver que hubiéramos llegado antes al óptimo eligiendo X4).
- 18 -
METODO SIMPLEX INVESTIGACION OPERATIVA
6 4 0 0 0
C X B A1 A2 A3 A4 A5 θ
0 X3 9 0 2 1 0 -1 9/2
0 X4 0 0 1 0 1 -2 0
6 X1 15 1 0 0 0 1 ∞
Z = 90 0 -4 0 0 6
En la nueva tabla vemos que X4 está en la base y tiene valor cero. Esto es lógico, ya que el
punto en el que estamos pertenece a la recta X4=0.
En una tabla de simplex se reconoce un punto degenerado porque una de las variables
que está en la base tiene valor nulo. (Bk = 0).
En este punto hay tres variables con valor cero. Al calcular los titas, vemos que uno de ellos
tiene valor cero ¿Qué significa esto? Que para llegar al próximo vértice (intersección de X4 con X5) se
debe recorrer una distancia nula. Aunque matemáticamente sean el mismo punto, el simplex analiza
cada vértice por separado. Al hacer esto, es posible que el simplex permanezca iterando
continuamente entre los diversos vértices que conforma el mismo punto (esto no ocurre con dos
dimensiones, pero sí puede pasar con tres o más) De ocurrir esto (uno se da cuenta porque se vuelve
a una tabla en la que ya se ha estado), se debe buscar entre todas las tablas pertenecientes al punto
degenerado algún Zj-cj negativo (o positivo si estuviera en una minimización) que genere un tita
estrictamente positivo. (“salteando” el tita que vale cero).
6 4 0 0 0
C X B A1 A2 A3 A4 A5 θ
0 X3 9 0 0 1 -2 3 3
4 X2 0 0 1 0 1 -2 -
6 X1 15 1 0 0 0 1 15
Z = 90 0 0 0 4 -2
En esta nueva tabla, si bien cambió la estructura, vemos que los valores de las variables no
cambian, lo cual es razonable, ya que estamos en el mismo punto del plano.
En este caso, la variable que acaba de entrar a la base (X2), no vuelve a salir, ya que su pivote
sería negativo (-2), por lo cual no se calcula el tita. La variable que ingresa a la base es X5 y se
continúa iterando hasta el óptimo.
- 19 -
METODO SIMPLEX INVESTIGACION OPERATIVA
6 4 0 0 0
C X B A1 A2 A3 A4 A5
0 X5 3 0 0 1/3 -2/3 1
4 X2 6 0 1 2/3 -1/3 0
6 X1 12 1 0 -1/3 2/3 0
Z = 96 0 0 2/3 8/3 0
RESOLUCIÓN GRÁFICA
- 20 -
METODO SIMPLEX INVESTIGACION OPERATIVA
X1 - 4 X2 + 36 X3 ≤ 0
2 X1 - 2 X2 + 12 X3 ≤ 0
4 X2 ≤4
Z(máx) = 3 X1 + 2 X2 - 24 X3
En la primera tabla pueden salir de la base X4 ó X5. Elegí X5 y vas a ver cómo el simplex va a
quedar iterando continuamente.
- 21 -
METODO SIMPLEX INVESTIGACION OPERATIVA
SOLUCIONES ALTERNATIVAS
X1 ≤6
X1 + X2 ≤ 8
X1 + 2 X2 ≤ 12
Z(máx) = 4 X1 + 4 X2
X1 + X3 =6
X1 + X2 + X4 =8
X1 + 2 X2 + X5 = 12
4 4 0 0 0
C X B A1 A2 A3 A4 A5
0 X3 6 1 0 1 0 0
0 X4 8 1 1 0 1 0
0 X5 12 1 2 0 0 1
Z = -4 -4 -4 0 0 0
Comenzamos con la tabla inicial en el origen (Punto “A”). Ante los Zj-Cj iguales, elegimos X1
para simplificar los cálculos (X2 sería igualmente válido). Luego, iterando sucesivamente arribamos a
los puntos B y C.
4 4 0 0 0
C X B A1 A2 A3 A4 A5 θ
4 X1 6 1 0 1 0 0 ∞
0 X4 2 0 1 -1 1 0 2
0 X5 6 0 2 -1 0 1 3
Z = 24 0 -4 4 0 0
4 4 0 0 0
C X B A1 A2 A3 A4 A5 θ
4 X1 6 1 0 1 0 0 6
4 X2 2 0 1 -1 1 0 -
0 X5 2 0 0 1 -2 1 2
Z = 32 0 0 0* 4 0
- 22 -
METODO SIMPLEX INVESTIGACION OPERATIVA
actual.
Esto quiere decir que hay otro vértice del poliedro en el cual el valor del funcional es igual.
Pero, a diferencia del caso anterior (un punto degenerado), este nuevo vértice está en un punto
distinto del poliedro, ya que el valor de tita es distinto de cero. En efecto, si iteramos a la tabla
siguiente, llegamos al punto D. Esta iteración tiene sentido si no hay ningún otro Zj-Cj que sea
negativo (o positivo en una minimización). Si hubiera otro, se debe tomar éste y no considerar el cero
(ver el ejemplo que se da más adelante).
C X B A1 A2 A3 A4 A5
4 X1 4 1 0 0 2 -1
4 X2 4 0 1 0 -1 1
0 X5 2 0 0 1 -2 1
Z = 32 0 0 0 4 0*
En esta nueva solución, arribamos al mismo valor del funcional(32), pero con distintos valores
para las variables. Si quisiéramos seguir iterando, la única variable que puede entrar es X5, y para ello
debería salir X3, con lo cual volveríamos a la tabla anterior.
En una tabla óptima de simplex se reconoce una solución alternativa porque una de las
variables no está en la base tiene un Zj-Cj igual a cero.
Si miramos el gráfico, observaremos que la recta que pasa por ambos vértices, es paralela a la
traza del funcional. Esto quiere decir que cualquier punto ubicado sobre dicha recta, tendrá el mismo
- 23 -
METODO SIMPLEX INVESTIGACION OPERATIVA
valor para el funcional. Dado que la recta es la que indica X4=0, es lógico que X4 sea la única variable
con valor cero en ambas tablas. Además, en el planteo inicial, vemos que los coeficientes de X1 y X2
en la inecuación asociada a dicha recta (X1 + X2 ≤ 8) son directamente proporcionales a los
coeficientes del funcional (4 X1 + 4 X2).
4 X1 + 2 X2 ≥ 8
X1 - X2 ≤ 3
-X1 + 3 X2 ≤ 9
Z(máx) = 6 X1 + 3 X2
En él, vas a ver un caso en el que tenés un punto alternativo con el mismo funcional, pero lo
debés descartar porque hay otro mejor. Planteálo gráficamente y mirá que particularidad presenta:
¿Puede darse este caso en una tabla intermedia (que no sea la inicial ni la óptima)?¿Por qué?
- 24 -
METODO SIMPLEX INVESTIGACION OPERATIVA
POLIEDRO ABIERTO
X2 ≥ 2
4 X1 + 6 X2 ≥ 24
10 X1 - 30 X2 ≥ 30
Z(máx) = X1 + 8 X2
X2 - X3 + µ1 =2
4 X1 + 6 X2 - X4 + µ2 = 24
10 X1 - 30 X2 - X5 + µ3 = 30
1 8 0 0 0 -M -M -M
C X B A1 A2 A3 A4 A5 A6 A7 A8
0 µ1 2 0 1 -1 0 0 1 0 0
0 µ2 24 1 6 0 -1 0 0 1 0
0 µ3 30 10 -30 0 0 -1 0 0 1
-14M-
Z = -56M 23M-8 M M M 0 0 0
1
Como ya hemos visto anteriormente, las variables artificiales que salen de la base, van a
quedar con Zj-Cj que valdrá M más o menos un número. Pero como M es más grande que cualquier
otro número, estas variables nunca volverán a entrar a la base (su Zj-Cj será siempre positivo).
Entonces, y como sólo fueron introducidas al problema para poder armar la base canónica (su valor no
representa nada), podemos eliminar su columna de la tabla. (Una vez que salieron de la base).
1 8 0 0 0 -M -M
C X B A1 A2 A3 A4 A5 A6 A7 θ
-M µ1 2 0 1 -1 0 0 1 0 2
-M µ2 12 0 18 0 -1 2/5 0 1 2/3
1 X1 3 1 -3 0 0 -1/10 0 0 -
Z = -4/3M+3 0 -19M-11 M M -2M/5-1/10 0 0
1 8 0 0 0 -M
C X B A1 A2 A3 A4 A5 A6 θ
-M µ1 4/3 0 0 -1 1/18 -1/45 1 24
8 X2 2/3 0 1 0 -1/18 1/45 0 -
1 X1 5 1 0 0 -1/6 -1/30 0 -
-M/18- M/45-
Z = -4/3M+10 1/3 0 0 M 0
11/18 13/90
- 25 -
METODO SIMPLEX INVESTIGACION OPERATIVA
1 8 0 0 0
C X B A1 A2 A3 A4 A5 θ
0 X4 24 0 0 -18 1 -2/5 -
8 X2 2 0 1 -1 0 0 -
1 X1 9 1 0 -3 0 -1/10 -
Z = 25 0 0 -11 0 -1/10
Una vez eliminadas las variables artificiales, arribamos a esta tabla. En ella (punto “A” del
gráfico), aún quedan variables con Zj-Cj<0 (X3 y X5), o sea que pueden ingresar a la base y mejorar el
valor del funcional, pero ningún tita correspondiente a esas variables es positivo.
En este caso, si quisiéramos hacer ingresar a X3 a la base, el simplex se desplaza por la recta
X5=0 (dándole valores positivos a X3) aumentando el funcional, hasta encontrar el próximo vértice.
Pero si observamos el gráfico, veremos que no hay más vértices en esa dirección, sino que el poliedro
continúa creciendo hasta el infinito. Si quisiéramos hacer entrar a X5, cuyo Zj-Cj también es negativo
(recordemos que se elige el de mayor valor absoluto sólo por convención) nos encontraríamos en la
misma situación.
En una tabla de simplex se reconoce un poliedro abierto porque se arriba a una tabla en la
que hay variables que quieren entrar a la base, pero ninguna de las que está puede salir.
(Todos los posibles pivotes son nulos o negativos).
Esto no quiere decir que el problema no tenga solución. El vértice en el que estamos en una
- 26 -
METODO SIMPLEX INVESTIGACION OPERATIVA
solución. Lo que no existe es una solución óptima, ya que para cualquier punto del poliedro, basta
desplazarse hacia la derecha (en este caso) para mejorar el funcional. Sin embargo, no en todo
poliedro abierto se presenta esta situación. Ver el siguiente ejemplo:
X2 ≥ 2
4 X1 + 6 X2 ≥ 24
10 X1 - 30 X2 ≥ 30
Z(máx) = 3 X2 – 2 X1
- 27 -
METODO SIMPLEX INVESTIGACION OPERATIVA
INCOMPATIBLE
X1 + X2 ≤ 6
2 X1 + X2 ≤ 1
- X1 + 2 X2 ≥ 8
Z(máx) = 3 X1 + X2
X1 + X2 + X3 =6
2 X1 + X2 + X4 =1
- X1 + 2 X2 - X5 + µ1 = 8
3 1 0 0 0 -M
C X B A1 A2 A3 A4 A5 A6 θ
0 X3 6 1 1 1 0 0 0 6
0 X4 1 2 1 0 1 0 0 1
-M µ1 8 -1 2 0 0 -1 1 4
Z = -8M M-3 -2M-1 0 0 M 0
3 1 0 0 0 -M
C X B A1 A2 A3 A4 A5 A6
0 X3 5 -1 0 1 -1 0 0
1 X2 1 2 1 0 1 0 0
-M µ1 6 -5 0 0 -2 -1 1
Z = -6M+1 5M-4 0 0 2M-2 M 0
Aquí llegamos a un punto en el que la tabla aparentemente es óptima (Todos los Zj-Cj son
positivos) pero queda en la base la variable artificial µ1. Como habíamos dicho antes, esta variable no
tiene significado, y si tiene valor distinto de cero, significa que el punto hallado no cumple con la
restricción que incluía la variable artificial ( - X1 + 2 X2 - X5 = 8). En efecto, con los valores que nos da
la tabla, obtenemos: - X1 + 2 X2 = 2. Eso quiere decir que el punto hallado no pertenece al poliedro de
soluciones del problema. Sin embargo, esta es la mejor solución a la que puede llegar el simplex. Eso
significa que no hay ninguna solución real para el problema planteado.
- 28 -
METODO SIMPLEX INVESTIGACION OPERATIVA
Viendo el gráfico, podemos comprobar que no hay ningún punto que satisfaga las tres
inecuaciones simultáneamente.
- 29 -