Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Metodo Simplex
Metodo Simplex
INGENIERIA
INVESTIGACIÓN DE
OPERACIONES I
2013-1
1
METODO SIMPLEX
Como veremos, cada vértice del conjunto factible de programación lineal puede
representarse en forma algebraica como una clase particular de solución de un
conjunto de ecuaciones lineales.
Ejemplo:
Se tiene el siguiente programa lineal, en su forma canónica:
Variables de Holgura:
2
Maximizar Z = 200 X1 + 240 X2 + 0 S1 + 0 S2
Sujeto a:
6 X1 + 12 X2 + 1 S1 + 0 S2 = 120 1a
8 X1 + 4 X2 + 0 S1 + 1 S2 = 64 2a
Una solución básica factible para las ecuaciones 1a y 2a es una solución que
tenga a lo sumo dos (= número de ecuaciones) variables con valores positivos
y el resto de variables con valores iguales a cero.
Solución (2): X2 = 0, S2 = 0 X1 = 8, S1 = 72
Variables no básicas (= 0) Variables básicas (> 0)
3
TABLA SIMPLEX
PASO #1:
Cambiamos el programa lineal, de la forma canónica a la forma estándar, y
luego el sistema lo pasamos al formato del tablero inicial. Esta tabla inicial se
denomina Iteración 0.
PASO #2:
Calculamos la fila Zj de acuerdo a la siguiente expresión: CBTB j = 1, 2, 3,
...., n+m.
Zj = Es la disminución indirecta del valor de la función objetivo inducido al
considerar en la solución una unidad de la variable asociada a la j-ésima
columna no básica de la tabla, mientras las demás variables no básicas se
mantienen en cero.
PASO #3:
Calculamos la fila Cj – Zj j = 1, 2, 3, ...., n+m. Cj – Zj = es el costo de
oportunidad de aumentar, si es positivo, la función objetivo por unidad de
aumento de una variable no básica.
Casos:
a) Si para al menos un j, Cj – Zj es positivo y si al menos un aij para este j es
positivo, entonces existe una mejor solución básica factible. Aún no se ha
llegado a la solución óptima.
b) Si para al menos un j, Cj – Zj es positivo y todos los aij para este j son
negativos, entonces la región de soluciones factibles no está acotada. Y la
solución tiende a infinito.
c) Si todos los Cj – Zj son negativos y ceros, entonces la solución óptima se
ha encontrado.
4
Para nuestro problema inicial, hemos cambiado de la forma canónica a la
estándar. Ahora nos falta colocar los valores al tablero inicial junto con el paso
#2. ITERACIÓN # 0
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
0 S1 6 12 1 0 120
0 S2 8 4 0 1 64
Zj 0 0 0 0 0
Cj - Zj 200 240 0 0
PASO #4:
Identificamos a la variable que nos da el mayor Cj – Zj tal como Xk (Sk), esta
variable no básica es candidata para ingresar en la tabla como variable
básica, y su columna se va a llamar columna pivote.
PASO #5:
El número pivote debe ser convertido a uno (+1), y la variable básica entrante
reemplaza a la variable básica saliente en la columna de las variables básicas.
Luego, cada uno de los coeficientes restantes en la columna pivote tiene que
ser convertido a cero.
PASO #6:
Repetimos los pasos 3, 4 y 5 hasta que algún tablero cumpla con la condición
Cj – Zj 0, j = 1, 2, 3, ...., n+m.
5
El siguiente paso convertimos a 1 el valor del número pivote (12). Para ello
dividimos toda la primera fila R01 (restricción uno de la iteración 0) entre 12.
X1 X2 S1 S2 B
R01 1/2 1 1/12 0 10
R02 8 4 0 1 64
Luego, los demás valores de la columna pivote (X2) deben tener valor cero.
Para ello hacemos la siguiente operación: A los valores de la fila R 02 se le resta
cuatro veces la fila R01, y se obtiene R12 (la restricción 2 de la iteración 1):
R02 8 4 0 1 64
- 4R01 -2 -4 -1/3 0 -40
R12 6 0 -1/3 1 24
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
240 X2 1/2 1 1/12 0 10
0 S2 6 0 -1/3 1 24
Zj 120 240 20 0 2400
Cj - Zj 80 0 -20 0
6
El siguiente paso convertimos a 1 el valor del número pivote (12). Para ello
dividimos toda la primera fila R01 (restricción uno de la iteración 0) entre 12.
X1 X2 S1 S2 B
R11 1/2 1 1/12 0 10
R12 1 0 -1/18 1/6 4
Luego, los demás valores de la columna pivote (X2) deben tener valor cero.
Para ello hacemos la siguiente operación: A los valores de la fila R 02 se le resta
cuatro veces la fila R01, y se obtiene R12 (la restricción 2 de la iteración 1):
ITERACIÓN # 2
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
240 X2 0 1 1/9 -1/12 8
200 X1 1 0 -1/18 1/6 4
Zj 120 240 140/9 40/3 2720
Cj - Zj 0 0 -140/9 -40/3
Nos podemos dar cuenta que, en cada tabla del procedimiento Simplex, los
valores de X1 y X2 tienen valores de los vértices del polígono de la región
factible. Esto quiere decir que cada tabla va recorriendo los vértices del
polígono hasta llegar al vértice óptimo que me da el máximo valor de Z.
EJERCICIOS
Maximizar Z = 3 X1 + 4 X2 Maximizar Z = 3 X1 + 2 X2 + X3
Sujeto a: Sujeto a:
X1 + 2 X2 1000 X1 + 2 X2 + X3 10
3 X1 + 2 X2 1800 X1 + X2 + 2 X3 9
X2 400 2 X1 + 3 X3 12
X1 0, X2 0 X1, X2, X3 0
7
Maximizar Z = 4 X1 2 X2 + 3 X3 Maximizar Z = 5 X1 3 X2 + X3
Sujeto a: Sujeto a:
X1 X2 X3 8 X1 + X2 10
X2 X3 4 X2 + X3 6
X1 + X3 12 X1 X3 2
X1, X2, X3 0 X1, X2, X3 0
Maximizar Z = X1 + 3 X2 + 2 X3 MAX Z = 4 X1 X2 + 3 X3 + 2 X4
Sujeto a: Sujeto a:
X1 + X2 X3 6 5 X1 + X2 – 3 X3 + 5 X4 50
X1 + 2 X2 + X3 9 4 X1 X2 + X3 + 3 X4 44
2 X1 + 3 X2 + X3 15 X1 X3 + 2 X4 15
X1, X2, X3 0 X1, X2, X3, X4 0
Ejemplo: 4 X1 + 6 X2 + X3 54
4 X1 + 6 X2 + X3 S1 = 54
8
Se convierte en:
X1 + 2 X2 + S1 =3
4 X1 + 5 X2 S2 = 6
7 X1 + 8 X2 = 15
Si ahora se agregan respectivamente las variables artificiales a1 y a2 al lado
izquierdo de las dos últimas restricciones, es decir, a las restricciones que no
tengan variable de holgura; el resultado es:
X1 + 2 X2 + S1 =3
4 X1 + 5 X2 S2 + a1 =6
7 X1 + 8 X2 + a2 = 15
Una solución inicial no negativa a este último sistema es S1 = 3, a1 = 6, a2 =
15, como variables básicas, y X1 = X2 = S2 = 0 como variables no básicas.
Costos de penalización
Ejemplo:
Forma Canónica
Minimizar Z = 20 X1 + 30 X2
Sujeto a:
2 X1 + X2 10 (S1, a1)
3 X1 + 4 X2 24 (S2, a2)
8 X1 + 7 X2 56 (S3, a3)
X1, X2 0
9
Forma Estándar
Minimizar Z = 20 X1 + 30 X2 + 0 S1 + 0 S2 + 0 S3 + M a1+ M a2 + M a3
Sujeto a:
2 X1 + X2 1 S1 + 0 S2 + 0 S3 + 1 a1 + 0 a2 + 0 a3 = 10
3 X1 + 4 X2 + 0 S1 1 S2 + 0 S3 + 0 a1 + 1a2 + 0 a3 = 24
8 X1 + 7 X2 + 0 S1 + 0 S2 1 S3 + 0 a1 + 0 a2 + 1 a3 = 56
Forma Estándar
Maximizar (Z) = 20 X1 30 X2 + 0 S1 + 0 S2 + 0 S3 M a1 M a2 M a3
Sujeto a:
2 X1 + X2 1 S1 + 0 S2 + 0 S3 + 1 a1 + 0 a2 + 0 a3 = 10
3 X1 + 4 X2 + 0 S1 1 S2 + 0 S3 + 0 a1 + 1a2 + 0 a3 = 24
8 X1 + 7 X2 + 0 S1 + 0 S2 1 S3 + 0 a1 + 0 a2 + 1 a3 = 56
ITERACION 0
Cj -20 -30 0 0 0 -M -M -M
CB VB X1 X2 S1 S2 S2 a1 a2 a3 B
-M a1 2 1 -1 0 0 1 0 0 10
-M a2 3 4 0 -1 0 0 1 0 24
-M a3 8 7 0 0 -1 0 0 1 56
Zj -13M -12M M M M -M -M -M -90M
Cj - Zj -20+13M -30+12M -M -M -M 0 0 0
10
PROBLEMAS NO FACTIBLES
Minimizar Z = 20 X1 + 30 X2
Sujeto a:
2 X1 + X2 10 (S1)
3 X1 + 4 X2 24 (S2)
8 X1 + 7 X2 56 (S3, a1)
X1, X2 0
PROBLEMAS NO ACOTADOS
11
PROBLEMAS DEGENERADOS
OPTIMOS ALTERNATIVOS
Recuerde que la señal de Optimalidad en una tabla simplex es que todos los
elementos de la última fila (Cj – Zj) sean 0.
Cuando se encuentra una tabla óptima con un elemento cero en la última fila,
dentro de una columna no básica, esa variable se puede llevar a la base sin
cambiar el valor objetivo. Si la solución óptima es no degenerada, la variable
llevada a la base será positiva. Esto significa que se habrá obtenido un nuevo
vértice y que por lo tanto existen soluciones óptimas alternas.
Maximizar Z = X1 2 X2
Sujeto a:
2 X1 + X2 4
X1 – 3 X2 3
2 X1 4 X2 8
X1, X2 0
Maximizar Z = 4 X1 + 3 X2 + 2 X3
Sujeto a:
2 X1 + X2 X3 10
2 X1 + 2 X2 + X3 14
3 X1 + X2 + X3 12
X1, X2, X3 0
12
EJERCICIOS
13