Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bloque4 webCT PDF
Bloque4 webCT PDF
Volver al bloque 3
Otro tipo de relaciones entre los problemas primal y dual son las siguientes:
77
Programación Lineal para la Ingeniería Técnica
1. Duales simétricos:
Primal: max f ( X ) = c1 x1 + K + c n xn
s.a.: a11 x1 + K + a1 n xn ≤ b1
a m1 x1 + K + amn xn ≤ bm
xi ≥ 0, i = 1, K , n
Dual: min g (Y ) = b1 y1 + K + bm ym
s.a.: a11 y1 + K + am1 ym ≥ c1
a1n y1 + K + amn ym ≥ cn
yi ≥ 0, i = 1, K , 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:
78
Programación Lineal para la Ingeniería Técnica
a m1 am 2 K amn xn ≥ 0 ≤ bm
y1 ≥ 0 y2 ≥ 0 K ym ≥ 0 variables
≥ ≥ K ≥ relación
c1 c2 K cn constantes
2. Duales asimétricos:
a) Primal: max f ( X ) = c1 x1 + K + c n xn
s.a.: a11 x1 + K + a1 n xn = b1
a m 1 x1 + K + a mn xn = bm
xi ≥ 0, i = 1, K , n
Dual: min g (Y ) = b1 y1 + K + bm ym
s.a.: a11 y1 + K + am1 ym ≥ c1
a1n y1 + K + amn ym ≥ cn
y i , i = 1, K , m , no restringidas en signo
b) Primal: min f ( X ) = c1 x1 + K + c n xn
s.a.: a11 x1 + K + a1 n xn = b1
a m 1 x1 + K + a mn xn = bm
xi ≥ 0, i = 1, K , n
Dual: max g (Y ) = b1 y1 + K + bm ym
s.a.: a11 y1 + K + am 1 y m ≤ c1
a1 n y1 + K + a mn y m ≤ c n
y i , i = 1, K , m , no restringidas en signo
79
Programación Lineal para la Ingeniería Técnica
Nota:
Problema de Problema de
minimización maximización
≥ 0 ≤
VARIABLES ≤ 0 ≥ RESTRICCIONES
no restringidas =
≥ ≥ 0
RESTRICCIONES ≤ ≤ 0 VARIABLES
= no restringidas
80
Programación Lineal para la Ingeniería Técnica
Ejemplos:
2. Primal min 5 x1 + 2 x2 + x3
s.a.: 2 x1 + 3x 2 + x3 ≥ 20
6 x1 + 8x 2 + 5 x3 ≥ 30
7 x1 + x2 + 3x3 ≥ 40
x1 + 2 x 2 + 4 x3 ≥ 50
x1 , x2 , x3 ≥ 0
Dual max 20 y1 + 30 y2 + 40 y3 + 50 y 4
s.a.: 2 y1 + 6 y 2 + 7 y3 + y 4 ≤ 5
3 y1 + 8 y 2 + y3 + 2 y 4 ≤ 2
y1 + 5 y 2 + 3 y 3 + 4 y4 ≤ 1
y1 , y 2 , y3 , y 4 ≥ 0
81
Programación Lineal para la Ingeniería Técnica
3. Primal min x1 + 3x 2 − 2 x3
s.a.: 4 x1 + 8x 2 + 6 x3 = 25
7 x1 + 5 x2 + 9 x3 = 30
x1 , x2 , x3 ≥ 0
Dual max 25 y1 + 30 y2
s.a.: 4 y1 + 7 y 2 ≤ 1
8 y1 + 5 y 2 ≤ 3
6 y1 + 9 y2 ≤ − 2
y1 , y2 no restringidas en signo
Dual min 7 y1 + 8 y2
s.a.: y1 + 2 y 2 ≥ 3
y1 + 3 y 2 ≥ 1
y1 , y2 no restringidas en signo
Nota:
82
Programación Lineal para la Ingeniería Técnica
max f ( X ) = c1 x1 + K + c n xn
s.a.: a11 x1 + K + a1 n xn ≤ b1
a m1 x1 + K + amn xn ≤ bm
xi ≥ 0, i = 1, K , n
a m1 x1 + K + amn xn + xnH+ m = bm
xi ≥ 0, i = 1, K , n , xnH+ j ≥ 0, j = 1, K , m
min g (Y ) = b1 y1 + K + bm ym
s.a.: a11 y1 + K + am1 ym ≥ c1
a1n y1 + K + amn ym ≥ cn
y1 ≥ 0
ym ≥ 0
Una vez visto que los duales simétricos pueden convertirse en asimétricos
utilizando variables de holgura, vamos a enunciar un teorema de dualidad válido
para ambos.
83
Programación Lineal para la Ingeniería Técnica
Teorema:
i) Si X ∈ F , Y ∈ G , se cumple que f ( X ) ≤ g (Y ) .
Volver al
Dual del Dual Consideremos ahora como primal al dual, ¿cuál es su dual?.
min g (Y ) = b1 y1 + K + bm ym
s.a.: a11 y1 + K + am1 ym ≥ c1
a1n y1 + K + amn ym ≥ cn
yi ≥ 0, i = 1, K , m
84
Programación Lineal para la Ingeniería Técnica
Su dual sería:
max f ( X ) = c1 x1 + K + c n xn
s.a.: a11 x1 + K + a1 n xn ≤ b1
a m1 x1 + K + amn xn ≤ bm
− x1 ≤ 0
− xn ≤ 0
Con la solución del primal, se obtiene con el Simplex implícitamente la del dual.
Veámoslo:
85
Programación Lineal para la Ingeniería Técnica
max Z = CB X B + CN X N
s.a.: BX B + NX N = b
X B, 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
Z = CB X B + CN X N = C B X B = CB B − 1 b
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:
86
Programación Lineal para la Ingeniería Técnica
Ejemplo:
max 4 x1 + 3 x2 max 4 x1 + 3 x2
Paso a
forma s.a.: 2 x1 + 3 x2 ≤ 18 s.a.: 2 x1 + 3x 2 + x3H = 18
estándar 4 x1 + 2 x 2 ≤ 10 4 x1 + 2 x2 + x 4H = 10
x1 , x2 ≥ 0 x1 , x2 , x3H , x4H ≥ 0
x1 x2 x3H x 4H
x3H 3 -4 0 1 -3/2
x2 5 2 1 0 1/2
-2 0 0 -3/2
Y * = 0,
3
Solución óptima dual:
2
Soluciones
óptimas Solución óptima primal: X = (0,5)
*
El dual sería:
Interesará pasar al dual cuando su resolución sea más fácil que la del primal. Así,
podemos resolver el dual por el Simplex y deducir, sin ningún cálculo
87
Programación Lineal para la Ingeniería Técnica
Ejemplo:
Si calculamos su dual:
max 20 y1 + 24 y2 max 20 y1 + 24 y2
Cálculo s.a.: 5 y1 + 3 y2 ≤ 5 s.a.: 5 y1 + 3 y2 + y3H = 5
del Dual
2 y1 + 8 y2 ≤ 6 2 y1 + 8 y 2 + y4H = 6
y1 , y 2 ≥ 0 y1 , y 2 , y 3H , y4H ≥ 0
Se ve que es más fácil aplicar el Simplex al estándar del dual que al del primal.
y1 y2 y3H y4H
y1 11/17 1 0 ----- -----
y2 10/17 0 1 ----- -----
0 0 -56/17 -30/17
Lo que realmente nos interesa es el valor de los costes en la tabla final, por eso
dejamos sin rellenar huecos en esa tabla que no aportan nada a la solución que
buscamos. Así:
Soluciones
Y * = , , X * = , ,
460
f (X * ) = g (Y * ) =
óptimas 11 10 56 30
17 17 17 17 17
88
Programación Lineal para la Ingeniería Técnica
min c1 x1 + K + cn xn
s.a.: a11 x1 + K + a1 n xn ≥ b1
a m1 x1 + K + amn xn ≥ bm
xi ≥ 0, i = 1, K , n
Una posible interpretación del dual sería: supongamos que una empresa se plantea
la posibilidad de fabricar un concentrado de cada uno de los elementos nutritivos
que se requieren para la correcta alimentación, de modo que propondría que se
ingirieran los concentrados directamente en lugar de los alimentos que contienen
los elementos nutritivos, de modo que se satisfacieran las necesidades
nutricionales igualmente.
Esta competitividad significa que la suma de los precios totales de los elementos
nutritivos en las cantidades que intervienen en cada alimento deberá ser menor o a
lo sumo igual que el precio o coste de este alimento. Así, para el alimento j-ésimo
de coste c j , deberá verificarse a1 j y1 + K + amj ym ≤ c j .
89
Programación Lineal para la Ingeniería Técnica
Por último, el precio de cada unidad de nutriente yi debe ser positivo. Con todo
esto, planteamos el dual:
max b1 y1 + K + bm y m
s.a.: a11 y1 + K + am1 ym ≤ c1
a1n y1 + K + amn ym ≤ cn
yi ≥ 0, i = 1, K , m
90
Programación Lineal para la Ingeniería Técnica
c j ck
min ∋ aij < 0 =
aij
j = 1, , n
K
aik
Paso 4: Pivotamos sobre aik , efectuando las operaciones precisas para que la
columna k tenga un 1 en el lugar i-ésimo y ceros en el resto.
Volver al paso 2.
Nótese que los problemas “ideales” para resolver mediante este algoritmo son
aquellos de minimización que incluyen restricciones del tipo mayor o igual, y
cuyas desigualdades contienen coeficientes positivos. Así, el problema de la dieta
es un candidato para aplicarle este procedimiento.
Ejemplo:
91
Programación Lineal para la Ingeniería Técnica
max − 3 x1 − 4 x2 − 5x3
s.a.: − x1 − 2 x2 − 3x3 + x 4H = − 5
− 2 x1 − 2 x2 − x3 + x5H = − 6
x1 , x2 , x3 , x 4H , x5H ≥ 0
La tabla inicial con la que comenzar a iterar, siguiendo los pasos del Algoritmo
Dual del Simplex, es la siguiente:
x1 x2 x3 x 4H x5H
paso 2 x 4H -5 -1 -2 -3 1 0
x5H -6 -2 -2 -1 0 1
-3 -4 -5 0 0
paso 3
− 3 − 4 − 5 3
min , , =
− 2 − 2 − 1 2
x1 x2 x3 x 4H x5H
x 4H -2 0 -1 -5/2 1 -1/2
paso 2 x1 3 1 1 1/2 0 -1/2
0 -1 -7/2 0 -3/2
paso 3
92
Programación Lineal para la Ingeniería Técnica
− 1 − 7 2 − 3 2
min , , =1
− 1 − 5 2 − 1 2
x1 x2 x3 x 4H x5H
x2 2 0 1 5/2 -1 1/2
x1 1 1 0 -2 1 -1
0 0 -1 -1 -1
paso 2
Todas las variables básicas son positivas, por lo que el algoritmo termina con la
solución óptima:
Ejemplo:
min Z = 2 x1 + x 2 max − Z = − 2 x1 − x2
s.a.: 3x1 + x 2 ≥ 3 s.a.: H
− 3 x1 − x2 + x3 = − 3
4 x1 + 3x 2 ≥ 6 − 4 x1 − 3 x2 + x4H = − 6
H
x1 + 2 x2 ≥ 3 − x1 − 2 x 2 + x5 = − 3
x1 , x2 ≥ 0 x1 , x2 , x3H , x 4H , x5H ≥ 0
93
Programación Lineal para la Ingeniería Técnica
x1 x2 x3H x 4H x5H
paso 2 x3H -3 -3 -1 1 0 0
H
x4 -6 -4 -3 0 1 0
H
x5 -3 -1 -2 0 0 1
-2 -1 0 0 0
paso 3
paso 4
x1 x2 x3H x 4H x5H
paso 2
x3H -1 -5/3 0 1 -1/3 0
x2 2 4/3 1 0 -1/3 0
x5H 1 5/3 0 0 -2/3 1
-2/3 0 0 -1/3 0
paso 3
paso 4
x1 x2 x3H x 4H x5H
x1 3/5 1 0 -3/5 1/5 0
x2 6/5 0 1 4/5 -3/5 0
x5H 0 0 0 1 -1 1
0 0 -2/5 -1/5 0
paso 2
Todas las variables básicas son positivas, por tanto el algoritmo concluye con la
solución óptima:
x1* = 3 5 , x2* = 6 5 , Z * = 12 5
Ir al bloque 5
94