31 12.1. EL MODELO DUAL A todo programa lineal, llamado

Anuncio
12.1. EL MODELO DUAL
A todo programa lineal, llamado problema primal, le corresponde otro que se
denomina problema dual. Las relaciones existentes entre ambos problemas son las
siguientes:
• El dual tiene tantas variables como restricciones existen en el primal.
• El dual tiene tantas restricciones como variables tiene el primal.
• Los coeficientes de la función objetivo del primal son los términos
independientes de las restricciones del dual.
• Los términos independientes de las restricciones del primal son los
coeficientes en la función objetivo del dual.
• La matriz de coeficientes de las restricciones del dual es igual a la
traspuesta de la del primal.
Se pueden distinguir dos tipos de problemas duales:
1. Duales simétricos: para primales que incluyan restricciones de
desigualdad.
2. Duales asimétricos: para primales en forma estándar, es decir, con
restricciones de igualdad.
Otro tipo de relaciones entre los problemas primal y dual son las siguientes:
31
• Para duales simétricos el sentido de desigualdad de las restricciones del
dual es inverso al de las del primal; mientras que para asimétricos, las
restricciones del dual son de sentido menor o igual en caso de que el
problema primal sea de minimización, y de mayor o igual en caso de
maximización. Además, las variables del dual, variables duales, no están
sujetas a la condición de no negatividad.
• El problema dual de uno de minimización es de maximización y
viceversa.
• El dual del programa dual es el primal.
Primal:
max
s.a.:
f ( X ) = c1 x1 + + cn xn
a11 x1 + + a1n xn ≤ b1
am1 x1 + + amn xn ≤ bm
xi ≥ 0, i = 1, , n
Dual:
min
s.a.:
g (Y ) = b1 y1 + + bm ym
a11 y1 + + am1 ym ≥ c1
a1n y1 + + amn ym ≥ cn
yi ≥ 0, i = 1, , m
Se pueden resumir primal y dual en un cuadro como el que sigue, donde el primal
se lee verticalmente y el dual de forma horizontal:
32
PROGRAMAS
DUAL (MIN.)
a11
a12
am1
y1 ≥ 0
am 2
a1n
amn
PRIMAL (MAX.)
x1 ≥ 0
xn ≥ 0
y2 ≥ 0 ym ≥ 0
≤
≤
b1
bm
variables
≥ ≥ ≥
c1 c2 cn
relación
constantes
1. Duales asimétricos:
a)
Primal:
max
s.a.:
f ( X ) = c1 x1 + + cn xn
a11 x1 + + a1n x n = b1
a m1 x1 + + a mn x n = bm
xi ≥ 0, i = 1, , n
Dual:
min
s.a.:
g (Y ) = b1 y1 + + bm ym
a11 y1 + + am1 ym ≥ c1
a1n y1 + + amn ym ≥ cn
y i , i = 1, , m , no restringidas en signo
b)
Primal:
min
s.a.:
f ( X ) = c1 x1 + + cn xn
a11 x1 + + a1n x n = b1
a m1 x1 + + a mn x n = bm
xi ≥ 0, i = 1, , n
Dual:
max
s.a.:
g (Y ) = b1 y1 + + bm ym
a11 y1 + + a m1 y m ≤ c1
a1n y1 + + a mn y m ≤ c n
y i , i = 1, , m , no restringidas en signo
33
La tabla anterior queda ahora de la siguiente forma:
PROGRAMAS
DUAL MIN.
(MAX.)
a11
a12
am1
y1
am 2
PRIMAL MAX. (MIN.)
x1 ≥ 0
a1n
xn ≥ 0
amn
y2 ym
≥ (≤ ) ≥ (≤ ) ≥ (≤ )
c1 c2 cn
=
b1
bm
=
variables
relación
constantes
Nota:
Sin distinguir en el caso de duales simétricos o asimétricos, podemos formular una
tabla general, que reúne las relaciones entre el problema primal y dual, sea cual sea
su formulación:
VARIABLES
Problema de
minimización
≥0
≤0
no restringidas
RESTRICCIONES
≥
≤
=
Problema de
maximización
≤
≥
=
≥0
≤0
no restringidas
RESTRICCIONES
VARIABLES
La ventaja de esta tabla es que se puede leer de derecha a izquierda o viceversa,
según el problema primal sea de maximización o minimización, respectivamente.
Además, en el problema primal pueden darse diferentes combinaciones en cuanto
al sentido de sus desigualdades o al signo de sus variables.
34
Ejemplos:
1.
Primal:
max
s.a.:
2 x1 + x2
x1 + 5 x2 ≤ 10
x1 + 3 x2 ≤ 6
2 x1 + 2 x2 ≤ 8
x1 , x2 ≥ 0
Como el primal es de maximización, el dual será de minimización, por lo
que leemos la última tabla de derecha a izquierda. Esto nos dice que por ser
todas las restricciones de menor o igual, las variables duales serán de signo
no negativo; además por ser las variables primales no negativas, todas las
restricciones duales serán de mayor o igual. El problema dual quedará por
lo tanto como:
Dual
min
s.a.:
10 y1 + 6 y2 + 8 y3
y1 + y2 + 2 y3 ≥ 2
5 y1 + 3 y2 + 2 y3 ≥ 1
y1 , y2 , y3 ≥ 0
2.
Primal
min
s.a.:
+ 2 x2 + x3
+ 3 x2 + x3 ≥ 20
+ 8 x2 + 5 x3 ≥ 30
+ x2 + 3 x3 ≥ 40
x1 + 2 x2 + 4 x3 ≥ 50
x1 , x2 , x3 ≥ 0
5 x1
2 x1
6 x1
7 x1
En este caso, leemos la tabla de izquierda a derecha, resultando el dual:
Dual
max
s.a.:
20 y1 + 30 y2 + 40 y3 + 50 y4
2 y1 + 6 y2 + 7 y3 + y4 ≤ 5
3 y1 + 8 y2 + y3 + 2 y4 ≤ 2
y1 + 5 y2 + 3 y3 + 4 y4 ≤ 1
y1 , y2 , y3 , y4 ≥ 0
35
12.2. RELACIONES PRIMAL-DUAL
Con la solución del primal, se obtiene con el Simplex implícitamente la del dual.
Veámoslo:
Sea el primal en forma estándar:
max
s.a.:
Z = CX
AX = b
X ≥0
Escribimos A =
correspondientes a
Entonces:
max
s.a.:
(B/N), con B la submatriz formada por las columnas
las variables básicas, y N lo mismo para las no básicas o libres.
Z = CB X B + C N X N
BX B + NX N = b
XB, X N ≥ 0
La solución de este problema consiste en hacer que el vector no básico X N sea cero,
y resolver el vector básico en términos de la base B, es decir:
BX B + NX N = b ⇒ BX B = b ⇒ X B = B −1b
y la función objetivo será:
Z = C B X B + C N X N = C B X B = C B B −1b
Ahora bien, la función objetivo dual es g (Y ) = bT Y = Y T b , y en el óptimo el valor de
la función objetivo primal coincide con el valor óptimo de la función objetivo dual,
esto es, Z X * = g Y * . Por lo tanto:
( )
( )
( )
( )
( )
Z X * = g Y * ⇒ C B* B*
−1
( )
T
( )
b = Y * b ⇒ C B* B *
−1
( )
= Y*
T
En los casos particulares que estudiaremos, este valor no hace falta calcularlo
explícitamente si hemos resuelto el primal aplicando el algoritmo del Simplex,
puesto que en la última tabla:
36
Variables originales
Variables de holgura
B −1 A
B −1
C − C B B −1 A
− C B B −1
Valor de las
variables
básicas
Variables básicas
XB
X B = B −1b
Solución óptima primal
Solución óptima dual
opuesta en signo
Ejemplo:
max
s.a.:
4 x1 + 3x2
2 x1 + 3 x2 ≤ 18
max
s.a.:
4 x1 + 2 x2 ≤ 10
x1 , x2 ≥ 0
4 x1 + 3 x2
2 x1 + 3x2 + x3H = 18
4 x1 + 2 x2 + x4H = 10
x1 , x2 , x3H , x4H ≥ 0
Introduciendo las variables de holgura. La última tabla es:
x1
x2
x3H
x4H
x3H
3
-4
0
1
-3/2
x2
5
2
1
0
1/2
-2
0
0
-3/2
Solución óptima dual:
Solución óptima primal:
Función objetivo primal y dual óptimas:
 3
Y * =  0, 
 2
*
X = (0,5)
( )
( )
f X * = g Y * = 15
37
Descargar