Está en la página 1de 12

Programacin Matemtica para Economistas 132

4.- Dualidad. Mtodo Dual del Smplex.


Como ya vimos en el captulo primero, dado un problema de programacin no lineal,
Max f
s a
D
g(x) b
x
.

( ) x

donde su lagrangiana toma la forma:
L(x, ) = f(x) -
t
(g(x) - b),
se denomina problema primal a:
Max Min
x
L( , ) x
mientras que, su problema dual sera:
Min Max
x
L( , ) x
verificndose, bajo condiciones de convexidad, que:
Max Min
x
L( , ) x = Min Max
x
L( , ) x
A partir de estas ideas vamos a determinar el problema dual asociado al programa
lineal general:
Max c
t
x
s.a Ax b (18)
al cual denominaremos primal.
La funcin Lagrangiana toma en este caso la forma
L(x, ) = c
t
x -
t
(Ax-b)
definida en R
n+
x R
m+
.
Dado que en programacin lineal se verifican las condiciones de convexidad
podemos definir como problema dual del anterior al:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Min
s a
L
L
( ) (
( )
x
x
,
. ,

0
0
) x c x Ax b
t t
=

Programacin Matemtica para Economistas 133

Si calculamos la derivada que aparece en este problema tenemos:

L
x
c A c
t t t t
= = = 0 A
x

y como L(x, ) = c
t
x -
t
(Ax-b)= (c
t
-
t
A)x +
t
b, obtenemos como funcin objetivo del
problema dual L(x, ) =
t
b, puesto que, el primer sumando que apareca en la lagrangiana
vale cero.
De esta forma, el problema dual del (18) es:
Min
s a

t
t t
b
A c . =
0

observndose que, a diferencia de la Programacin no Lineal, en los problemas duales de
Programacin Lineal no aparecen las variables del primal y recprocamente.
En el problema (18) no hemos supuesto que estn explcitamente sealadas
restricciones de no negatividad para las variables. Para ver cmo afecta este hecho al
problema dual, supongamos un problema primal de la forma:
( ) Max
s a
c c
x
A x A x b
A x A x b
x
1 2
1
2
11 1 12 2 1
21 1 22 2 2
1
|
\

|
.
|
+
+ =

.
0

donde hemos considerado que existen algunas restricciones de igualdad.
En este caso la lagrangiana asociada sera:
L(x
1
, x
2
,
1
,
2
,
3
) = c
1
x
1
+ c
2
x
2
-
1
t
(A
11
x
1
+ A
12
x
2
- b
1
) -
2
t
(A
21
x
1
+A
22
x
2
-b
2
) -
3
t
(-x
1
)
la cual estar sujeta a lo siguiente:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

L
L
x
c A A
x
c A A
1
1 11 21
2
2 12 22
= + =
= =




1 2 3
1 2
1 3
0
0
0 0
t t t
t t
,

Programacin Matemtica para Economistas 134

Al igual que antes, si sacamos factor comn en la lagrangiana obtenemos:
L(x
1
, x
2
,
1
,
2
,
3
) = (c
1
-
1
t
A
11
-
2
t
A
21
+
3
t
)x
1
+ (c
2
-
1
t
A
12
-
2
t
A
22
)x
2
+
+
1
t
b
1
+
2
t
b
2

con lo cual, si observamos las resticciones anteriores, nos queda:
L(x
1
, x
2
,
1
,
2
,
3
) =
1
t
b
1
+
2
t
b
2

Por otra parte, si combinamos la primera restriccin con la ltima, es decir,

L
x
c A A
1
1 11 21
= + =

1 2 3
3
0
0
t t t

tendremos:

3
t
1 11 21
c A A = + +
1 2
0
t t

con lo cual, podemos unir las dos en la siguiente:

1 2 11 21 1

t t
A A c +
Min
t t
b b
c
c
+
Por consiguiente, el problema dual asociado al primal anterior ser:
s a
t t
t t

1 2
1 2
1 2
1
0
A A
A A
1 2
11 21 1
12 22 2
+
+ =

.

Asimismo se puede comprobar, fcilmente, que el dual del dual es el primal; esto
nos lleva a considerar el proceso de paso al dual como una caja negra con la siguiente
funcin:
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Maximizar Minimizar
Restricciones

=
s
no
No negatividad Variables
No negatividad Variables s
no

=
Restricciones
Programacin Matemtica para Economistas 135

