Está en la página 1de 8

El Método

Simplex:
Forma
Estándar

Investigación
Operativa

1
El método simplex
Introducción
El método gráfico funciona bien para problemas con dos variables (puede
ser fácilmente visualizado en un plano como hemos visto en el Módulo 1).
Sin embargo, este método no es práctico para problemas con más
variables.

El método simplex no tiene las restricciones del método gráfico, ya que puede
aplicarse a situaciones con cualquier número de variables.

Con el fin de desarrollar un método práctico para encontrar la solución


óptima de un programa lineal, considera el siguiente experimento. Imagina
que cada punto extremo o vértice de la región factible es una bolilla que se
encuentra en una caja cerrada. Cada una tiene escrito un número, que es el
valor de la función objetivo en el correspondiente punto extremo que
representa. Imagina también que la bolilla correspondiente al punto
extremo óptimo está pintada de rojo, y todas las demás están pintadas de
blanco. ¿De qué manera procederías para encontrar la solución óptima, es
decir, la bolilla roja? Sin que esto implique un esfuerzo excesivo, ¿podrías
proceder de la siguiente manera, desarrollando un algoritmo paso a paso,
como, por ejemplo, el siguiente?

Paso 0. Inicio: tome una bolilla de la caja.


Paso 1. ¿La bolilla tomada es roja? Si es así, detenga el procedimiento, pues
ya encontró la solución óptima. Si no, continúe con el paso 2.
Paso 2. Deseche la bolilla que tomó. Tome otra de la caja y regrese al paso
1.

Observa que en este algoritmo se pueden repetir los pasos 1 y 2 muchas


veces. A cada repetición se la conoce como iteración. Siempre y cuando
haya un número finito de bolillas y una de ellas sea roja, el algoritmo
producirá, tarde o temprano, una bolilla roja en un número finito de
iteraciones.

Según el teorema fundamental de la Programación Lineal, si


un problema de Programación Lineal tiene solución óptima
finita, ésta se alcanza en un vértice de la región factible. Los
vértices se obtienen como solución de sistemas de
ecuaciones lineales determinados por las restricciones. Al
haber un número finito de restricciones, hay también un
número finito de vértices. Por tanto, la solución del

2
problema se puede obtener evaluando la función objetivo
en un número finito de puntos.

Sin embargo, el número de vértices de la región factible


puede ser muy grande y por tanto el cálculo de la solución
óptima puede resultar bastante entretenido. Sería
interesante un procedimiento que escoja unos cuantos
vértices sin necesidad de trabajar con todos. Esto es lo que
intenta el algoritmo del simplex desarrollado por George
Dantzig. (Barrios Calmaestra, 2005, https://goo.gl/FbaO4E).

Es un método matricial, algorítmico, muy apto para programar en


computadora.

El algoritmo simplex
Este procedimiento parte de un vértice cualquiera y, mediante iteraciones,
se va pasando a vértices adyacentes que mejoran el valor de la función
objetivo, que se obtuvo en el vértice anterior. La solución óptima se
alcanza en un número de pasos bastante inferior al necesario para evaluar
la función objetivo en todos los vértices.
Al igual que el método gráfico, el método simplex encuentra la solución
óptima (mínimo costo o máximo beneficio) en uno de los vértices del
conjunto de soluciones factibles (sin tener que graficar las restricciones ni
la función objetivo, pues sería imposible visualizarlo en un espacio mayor a
tres dimensiones).

El procedimiento que veremos a continuación va inspeccionando todos los vértices


de la región factible hasta dar con la solución óptima.
El método asegura el camino más corto para encontrarla. Para ello, deberán darse
algunas condiciones iniciales: 1) todas las restricciones son ecuaciones con lado
derecho no negativo; 2) todas las variables son no negativas.

“El procedimiento garantiza que cada uno de los vértices no será peor que el
anterior en términos de utilidades o costos” (Davis y McKeown, 1995, p. 35).

En cada paso del algoritmo, se resuelven de manera simultánea las


