Vous êtes sur la page 1sur 6

Pontificia Universidad Católica

Escuela de Ingeniería
Departamento de Ingeniería Industrial y de Sistemas

Clase 19 • El Método Simplex

ICS 1102 • Optimización


Profesor : Claudio Seebach
11 de octubre de 2005

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 37

Problemas Lineales en Formato Estándar

• Condiciones:
1. Restricciones de no negatividad en todas las variables
2. Todas las restricciones son de igualdad
3. El vector b tiene todos los componentes positivos
• Ejemplo:
P) max z = −3x1 +2x2
s.a. −3x1 +3x2 +x3 =6
−4x1 +2x2 +x4 = 2
x1 , x2 , x3 , x4 ≥ 0
• Se traduce al siguiente formato matricial que denominaremos tableau:
x1 x2 x3 x4
−3 3 1 0 =6
−4 2 0 1 =2
−3 2 0 0

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 38


Variables Básicas y Fuera de Base

• Consideremos el sistema A!x = !b, con A de dimensión m × n, que define


m ecuaciones lineales.
• Una solución básica se obtiene al igualar a 0 a n−m variables, y resolver
para las m restantes, suponiendo que son linealmente independientes.
• La elección de distintas bases lleva a distintas soluciones al sistema.
• Ejemplo:
x1 +x2 =3
−x2 +x3 = −1
• Consideremos la base {x1, x2} y fuera de base {x3}, o sea x3 = 0, por
lo tanto el sistema queda:
x1 +x2 = 3
−x2 = −1
• Por lo tanto x1 = 2, x2 = 1, x3 = 0 es una solución básica para el
sistema de ecuaciones inicial.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 39

Variables Básicas y Fuera de Base

• Algunas elecciones de bases pueden no llevar a una solución. Ejemplo:


x1 +2x2 +x3 = 1
2x1 +4x2 +x3 = 3
• La elección de la base {x1, x2}, lleva a tener que solucionar:
x1 +2x2 = 1
2x1 +4x2 = 3
• Este sistema no tiene solución con esa base.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 40


Soluciones a un problema de LP

Definición 1 Una solución básica en la cual todas las variables son


no negativas se le denomina una solución básica factible
Teorema 1 Un punto en la región factible de un problema de LP es un
punto extremo si y solo si es una solución básica factible al problema.
Teorema 2 En un problema de prog. lineal en formato estándar,
con soluciones básicas factibles !b1, !b2, . . . , !bk . Todo punto de la región
factible se puede escribir de la forma:
k
! k
!
!x = d! + σi!bi σi = 1, σi ≥ 0
i=1 i=1

donde d! es !0 o una dirección no acotada.


Teorema 3 Si un problema de programación lineal tiene solución óptima,
entonces tiene una solución básica factible óptima.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 41

El Algoritmo Simplex

• Consideremos el siguiente problema de LP:


P) max z = 60x1 +30x2 +20x3
s.a. 8x1 +6x2 +x3 ≤ 48
4x1 +2x2 +1, 5x3 ≤ 20
2x1 +1, 5x2 +0, 5x3 ≤ 8
x2 ≤5
x1 , x2 , x3 ≥0
• Se traduce al siguiente formato canónico, con las variables básicas
{s1, s2, s3, s4} y fuera de base {x1, x2, x3}, i.e. x1, x2, x3 = 0:
8x1 +6x2 +x3 +s1 = 48 s1 = 48
4x1 +2x2 +1, 5x3 +s2 = 20 s2 = 20
2x1 +1, 5x2 +0, 5x3 +s3 =8 s3 = 8
x2 +s4 = 5 s4 = 5
z −60x1 −30x2 −20x3 =0 z=0

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 42


El Algoritmo Simplex

• Lo anterior se puede resumir en el siguiente tableau canónico, con


