Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA INDUSTRIAL
Noviembre de 2003
METODO SIMPLEX ALGEBRAICO
INTRODUCCIÓN
Vamos a conocer en este capítulo la primera de las dos formas como podemos entender
matemáticamente el Método Simplex para la solución de modelos de Programación
Lineal. Veremos que un requisito inicial para aplicar este enfoque es organizar el modelo,
de tal forma que todas las restricciones sean del tipo < y todos los términos del lado
derecho sean no negativos.
A pesar de que con este procedimiento pueden resolverse modelos con cualquier número
de variables y de ecuaciones, no es el método utilizado en la practica para resolver los
modelos reales de P.L. Los nuevos conocimientos que se adquirirán al estudiar este
método serán la base para comprender otras formas de utilizarlo, como son el enfoque
tabular y el enfoque matricial que presentaremos en capítulos siguientes.
ALGORITMO DE SOLUCIÓN
a. Expresar las variables básicas en términos de las no básicas, en cada una de las
ecuaciones del modelo.
b. Reemplazar el valor (cero) de las variables no básicas en las expresiones del paso a,
obteniendo así que las variables de holgura son iguales a los términos del lado
derecho de cada ecuación.
Prueba de mejorabilidad
Cuando hay más de una variable no básica con coeficiente objetivo positivo, al
incrementar el valor de cualquiera de ellas se incrementará el valor de la función
objetivo. En este algoritmo incrementaremos el valor de la variable no básica que tenga el
mayor coeficiente, aunque debe tenerse en cuenta que no siempre esto garantiza que
arribemos con mayor rapidez a la solución óptima. La variable seleccionada para
aumentarle su valor se conoce como variable de entrada a la solución básica.
Si hay dos o más variables empatadas como variable de entrada, podemos romper el
empate arbitrariamente.
Prueba de optimalidad:
Se toma como variable de salida de la solución básica actual a aquella que primero
llegue a valer cero al aumentar el valor de la variable de entrada definida en el paso
anterior. En caso de empate se elige arbitrariamente una de ellas.
Para determinar cual de la variables básicas debe salir de la solución se procede así:
Para comprender la lógica y el algoritmo del método simplex en forma algebraica vamos a
resolver el modelo de mezcla productiva que ya resolvimos por el método gráfico. Se
repite acá la información para mayor comodidad en las explicaciones.
Una compañía produce dos tipos de artículos, mediante un proceso que se compone de
tres actividades. Los datos importantes del proceso se dan en la tabla:
Tiempo
Actividad (minutos / unidad) Capacidad
(minutos / día)
Artículo 1 Artículo 2
Formado 4 8 800
Corte 4 3 600
Ensamble 6 2 600
Utilidad neta
($/unidad) 10 6
Maximizar: Z = 10 X1 + 6 X2
Aplicaremos ahora el algoritmo del método simplex algebraico para hallar la solución
óptima del modelo.
Paso inicial: Hallar una solución básica factible inicial:
Sujeta a:
4X1 + 8X2 + H1 = 800
4X1 + 3X2 + H2 = 600 Sistema Inicial
6X1 + 2X2 + H3 = 600
Si seleccionamos como variables básicas a las variables de holgura (H1, H2, H3), las no
básicas serán entonces las variables originales (X1,X2).
De cada una de las ecuaciones del sistema anterior despejamos las correspondientes
variables básicas en términos de las no básicas, obteniendo el siguiente sistema
modificado:
Como las variables no básicas X1 y X2 valen cero la solución inicial del modelo es:
H1 = 800
H2 = 600
H3 = 600
Es lógico que la utilidad sea cero ya que no se esta produciendo ningún articulo. Además
nótese que como las variables de holgura en este problema indican la cantidad sobrante
de cada recurso, la interpretación es que de todos los recursos está sobrando una
cantidad igual a la cantidad disponible en el problema.
Prueba de mejorabilidad.
Observamos que las dos variables no básicas X1 y X2 que actualmente valen cero tienen
coeficiente positivo, lo cual indica que si por ejemplo X1 aumenta su valor a 5 el valor de Z
aumenta en 10*5 = 50.
Algo similar ocurrirá si aumentamos el valor de X2. Si por ejemplo X2 fuera igual a 8,
entonces Z tomaría el valor 80 ( = 0+10*8)
Como se dijo podemos aumentar el valor de cualquiera de estas variables para obtener
un aumento proporcional en el valor de la función objetivo. Aunque podemos hacerlo con
cualquiera de ellas, tomaremos a X2 como aquella a la cual le aumentaremos su valor lo
máximo posible, es decir, la tomaremos como variable de entrada a la nueva solución
básica.
Paso 2:
a. Identificar la variable de salida: (Prueba de factibilidad)
El valor de X1 para el cual se hace cero una variable básica es el cociente entre el valor
actual de la variable y el coeficiente de intercambio con la variable de entrada. Para
nuestro modelo los cálculos son;
Estos cocientes indican que cuando X1 valga 100 la variable básica H3 tomará el valor
cero, mientras que se requiere que valga 150 para hacer cero a la variable básica H2 y
que valga 200 para que H1 se haga cero. Es decir la variable H3 es la que limita el
crecimiento de X1 pues se vuelve cero primero que las demás, al incrementar el valor de
X1. Por ello se escoge a X1 como variable de salida.
Analicemos que pasaría si X1 superara el valor de 100 y tomara por ejemplo el valor 101.
En este punto los valores de las variables básicas serían :
Hemos detectado que la variable H1 tomaría un valor negativo lo cual llevaría a que la
solución sea infactible. Se comprueba que 100 es el máximo valor que puede tomar la
variable X1 sin hacer infactible la solución actual. Por esto la prueba para determinar la
variable de salida se conoce como prueba de factibilidad.
Luego vamos a reemplazar la expresión recién obtenida para la nueva variable básica en
las ecuaciones de las otras variables básicas, así:
En H1
H1 = 800 – 4(100 – 1/3X2 – 1/6 H3) – 8X2
H1 = 400 – 20/3X2 + 2/3H3 (C.1)
En H2
H2 = 600 – 4(100 – 1/3X2 – 1/6H3) – 3X2
H2 = 200 – 5/3X2 + 2/3H3 (E.1)
Ahora las variables básicas son H1, H2, X1 y las no básicas son X2 y H3 (ambas valen
cero), por lo cual la nueva solución básica factible es:
H1 = 400
H2 = 200
X1 = 100
Y el valor de la función objetivo es Z = 1000.
Ya tenemos una solución básica factible mejor que la anterior, pero debemos verificar si
es posible encontrar otra todavía mejor. Para ello vamos a repetir el algoritmo desde el
paso 1 para determinar si la solución actual es mejorable o ya es la óptima.
Al efectuar los cocientes entre los valores de cada variable básica y su correspondiente
coeficiente de sustitución con X2, obtenemos:
Para H1 à X2 = 400/(20/3) = 60
Para H2 à X2 = 200/(5/3) = 120
Para X1 à X2 = 100/(1/3) = 300
Ahora las variables básicas son X2, H2, X1 y las no básicas son H1 y H3 (ambas valen
cero), por lo cual la nueva solución básica factible es:
X2 = 60
H2 = 100
X1 = 80
Como antes, cada vez que tiene una solución mejorada, se repite el algoritmo desde el
paso 1 para determinar si la solución actual es mejorable o si ya es la óptima.
Observamos en Z.2 que las variables básicas (H1 y H3), tienen coeficiente negativo, lo
cual indica que no es posible mejorar más el valor de la función objetivo y por lo tanto se
concluye que la solución actual es la óptima.
Con el fin de entender la gran eficiencia del algoritmo simplex, vamos a observar de
nuevo la figura 3.4 que nos muestra la solución gráfica de este modelo
Nótese que el método algebraico se inicia con una solución básica factible en la cual las
variables originales valen cero, es decir una solución equivalente al punto extremo (0,0).
(Punto O). Luego, en el paso 1, el algoritmo nos condujo a incrementar el valor de X1
(¿recuerda por que?), hasta un valor máximo de 100, (¿también recuerda por qué?), en el
cual se hace cero a la variable básica H3. Al hacer las operaciones correspondientes
obtuvimos que la nueva solución básica factible mejorada es:
H1 = 400
H2 = 200
X1 = 100
En la gráfica esto equivale a movernos desde el punto O(0,0) hasta el punto A(100, 0),
que es un vértice adyacente.
Advirtamos además que los otros intersectos con el eje X1, son en X1 = 150 y X1 = 200,
y se corresponden con los otros cocientes obtenidos cuando en el paso 2 literal b,
estabamos efectuando los primeros cocientes para determinar la variable de salida.
(¿ puedes explicar que significado tiene esta relación ?)
Cuando repetimos el algoritmo a partir del paso 1, determinamos que la solución aún es
mejorable al entran X2 en lugar de H1 y obtuvimos que la nueva solución básica es
X1 = 80, X2 = 60, H2 = 100.
Esta solución es el punto B(80,60), es decir gráficamente nos movimos desde el punto
A(100,0) hasta el punto adyacente B(80,60), en el cual se obtiene un mejor valor de Z.
Finalmente el algoritmo detectó que esta solución no es mejorable, por lo cual se concluye
que es la solución óptima, tal como lo habíamos hecho en la solución gráfica.
En el proceso descubrimos que las soluciones básicas son equivalentes, en términos
gráficos, a los intersectos de las rectas generadas por las ecuaciones (incluyendo las
rectas de las condiciones de no negatividad) y mas aún las soluciones básicas factibles
son equivalentes a los vértices o puntos extremos de la región de factibilidad.
Hemos visto como no hubo necesidad de evaluar el valor de Z en todas las soluciones
básicas, ni tampoco tuvimos que evaluar en todas las soluciones básicas factibles, sino
que solo evaluamos algunos de ellas.
En este ejemplo sencillo dejamos de evaluar solo el punto extremo (0,100), pero en
problemas mas grandes, el ahorro en puntos no evaluados es apreciablemente mayor.
Con base en lo anterior podemos afirmar que el método simplex sigue un “camino
abreviado”, que a partir de una solución básica factible inicial, va buscando otras
soluciones cada vez mejores hasta encontrar la óptima. He aquí una de las grandes
ventajas del método.
Al seguir el algoritmo del método simplex algebraico para la solución de este modelo,
obtuvimos tres modelos modificados, el inicial, y los que denominamos: sistema 1
modificado y sistema 2 modificado.
Para facilitar el análisis, escribamos los modelos modificados en formato estándar tal
como está el modelo inicial, con lo cual obtenemos:
Sistema inicial
Max Z = 10X1 + 6X2 + 0H1 + 0H2 + 0H3
Sistema 1
Max Z = 0X1 + 8/3X2 + 0H1 + 0H2 - 5/3H3
Sistema 2
Max Z = 0X1 + 0X2 - 2/5H1 + 0H2 - 7/5H3
Si analizamos la estructura de los tres sistemas anteriores, constatamos que en cada uno
de ellos, el vector formado con los coeficientes de las variables básicas, en las tres
restricciones, es un vector unitario y que además en los tres sistemas las variables
básicas tienen un cero como coeficiente objetivo. También observamos que cada variable
de entrada tiene un vector unitario en el sistema siguiente, mientras que la variable básica
de salida, que antes tenia vector unitario ya no lo tiene. Esta característica nos permite
obtener un sistema a partir del anterior, simplemente realizando las operaciones
necesarias para que el vector de la variable de entrada se convierta en un vector unitario.
En realidad lo que necesitamos hacer es efectuar operaciones elementales entre filas
mediante la operación de pivoteo para convertir en uno el coeficiente de la variable de
entrada en la ecuación correspondiente a la variable de salida y convertir en cero el
coeficiente en el resto de las ecuaciones y en la función objetivo.
La tabla contiene una columna encabezada con el nombre de cada variable del modelo.
Encima del nombre se escribe el coeficiente objetivo y debajo los coeficientes
tecnológicos que le corresponden en cada restricción, con lo cual quedara que la primera
fila contiene la función del objetivo y las filas a partir de la tercera contienen las
restricciones del modelo.
La penúltima se encabeza con el nombre solución y debajo se escriben los términos del
lado derecho de las restricciones.
Para nuestro modelo los tableros simplex correspondientes a los sistemas obtenidos son
los siguientes:
Tablero inicial
Cj 10 6 0 0 0
CB X1 X2 H1 H2 H3 Solución XB
0 4 8 1 0 0 800 H1
0 4 3 0 1 0 600 H2
0 6 2 0 0 1 600 H3
Zj 0 0 0 0 0 0 Z
Ej 10 6 0 0 0
Tablero 1
Cj 10 6 0 0 0
CB X1 X2 H1 H2 H3 Solución XB
Ej 0 8/3 0 0 -5/3
CB X1 X2 H1 H2 H3 Solución XB
6 0 1 3/20 0 -1/10 60 X2
10 1 0 -1/20 0 1/5 80 X1
Ej 0 0 -2/5 0 -7/5
Observamos de manera clara como las columnas de las variables básicas siempre son
vectores unitarios y los efectos netos de las variables básicas siempre son cero.
Con el propósito de deducir otros detalles relacionados con la lógica del método simplex
en forma algebraica, el estudiante debe aplicar el algoritmo ya conocido, para obtener la
solución óptima del siguiente modelo:
Se presenta enseguida el tablero final, para que el estudiante lo compare con el que
obtenga después de realizar sus cálculos.
CB X1 X2 H1 H2 H3 Solución XB
0 0 0 1 1/30 4/15 22 H1
-2 0 1 0 1/20 -1/10 3 X2
-4 1 0 0 5/60 1/6 15 X1
Ej 0 0 0 13/30 14/30
IDENTIFICACIÓN DEL TIPO DE SOLUCIÓN
Al termino del Algoritmo Simplex Algebraico llegaremos a una solución óptima, que como
ya mencionamos en el método gráfico, puede ser única, múltiple, ilimitada.
A continuación presentamos ejemplos de modelos de maximización que conducen a cada
uno de estos casos.
Apoyados en el teorema de que si hay dos soluciones básicas que dan el mismo valor
óptimo de Z, entonces cualquier combinación lineal convexa de ellas, también da el
mismo valor, podemos concluir que el problema tiene infinitas soluciones óptimas
alternativas.
Cj 14 6 0 0 0
CB X1 X2 H1 H2 H3 Solución XB
Zj 14 6 0 0 2 28 Z
Ej 0 0 0 0 -2
Observamos que este tablero es óptimo pues ninguna variable no básica tiene efecto neto
negativo. Pero la solución actual si es igualable, ya que el efecto neto de la variable no
básica H2 es cero, que no quita ni pone en el valor de la función objetivo, por lo cual al
entrarla a la solución básica esta tendrá el mismo valor de Z.
Si efectuamos los cálculos para obtener la nueva solución básica en donde H2 sea
variable básica obtenemos el siguiente tablero:
Cj 14 6 0 0 0
CB X1 X2 H1 H2 H3 Solución XB
Zj 14 6 0 0 2 28 Z
Ej 0 0 0 0 -2
Ambos tableros representan soluciones óptimas del modelo. Entonces hay solución
óptima múltiple que se expresa como:
Solución ilimitada
Ocurre cuando se tiene alguna variable no básica con efecto neto positivo, la cual será
variable de entrada, pero es imposible sacar una de las variables básicas, debido a que
todos los coeficientes de intercambio de la variable de entrada son negativos o cero.
Cj 10 5 0 0 0
CB X1 X2 H1 H2 H3 Solución XB
Zj 10 5 -1.5 0 -5.5 26 Z
Ej 0 0 1.5 0 5.5
Observamos que las variables H1 y H3 tienen efecto neto positivo, por lo cual pueden
entrar a la solución básica. Ya que H3 tiene el mayor efecto neto, la elegimos como
variable de entrada. Pero también notamos que al aumentar el valor de H3, ninguna de
las variables básicas disminuye, sino que por el contrario lo aumentan. Esto se debe a
que los coeficientes de intercambio de H3 con X2, H2 y con X1 son negativos. Por
consiguiente concluimos que la solución del modelo es óptima ilimitada.