Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap03 (Dualidad) IO I
Cap03 (Dualidad) IO I
DUALIDAD
3.1.- Introduccin
Supongamos que tenemos que encontrar el valor mnimo de la funcin f(x).
Encontrar este mnimo (problema PRIMAL) equivale a encontrar el mximo
(problema DUAL) del valor de los cortes de sus tangentes con el eje de
ordenadas.
f(x)
PRIMAL
DUAL
67
68
Investigacin Operativa
Componente nutritivo
(kg)
Precio (/kg)
CN1
CN2
CN3
CN4
I/kg
II/kg
0.1
0
0.1
0.2
10
0
0.1
0.2
0.1
4
Requerimiento
mnimo
(kg/animal/da)
0.4
0.6
2.0
1.7
b) DUAL
Dualidad
69
Min z=10 x1 + 4 x2
st
0.4
0.1 x2 0.6
0.1 x1 + 0.2 x2 2
0.2 x1 + 0.1 x2 1.7
0.1 x1
x1, x2 0
Si se compara los dos planteamientos se puede observar lo siguiente:
- Los primeros miembros del primer problema son coeficientes de la funcin
objetivo del segundo y viceversa.
- La matriz de coeficientes de un problema es la transpuesta de la matriz de
coeficientes del otro problema.
- Un problema minimiza y el otro maximiza.
- Si todas las desigualdades tienen el mismo sentido, el otro problema tiene
desigualdades de sentido contrario, problema simtrico.
- Si uno de los dos problemas tiene una igualdad el otro tiene una variable libre
y viceversa.
- Uno de los problemas se llama PRIMAL y el otro DUAL.
- Los problemas duales existen siempre, aunque no se le encuentre sentido.
70
Investigacin Operativa
........
ApX 0
Es decir, A1X 0, pero cTX < 0 en contra de que por hiptesis cTX 0. Por
tanto, ha de existir un 0 tal que cT =TA .
Condicin suficiente. Si existe un 0 tal que cT =TA, tendremos,
multiplicando A X 0 por T que TA X 0 es consecuencia de A X 0.
Teorema 3.2. (No homogneo de Minkowski - Farkas)
cTX z0 es consecuencia de AX b si y slo si existe un 0 tal que
cT=TA y T b z0.
Demostracin:
Tenemos AX b y, pasando b al primer miembro AX - b 0, multiplicando
esta expresin por 0, resulta: AX - b 0
(3.1)
Operando de igual forma con cTX z0, tenemos cTX - z0 0, multiplicando
esta expresin por 0, R, resulta: cTX - z0 0
(3.2)
Llamando X=X1 y reuniendo (3.1) y (3.2) tenemos:
A X1 - b 0
cT X1 - z0 0
Si cTX z0 era consecuencia de AX b, tendremos que cTX1 - z0 0 es
consecuencia de A X1 - b 0, es decir,
X
(cT, - z0) 1 0
es consecuencia de
A b
0
1
X1
0
Dualidad
71
A b
y operando llegamos a:
cT=TA
- z0 = -Tb + , z0 = Tb -
y como 0, R, implica que, z0 Tb, por lo tanto existe un 0 tal que
cT=TA y T b z0
72
Investigacin Operativa
0 ... ... 0
1
......................
0 ... ... 1
0
b1
b2
....
b1 = bm
0
...
0
b z0.
T
0
tenemos
Dualidad
73
0 TA1X 0 Tb1,
c TX 0 Tb1
Elemento
Caracterstica
Matriz de m x n
Matriz de coeficientes
tcnicos
Escalar
Funcin objetivo
cT
Transpuesta del
vector c
PRIMAL
DUAL
Dimensin
Vector de precios
unitarios del PRIMAL
74
Investigacin Operativa
bT
Transpuesta del
vector b
Vector de precios
unitarios del DUAL
AT
Transpuesta de la
matriz A
Matriz de coeficientes
tcnicos
Escalar
Dualidad
75
x2 0
.
xn 0
76
Investigacin Operativa
X0
su DUAL asociado es
Max z =T b
st
AT c
0
Los problemas as planteados se denominan forma simtrica de la dualidad.
Un par de problemas PRIMAL-DUAL est en forma simtrica si ambos
vienen expresados en forma cannica.
Para desterrar la creencia de que existe una relacin entre el sentido de las
desigualdades del problema PRIMAL-DUAL, queremos resaltar el hecho de que
las restricciones de desigualdad, AT c, del problema DUAL son consecuencia
de las restricciones de no negatividad, X 0, del problema PRIMAL.
Veamos, a continuacin, las distintas formulaciones del problema PRIMALDUAL:
Sea el problema PRIMAL formulado en su forma estndar:
Min z = cTX
st
AX = b
X0
Para expresarlo en su forma DUAL, lo primero que haremos ser poner el
problema PRIMAL en su forma cannica. Para ello escribiremos todas las
restricciones en el mismo sentido
Min z = cTX
st
AX b
AX b, multiplicando sta expresin por (-1) tenemos
-AX - b
X0
El problema estara ya escrito en forma cannica y sabemos que su DUAL
es:
Max z = (1T b - 2T b) = (1T - 2T ) b
Dualidad
77
st
AT1 - AT 2 c
1, 2 0
DUAL
Max z = T b
st
AT c
con signo libre
DUAL
Max z = T b
st
78
Investigacin Operativa
AX b
X con signo libre
PRIMAL
Min z = cTX
st
AX = b
X con signo libre
AT = c
0
DUAL
Max z = T b
st
AT = c
con signo libre
Dualidad
79
cB
1
-1
z, zj,j
cj -1
b
A1
5
1
8
2
-3
-1
zj-cj 0
-2
A2
2
-1
3
5
1
A3
1
0
1
0
-1
A4
0
1
-1
0
2
5/2
--5/2
Observando los resultados de la tabla vemos que entra el vector A2 y sale A3.
80
Investigacin Operativa
Segunda tabla:
cj
Base
A2
A4
cB
b
-2
5/2
-1
21/2
z, zj,j -31/2
zj-cj
-1
A1
1/2
5/2
-7/2
-5/2
-2
A2
1
0
-2
0
1
A3
1/2
1/2
-3/2
-5/2
-1
A4
0
1
-1
0
---
B-1=
1 / 2 1
1 1
1 / 2 0
=(-3/2, -1)
T= cBTB-1= (-2, -1)
1 / 2 1
luego la solucin del dual es: 1 = -3/2 , 2 = - 1.
Otra forma de obtener la solucin del DUAL es observar la base cannica
inicial B ={ A3, A4}, por tanto la solucin del dual es: 1= -z3 = 3/2, 2 = -z4 = 1.
Ejercicio 3.4.4. Vamos a resolver un ejercicio desde el punto de vista
PRIMAL-DUAL simtrico:
Problema PRIMAL:
Min z = x1+3x2
st
x1+4x2 24
5x1+x2 25
Dualidad
81
x1, x2 0
cB
b
M
24
M
25
z, zj,j 49M
zj-cj
1
3
A1
A2
1
4
5
1
6M 5M
6M-1 5M-3
0
A3
-1
0
-M
-M
0
A4
0
-1
-M
-M
M
A5
1
0
M
0
M
A6
0
1
M
0
0
A3
-5/19
1/19
-14/19
-14/19
0
A4
1/19
-4/19
-1/19
-1/19
M
A5
-
M
A6
-
cB
3
1
z, zj,j
b
5
4
19
zj-cj
1
A1
0
1
3
A2
1
0
1 / 19
4 / 19
1 / 19
4 / 19
1 / 19
4 / 19
82
Investigacin Operativa
valor que coincide con el que nos proporciona el programa LINDO (DUAL
PRICES)
LP OPTIMUM FOUND AT STEP
19.00000
VARIABLE
X1
X2
ROW
VALUE
4.000000
5.000000
SLACK OR SURPLUS
2)
0.000000
3)
0.000000
NO. ITERATIONS=
VARIABLE
X1
X2
ROW
2
3
CURRENT
COEF
1.000000
3.000000
CURRENT
RHS
24.000000
25.000000
ALLOWABLE
DECREASE
19.000000
19.000000
THE TABLEAU
ROW (BASIS)
1 ART
2
X1
3
X2
X1
0.000
1.000
0.000
X2
0.000
0.000
1.000
SLK 2
0.737
0.053
-0.263
SLK 3
0.053
-0.211
0.053
-19.000
4.000
5.000
Tenemos que hacer notar que, en la ltima columna de la tabla ofrecida por el
programa LINDO (THE TABLEAU), tenemos la solucin:
z = -19; x1=4, x2= 5
El signo menos que aparece en z (z = -19) es debido a que el programa
LINDO trabaja maximizando y el algoritmo del simplex y, por tanto, las tablas
que utilizamos para su desarrollo lo hacen minimizando. Recordando que Min z =
Max (-z), tenemos
Dualidad
83
-25
A2
1
0
0
0
0
A3
A4
4/19 -1/19
-1/19 5/19
-4
-5
-4
-5
19.00000
VALUE
0.736842
0.052632
REDUCED COST
0.000000
0.000000
SLACK OR SURPLUS
0.000000
0.000000
DUAL PRICES
4.000000
5.000000
NO. ITERATIONS=
84
Investigacin Operativa
VARIABLE
CURRENT
COEF
24.000000
25.000000
L1
L2
ROW
CURRENT
RHS
1.000000
3.000000
2
3
ALLOWABLE
DECREASE
0.250000
2.800000
THE TABLEAU
ROW (BASIS)
1 ART
2
L2
3
L1
L1
0.000
0.000
1.000
L2
0.000
1.000
0.000
SLK 2
4.000
0.211
-0.053
SLK 3
5.000
-0.053
0.263
19.000
0.053
0.737
Dualidad
85
Min z = T (- b)
st
(-A)T - c
0
DUAL
ptimo finito
No soluciones factibles
No soluciones factibles
ptimo no finito
ptimo no finito
No soluciones factibles
Completando la
tabla anterior resumiremos en sendas tablas la
correspondencia PRIMAL-DUAL en lo que se refiere al signo de las
desigualdades:
PRIMAL (Max)
Restricciones
Restricciones
Restricciones =
xi 0
DUAL (Min)
i 0
i 0
i signo libre
Restricciones
PRIMAL (Min)
Restricciones
Restricciones
Restricciones =
xi 0
DUAL (Max)
i 0
i 0
i signo libre
Restricciones
86
Investigacin Operativa
xi 0 Restricciones
xi signo libre Restricciones =
xi 0 Restricciones
xi signo libre Restricciones =
Dualidad
87
(5.1)
resulta
cTX0 = 0TA X0 = 0Tb
Agrupando la igualdad anterior en X0 y en 0T, tenemos
(cT - 0TA)X0=0
(5.2)
0T(A X0 b)=0
Trabajando con la primera de las ecuaciones, igualmente trabajaramos con la
segunda, tenemos
n
(cT - 0TA)X0= (c j T0 A j ) x j =0
j 1
88
Investigacin Operativa
(5.3)
(5.4)
Xj = B-1 Aj
Dualidad
89
cB
b
M
24
M
25
z, zj,j 49M
zj-cj
1
3
A1
A2
1
4
5
1
6M 5M
6M-1 5M-3
0
A3
-1
0
-M
-M
0
A4
0
-1
-M
-M
M
A5
1
0
M
0
M
A6
0
1
M
0
0
A3
-5/19
1/19
-14/19
0
A4
1/19
-4/19
-1/19
M
A5
-
M
A6
-
Base
A2
A1
cB
3
1
z, zj,j
cj
b
5
4
19
1
A1
0
1
1
3
A2
1
0
3
90
Investigacin Operativa
zj-cj
-14/19 -1/19
Dualidad
91
Operando, resulta
zj- cj=(zj- cj) - kj
Se nos pueden presentar dos casos:
i) kj 0, para j = m+1, m+2, . . ., n
Como zj- cj=(zj- cj) - kj 0 zj- cj 0
92
Investigacin Operativa
z cr
Supongamos que el mnimo se alcanza para un j = r, = r
zj- cj 0,
kr
(j = 1, 2, . . ., n) con zr- cr= 0, es decir, es una solucin factible del DUAL que
mejora la solucin anterior, . La nueva base B, al salir el vector Ak y entrar Ar,
es B={A1, A2, .., Ak-1, Ar, Ak+1, .., Am}. Si ahora calculamos la solucin tomando
la base B, XB = B-1 b, pueden resultar dos casos:
i) Que sigamos teniendo coordenadas negativas, con lo cual seguiramos
aplicando el mtodo DUAL del simplex.
ii) Que todas las coordenadas sean positivas, llegando, as, a la solucin
ptima.
Se puede observar que en el mtodo DUAL del Simplex se determina
primero el vector que sale de la base y a continuacin el que entra en su lugar.
Resumiendo las fases del algoritmo Dual del Simplex son:
Fase 1: Determinar una base B del Primal tal que zj- cj 0 j=1,2, ,n.
Calculamos XB=B-1b pudindose dar las dos situaciones siguientes:
i) XB 0, entonces XB es la solucin ptima del Primal.
ii) Que xi < 0, donde las xi son las coordenadas de XB. Para este caso se elige el
ndice i para el cual tenemos el min xi , con xi 0, el vector Ai
i
ij
z k ck
ik
, en este
caso el vector que entra en la base es Ak. Siendo el elemento pivote ik.
Fase 3: Sustituir en la base Ai por Ak; actualizando la tabla del simplex.
Fase 4: Repetir el proceso (Fase 1, Fase y Fase 3).
Dualidad
93
Veamos un ejemplo:
Min z=x1+ x2 +x3+x4
st
2x1+x4 250
3x2 1000
3x2+10x3 + 6x4 750
x1, x2, x3,x4 0
Primero cambiamos las restricciones a , y aadimos las variables de
holgura:
Min x1+ x2 +x3+x4
st
-2x1 -x4 +S1= -250
-3x2 +S2= -1000
-3x2-10x3 - 6x4 +S3= -750
Lo pasamos a la tabla del simplex:
Base
A5
A6
A7
cB
0
0
0
z|zj
cj
b
-250
-1000
-750
0
zj-cj
1
A1
-2
0
0
0
-1
1
A2
0
-3
-3
0
-1
1
A3
0
0
-10
0
-1
1
A4
1
0
-6
0
-1
0
A5
1
0
0
0
0
0
A6
0
1
0
0
0
0
A7
0
0
1
0
0
z c
1
con kj 0 Min 2 2
Min j j
3
2
j
62
kj
Base
cB
cj
b
1
A1
1
A2
1
A3
1
A4
0
A5
0
A6
0
A7
94
Investigacin Operativa
A5
A2
A7
0
-250
1 1000/3
0
250
z|zj 1000/3
zj-cj
-2
0
0
0
-1
0
1
0
1
0
0
0
-10
0
-1
-1
0
6
0
-1
1
0
0
0
0
0
-1/3
-1
-1/3
-1/3
0
0
1
0
0
Base
A1
A2
A7
cB
1
1
0
z|zj
cj
b
125
1000/3
250
1375/3
zj-cj
1
A1
1
0
0
1
0
1
A2
0
1
0
1
0
1
A3
0
0
-10
0
-1
1
A4
1/2
0
-6
1/2
-1/2
0
A5
-1/2
0
0
-1/2
-1/2
0
A6
0
-1/3
-1
-1/3
-1/3
0
A7
0
0
1
0
0
458.3333
VALUE
125.000000
333.333344
0.000000
0.000000
REDUCED COST
0.000000
0.000000
1.000000
0.500000
Dualidad
95
ROW
2)
3)
4)
SLACK OR SURPLUS
0.000000
0.000000
250.000000
NO. ITERATIONS=
DUAL PRICES
-0.500000
-0.333333
0.000000
THE TABLEAU
ROW (BASIS)
1 ART
2
X1
3 SLK
4
4
X2
ROW
1
2
3
4
X1
0.000
1.000
0.000
0.000
X2
0.000
0.000
0.000
1.000
X3
1.000
0.000
-10.000
0.000
X4
0.500
0.500
-6.000
0.000
SLK 2
0.500
-0.500
0.000
0.000
SLK 3
0.333
0.000
-1.000
-0.333
SLK 4
0.000 -458.333
0.000
125.000
1.000
250.000
0.000
333.333
Max z =T b
st
AT c
0
b
b
96
Investigacin Operativa
3.8. Resumen
A continuacin, se recogen las caractersticas ms importantes del problema
PRIMAL-DUAL:
1.- El problema PRIMAL tiene n variables y m restricciones, y el DUAL, m
variables y n restricciones.
2.-Los coeficientes de la funcin objetivo del Dual son los trminos
independientes de las restricciones del Primal y viceversa.
3.-Si el problema PRIMAL es de minimizar, el DUAL ser de maximizar y
viceversa.
4.-La fila i-sima de la matriz del PRIMAL es la columna i-sima del DUAL y
viceversa.
5.-El DUAL del DUAL es el PRIMAL.
6.-Si una de las restricciones del PRIMAL est dada en forma de igualdad, la
variable correspondiente del DUAL ser de signo libre y viceversa.
7.- El teorema fundamental de la Dualidad establece que, si uno de dos
problemas, PRIMAL o DUAL, tiene una solucin ptima, entonces el otro
tambin tiene una solucin ptima y los valores de esos ptimos son iguales.
8.- En cada par formado por una variable PRIMAL y su correspondiente variable
DUAL, al menos una de ellas debe ser igual a cero(0).
Dualidad
97
9. - Los valores que toman en el ptimo las n variables de holgura del DUAL son
ci - 0TAi (i=1, 2, ... , n).
10.- Los valores que toman en el ptimo las m variables de holgura del PRIMAL
son Aj X0 - bj (j=1, 2, ... , m).
11.- Otro aspecto importante a resaltar es que, cuando el problema PRIMAL no
es ptimo, el DUAL no es factible y viceversa. En general, el problema
PRIMAL comienza siendo factible pero no ptimo y continua as hasta que
se llegue a la solucin ptima, es decir, en el problema PRIMAL se persigue
llegar al ptimo mientras que en el DUAL se busca la factibilidad.
12.- En cada iteracin del simplex hallaremos una solucin factible bsica para el
problema PRIMAL, que corresponder a una solucin bsica para el DUAL;
si la solucin para el PRIMAL no es ptima, al menos uno de los coeficientes
en la funcin objetivo ser negativo, por lo que la solucin correspondiente al
DUAL no ser factible, ya que al menos una de las variables bsicas ser
negativa.
13.- A medida que apliquemos el simplex al PRIMAL, movindonos a travs de
soluciones factibles bsicas hasta llegar a la solucin ptima, el DUAL se
movera a travs de soluciones no factibles hasta llegar a una solucin
factible, que, por ende, ser lgica.
14.- Una relacin que encontramos en nuestro estudio es:
En un problema de Maximizacin Precio Dual en los Resultados= Variable Dual
En un problema de Minimizacin Precio Dual en los Resultados=-Variable Dual
15.- En efecto, una interpretacin econmica de las variables duales se obtiene de
la funcin objetivo DUAL. Como en la solucin ptima el mnimo valor de z0
(PRIMAL) es igual al mximo de z0 (DUAL), las variables duales i pueden
ser interpretadas como la contribucin unitaria del recurso i-simo al valor de
la funcin objetivo cuando las disponibilidades de recursos aumentan (o
disminuyen en una minimizacin) en una unidad. Es decir, cada una de las
variables duales equivale a la utilidad adicional que puede obtenerse de una
unidad adicional del recurso correspondiente. Desde el punto de vista de la
toma de decisiones, las variables duales indican la cantidad extra que se
estara en disposicin de pagar por unidad adicional de recurso especfico
(independientemente de su valor real). En otras palabras, estaramos
dispuestos a pagar un precio ms elevado por un recurso escaso, hasta llegar
al valor de la variable dual (). Histricamente, el precio sombra se defini
como la mejora en el valor de la funcin objetivo por aumento unitario en el
98
Investigacin Operativa
Dualidad
99
Materia prima
Horas de trabajo
Precio venta (euros)
Producto 1
2
3
4
Producto 2
3
4
6
Producto 3
4
5
7
Producto 4
7
6
8
100
Investigacin Operativa
Solucin:
Sea xi = Cantidad de producto tipo i producido.
Max 4x1+6x2+7x3+8x4
st
x1+x2+x3+x4=950
x4>=450
2x1+3x2+4x3+7x4<=4600
3x1+4x2+5x3+6x4<=5000
LP OPTIMUM FOUND AT STEP
6500.000
VARIABLE
X1
X2
X3
X4
ROW
2)
3)
4)
5)
VALUE
50.000000
450.000000
0.000000
450.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
350.000000
NO. ITERATIONS=
REDUCED COST
0.000000
0.000000
1.000000
0.000000
DUAL PRICES
0.000000
-6.000000
2.000000
0.000000
VARIABLE
X1
X2
X3
X4
ROW
2
3
4
5
CURRENT
COEF
4.000000
6.000000
7.000000
8.000000
CURRENT
RHS
950.000000
450.000000
4600.000000
5000.000000
Dualidad
101
THE TABLEAU
ROW (BASIS)
1 ART
2
X1
3
X2
4
X4
5 SLK
5
ROW
1
2
3
4
5
SLK 5
0.000
0.000
0.000
0.000
1.000
X1
0.000
1.000
0.000
0.000
0.000
X2
0.000
0.000
1.000
0.000
0.000
X3
1.000
-1.000
2.000
0.000
0.000
X4
0.000
0.000
0.000
1.000
0.000
SLK 3
6.000
-4.000
5.000
-1.000
-2.000
SLK 4
2.000
-1.000
1.000
0.000
-1.000
6500.000
50.000
450.000
450.000
350.000
102
Investigacin Operativa
producto 3) en exactamente 1 euro (en vez de 7 euros que sea de 8 euros), habr
soluciones ptimas alternativas y al menos en una de ellas x3 ser variable bsica.
Si se aumenta el coeficiente de x3 en la funcin objetivo en ms de 1 euro,
entonces la solucin ptima del problema de programacin lineal tendr a x3
como variable bsica.
Estudiemos que ocurre cuando:
a) c3=8, la solucin que nos proporciona LINDO es:
Max 4x1+6x2+8x3+8x4
st
x1+x2+x3+x4=950
x4>=450
2x1+3x2+4x3+7x4<=4600
3x1+4x2+5x3+6x4<=5000
LP OPTIMUM FOUND AT STEP
6500.000
VARIABLE
X1
X2
X3
X4
VALUE
275.000000
0.000000
225.000000
450.000000
ROW
2)
3)
4)
5)
SLACK OR SURPLUS
0.000000
0.000000
0.000000
350.000000
REDUCED COST
0.000000
0.000000
0.000000
0.000000
DUAL PRICES
0.000000
-6.000000
2.000000
0.000000
THE TABLEAU
ROW (BASIS)
1 ART
2
X1
3
X3
4
X4
5 SLK
5
ROW
1
2
3
4
5
X1
0.000
1.000
0.000
0.000
0.000
X2
0.000
0.500
0.500
0.000
0.000
X3
0.000
0.000
1.000
0.000
0.000
X4
0.000
0.000
0.000
1.000
0.000
SLK
3
6.000
-1.500
2.500
-1.000
-2.000
SLK
4
2.000
-0.500
0.500
0.000
-1.000
SLK
5
0.000 6500.000
0.000
275.000
0.000
225.000
0.000
450.000
1.000
350.000
Dualidad
103
6725.000
VARIABLE
X1
X2
X3
X4
ROW
2)
3)
4)
5)
VALUE
275.000000
0.000000
225.000000
450.000000
SLACK OR SURPLUS
0.000000
0.000000
0.000000
350.000000
NO. ITERATIONS=
REDUCED COST
0.000000
0.500000
0.000000
0.000000
DUAL PRICES
-1.000000
-8.500000
2.500000
0.000000