es decir, a un problema de Programacin Lineal de maximizacin le corresponde un
problema dual de minimizacin; si una restriccin del primal es de desigualdad (), la
variable dual correspondiente "s" est restringida a ser no negativa; si la restriccin es de
igualdad, la variable dual correspondiente no tiene restricciones de no negatividad (si la
restriccin fuese de la forma , es preciso pasarla a multiplicando la restriccin
correspondiente por -1, lo cual supondr un cambio de sensibilidad del recurso); si una
variable primal "s" posee restriccin de no negatividad, la restriccin correspondiente del
dual posee una desigualdad de la forma ; en caso contrario la restriccin correspondiente
es de igualdad.
El proceso puede invertirse, dado que el dual del dual es el primal. Luego en un
problema de minimizacin el paso al dual puede llevarse a cabo entrando por el otro lado de
la caja negra.
Veamos a continuacin cmo obtener una solucin ptima del problema dual a partir
de los clculos utilizados, mediante el mtodo del smplex, para resolver el problema
primal.
Partimos del problema primal tal y como es utilizado por el mtodo del smplex, es
decir:
Max c
t
x
s.a Ax = b
x 0
Sea x* = (x ) la solucin bsica con: x
B
*
,
N
*
A = (B|N), c = (c
B
|c
N
) y x = 0
N
*
Las restricciones sern:
Ax* = (B|N)
x
x
B
N
*
*

= Bx = b x = B