ecuaciones que forman el vértice. El método simplex analiza solo las
esquinas de la región factible. Es por esto que, en una primera etapa, se
convierten las inecuaciones en ecuaciones.

Conversión de desigualdades en igualdades. Variables de


holgura

3
Comencemos, entonces, a desarrollar este algoritmo. Para tener el planteo
matricial estándar, en primer lugar, deben transformarse las inecuaciones
en ecuaciones agregando un término o variable en cada una de ellas, que
indica la cantidad del recurso en cuestión que no fue utilizado; por lo tanto,
esta variable será mayor o igual que cero. La designaremos con la letra s y
le llamaremos variable de holgura.

Las variables de holgura se suman al lado izquierdo de la inecuación (primer


miembro) si la restricción es menor o igual.

Haremos el planteo estándar para el problema ya conocido, planteado en


el Módulo 1, pero nuestro objetivo es resolverlo mediante el método
simplex. Recordemos el planteo del problema:

Maximizar: z = 2000x + 3000y,


sujeta a las restricciones:
x + 2y < = 8;
3x + y < = 9;
x, y > = 0.

Transformemos las desigualdades en igualdades: exceptuando las


condiciones de no negatividad e introduciendo las variables de holgura,
llegamos al planteo estándar de un problema de programación lineal:

𝑥 + 2𝑦 + 𝑠1 = 8;
{ 3𝑥 + 𝑦 + 𝑠2 = 9;
𝑥 ≥ 0; 𝑦 ≥ 0; 𝑠1 ≥ 0; 𝑠2 ≥ 0.

¿Qué indican s₁ y s₂ en cada ecuación anterior?


Estas variables de holgura no aportan ganancias, su introducción en el
sistema tiene otro significado: son excedentes de insumo; en la primera
ecuación, son horas máquina, que no afectan la producción de un nuevo
producto. Mientras que s₂ se refiere a sobrantes de kilogramos de materia
prima, que tampoco alcanzarían para fabricar un nuevo producto, tanto de
A como de B.

Por lo tanto, podemos agregarlas a la función objetivo con coeficiente 0, como


se muestra a continuación:
Z = 2000x + 3000y + 0s₁ + 0s₂.

Dicho de otra forma, la variable de holgura s₁ es la cantidad en la que (x +


2y) es menor que 8; si (x + 2y) es igual a 8, entonces s₁ = 0. Pero no lo
sabemos, porque la restricción de menor o igual da paso a cualquiera de
las dos opciones. Por lo tanto, tenemos que tener este dato en cuenta si
queremos plantear ecuaciones desde una inecuación, pues aún no

4
sabemos si hay sobrantes de horas máquinas o no. El mismo análisis se
hace con la segunda inecuación.

Obsérvese que las variables de holgura siempre son positivas o cero; en caso
contrario, se estarían violando las desigualdades originales (recuerda que “x” e
“y” son siempre positivas o cero, condiciones de no negatividad).

Pero volvamos al sistema de ecuaciones al que llegamos luego de la


inserción de las variables de holgura:
𝑥 + 2𝑦 + 𝑠1 = 8;
{
3𝑥 + 𝑦 + 𝑠2 = 9.
Como podemos ver, tendremos tantas variables de holgura como
inecuaciones tenga el sistema: una para cada inecuación.
Por otra parte, el sistema modificado tiene más variables que ecuaciones.
Esta es la estructura general de un problema de programación lineal.

En términos generales, se dice que el sistema tiene m ecuaciones lineales (en


nuestro caso, dos) con n incógnitas (cuatro en nuestro caso), donde n > m.

Obtención de soluciones factibles básicas

Recordemos entonces que, en el algoritmo simplex, se transforman las


desigualdades en igualdades para formar un conjunto de ecuaciones que
nos permitirá, una vez resuelto, identificar los vértices. Pero, en los
problemas de programación lineal (PL), hay por lo menos tantas variables
como ecuaciones. En nuestro ejemplo, tenemos: cuatro variables y dos
ecuaciones. Por lo tanto, el sistema, si no es incompatible, es
indeterminado: tiene infinitas soluciones.
Aplicando un teorema básico del álgebra lineal, vemos que, en todo
sistema que tiene m ecuaciones y n variables, donde n > m, una de las
infinitas soluciones se obtiene haciendo n - m variables iguales a cero y
resolviendo el conjunto resultante de m ecuaciones con m variables.
Empleando el procedimiento anterior a nuestro problema, tenemos:
4 – 2 = 2 variables iguales a cero; el resto pueden calcularse.

Las variables que se igualan a cero se llaman variables no básicas. Las variables
que se utilizan para resolver las ecuaciones (es decir, las distintas que cero) se
llaman variables básicas.

Nuestro objetivo es encontrar una solución de las infinitas que tiene el


sistema. Pero ¿cuáles variables tomaremos como básicas y cuáles no? Con
m ecuaciones y n incógnitas, existen tantas variables básicas como
combinaciones de n elementos tomados de m en m.

5
Recuerda que:
𝑛!
𝐶𝑛,𝑚 = .
𝑚! (𝑛 − 𝑚)!
En nuestro caso: m = 2 y n = 4, entonces habrá:
4! 4.3.2!
𝐶4,2 = 2!(4−2)! = 2!.2.1 = 6 soluciones básicas.

Pero no todas las soluciones básicas son FACTIBLES. Podemos igualar dos
de las variables a cero, pero si quedan valores negativos de las otras
variables, entonces el problema no es viable, pues no se cumplirían las
restricciones de no negatividad de las variables.
Para diferenciar las soluciones factibles de las que no lo son, llamaremos
solución factible básica (SFB) a cada solución en la que los valores de todas
las variables que integran dicha solución son no negativos. Las soluciones
factibles básicas son las esquinas o los vértices de la región factible que
describe el problema. Para no entrar en confusiones y dar un método
práctico para encontrar una solución factible básica inicial, observemos lo
siguiente: hay una solución del sistema “a la vista”, haciendo cero aquellas
variables que están en las dos ecuaciones: x e y.
Si hacemos x = 0 y, además, y = 0, entonces necesariamente s₁ = 8 y s₂ = 9.
Por lo tanto, es suficiente hacer n - m variables iguales a cero (que, por
conveniencia, son las variables que se repiten en ambas ecuaciones), y el
resto tendrá el máximo valor posible que pueda dársele en el sistema. A
esta solución se la llama solución factible básica inicial y es la siguiente:

𝑥=0
𝑦=0
𝑆𝐹𝐵𝐼 { .
𝑠1 = 8
𝑠2 = 9

Analicemos la función objetivo incluyendo las variables de holgura, como


se describió anteriormente:

Z = 2000x + 3000y + 0s₁ + 0s₂;

Sustituyendo:

Z = 2000 x 0 + 3000 x 0 + 0 x 8 + 0 x 9 = 0.
Es decir, no se produjo nada; por lo tanto, todo es excedente.
En síntesis, el método simplex comienza dándole el máximo valor a las
variables de holgura y cero a las variables principales del sistema. En ese
momento, la ganancia es igual a cero. Este es el primer vértice en nuestro
caso (0, 0), a partir del cual el método algorítmico que vamos a desarrollar
va buscando el óptimo en la menor cantidad de pasos posibles.
En la próxima lectura, completaremos el algoritmo y llegaremos a la
solución óptima. Pero lo haremos a través de una tabla simplex, en la que

6
podrán leerse la solución básica factible inicial y el punto de partida de
ganancia cero.

7
Referencias
Barrios Calmaestra, L. (2005). Programación Lineal. El algoritmo simplex.
Recuperado de
http://recursostic.educacion.es/descartes/web/materiales_didacticos/prog
_lineal_lbc/simplex_pl.htm

Davis, K., y McKeown, P. (1995). Capítulo 2: Introducción a los modelos de


programación lineal. En Autores, Modelos cuantitativos para
administración (pp. 23-61). México: Grupo Editorial Iberoamérica.