You are on page 1of 32

Optimizacin Lineal.

Mtodo Simplex

El Mtodo Simplex publicado por George


Dantzig en 1947 consiste en un algoritmo
iterativo que secuencialmente a travs de
iteraciones se va aproximando al ptimo
del problema de Programacin Lineal.
La primera implementacin computacional
del Mtodo Simplex es el ao 1952 para un
problema de 71 variables y 48 ecuaciones.
Su resolucin tarda 18 horas.

Principio Simplex 1
La solucin ptima de un problema de
Programacin Lineal se encuentra en un
vrtice o frontera del dominio de puntos
factibles (esto ltimo en casos muy
especiales), por lo cual, la bsqueda
secuencial del algoritmo se basa en la
evaluacin progresiva de estos vrtices hasta
encontrar el ptimo. para aplicar el Mtodo
Simplex a un modelo lineal, este debe estar
en su forma estndar

FORMA ESTNDAR DE UN
MODELO DE O.L
Min c1x1 + c2x2 + ... + cnxn
sa a11x1 + a12x2 + ...+ a1nxn =
b1
a21x1 + a22x2 + ... + a2nxn =
b2
... ... ...
am1x1 + am2x2 + ...+ amnxn
= bm
xi>= 0, i = 1, 2, ..., n y
m <=n

Tablero Simplex
X1

X2

...

Xn

a11 a12 ...


a1n
b1
a21 a22 ...
a2n
b2
... ... ...
am1 am2 ... amn bm

c1

c2

...

cn

Principio PL 1
Siempre es posible transformar un
problema de maximizacin a uno de
minimizacin. Sif(x)es la funcin
objetivo a maximizar yx*es la
solucin ptimaf(x*) >= f(x), para
todo x factible.-f(x*) <= - f(x), para
todo x factible. En
consecuencia:x*es tambin mnimo
de-f(x)

Principio PL 2
Cada restriccin del tipo <= puede
ser llevada a una ecuacin de
igualdad usando una
(nueva)variable de holgurano
negativa, con coeficiente nulo en la
funcin objetivo.

Principio PL 3
Cada restriccin del tipo >= puede
ser llevada a una ecuacin de
igualdad usando una
(nueva)variable de excesono
negativa, con coeficiente nulo en la
funcin objetivo.

Principio PL 4
Siempre es posible escribir una
variable libre de signo como la
diferencia de dos variables no
negativas.

EJEMPLO
Max 9u + 2v + 5z
sa 4u + 3v +
6z<=50
u + 2v 3z>=8
2u - 4v + z = 5
u,v>=0
zeIR

Procedimiento
Considerando la siguiente notacin:u = x1, v = x2, z
= x3 - x4, s1 = x5 (holgura), s2 = x6 (exceso), el
problema P) puede ser escrito en forma equivalente
como:
Min - 9x1 - 2x2 - 5x3 + 5x4 + 0x5 + 0x6
sa: 4x1 + 3x2 + 6x3 - 6x4 + x5 =
50
x1 + 2x2 - 3x3 + 3x4 - x6 =
8
2x1 - 4x2 + x3 - x4 =
5
xi>=0, i=1,2,3,4,5,6.

MTODO SIMPLEX

Formulacin del programa:


Max (z=cx )
Sujeto a Ax = b
X0

n>m
A es de orden mxn

Teorema 1
Dado un programa de PL en el cual no
pueden existir soluciones factibles
degeneradas y que ha formado una
solucin bsica factible en funcin de las
m primeras variables, puede formarse
una nueva solucin bsica factible
introduciendo la variable xk si al menos
un elemento de la k-sima columna de la
matriz reducida es positivo

Teorema 2 de la Solucin
ptima
Dado un problema de PL en el cual
son imposibles las soluciones bsicas
factibles degeneradas, en el que la
solucin ptima es nica y donde
pueden formarse soluciones bsicas
factibles adicionales, la solucin
mxima debe ser una solucin
factible

Teorema3 de la variable de
entrada
Si se tiene un problema de PL y su
solucin bsica factible. Existe una
variable xk para la cual se puede
realizar el clculo de mediante su
propia regla, se puede generar otra
solucin que mejora el valor de la
funcin objetivo

Algoritmo simplex
1. De la f. estndar, determinar una solucin
bsica factible inicial igualando a las n-m
variables igual a 0.
2. Seleccionar la variable de entrada de las v. no
bsicas que al incrementar su valor pueda
mejorar el valor en la funcin objetivo. Si no se
puede mejorar, la solucin actual es la ptima;
si no, ir al paso 3
3. Seleccionar la variable de salida de las vs.
bsicas
4. Determinar la nueva solucin, ir al paso 2

EJEMPLO:
Resolver el siguiente problema de
utilizando elMtodo Simplex:
Max 40*X1 + 60*X2
s.a. 2*X1 + 1*X2 <= 70
1*X1 + 1*X2 <= 40
1*X1 + 3*X2 <= 90
X1 >= 0 X2 >= 0

Estandarizar

Min - 40*X1 - 60*X2+0X3+0X4+0X5