`
)
B
*
B
* -1
b
Escribamos entonces el problema dual
Min
t
b
s.a A
t
c
La funcin de Lagrange del problema primal es:
L(x, ) = c
t
x -
t
(Ax-b)
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

que en la hiptesis de que dicho problema posee solucin, se verificarn las condiciones de
Kuhn-Tucker, dos de las cuales son:
Programacin Matemtica para Economistas 136

L
x
(x*, *) = c
t
- *
t
A 0
x

L
x
(x*, *) = 0 x*
t
(c
t
- *
t
A) = 0
Pues bien, establezcamos en esta ltima la anterior particin:
|(c
B
|c
N
)
t
- *
t
(B|N)]
t
(x x ) = 0
B
* *
Max x x 10 20
8
0
N
lo cual implica que
(c
B
t
- *
t
B)
t
x
B
*
+ (c
N
t
- *
t
N)
t
x
N
*
= 0
y al ser x = 0 resulta:
N
*
(c
B
t
- *
t
B)
t
x
B
*
= 0
y si suponemos que la solucin es no degenerada: x > 0 resulta:
B
*
c
B
t
- *
t
B = 0
de donde
*
t
= c
B
t
B
-1

y sustituyendo en la primera condicin de Kuhn-Tucker:
c
t
- c
B
t
B
-1
A 0
que es la condicin de optimalidad para el mtodo del smplex en los problemas de mximo.
CONCLUSIN: *, solucin del problema dual puede obtenerse como los valores z
j

correspondientes a la base inicial (en la ltima tabla del smplex del problema primal).
Veamos un ejemplo de lo expuesto hasta ahora. Supongamos que nuestro problema
primal es el siguiente:
s a x x
x x
x x
2 3 1
2 1
0
1 2
1 2
1 2
1 2
+
+
+

.
,

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

luego, utilizando la caja negra, el dual sera:
Programacin Matemtica para Economistas 137

Min 18 10
0
0
s a 2 2 1
3 2 2
0

1 2
1 2
1 2
1 2
+
+
+




.
,

Si resolvemos el problema primal tenemos como ltima tabla la siguiente:
10 20 0 0
B C
B
P
0
P
1
P
2
P
3
P
4

P
2
20 6 2/3 1 1/3 0
P
4
0 4 4/3 0 -1/3 1
120 -10/3 0 -20/3 0
luego, la solucin del primal es (0, 6, 0, 4). En cuanto a la solucin del dual, como ya hemos
indicado, se encuentra tambin en esta ltima tabla. Seran los z
j
de los vectores que estaban
en la primera tabla vistos en la ltima. En este caso, los vectores que formaban la base
inicial eran los correspondientes a las variables de holgura, es decir P
3
y P
4
. Tenemos que:
c
3
- z
3
= -20/3
c
4
- z
4
= 0
luego,
z
3
= c
3
+ 20/3 = 0 + 20/3 = 20/3
z
4
= c
4
+ 0 = 0 + 0 = 0
Por tanto,

1
= 20/3
2
= 0
Volviendo al desarrollo terico, basado en el problema dual, y analizando que toda
solucin debe ser admisible dual, puede ser contemplado el mtodo del smplex en el caso
de que no exista admisibilidad primal, y basndonos en la anterior obtener la de ste. Dicho
mtodo es conocido como el mtodo dual del smplex, y es expuesto a continuacin, siendo
necesario para el problema de post-optimizacin que ser objeto de estudio ms adelante.

Mtodo Dual del Smplex.
Consideremos:
Max c
t
x
s.a Ax = b
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

x 0
Programacin Matemtica para Economistas 138

y su dual
Min
t
b
s.a A
t
c
Veamos, ante todo, que si
0
es solucin del problema dual, ello lleva consigo que
c
j
- z
j
0, j=1,2,...,n

0t
= c
B
t
B
-1

y si
0
es solucin, ha de ser admisible:
A
t

0
c
es decir:
A
t
B
-1
c
B
c
o lo que es lo mismo:
c
B
t
B
-1
A c
t

Descompongamos ahora A y c:
c
B
t
B
-1
(B|N) (c
B
|c
N
)
t

con lo que:
c
B
t
B
-1
N c
N
t

es decir:
c
B
t
B
-1
P
j
c
j
j = m+1,...,n
lo que quiere indicar que z
j
c
j
para j=m+1,...,n, verificndose la igualdad para los vectores
bsicos j=1,2,...,m, que es la condicin de optimalidad para el primal.
Pues bien, supongamos que, mediante el mtodo del smplex, hemos llegado a que:
c
j
- z
j
0 j=m+1,...,n
siendo nulos los restantes y, sin embargo, la solucin ptima x' no es admisible por tener, al
menos, una componente negativa. Sea sta x
s
(x
s
< 0). En estas condiciones vamos a
demostrar que si ' es la solucin del dual asociada a x', se puede encontrar otra, *, que
mejora la anterior sin modificar, segn acabamos de demostrar, el signo de los c
j
- z
j
.
Sea D
s
la fila nmero "s" de B
-1
y un numero positivo. Si llamamos:
*
t
= '
t
+ D
s
(19)
vamos a ver que este valor de * va a mejorar al anterior ':
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

*
t
b = '
t
b + D
s
b = '
t
b + x
s

Programacin Matemtica para Economistas 139

y como suponemos que: x
s
< 0 y > 0:
*
t
b < '
t
b
Luego * mejora el valor de la funcin obtenido para ' para todo > 0.
Veamos en segundo lugar cunto tiene que valer para que * sea admisible, es
decir A
t
* c, sabiendo que A
t
' c.
Establezcamos:
*
t
P
j
= '
t
P
j
+ D
s
P
j
= '
t
P
j
+
sj
, j=m+1,...,n
*
t
P
r
= '
t
P
r
+ D
s
P
r
= '
t
P
r
r=1,...,s-1,s+1,...,m
*
t
P
s
= '
t
P
s
+ D
s
P
s
='
t
P
s
+
o lo que es lo mismo:
*
t
P
j
= z = z
j
*
j
'+
sj
c
j
+
sj
j=m+1,...,n
*
t
P
r
= z
r
*
= z
r
'= c
r
r=1,...,s-1,s+1,...,m
*
t
P
s
= z
s
*
*
z
*
= z
s
'+ = c
s
+
pudiendo ocurrir:
a)
sj
0 j {m+1,...,n}.
En este caso, z z
j
j
' c
j
, y * es entonces solucin admisible pues:
j
= *
t
P
j
c
j
(j=1,2,...,n) *
t
A c
t

y lo es para cualquier valor positivo de . Ello quiere decir que el problema dual tiene
solucin ilimitada y por lo tanto el primal no tiene solucin.
b) p {m+1,...,n} /
sp
< 0
En este caso, * sigue siendo solucin del problema del dual si y slo si:
*
t
P
p
c
p
z c
p
*
p

o lo que es equivalente
z
p
' +
sp
c
p

R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

con lo que:
Programacin Matemtica para Economistas 140

c z
p
sp
'
p
por ser
sp
< 0
luego eligiendo:

=

=

<
min
c z
c z
sp
p p
sp
k k
sk
0
'
'

resultara que:
*
t
P
k
= z'
k
+
c z
c
k k
sk
sk k

=
'


*
t
P
s
= z
s
' + = c
s
+ c
s

es decir, cambiando el elemento s de la base por el k obtenemos una solucin admisible para
el dual, *, que mejora la anterior solucin '.
Este desarrollo nos da pie al siguiente algoritmo.-
Paso 1: Si todos los c
j
- z
j
son no positivos o cero con x* 0, entonces x* es solucin
ptima del primal.
Si todos los c
j
- z
j
son no positivos o cero y algn x
s
*
< 0, donde, x
s
*
*
*
x
es una
componente de x , se pasa a 2.
B
Paso 2: Si x tiene ms de una componente negativa elegir:
B
s
* *
x
*
= min {x / < 0, p {m+1,...,n}}
p p
en cuyo caso P
s
sale de la base.
Nos fijamos a continuacin en los
sp
(p=m+1,...,n); si todos son positivos o nulos el
problema primal carece de solucin.
Si alguno o algunos son negativos elegimos:
c z
c z

min
k k
sk
p p
sp
sp
=

<

0

en cuyo caso P
k
entra en la base.
Paso 3: Sustituir en la base P
s
por P
k
, calcular los nuevos valores de la tabla del smplex e ir
al paso 1.
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Veamos un ejemplo de la utilizacin de este mtodo. Supongamos que debemos
solucionar el siguiente problema:
Programacin Matemtica para Economistas 141

Max x x
s a x x
x x
x x
x x
+
+
+

3 3
4 3
2 2
0
1 2
1 2
1 2
1 2
1 2
.
,
2
6

Dicho problema puede ser resuelto mediante el mtodo de la M-grande. Basta con
introducir una variable de holgura y una artificial en cada una de las tres restricciones
correspondientes, pero con ello el problema pasa a tener muchas variables y adems
necesitaremos varias tablas para que las variables artificiales salgan de la base. Un mtodo
alternativo para solucionar este problema es el mtodo dual del smplex. Para utilizarlo
cambiamos de signo a las restricciones de mayor o igual:
Max x x
s a x x
x x
x x
x x


3 3
4 3
2 2
0
1 2
1 2
1 2
1 2
1 2
.
,
2
6

y les sumamos las variables de holgura correspondientes:
Max x x x x x
s a x x x
x x x
x x x
x x x x x
+ =
+ =
+ =

3 3
4 3 6
2 2
0
1 2 3 4
1 2 3
1 2 4
1 2 5
1 2 3 4 5
.
, , , ,
2 0 0 0
5

+ + +
La primera tabla de este problema sera:

-2 -1 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
3
0 -3 -3 -1 1 0 0
P
4
0 -6 -4 -3 0 1 0
P
5
0 -2 -1 -2 0 0 1
0 -2 -1 0 0 0
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

Vemos cmo estamos en condicin de optimalidad porque todos los c
j
- z
j
no bsicos
son negativos, pero, por otra parte, la columna de P
0
presenta componentes negativas, cosa
que no podemos aceptar. Estos son los dos requisitos que necesitamos para que se pueda
aplicar el mtodo dual del smplex. Si alguno de los dos falla no puede ser aplicado este
mtodo.
Programacin Matemtica para Economistas 142

Una vez comprobado que se puede utilizar este procedimiento, elegimos el vector
que va a salir de la base, sera aquel al que corresponde el:
x
s
= min {x
p
/ x
p
< 0} = min {-3, -6, -2} = -6 Sale P
4
.
Una vez elegido el vector que sale se observa su fila y se eligen los valores
negativos, en este caso tenemos
41
= -4,
42
= -3, luego entra el vector al que le
corresponde el:
min
c z
min
sp
p p
sp


<


`
)
=
0
2
4
1
3
1
3
, Entra P
2
.

