Programación Lineal
Método Simplex
Introducción
El método del simplex fue creado en 1947 por el matemático
George Dantzig .
El método del simplex se utiliza, sobre todo, para resolver
problemas de programación lineal en los que intervienen tres o
más variables.
El álgebra matricial y el proceso de eliminación de Gauss-
Jordan para resolver un sistema de ecuaciones lineales
constituyen la base del método simplex.
¿Qué es el Método Simplex?
v Es un procedimiento iterativo que permite ir mejorando la
solución a cada paso. El proceso concluye cuando no es
posible seguir mejorando más dicha solución.
v Partiendo del valor de la función objetivo en un vértice
cualquiera, el método consiste en buscar sucesivamente otro
vértice que mejore al anterior. La búsqueda se hace siempre a
través de los lados del polígono (o de las aristas del poliedro,
si el número de variables es mayor). Cómo el número de
vértices (y de aristas) es finito, siempre se podrá encontrar la
solución.
v El método del simplex se basa en la siguiente propiedad: si la
función objetivo, f, no toma su valor máximo en el vértice A,
entonces hay una arista que parte de A, a lo largo de la cual f
aumenta.
Método Simplex - Caso
v Con miras a conocer la metodología que se aplica en el
Método SIMPLEX, vamos a resolver el siguiente problema:
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y 18
2x + 3y 42
3x + y 24
x0,y 0
v Se consideran las siguientes fases:
Método Simplex - Procedimiento
1. Convertir las desigualdades Maximizar Z= f(x,y)= 3x + 2y
en igualdades sujeto a: 2x + y <= 18
Se introduce una variable de 2x + 3y <= 42
holgura por cada una de las 3x + y <= 24
restricciones, para convertirlas x0,y 0
en igualdades, resultando el
sistema de ecuaciones lineales:
2x + y + S1 = 18
2x + 3y + S2 = 42
3x +y + S3 = 24
Método Simplex - Procedimiento
2. Igualar la función objetivo a cero
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y 18
2x + 3y 42
3x + y 24
x0,y 0
Maximizar f(x,y) = 3x + 2y
Maximizar Z (x,y) = 3x + 2y
Maximizar ( Z ) = 3x + 2y
Z = 3x + 2y
-3x – 2y + Z = 0
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 3. Escribir la tabla simplex
sujeto a: 2x + y <= 18 inicial:
2x + 3y <= 42 En las columnas aparecerán
3x + y <= 24 todas las variables del
x0,y 0 problema y, en las filas, los
coeficientes de las igualdades obtenidas, una fila para cada
restricción y la última fila con los coeficientes de la función objetivo:
Iteracción 1
Variable Variables de Decisión Variables de Holgura Valores de
Base Solución
X Y S1 S2 S3
S1 2 1 1 0 0 18
S2 2 3 0 1 0 42
S3 3 1 0 0 1 24
Z -3 -2 0 0 0 0
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 4. Encontrar la variable de
sujeto a: 2x + y <= 18 decisión que entra en la base
2x + 3y <= 42 y la variable de holgura que
3x + y <= 24 sale de la base.
x0,y 0 A. Para elegir la variable de deci-
sión que entra en la base, nos fijamos en la fila de la función objetivo (última fila), y
seleccionamos la variable con el coeficiente negativo mayor (en valor absoluto).
v En nuestro caso, la variable x de coeficiente - 3.
v Si existiesen dos o más coeficientes iguales que cumplan la condición anterior,
entonces se elige cualquiera de ellas.
v Si en la última fila no existiese ningún coeficiente negativo, significa que se ha
alcanzado la solución óptima. Por tanto, lo que va a determinar el final del
proceso de aplicación del método simplex, es que en la última fila no haya
elementos negativos.
v La columna de la variable que entra en la base se llama columna pivote (En
color azulado).
Método Simplex - Procedimiento
4. Encontrar la variable de
Maximizar Z= f(x,y)= 3x + 2y decisión que entra en la base
sujeto a: 2x + y <= 18 y la variable de holgura que
2x + 3y <= 42 sale de la base.
3x + y <= 24 B. Para encontrar la variable de hol
x0,y 0 gura que tiene que salir de la base, se
divide cada término de la última columna (valores solución) por el término
correspondiente de la columna pivote, siempre que estos últimos sean mayores que
cero. En nuestro caso: 18/2 [=9] , 42/2 [=21] y 24/3 [=8]
v Si hubiese algún elemento menor o igual que cero no se hace dicho cociente. En
el caso de que todos los elementos fuesen menores o iguales a cero, entonces
tendríamos una solución no acotada y no se puede seguir.
v El término de la columna pivote que en la división anterior dé lugar al menor
cociente positivo, el 3, ya 8 es el menor, indica la fila de la variable de holgura
que sale de la base, S3. Esta fila se llama fila pivote (En color azulado).
v Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las
variables correspondientes pueden salir de la base.
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 4. Encontrar la variable de
sujeto a: 2x + y <= 18 decisión que entra en la base
2x + 3y <= 42 y la variable de holgura que
3x + y <= 24 sale de la base.
x0,y 0
C. En la intersección de la fila pivote y columna pivote tenemos el elemento
pivote operacional, 3.
Al elemento pivote, también se le conoce como Punto Pivote.
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y <= 18
2x + 3y <= 42
3x + y <= 24
x0,y 0
Tabla I : Iteracción 1
Variable Variables de Decisión Variables de Holgura Valores de
Base Solución
X Y S1 S2 S3
S1 2 1 1 0 0 18
S2 2 3 0 1 0 42
S3 3 1 0 0 1 24
Z -3 -2 0 0 0 0
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42 Los nuevos coeficientes de x se obtienen
3x + y <= 24 dividiendo todos los coeficientes de la
x0,y 0 fila S3 entre el pivote operacional, 3,
que es el que hay que convertir en 1.
v A continuación mediante la reducción gaussiana hacemos ceros los restantes
términos de su columna, con lo que obtenemos los nuevos coeficientes de las
otras filas incluyendo los de la función objetivo Z.
v También se puede hacer utilizando el siguiente esquema:
Fila del pivote:
Nueva fila del Pivote = (Vieja fila del Pivote) : (Pivote)
Resto de las Filas:
Nueva fila = (Vieja fila) - (Coeficiente de la vieja fila en la columna de la variable entrante)
X (Nueva fila del Pivote)
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42
3x + y <= 24 Veámoslo con un ejemplo una
x0,y 0 vez calculada la fila del pivote
(fila de x en la Tabla II):
Vieja Fila de S2 2 3 0 1 0 42
(Menos) - - - - - -
Coeficiente 2 2 2 2 2 2
(Multiplicado) x x x x x x
Nueva Fila del Pivote 1 1/3 0 0 1/3 8
(Igual) = = = = = =
Nueva Fila de S2 0 2 1/3 0 1 - 2/3 26
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42
3x + y <= 24 Veamos cómo queda la nueva
x0,y 0 tabla.
Tabla II : Para la Iteracción 2
Variable Variables de Decisión Variables de Holgura Valores de
Base X Y S1 S2 S3 Solución
S1 0 1/3 1 0 - 2/3 2
S2 0 2 1/3 0 1 - 2/3 26
x 1 1/3 0 0 1/3 8
Z 0 -1 0 0 1 24
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y 18 la nueva tabla.
2x + 3y 42
3x + y 24
x0,y 0
Como en los elementos de la última fila hay uno negativo, -1, significa que no
hemos llegado todavía a la solución óptima. Hay que repetir el proceso:
A. La variable que entra en la base es y, por ser la variable que corresponde al
coeficiente -1
B. Para calcular la variable que sale, dividimos los términos de la última
columna entre los términos correspondientes de la nueva columna pivote:
2:1/3 [=6] , 26:7/3 [=78/7] y 8:1/3 [=8]
y como el menor cociente positivo es 6, tenemos que la variable de holgura que
sale es S1.
C. El elemento pivote, que ahora hay que hacer 1, es 1/3.
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42
3x + y <= 24 Operando de forma análoga a
x0,y 0 la anterior obtenemos la tabla:
Tabla III : Iteracción 3
Variable Variables de Decisión Variables de Holgura Valores de
Base X Y S1 S2 S3 Solución
y 0 1 3 0 -2 6
S2 0 0 -7 0 4 12
x 1 0 -1 0 1 6
Z 0 0 3 0 -1 30
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42 Como en los elementos de la última
3x + y <= 24 fila hay uno negativo, -1, significa que
x0,y 0 no hemos llegado todavía a la
solución óptima. Hay que repetir el
proceso:
A. La variable que entra en la base es S3, por ser la variable que corresponde al
coeficiente -1 .
B. Para calcular la variable que sale, dividimos los términos de la última
columna entre los términos correspondientes de la nueva columna pivote:
6/(-2) [=-3] , 12/4 [=3], y 6:1 [=6]
y como el menor cociente positivo es 3, tenemos que la variable de holgura
que sale es S2.
C. El elemento pivote, que ahora hay que hacer 1, es 4.
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y 5. Encontrar los coeficientes de
sujeto a: 2x + y <= 18 la nueva tabla.
2x + 3y <= 42
3x + y <= 24 Obtenemos la Tabla:
x0,y 0
Tabla IV : Fin del Proceso
Variable Variables de Decisión Variables de Holgura Valores de
Base X Y S1 S2 S3 Solución
y 0 1 - 1/2 0 0 12
S2 0 0 -1 3/4 0 1 3
x 1 0 - 3/4 0 0 3
Z 0 0 1 1/4 0 0 33
Método Simplex - Procedimiento
Maximizar Z= f(x,y)= 3x + 2y
sujeto a: 2x + y <= 18
2x + 3y <= 42
3x + y <= 24
x0,y 0
v Como todos los coeficientes de la fila de la función objetivo son
positivos, hemos llegado a la solución óptima.
v Los solución óptima viene dada por el valor de Z en la columna
de los valores solución, en nuestro caso: 33.
v En la misma columna se puede observar el vértice donde se
alcanza, observando las filas correspondientes a las variables de
decisión que han entrado en la base: Coordenada (3,12).
Método Simplex – A Tomar en Cuenta
v Si en el problema de maximización apareciesen como
restricciones inecuaciones de la forma: ax + by >= c;
multiplicándolas por - 1 se transforman en inecuaciones de la
forma - ax - by <= - c y estamos en el caso anterior
v Si en lugar de maximizar se trata de un problema de minimizar
se sigue el mismo proceso, pero cambiando el sentido del
criterio, es decir, para entrar en la base se elige la variable cuyo
valor, en la fila de la función objetivo, sea el mayor de los
positivos y se finalizan las iteraciones cuando todos los
coeficientes de la fila de la función objetivo son negativos .
Interpretación Geométrica - Método Simplex
v Las sucesivas tablas que hemos construido van proporcionando el valor
de la función objetivo en los distintos vértices, ajustándose, a la vez, los
coeficientes de las variables iniciales y de holgura.
v En la primera iteración (Tabla I) han permanecido todos los
coeficientes iguales, se ha calculado el valor de la función objetivo en
el vértice A(0,0), siendo este 0.
v A continuación se desplaza por la arista AB, calculando el valor de f ,
hasta llegar a B.
v Este paso aporta la Tabla II.
v En esta segunda iteración se ha calculado el valor que corresponde al
vértice B(8,0): Z=f(8,0) = 24.
v Sigue por la arista BC, hasta llegar a C, donde se para y despliega los
datos de la Tabla III.
Interpretación Geométrica - Método Simplex
v En esta tercera iteración se ha calculado el valor que corresponde al
vértice C(6,6) : Z=f(6,6)=30.
v Continua haciendo cálculos a través de la arista CD, hasta llegar al
vértice D. Los datos que se reflejan son los de la Tabla IV.
v Concluye con esta tabla, advirtiendo que
ha terminado (antes ha comprobado que
la solución no mejora al desplazarse por
la arista DE)
v El valor máximo de la función objetivo es
33, y corresponde a x = 3 e y = 12
(vértice D).
v Si calculas el valor de la función objetivo
en el vértice E(0,14), su valor no supera
el valor 33.