s.a. 2*X1 + 1*X2 +X3= 70
1*X1 + 1*X2 +X4= 40
1*X1 + 3*X2 +X5= 90
X1 0, X2 0, X3 0, X40, X50
las variables de holgura definen
unasolucin bsica factible inicial,
condicin necesaria para la aplicacin del
mtodo

Paso 1:Tabla inicial


X1

X2

X3

X4

X5

70

40

90

-40 -60
0
0
0
0
se verifican los costos reducidos de
lasvariables no bsicas(X1 y X2 en la
tabla inicial) y se escoge la variable
queentra a la baseaquella con el
costo reducido "ms negativo, X2.

Variable que sale


depende del mnimo cuociente entre el
lado derecho y los coeficientes asociados
a la variable entrante en cada fila (para
aquellos coeficientes > 0. Min
{70/1,40/1,90/3}= 30asociado a la
tercera fila, el cual corresponde a la
variable bsica actualX5, e.d X5 deja
la base. A la fila de X5 lo llamamos
"Pivote"y se combina con las otras
filas, logrando la siguiente tabla:

Primera iteracin
X1

X2

X3

X4

X5

5/3

-1/3

40

2/3

-1/3

10

1/3

1/3

30

-20

20

1800

Segunda iteracin
X1

X2

X3

X4

X5

-5/2

1/2

15

3/2

-1/2

15

-1/2

1/2

25

30

10

2100

Solucin ptima
se alcanza la solucin ptima del problema
P), verificando que los costos reducidos
asociados a las variables no bsicas (X4 y
X5 son mayores o iguales que cero).
Ntese que la existencia de un costo
reducido igual a cero para una variable no
bsica en esta etapa define un problema
con "infinitas soluciones".
La solucin ptima esX1* = 15, X2* = 25
con V(P*) = 2.100.

Problema
Una Carpintera elabora sillas y mesas. Una silla
requiere 1 minuto de torneado en tanto que la mesa
requiere 2 minutos de torneado, puesto que se le debe
dar la forma y el peso especial. Por tanto, la silla
requiere 3 minutos de mquina lijadora y la mesa
requiere 2 minutos. El laqueado es hecho a mano y
entonces solo puede producirse 400 mesas a la semana.
Cada semana se dispone 1000 minutos de torno y 1800
minutos de mquina lijadora. Hay tanta demanda que
garantiza las utilidades de S/o 3.00 por cada silla y de
S/o4.00 por mesa. Determine el programa de
produccin ptima que le d la mxima utilidad a la
Carpintera.

Definicin de variables: X1,


X2
X1 = N de sillas a fabricar
X2 = N de mesas a fabricar
Z = utilidad al vender las mesas y
sillas

Modelamiento del problema

Max z= 3x1 + 4x2


Sujeto a
X1 + 2X2 <= 1000
3x1 + 2X2 <= 1800
X2 <= 400
X1, X2 0

Se estandariza

Min z= -3x1 - 4x2 + 0x3 + 0x4 + 0x5


Sujeto a
X1 + 2x2 + x3 = 1000
3x1 + 2x2 + x4 = 1800
X2 + x5 = 400
Xj 0, j=1,2,3,4,5

Paso inicial

x3
x4
x5
Z

x1
1
3
0
-3

ingresa
A(3,: ) =
A(1,: ) =
A(2,: ) =
A(4,: ) =

x2
2
2
1
-4

x3
1
0
0
0

x4
0
1
0
0

x2 sale x5
A(3,: )/A(3,2)
A(1,: ) A(3, : )*A(1,2)
A(2,: ) A(3, : )*A(2,2)
A(4,: ) A(3, : )*A(4,2)

x5
0
0
1
0
0

b
q
1000 500
1800 900
400 400

Resultado Iteracin 1
x1
q
x3
1
200
x4
3
333.33
x2
0
Inf

x2

x3

x4

x5
-2

b
200

-2

1000

400

-3
0
0
0
4
1600
Ingresa X1, sale X3: A(1,: ) = A(1,: )/A(1,1)
A(2,: ) = A(2,: ) A(1, : )*A(2,1)
A(3,: ) = A(3,: ) A(1, : )*A(3,1)
A(4,: ) = A(4,: ) A(1, : )*A(4,1)

Resultado iteracin 2
x1

x2

x3

q
x1
1
0
x4
0
0
x2
0
1
Z
0
0
3 0
ingresa x5 sale x4.A(2,: )/A(2,5)
A(1,: ) = A(1,: ) A(2, :
A(3,: ) = A(3,: ) A(2, :
A(4,: ) = A(4,: ) A(2, :

x4

1
-3
0
-2
U3 =

x5

0
-2 200 -100
1
4 400 100
0
1 400 400
2200
2200:A(2,: ) =

)*A(1,5)
)*A(3,5)
)*A(4,5)

x1
b
x1 1.0
400.0
x5 0
100.0
x2 0
300.0
Z

x2
q
0
0
1.0

x3

x4

x5

-0.5

0.5

-0.75

0.25

1.

0.75

-0.25