La siguiente tabla recoge este cambio:
-2 -1 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
3
0 -1 -5/3 0 1 -1/3 0
P
2
-1 2 4/3 1 0 -1/3 0
P
5
0 2 5/3 0 0 -2/3 1
-2 -2/3 0 0 -1/3 0
En esta tabla sigue existiendo un elemento negativo en el vector P
0
, luego, debemos
aplicar de nuevo el criterio de salida y entrada del mtodo dual. En esta ocasin slo puede
salir de la base P
3
, ya que es el nico que presenta una componente negativa en la columna
de P
0
. Miramos su fila y vemos los negativos. En este caso existen dos negativos:
31
= -5/3

34
= -1/3, luego, debemos buscar el:
min min
sp
p p
sp


<
=

`
)
=
0
2 3
5 3
1 3
1 3
2 5
/
/
,
/
/
/

Entra P
1
.
c z

La tabla correspondiente ser:

-2 -1 0 0 0
B C
B
P
0
P
1
P
2
P
3
P
4
P
5

P
1
-2 3/5 1 0 -3/5 1/5 0
P
2
-1 6/5 0 1 4/5 -3/5 0
P
5
0 1 0 0 1 -1 1
-12/5 0 0 -2/5 -1/5 0
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz


Programacin Matemtica para Economistas 143

en la que se puede obsevar que ya todas las componentes del vector P
0
son positivas y los
c
j
- z
j
son todos negativos o cero, luego sera la tabla final, la cual, nos indica que la solucin
correspondiente es: (3/5, 6/5, 0, 0, 1).
R. Caballero, T. Gmez, M. Gonzlez, M. Hernndez, F. Miguel, J. Molina, M.M. Muoz, L. Rey, F. Ruiz

También podría gustarte