Académique Documents
Professionnel Documents
Culture Documents
Algoritmo Simplex
= ct x
= b
0
= m;
b Rm ;
c Rn
j=1
i 0,
j 0,
k
X
donde:
i = 1, 2, ..., k
j = 1, 2, ..., l
i = 1
i=1
cx=
k
X
i c x i +
i=1
l
X
j ct dj
j=1
donde:
j 0, j = 1, 2, ..., k
j 0, j = 1, 2, ..., l
k
X
j = 1
j=1
j=1
1.1
Algoritmo del M
etodo SIMPLEX
jJ
t
cB B 1 aj
= ctB yj
Observacion:
yj = B 1 aj aj = Byj
= y1j aB1 + . . . + ymj aBm
Es decir , yj es el vector de coordenadas de la columna no basica aj
respecto a la base B.
3
j J : zj cj > 0
Sea :
z = z (zk ck ) = z (ctB yk ck )
Hay que aumentar tanto como sea posible de forma que no salgamos
del conjunto factible.
xB
xN
=
=
z =
B 1 b B 1 N ek = B 1 b B 1 ak = B 1 b yk
ek
x = x + (yk , ek )t 0
ct x = z (ctB yk ck )
B 1 bi
yik
i = 1, 2, . . . , m
B 1 br
(yk , ek )t
yrk
es decir,
xBi = B 1 bi
xk =
B 1 br
yij
yrj
B 1 br
yrj
i = 1, 2, . . . , m
xj = 0 j 6= k
B 1 br
yrj = 0
yrj
B = (a4 , a5 , a6 )
6
z = 0
Criterio de Entrada:
z1 c1 = 3
z2 c2 = 1
z3 c3 = 2
Cualquiera de las tres variables que se seleccione, la funcion objetivo va
a mejorar, pero en este caso seleccionamos a la variable x1 para que entre en
la base, y el vector asociado y1 = (2, 1, 2)t > 0.
Criterio de Salida:
2
2 5 6
min
, ,
=
2 1 2
2
que corresponde a la variable x4 , por tanto es la que sale de la base.
Pivoteo: seleccionamos como pivote a y11 = 2 6= 0, al efectuar el pivoteo,
el sistema resultante es:
1
1
1
x1 + x2 + x3 + x4
= 1
2
2
2
3
5
1
x2 + x3 x4 + x5
= 4
2
2
2
x2 x4 + x6 = 4
xi 0
i
y la nueva solucion factible basica es:
x = (1, 0, 0, 0, 4, 4)t
z = 3
1.2
Tabla del M
etodo Simplex
Para efectuar el paso del pivoteo en el algoritmo del metodo Simplex, necesitamos los siguientes elementos:
1. Los vectores yj que son las coordenadas de cada columna de la matriz
A respecto a la base actual B.
2. Las coordenadas del vector de los terminos independientes b respecto
a la base actual B.
3. Los correspondientes valores de zj cj para las variables no basicas.
7
cB
cB1
cB2
..
.
xB
xB1
xB2
..
.
cj
x = y0
xB1
xB2
..
.
c1
y1
y11
y21
..
.
c2
y2
y12
y22
..
.
cBl
..
.
xBl
..
.
xBl
..
.
yl1
..
.
yl2
..
.
cBm xBm
zj cj
xBm
z
ym1
ym2
z1 c1 z2 c2
...
...
...
...
...
...
ck
yk
y1k
y2k
..
.
ylk
..
.
...
...
...
...
...
...
cn
yn
y1n
y2n
..
.
yln
..
.
...
...
...
ymk
...
ymn
. . . zk ck . . . zn cn
4x1 + 3x2
2
6
6
0
cB
xB
0
x3
0
x4
0
x5
zj cj
cj 4 3 0 0 0
x y1 y2 y3 y4 y5
2 1 1 1 0 0
6 1
2 0 1 0
6 2
1 0 0 1
0 4
3 0 0 0
cj 4 3 0 0 0
x
y1 y2 y3 y4 y5
3
5
0
1 0 12
2
3
3
0
0 1 1
2
2
1
1
3
1
0
0
2
2
12 0
1 0 0 2
cj 4 3 0 0
0
x
y1 y2 y3 y4 y5
2
0
0 1 1 1
2
0
1 0 23 1
3
2
2
1
0 0 1
3
3
2
5
14 0
0 0 3
3
M
etodo de las dos Fases
x 0;
9
xa 0
Es importante diferenciar las variables de holgura de las variables artificiales, las restricciones siguientes son equivalentes:
Ax b;
x 0 Ax + Ixh = b; x 0; xh 0
x0<
< Ax + Ixa = b; x 0; xa 0
=
=
=
et xa
ct x
b
0
10
=
=
=
4x1 + x2 + x3
4
3
0
s.a.
min z
2x1 + x2 + 2x3 + xa1
3x1 + 3x2 + x3 + xa2
xi 0 xai
=
=
=
xa1 + xa2
4
3
0 i
tj 0 0 0 1 1
x y1 y2 y3 y1a y2a
4 2 1 2 1 0
3 3 3 1 0 1
7 5 4 3 0 0
tj 0 0 0 1 1
x y1 y2 y3 y1a y2a
2 0 1 43 1 2
3
1 1 1 13 0 13
2 0 1 43 0 5
3
tB
xB
0
x3
0
x1
wj tj
tj 0 0 0 1
1
a
x y1 y2 y3 y1 y2a
3
0 3
1 34 1
2
4
2
1
5
1
1
1
0
2
4
4
2
0 0 0 0 1 1
La solucion optima de la primera fase es x = 12 , 0, 32 , 0, 0 , suprimiendo
las variables artificiales queda x = 12 , 0, 32 , con w
= 0, podemos pasar a la
Segunda Fase, partiendo de la u
ltima tabla obtenida.
cB
xB
1
x3
4
x1
zj cj
cj 4 1 1
x y1 y2 y3
3
0 3
1
2
4
1
5
1 4 0
2
7
0 13
0
2
4
2.1
cj
x
4
y1
M
etodo de Penalidades o Big M
min w = c x +
m
X
M xai
i=1
s.a.
Ax + Ixa = b
x 0; xa 0
4x1 x2
1
12
0
Dualidad
1
x1 + x2 22
2
x1 + x2 27.5
x1 0 x2 0
Para 20x1 + 30x2 = c, con c = 600, una recta de nivel de la Funcion
Objetivo pasa por (30; 0) y por (0; 20), el resto de las rectas de nivel son
paralelas a esta.
Graficamente vemos que el punto P es la solucion optima, siendo P la
interseccion entre las rectas:
3x1 + 6x2 = 150
x1 + x2 = 27.5
x2 = 22, 5
x1 + x2 = 27.5
14
3
x2 =
137
6
2335
10
= 775 +
3
3
10
3
15
Para el az
ucar es obvio que el incremento de 1 kg no modifica la solucion
optima del problema original, por tanto:
z = u2 = 0
Finalmente para la mantequilla, el nuevo optimo es la solucion de:
3x1 + 6x2 = 150
x1 + x2 = 28.5
x2 = 21.5
10
3
u2 = 0
u3 = 10
2. Los precios justos a los que debe vender cada kg de los recursos de que
dispone coinciden con el beneficio adicional o marginal, de disponer de
1 kg mas de dichos recursos para producir pasteles. En particular como
la restriccion de az
ucar no se satura, hay excedente de az
ucar, el precio
del az
ucar es 0.
3. Al problema del comprador se le llama Problema DUAL [D], tiene
tantas restricciones como variables tenga el Problema PRIMAL [P ] y
tantas variables como restricciones tenga [P ]. La Teora de Dualidad
General estudia las relaciones existentes entre ambos problemas.
Resumen del Ejemplo:
Problema del Pastelero [P ]:
max z = 20x1 + 30x2
s.a. 3x1 + 6x2 150
1
x1 + x2 22
2
x1 + x2 27.5
x1 0 x2 0
Problema del Comprador [D]:
min z = 150u1 + 22u2 + 27, 5u3
s.a. 3u1 + u2 + u3 20
1
6u1 + u2 + u3 30
2
u1 0; u2 0; u3 0
3.1
Definici
on del Problema Dual
[D] : max w = bt u
s.a. At u c
u
irrestricta
17
[D] : min w = bt u
s.a. At u c
u 0
3. En forma canonica de minimizacion:
[P] : min z = ct x
s.a. Ax b
x 0
[D] : max w = bt u
s.a. At u c
u 0
Las definiciones anteriores son consistentes, es decir, si escribimos un
problema en cualquiera de los tres formatos, su problema dual asociado siempre es el mismo.
Observaciones:
1. A cada restriccion primal le corresponde una variable dual.
2. El vector demanda o requerimiento b del problema primal P se convierte
en el vector de costo del dual D.
3. El vector de la funcion objetivo c del problema primal P se convierte
en el vector de requerimiento del problema dual D.
4. Se cambia la funcion objetivo de min a max.
5. Se cambia el sentido de las restricciones.
18
3.2
s.a. At u c ut A ct
u
irrestricta
El siguiente Lema demuestra que el mnimo del problema Primal es siempre mayor o igual que el maximo del problema Dual asociado, para cualquier
punto factible.
Lema: Sea x una solucion factible del problema primal y u una solucion
factible del problema dual, entonces:
c t x bt u
Demostracion:
ct x ut Ax = ut b = bt u
Como consecuencia del lema, si x es factible para el problema Primal
y u es factible para el problema Dual y ademas ct x = bt u, entonces x y u
son los optimos de sus respectivos problemas. Es decir, ct x = bt u, es una
condicion suficiente para que x y u sean optimos. El Teorema de Dualidad
demuestra que la condicion anterior, ademas de suficiente, debe cumplirse
necesariamente.
Teorema Fundamental de Dualidad de la Programacion Lineal.
Si P tiene una solucion optima finita, tambien la tiene D y los correspondientes valores de las funciones objetivos son iguales.
Si P no tiene solucion acotada, entonces D no tiene solucion factible.
Otra forma de Enunciarlo:
Dado un par de problema duales, una condicion necesaria y suficiente para
que una solucion factible x sea optima, es que exista una solucion factible u
del otro problema, tal que:
ct x = bt u
Ademas esta solucion u es tambien optima de su problema asociado.
Demostracion
La segunda parte es inmediata por el Lema:
Si D no tuviera solucion factible, existira u Rm tal que bt u ct x para
cualquier x que sea factible, lo cual es una contradiccion ya que hemos considerado la solucion de P no acotada.
Sea x la solucion optima finita de P , por tanto x esta asociada a una base
optima formada por las columnas de la matriz B:
x = (
xB ; xN )t = (B 1 ; 0)
Definimos ut = ctB B 1 Rm , entonces:
ut = ctB B 1 (B, N )
20
= (ctB , ctB B 1 N ) ct
ctB B 1 N ctN
zj cj
j R
zj cj 0
j R = {i : xi es no basica}
pero esta condicion se cumple puesto que x es el optimo, entonces u es
factible para D.
Ademas, por el lema, se cumple que:
ut = ctB B 1 b = ct x
Por tanto u es el optimo de D.
Observaciones:
1. Interpretacion Economica: El pastelero gana lo mismo si vende su negocio como si contin
ua produciendo pasteles, siempre que su problema
tenga solucion optima finita. Si el problema no estuviera acotado, por
ejemplo que pueda ganar infinito produciendo pasteles, no debera aceptar ninguna oferta, como consecuencia, el problema del comprador, el
dual, no tiene solucion factible.
2. Resolver P , encontrar la base optima B para P , equivale a resolver D
a traves de la expresion:
ut = ctB B 1
3. La condicion de factibilidad de u es equivalente a la de optimalidad de
x y recprocamente.
u factible
x factible
x optimo
u optimo
i = 1, 2, ..., m
ya que :
z =
ctB B 1 b
= u b =
t
X
i=1
21
ui bi
luego la solucion del problema dual puede interpretarse como el incremento de la funcion objetivo del primal ante peque
nas variaciones de
los recursos bi . De donde ui es el precio justo que debe pagar el comprador por cada unidad de recurso del negocio, llamado en economa
el precio sombra.
5. Si P no es factible, entonces se cumple que D no es acotado o D no es
factible, lo que no puede ocurrir es que D tenga solucion finita.
3.3
Algoritmo Dual-Simplex
22
3x1 x2
1
2
0
23
cj 3 1 0 0
cB
xB x y1 y2 y3 y4
0
x4 1
1
0 3 1
1
x2 1
1
1 1 0
zj cj
1 2
0
1 0
Como todos los x son no negativos, estamos en la solucion optima y
u
nica del problema es x = (0, 1, 0, 1), y el valor de la funcion objetivo queda
z = 1.
Ejemplo:
s.a.
min z
3x1 + 5x2
x1 + 3x2
x1 0; x2
2x1 3x2
5
4
0
cj
2 3 0 0
cB
xB x y1 y2 y3 y4
0
x3 5 3 5 1 0
0
x4 4
1
3 0 1
zj cj
0 2 3 0 0
En esta tabla existe un zj cj > 0 y el problema es de calcular el mnimo,
no contamos con las condiciones necesarias para aplicar el algoritmo Dual
del Simplex, hay que utilizar alguno de los algoritmos que utilizan variables
artificiales.
Siempre que en la funcion objetivo halla al menos un coeficiente de las
variables que sea negativo, no es posible aplicar el metodo Dual del Simplex.
El metodo Dual del Simplex no contempla solucion no acotada, debido
a que parte de que los zj cj 0 para toda j, esto implica que existe una
solucion factible del Dual y si P o D tienen solucion Factible, entonces el
problema correspondiente tiene Solucion finita, como el dual D tiene Solucion
Factible, entonces el primal P tiene solucion finita.
24
3.4
Holguras Complementarias
(cj
n
X
aij ui )
xj = 0
j=1
Si :
xj > 0
cj
n
X
aij ui = 0
j=1
cj =
n
X
aij ui
j=1
Si :
n
X
aij ui > cj
xj = 0
j=1
P
En Economa la expresion nj=1 aij ui se puede interpretar como la ganancia
o beneficio esperado y el cj como el beneficio real.
Demostracion :
[=]
Como x y u son soluciones factibles de los problemas P y D respectivamente, entonces x 0 y u 0, ademas A
x b y uA c , por tanto
:
A
xb0
c uA 0
25
Luego :
= u(A
x b) 0
= (c uA)
x0
Sumando miembro a miembro obtenemos :
+ = c
x ub 0
Seg
un el Teorema de Dualidad, una condicion necesaria y suficiente para que
x y u sean optimas es que el miembro de la derecha de esta igualdad sea
0, o sea, tendramos que + = 0, pero como 0 y 0 se tiene
necesariamente que cumplir que = = 0, con lo cual queda demostrada
la implicacion hacia la derecha.
[=]
u(A
x b) = 0
(c uA)
x = 0
Sumando miembro a miembro obtenemos :
c
x ub = 0
de donde c
x = ub , seg
un el Teorema de Dualidad y la Propiedad, que
expresa que si el primal tiene optimo finito entonces el dual tambien lo tiene
y coinciden sus valores optimos, entonces x y u son soluciones optimas de los
problemas primal P y dual D respectivamente, con lo que queda demostrada
la segunda implicacion.
M
etodos de Punto Interior
zD = b u +
sujeta a :
n
X
ln sj
j=1
t
A u+s = c
Notese que los sj nunca seran nulos para que la funcion de penalizacion
este bien definida.
27
Los metodos de punto interior resuelven el problema para diferentes valores del parametro , este parametro se define de manera que : 0 > 1 >
2 > ... > = 0, generando una sucesion de problemas cuya sucesion de
soluciones {xk } converge a la solucion del problema dual.
La funcion Lagrangiana de nuestro nuevo problema tiene la forma:
t
L(x, u, s, ) = b u +
n
X
ln sj X t (At u + s c)
j=1
=
=
=
At u + s c = 0
Ax b = 0
XSe e = 0
diag(x1 , x2 , ..., xn )
diag(x1 , x2 , ..., xn )
diag(s1 , s2 , ..., sn )
(1, 1, ..., 1)t
Las direcciones de b
usqueda primal y dual se obtienen resolviendo el
sistema anterior para las variables 4x, 4u y 4s:
4u = (AXS 1 At )1 AS 1 v()
4s = At 4u
4x = S 1 v() XS 1 4s
siendo v() = e XSe.
28
4.1
Actualizaci
on del par
ametro de penalizaci
on
4.2
Criterio de Parada
4.3
Selecci
on del punto inicial
Si no se dispone de un punto inicial factible, el algoritmo heurstico de Vaderbei proporciona un buen punto de inicio.
30
xj =
kbk2 + 1
kA
x k2 + 1
4.4
Otros Algoritmos
33