You are on page 1of 32

Optimizacin

Lineal.
Mtodo
Simplex
Captulo 3
Historia
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, 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 2
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 3
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 4
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 5
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


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
Basevariable entra
X2 X3 X4 X5
X1
X3 2 1 1 0 0 70
X4 1 1 0 1 0 40
X5 1 3 0 0 1 90
Z -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:
Paso 2:Primera iteracin
Base
X2 X3 X4 X5
X1
X3
0 1 0 -1/3 40
5/3
X4
0 0 1 -1/3 10
2/3
X2
1 0 0 1/3 30
1/3
z
0 0 0 20 1800
-20
Paso 3: Segunda
iteracin
Base
X2 X3 X4 X5
X1
X3
0 1 -5/2 1/2 15
0
X1
0 0 3/2 -1/2 15
1
X2 0 1 0 -1/2 1/2 25
Z
0 0 30 10 2100
0
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 1: Tabla inicial
x1 x2 x3 x4 x5 b
x3 1 2 1 0 0 1000
x4 3 2 0 1 0 1800
x5 0 1 0 0 1 400
Z -3 -4 0 0 0 0
disp(iteracin 1);disp(ingresa x2 sale x5);
A(3,: ) = A(3,: )/A(3,2)
A(1,: ) = A(1,: ) A(3, : )*A(1,2)
A(2,: ) = A(2,: ) A(3, : )*A(2,2)
A(4,: ) = A(4,: ) A(3, : )*A(4,2)
Paso 2: Iteracin 1
x1 x2 x3 x4 x5 b
q
x3 1 0 1 0 -2 200
200
x4 3 0 0 1 -2 1000
333.33
x2 0 1 0 0 1 400
Inf
z -3 0 0 0 4 1600
disp(iteracin 2);disp(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)
Paso 3: iteracin 2
x1 x2 x3 x4 x5 b
q
x1 1 0 1 0 -2 200 -100
x4 0 0 -3 1 4 400 100
x2 0 1 0 0 1 400
400
Z 0 0 3 0 -2 2200
disp(iteracin 3); disp(ingresa x5 sale x4);
A(2,: ) = A(2,: )/A(2,5)
A(1,: ) = A(1,: ) A(2, : )*A(1,5)
A(3,: ) = A(3,: ) A(2, : )*A(3,5)
A(4,: ) = A(4,: ) A(2, : )*A(4,5)
Paso 4: iteracin 3
x1 x2 x3 x4 x5 b
q
x1 1.0 0 -0.5 0.5 0 400.0
x5 0 0 -0.75 0.25 1. 100.0
x2 0 1.0 0.75 -0.25 0 300.0
Z 0 0 1.5 0.25 0 2400

Solucin ptima:
xxx1 =400, xx2=300, zx =2400

You might also like