Bloque4_webCT
-
Upload
hector-andrade -
Category
Documents
-
view
216 -
download
0
Transcript of Bloque4_webCT
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 1/18
Programación Lineal para la Ingeniería Técnica
77
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 latraspuesta 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:
Volver al bloque 3
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 2/18
Programación Lineal para la Ingeniería Técnica
78
• 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 demaximizació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.
Según estas afirmaciones, el problema dual queda unívocamente determinado porsu primal. Si n x x ,,
1 K son las variables primales, m y y ,,
1 K las correspondientes
variables duales, el planteamiento del problema dual es:
1. Duales simétricos:
Primal: max ( ) nn xc xc X f ++= K11
s.a.:11111
b xa xa nn ≤++ K
mnmnm b xa xa ≤++ K11
ni xi ,,1,0 K=≥
Dual: min ( ) mm yb ybY g ++= K11
s.a.:11111
c ya ya mm ≥++ K
nmmnn c ya ya ≥++ K11
mi yi ,,1,0 K=≥
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:
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 3/18
Programación Lineal para la Ingeniería Técnica
79
PROGRAMAS PRIMAL (MAX.)
DUAL (MIN.)
mnmm
n
aaa
aaa
K
MMMM
K
21
11211
0
01
≥
≥
n x
x
M
≤
≤
M
mb
b
M
1
00021
≥≥≥ m y y y K variables
≥≥≥ K relación
nccc K21
constantes
2. Duales asimétricos:
a) Primal: max ( ) nn xc xc X f ++= K11
s.a.:11111
b xa xa nn =++ K
mnmnm b xa xa =++ K11
ni xi ,,1,0 K=≥
Dual: min ( ) mm yb ybY g ++= K11
s.a.:11111
c ya ya mm ≥++ K
nmmnn c ya ya ≥++ K11 mi y i ,,1, K= , no restringidas en signo
b) Primal: min ( ) nn xc xc X f ++= K11
s.a.:11111
b xa xa nn =++ K
mnmnm b xa xa =++ K11
ni xi ,,1,0 K=≥
Dual: max ( ) mm yb ybY g ++= K11
s.a.:11111
c ya ya mm ≤++ K
nmmnn c ya ya ≤++ K11
mi y i ,,1, K= , no restringidas en signo
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 4/18
Programación Lineal para la Ingeniería Técnica
80
La tabla anterior queda ahora de la siguiente forma:
PROGRAMAS PRIMAL MAX. (MIN.)
DUAL MIN.
(MAX.)mnmm
n
aaa
aaa
K
MMMM
K
21
11211
0
01
≥
≥
n x
x
M
=
=
M
mb
b
M
1
m y y y K21
variables
( ) ( ) ( )≤≥≤≥≤≥ K relación
nccc K21
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:
Problema de
minimización
Problema de
maximización
VARIABLESasrestringidno
0
0
≤
≥
=
≥
≤
RESTRICCIONES
RESTRICCIONES=
≤
≥
asrestringidno
0
0
≤
≥
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.
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 5/18
Programación Lineal para la Ingeniería Técnica
81
Ejemplos:
1. Primal: max21
2 x x +
s.a.: 105 21 ≤+ x x 63
21 ≤+ x x
82221
≤+ x x
0,21 ≥ x x
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 min321
8610 y y y ++
s.a.: 22321 ≥++ y y y
1235321
≥++ y y y
0,,321
≥ y y y
2. Primal min 321 25 x x x ++ s.a.: 2032
321 ≥++ x x x
30586321 ≥++ x x x
4037321
≥++ x x x
5042321
≥++ x x x
0,,321
≥ x x x
En este caso, leemos la tabla de izquierda a derecha, resultando el dual:
Dual max 4321 50403020 y y y y +++
s.a.: 57624321 ≤+++ y y y y
22834321
≤+++ y y y y
14354321
≤+++ y y y y
0,,,4321 ≥ y y y y
lver aoblema
mal
lver aoblemaual
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 6/18
Programación Lineal para la Ingeniería Técnica
82
3. Primal min321
23 x x x −+
s.a.: 25684321
=++ x x x
30957321 =++ x x x
0,,321 ≥ x x x
Ahora, aunque como en el ejemplo anterior hay que leer la tabla de
izquierda a derecha, la formación del dual será ligeramente diferente a la de
dicho ejemplo.
Dual max21
3025 y y +
s.a.: 17421
≤+ y y
35821
≤+ y y
296 21 −≤+ y y
21, y y no restringidas en signo
4. Primal max21
3 x x +
s.a.: 721
=+ x x
83221
=+ x x
0,21 ≥ x x
Al igual que el ejemplo 1, leemos la tabla de derecha a izquierda, resultando:
Dual min21
87 y y +
s.a.: 3221 ≥+ y y
1321
≥+ y y
21, y y no restringidas en signo
Nota:
La forma del dual asimétrico (ejemplos 3 y 4) está determinada exclusivamente por
la forma del dual simétrico. Si pasamos a forma estándar el problema con
restricciones de desigualdad y calculamos el dual, que sería dual asimétrico, el
problema que se obtiene es el mismo que le correspondería al primal como dual
simétrico. Por ejemplo:
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 7/18
Programación Lineal para la Ingeniería Técnica
83
max ( ) nn xc xc X f ++= K11
s.a.:11111
b xa xa nn ≤++ K
mnmnm b xa xa ≤++ K
11 ni xi ,,1,0 K=≥
Si pasamos a forma estándar:
max ( ) H
mn
H
nnn x x xc xc X f ++ +++++= 00111
KK
s.a.: 111111 b x xa xa H
nnn =+++ +K
m
H
mnnmnm b x xa xa =+++ +K11
ni xi ,,1,0 K=≥ , m j x H
jn ,,1,0 K=≥+
El correspondiente dual asimétrico de este último problema primal es:
min ( ) mm yb ybY g ++= K11
s.a.:11111
c ya ya mm ≥++ K
nmmnn c ya ya ≥++ K11
01 ≥ y
0≥m y
Es el mismo que el dual simétrico que le correspondería al problema sin
transformar en su formulación estándar.
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álidopara ambos.
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 8/18
Programación Lineal para la Ingeniería Técnica
84
Teorema:
Sea P un problema de Programación Lineal cuya región de factibilidad es F , y sea
D su problema dual de región de factibilidad G. Entonces:
i) Si F X ∈ , GY ∈ , se cumple que ( ) ( )Y g X f ≤ .
ii) Si para algún F X ∈ y algún GY ∈ se verifica que ( ) ( )Y g X f = ,
entonces X es solución óptima de P, Y es solución óptima de D.
iii) Si uno de los problemas P ó D tienen una solución óptima * X ó *Y , el
otro también la tiene, verificándose además que ( ) ( )** Y g X f = .
iv) Si f está acotada superiormente en ∅≠ F , ó g está acotada
inferiormente en ∅≠G , entonces ambos problemas P y D tienen
solución óptima.
Consecuencias del teorema:
1. Si el primal tiene solución finita, entonces el dual también la tiene y ambas
coinciden.2. Si el primal tiene solución no acotada, el dual no tiene solución.
3. Si el primal no tiene solución, entonces ó el dual no tiene solución ó tiene
solución no acotada.
El dual del dual:
Consideremos ahora como primal al dual, ¿cuál es su dual?.
min ( ) mm yb ybY g ++= K11
s.a.: 11111 c ya ya mm ≥++ K
nmmnn c ya ya ≥++ K11
mi yi ,,1,0 K=≥
ver all del Dual
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 9/18
Programación Lineal para la Ingeniería Técnica
85
Introducimos variables de holgura:
min ( ) H
nm
H
mmm y y yb ybY g ++ +++++= 00111
KK
s.a.: 111111 c y ya ya H
mmm =−++ +K
n
H
nmmmnn c y ya ya =−++ +K11
mi yi ,,1,0 K=≥ , n j y H
jm ,,1,0 K=≥+
Su dual sería:
max ( ) nn xc xc X f ++= K11
s.a.:11111
b xa xa nn ≤++ K
mnmnm b xa xa ≤++ K11
01 ≤− x
0≤− n x
Las últimas n restricciones son las de no negatividad, y el problema que se obtiene
es el primal. Luego el dual del dual es el primal.
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 Z = CX
s.a.: AX = b 0≥ X
Escribimos A = (B/N ), con B la submatriz formada por las columnas
correspondientes a las variables básicas, y N lo mismo para las no básicas o libres.
Entonces:
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 10/18
Programación Lineal para la Ingeniería Técnica
86
Solución óptima primal
max N N B B X C X C Z +=
s.a.: b NX BX N B =+
0, ≥ N B X X
La solución de este problema consiste en hacer que el vector no básico N X sea cero,
y resolver el vector básico en términos de la base B, es decir:
b B X b BX b NX BX B B N B
1−=⇒=⇒=+
y la función objetivo será:
b BC X C X C X C Z B B B N N B B
1−==+=
Ahora bien, la función objetivo dual es ( ) bY Y bY g T T == , 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, ( ) ( )** Y g X Z = . Por lo tanto:
( ) ( ) ( ) ( ) ( ) ( )T
B
T
B Y BC bY b BC Y g X Z *1***1**** =⇒=⇒= −−
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:
Variables originales Variables de holgura
Variables básicas
B
X
Valor de las
variables
básicas
b B X B1−=
A B 1− 1− B
A BC C B
1−− 1−− BC B
Solución óptima dualopuesta en signo
ver amal-Dual
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 11/18
Programación Lineal para la Ingeniería Técnica
87
Ejemplo:
max21
34 x x + max21
34 x x +
s.a.: 1832 21 ≤+ x x s.a.: 1832 321 =++
H
x x x 1024
21 ≤+ x x 1024
421 =++ H x x x
0,21 ≥ x x 0,,,
4321 ≥ H H x x x x
Introduciendo las variables de holgura. La última tabla es:
1 x
2 x H x
3 H x
4
H x3
3 -4 0 1 -3/2
2 x 5 2 1 0 1/2
-2 0 0 -3/2
Solución óptima dual:
=2
3,0
*Y
Solución óptima primal: ( )5,0* = X
Función objetivo primal y dual óptimas: ( ) ( ) 15** == Y g X f
El dual sería:
min21
1018 y y + max A A My My y y6521
1018 −−−−
s.a.: 44221 ≥+ y y s.a.: 442
5321 =+−+ A H y y y y
32321
≥+ y y 3236421
=+−+ A H y y y y
0,21 ≥ y y 0,,,,,
654321 ≥ A A H H y y y y y y
Se puede comprobar con el Simplex que da la misma solución, pero el proceso esmás largo por la introducción de variables de holgura y artificiales, de ahí el interés
de la relación entre dual y primal (entre otras razones).
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
o a
maándar
cionesmas
bre elal
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 12/18
Programación Lineal para la Ingeniería Técnica
88
suplementario, la solución óptima del primal. Este caso se presentará cuando el
primal incluya restricciones de mayor o igual para las cuales es preciso introducir
variables de holgura y artificiales.
Ejemplo:
min 21 65 x x + max A A Mx Mx x x
6521 65 −−−−
s.a.: 202521
≥+ x x s.a.: 20255321
=+−+ A H x x x x
248321 ≥+ x x 2483
6421 =+−+ A H x x x x
0,21 ≥ x x 0,,,,,
654321 ≥ A A H H x x x x x x
Si calculamos su dual:
max21
2420 y y + max21
2420 y y +
s.a.: 53521
≤+ y y s.a.: 535321
=++ H y y y
68221
≤+ y y 682421
=++ H y y y
0,21 ≥ y y 0,,,
4321 ≥ H H y y y y
Se ve que es más fácil aplicar el Simplex al estándar del dual que al del primal.
La última tabla es:
1 y
2 y H y
3 H y
4
1 y 11/17 1 0 ----- -----
2 y 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 esodejamos sin rellenar huecos en esa tabla que no aportan nada a la solución que
buscamos. Así:
=
17
10,
17
11*Y ,
=
17
30,
17
56* X , ( ) ( )17
460** == Y g X f
so amaándar
culoDual
ucionesimas
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 13/18
Programación Lineal para la Ingeniería Técnica
89
12.3. MÉTODO DUAL DEL SIMPLEX
Supongamos el problema de la dieta (mezcla de alimentos más barata,
satisfaciendo unos valores nutritivos necesarios):
min nn xc xc ++ K11
s.a.:11111
b xa xa nn ≥++ K
mnmnm b xa xa ≥++ K11
ni xi ,,1,0 K=≥
Aquí, j x representa la cantidad del alimento j a precio jc y con una composición
ija de un cierto elemento nutritivo i N del cual hay un requerimiento de al menos
ib unidades.
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.
El problema que se plantearía la compañía consistiría en encontrar los preciosunitarios m y y ,,
1 K para cada nutriente de forma que maximizara su beneficio, pero
teniendo en cuenta que al mismo tiempo este procedimiento debería ser
competitivo con el usual en el que se aportan directamente los alimentos. Así, sedebe maximizar mm yb yb ++ K
11 .
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-ésimode coste jc , deberá verificarse jmmj j c ya ya ≤++ K
11.
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 14/18
Programación Lineal para la Ingeniería Técnica
90
Por último, el precio de cada unidad de nutriente i y debe ser positivo. Con todo
esto, planteamos el dual:
max mm yb yb ++ K
11 s.a.:
11111 c ya ya mm ≤++ K
nmmnn c ya ya ≤++ K11
mi yi ,,1,0 K=≥
Podemos deducir fácilmente del estudio desarrollado en los apartados anteriores
una de las aplicaciones inmediatas de la teoría de la dualidad: la resolución de
problemas lineales con más restricciones que variables. Puesto que parte de la
dificultad y el número de iteraciones del Simplex dependen del número de
restricciones, resolveremos el primal si m < n, y el dual si m > n.
Otra aplicación de la dualidad es la resolución de problemas lineales utilizando
el Algoritmo Dual del Simplex, que consiste básicamente en aplicar el Simplex al
problema dual, pero efectuando los cálculos sobre el primal. Lo explicamos a
continuación.
Para comenzar con el Simplex, si no es posible obtener una solución factible, seañaden tantas variables artificiales como sea necesario. El Método Dual del
Simplex hace innecesario el empleo de dichas variables artificiales, pero necesita
para comenzar a iterar una condición llamada de factibilidad dual, es decir, que
todos los costes marginales jc sean negativos o nulos (en caso de máximo). Por
tanto, no siempre se podrá aplicar.
Algoritmo.
Paso 1: Partimos de una tabla en la que 0≤−= j j j z cc .
Paso 2: Si B X (solución básica) es tal que 0≥ B X , estamos en la solución óptima.
PARAR.
ver aodo DualSimplex
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 15/18
Programación Lineal para la Ingeniería Técnica
91
En otro caso, elegimos para que salga de la base la variable i x , cuya
coordenada ( )i B X es la más negativa.
Paso 3: Si todos los elementos ija de la fila correspondiente a la variable que salede la base son positivos o nulos, entonces el problema no tiene solución o
tiene solución óptima no acotada.
Si al menos algún 0<ija , calculamos:
ik
k
ij
ij
j
n j a
ca
a
cmin =
<∋=
0,,1 K
Si corresponde a la columna k-esima, entra en la base k x .
Paso 4: Pivotamos sobre ik a , 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:
min321
543 x x x ++ max321
543 x x x −−−
s.a.: 532321
≥++ x x x s.a.: 532321
−≤−−− x x x
622321 ≥++ x x x 622
321 −≤−−− x x x
0,,321
≥ x x x 0,,321
≥ x x x
Introducimos las correspondientes variables de holgura para obtener la
formulación estándar:
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 16/18
Programación Lineal para la Ingeniería Técnica
92
max321
543 x x x −−−
s.a.: 5324321
−=+−−− H x x x x
6225321
−=+−−− H x x x x
0,,,, 54321 ≥ H H
x x x x x
La tabla inicial con la que comenzar a iterar, siguiendo los pasos del Algoritmo
Dual del Simplex, es la siguiente:
1 x
2 x 3
x H x4
H x5
H x4
-5 -1 -2 -3 1 0 H x5
-6 -2 -2 -1 0 1
-3 -4 -5 0 0
Puesto que jc j ∀≤ ,0 , sale de la base la variable cuya coordenada ( )i B X es la más
negativa, en este caso 65 −= x , y aplicamos el criterio de entrada, calculando:
2
3
1
5,
2
4,
2
3=
−
−
−
−
−
−min
Así pues, entra en la base la variable1
x , siendo el elemento pivote 221
−=a .
Con todo esto, la siguiente tabla quedará como sigue:
1 x
2 x 3
x H x4
H x5
H x4 -2 0 -1 -5/2 1 -1/21
x 3 1 1 1/2 0 -1/2
0 -1 -7/2 0 -3/2
paso 2
paso 3
paso 2
paso 3
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 17/18
Programación Lineal para la Ingeniería Técnica
93
Seguimos teniendo que jc j ∀≤ ,0 , y ahora la variable básica con valor más
negativo es 24
−= H x (la única), por tanto es la que abandona la base.
Aplicamos el criterio de entrada calculando:
121
23,
25
27,
1
1=
−
−
−
−
−
−min
que corresponde a la variable 2 x , que entra en la base, siendo el elemento pivote el
elemento 112 −=a .
Con todo esto, la siguiente tabla quedará como sigue:
1 x
2 x 3
x H x4
H x5
2 x 2 0 1 5/2 -1 1/2
1 x 1 1 0 -2 1 -1
0 0 -1 -1 -1
Todas las variables básicas son positivas, por lo que el algoritmo termina con lasolución óptima:
1*
1 = x , 2
*
2 = x , 0
*
3 = x , 11
* = Z
Ejemplo:
min21
2 x x Z += max21
2 x x Z −−=−
s.a.: 3321 ≥+ x x s.a.: 33
321 −=+−− H x x x
63421
≥+ x x 634421
−=+−− H x x x
3221
≥+ x x 32521
−=+−− H x x x
0,21 ≥ x x 0,,,,
54321 ≥ H H H x x x x x
aso 2
7/23/2019 Bloque4_webCT
http://slidepdf.com/reader/full/bloque4webct 18/18
Programación Lineal para la Ingeniería Técnica
94
Una vez que hemos cambiando de signo, e introducido las correspondientes
variables de holgura, la primera tabla será:
1 x
2 x H x
3 H x
4 H x
5
H x3
-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
1 x
2 x H x
3 H x
4 H x
5
H x3
-1 -5/3 0 1 -1/3 0
2 x 2 4/3 1 0 -1/3 0 H x5
1 5/3 0 0 -2/3 1
-2/3 0 0 -1/3 0
1 x 2 x H x3 H x4 H x5
1 x 3/5 1 0 -3/5 1/5 0
2 x 6/5 0 1 4/5 -3/5 0 H x5
0 0 0 1 -1 1
0 0 -2/5 -1/5 0
Todas las variables básicas son positivas, por tanto el algoritmo concluye con la
solución óptima:
53*
1 = x , 56
*
2 = x , 512
* = Z
paso 2
paso 3
aso 4
paso 2
paso 3
aso 4
aso 2
Ir al bloque 5