las variables básicas {s1, s2, s3, s4} y fuera de base {x1, x2, x3}.
z x 1 x2 x 3 s1 s2 s3 s4 v.b.
8 6 1 1 = 48 s1
4 2 1,5 1 = 20 s2
2 1,5 0,5 1 = 8 s3
1 0,5 1 = 5 s4
1 -60 -30 -20
• ¿es óptima la actual solución básica factible? No.
• De la ecuación z = 60x1 + 30x2 + 20x3 podemos observar que aumentar
cualquiera de las variables fuera de base, aumenta el valor de z.
• Aumentar x1 desde 0 es lo que más aumenta z por cada unidad, ya que
c1 es el mayor de los tres coeficientes ci.
• Al dejar x1 de ser igual a 0, entra a la base, por lo que denominaremos
x1 la variable entrante.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 43

El Algoritmo Simplex

• En un problema de maximización (minimización), elegiremos la variable


con el coeficiente más positivo (negativo ) en la última fila del tableau
como la variable entrante. Si hay empate podemos elejir al azar.
• En nuestro ejemplo, si x1 entra a la base, ¿quien sale?
• Al aumentar x1, las variables en la base disminuyen, por lo que debemos
revisar que se mantenga la condición de no negatividad:
s1 ≥0 ⇒ 48 − 8x1 ≥ 0 x1 ≤ 48
8 = 6
s2 ≥0 ⇒ 20 − 4x1 ≥ 0 x1 ≤ 20
4 = 5
8
s3 ≥0 ⇒ 8 − 2x1 ≥ 0 x1 ≤ 2 = 4
s4 ≥0 ⇒ s4 = 5 para todo x1
• Por lo tanto, el mayor valor que x1 puede tomar es min{ 48 20 8
8 , 4 , 2 , ·} = 4.
Entonces si tomamos x4 = 4 ⇒ s3 = 0. s3 es la variable saliente.
• En resumen, la variable saliente será aquella que se hace 0 al aumentar
b
la variable entrante xk al valor minj { a j }
jk

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 44


El Algoritmo Simplex

• La nueva base será {s1, s2, x1, s4} y fuera de base quedan {s3, x2, x3}.
• Pivoteando el tableau anterior para obtener

x1 x2 x3 s1 s2 s3 s4 v.b.
0 0 −1 1 0 −4 0 = 16 s1
0 −1 0, 5 0 1 −2 0 = 4 s2
1 0, 75 0, 25 0 0 0, 5 0 = 4 x1
0 1 0 0 0 0 1 = 5 s4
0 15 −5 0 0 30 0 240
• ¿es óptima la actual solución básica factible? No, porque el coeficiente
asociado a x3 es negativo aún.
• x3 es la nueva variable entrante.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 45

El Algoritmo Simplex

• Revisemos que se mantenga la condición de no negatividad:


s1 ≥ 0 ⇒ s1 = 16 + x3 ≥ 0 para todo x3
4
s2 ≥ 0 ⇒ s2 = 4 − 0, 5x3 ≥ 0 x3 ≤ 0,5 =8
4
x1 ≥ 0 ⇒ s3 = 4 − 0, 25x3 ≥ 0 x3 ≤ 0,25 = 16
s4 ≥ 0 ⇒ s4 =5 para todo x3
• Por lo tanto, el mayor valor que x1 puede tomar es min{·, 8, 16, ·} = 8.
Entonces si tomamos x3 = 8 ⇒ s2 = 0. s2 es la variable saliente.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 46


El Algoritmo Simplex

• La nueva base será {s1, x3, x1, s4} y fuera de base quedan {x2, s2, s3}.
• Pivoteando el tableau anterior para obtener la nueva base:
z x 1 x 2 x 3 s1 s2 s3 s4 v.b.
-2 1 2 -8 = 24 s1
-2 1 2 -4 = 8 x3
1 1,25 -0,5 1,5 = 2 x1
1 1 = 5 s4
1 5 10 10 280
• ¿es óptima la actual solución básica factible? Si, porque todos los coe-
ficientes de la primera fila son positivos.
• La solución óptima es:
x1 = 2, x2 = 0, x3 = 8, s1 = 24, s2 = 0, s3 = 0, s4 = 5.
• El valor óptimo es z ∗ = 280.

Apuntes de Clases • Optimización • Claudio Seebach Programación Lineal • 47

Vous aimerez peut-être aussi