You are on page 1of 20

Análisis de Dualidad

INTRODUCCIÓN
OBJETIVO
DESARROLLO DEL TEMA
¿Cómo cambia la solución óptima de un problema de programación lineal continua
cuando cambia los parámetros del modelo? Para responder esta interrogante es
necesario abordar la teoría de la dualidad.

Hasta aquí el modelo de programación lineal desarrollado se conoce como el problema


primal. El problema dual se deriva directamente del problema primal con el que está
estrechamente relacionado. Así, por ejemplo, de la solución óptima del problema dual
se obtiene directamente la solución óptima del problema primal.

¿Por qué nos debe interesar obtener la solución del problema primal resolviendo el
problema dual? La respuesta es que puede ser más provechoso en términos de cálculo
resolver el problema dual en vez del problema primal. Tómese en cuenta que el grado
de dificultad en obtener la solución óptima de un determinado problema de
programación lineal depende positivamente del número de restricciones más que del
número de variables. Entonces, si sucede que el problema dual tiene un número
menor de restricciones que el problema primal, por lo general será más eficiente
resolver el problema dual, del cual se puede obtener después la solución óptima del
problema primal.

FORMA CANÓNICA DE DUALIDAD

Sea el siguiente problema de programación lineal denominado Primal:

Maximizar Z=CX
Sujeto a:
AX  b

X  0

El problema Dual se define como:

Minimizar R=Wb
Sujeto a:
WA  C

W  0

Donde W es un vector fila con tantas variables duales como restricciones tenga el
problema primal.
Ejemplo:

Dado el siguiente problema de programación lineal primal:

Max Z = 5X1 + 12X2 + 4X3

Sujeto a:

X1 + 2X2 + X3  10
2X1 - X2 + 3X3  8

X1, X2, X3  0

Que términos matriciales lo podemos escribir como:

 X1 
 
Max Z   5 12 4  X 2 
 X 3 

Sujeto a:

 X1 
1 2 1   10
2  1 3  X 2    8 
  X   
 3

 X 1   0
 X    0
 2  
 X 3  0

Su correspondiente problema dual será:

Min R = 10Y1 + 8Y2

Sujeto a:

Y1 + 2Y2  5
2Y1 - Y2  12
Y1 + 3Y2  4

Y1, Y2  0

Que en términos matriciales corresponde a:

10
Min R  Y1 Y2   
8
Sujeto a:

1 2 1
Y1 Y2    5 12 4
2 1 3

Y1 Y2    0 0

Ejemplo 2:

Problema Primal:

Max Z = 5X1 + 4X2

Sujeto a:

6X1 + 4X2  24
1X1 + 2X2  6
-1X1 + 1X2  1
0X1 + 1X2  2

X1, X2  0

Problema Dual:

Min W = 24Y1 + 6Y2 + 1Y3 + 2Y4

Sujeto a:

6X1 + 1X2 - 1Y3 + 0Y4  5


4X1 + 2X2 + 1Y3 + 1Y4  4

Y1, Y2, Y3, Y4  0

Ejemplo 3:

Problema Primal:

Max W = 60X1 + 30X2 + 20X3

8X1 + 6X2 + 2X3  60


4X1 + 2X2 + 1.5X3  30
2X1 + 1.5X2 + 0.5X3  20

X1, X2, X3  0
Problema Dual:

Min W = 60Y1 + 30Y2 + 20Y3

8Y1 + 4Y2 + 2Y3  60


6Y1 + 2Y2 + 1.5Y3  30
2Y1 + 1.5Y2 + 0.5Y3  20

Y1, Y2, Y3  0

Ejemplo 4:

Problema Primal:

Max W = 3X1 + 2X2 + 5X3

1X1 + 2X2 + 1X3  430


3X1 + 0X2 + 2X3  460
1X1 + 4X2 + 0X3  420

X1, X2, X3  0

Problema Dual:

Min W = 430Y1 + 460Y2 + 420Y3

1Y1 + 3Y2 + 1Y3  3


2Y1 + 0Y2 + 4Y3  2
1Y1 + 2Y2 + 0Y3  5

Y1, Y2, Y3  0

Ejemplo 5: (Winston, 1996; Pág. 203)

Problema Primal:

Max Z = 3X1 + 2X2

Sujeto a:

2X1 + X2  100
X1 + X2  80
1X1 + 0X2  40

X1, X2  0

Problema Dual:
Min Z = 100Y1 + 80Y2 + 40Y3

Sujeto a:

2Y1 + 1Y2 + 1Y3  3


1Y1 + 1Y2 + 0Y3  2

Y1, Y2, Y3  0

Nótese que las variables y las restricciones del problema dual se pueden construir
simétricamente a partir del problema primal tomando en consideración lo siguiente:

 A todo problema primal cuya función objetivo es de máximo (mínimo) le


corresponde un problema dual cuya función objetivo es de mínimo (máximo)
 Una variable dual se define para cada una de las “m” restricciones del primal
 Los coeficientes de la función objetivo del problema dual son iguales al valor del
lado derecho de las ecuaciones de las restricciones del primal.
 Una restricción dual se define para cada una de las “n” variables primales.
 Los coeficientes de las variables del lado izquierdo de la restricción dual son iguales
a los coeficientes de la restricción (columna) de la variable primal asociada. El lado
derecho de las restricciones del problema dual es igual a los coeficientes de las
variables de la función objetivo primal.

FORMA NORMAL ESTÁNDAR DE DUALIDAD

La formulación del problema Dual para la forma normal estándar se deduce fácilmente
pasando a su forma canónica el problema primal. Dado el siguiente problema en forma
matricial:

Maximizar Z=CX
Sujeto a:
AX b
X  0

El problema Dual se define como:

Minimizar R=Wb
Sujeto a:
WA  C

W Libre o no restringido

Ejemplo:

Dado el siguiente problema primal en su forma normal estándar de máximo:


Maximizar Z= 2X1 + X2 + X3

Sujeto a:

3X1 + X2 + X3 – X4 = 60
X1 – X2 + 2X3 + X5 = 10
X1 + X2 – X3 + X6 = 20

X1, X2, X3, X4, X5, X6  0

Su correspondiente problema Dual será:

Minimizar R= 60Y1 +10Y2 + 20Y3

Sujeto a:

3Y1 + Y2 + Y3  2
Y1 – Y2 + Y3  1
Y1 + 2Y2 – Y3  1
- Y1  0
+ Y2  0
- Y3  0

X1, X2, X3, X4, X5, X6 No restringida

FORMA MIXTA DE DUALIDAD

Para escribir el dual de un problema general, podemos escribir éste en forma canónica
o estándar y una de las definiciones anteriores. Otra posibilidad es formular el dual
utilizando las siguientes reglas:

Maximización  Minimización
  
Restricciones    Variables
=  No restringida
  
Variables    Restricciones
No restringida  =

Ejemplo 1:

Problema Primal:

Max Z = 5X1 + 12X2 + 4X3


Sujeto a:

X1 + 2X2 + X3  10
2X1 - X2 + 3X3 
8

X1, X2, X3  0

Problema Dual:

Min W = 10Y1 + 8Y2

Sujeto a:

Y1 + 2Y2  5
2Y1 - Y2  12
Y1 + 3Y2  4

Y1  0 Y2 Libre

Ejemplo 2:

Problema Primal:

Min Z = 15X1 + 12X2

Sujeto a:

X1 + 2X2  3
2X1 - 4X2  5

X1, X2  0

Problema Dual:

Max W = 3Y1 + 5Y2

Sujeto a:

X1 + 2X2  15
2X1 - 4X2  12

Y1  0, Y2  0

Ejemplo 3:

Problema Primal:
Max Z = 5X1 + 6X2

Sujeto a:

X1 + 2X2 5
- X1 + 5X2  3
4X1 + 7X2  8

X1, X2  0

Problema Dual:

Mix W = 5Y1 + 3Y2 + 8Y2

Sujeto a:

Y1 - Y2 + 4Y3  5
2Y1 – 5Y2 + 7Y3  6

Y1 Libre, Y2  0, Y3  0

Ejemplo 4:

Problema Primal:

Max Z = 2X1 + 1X2

Sujeto a:

X1 + X2 
2
2X1 - X2  3
X1 - 7X2  1

X1  0 X2 libre

Problema Dual:

Min Z = 2Y1 + 3Y2 + Y3

Sujeto a:

1Y1 + 2Y2 + 1Y3  2


1Y1 - 1Y2 - 7Y3 1
Y1 Libre, Y2  0, Y3  0
Ejemplo 5:

Problema Primal:

Min Z = 2X1 + 4X2 + 6X3

Sujeto a:

X1 + 2X2 + X3  2
X1 - X3  8
X2 + X3 1
2X1 + X2 +  3

X1 libre X2, X3  0

Problema Dual:

Max W = 2Y1 + 8Y2 + 1Y3 + 3Y4


1Y1 + 1Y2 + 0Y3 + 2Y4 
2
2Y1 + 0Y2 + 1Y3 + 1Y4  4
1Y1 - 1Y2 + 1Y3 + 0Y4  6

Y1  0, Y2  0, Y3 Libre, Y4  0

Ejemplo 6: (Hillier and Lieberman, 1997, Pág. 213)

Problema Primal:

Max Z = - 0.4X1 - 0.5X2

0.3X1 + 0.1X2  2.7


0.5X1 + 0.5X2  6
0.6X1 + 0.4X2  6

X1, X2  0

Problema Dual:

Min W = 2.7Y1 + 6Y2 + 6Y3

0.3Y1 + 0.5Y2 + 0.6Y3  - 0.4


0.1Y1 + 0.5Y2 + 0.4Y3  - 0.5
Y1  0, Y2 Libre, Y3  0

Ejemplo 7: (Hillier and Lieberman, 1997, Pág. 214)


Problema Primal:

Min Z = 0.4X1 + 0.5X2

0.3X1 + 0.1X2  2.7


0.5X1 + 0.5X2  6
0.6X1 + 0.4X2  6

X1, X2  0

Problema Dual:

Max W = 2.7Y1 + 6Y2 + 6Y3

0.3Y1 + 0.5Y2 + 0.6Y3  0.4


0.1Y1 + 0.5Y2 + 0.4Y3  0.5
Y1  0, Y2 Libre, Y3  0

Ejemplo 8: (Winston, 1996; Pág. 209)

Problema Primal:

Max W = 4X1 + 6X2 + 7X3 + 8X4

Sujeto a:

X1 + X2 + X3 + X 4 
950
0X1 + 0X2 + 0X3 + 1X4  400
2X1 + 3X2 + 4X3 + 7X4  4600
3X1 + 4X2 + 5Y3 + 6Y4  5000

X1, X2, X3, X4  0

Problema Dual:

Min W = 950Y1 + 400Y2 + 4600Y3 + 5000Y4

Sujeto a:

1Y1 + 0Y2 + 2Y3 + 3Y4  4


1Y1 + 0Y2 + 3Y3 + 4Y4  6
1Y1 + 0Y2 + 4Y3 + 5Y4  7
1Y1 + 1Y2 + 7Y3 + 6Y4  8

Y1 Libre, Y2  0, Y3  0, Y4  0

Ejemplo 9: (Winston, 1996; Pág. 210)


Problema Primal:

Min Z = 15X1 + 10X2 + 9X3 + 7X4

Sujeto a:

X1 + X2 + X3 + X4 
1000
0X1 + 0X2 + 1X3 + 0X4  400
2X1 + 3X2 + 4X3 + 5X4  3300
3X1 + 4X2 + 5Y3 + 6Y4  4000

X1, X2, X3, X4  0

Problema Dual:

Max W = 1000Y1 + 400Y2 + 3300Y3 + 4000Y4

Sujeto a:

1Y1 + 0Y2 + 2Y3 + 3Y4  15


1Y1 + 0Y2 + 3Y3 + 4Y4  10
1Y1 + 1Y2 + 4Y3 + 5Y4  9
1Y1 + 0Y2 + 5Y3 + 6Y4  7

Y1 Libre, Y2  0, Y3  0, Y4  0

Ejemplo 10:

Problema Primal:

Maximizar Z= 8X1 + 5X2 – 3X3

Sujeto a:

5X1 – 8X2 + 4X3  25


6X1 + 7X2 – 5X3 = 54
2X1 + 6X2 – 4X3  36
3X1 + 2X2 + 7X3 = 18

X1  0, X2  0, X3 No restringida

Problema Dual:

Minimizar R= 8X1 + 5X2 – 3X3

Sujeto a:
5Y1 + 6Y2 + 2Y3 + 3Y4  8
-8Y1 + 7Y2 + 6Y3 + 2Y4  5
4Y1 - 5Y2 – 4Y3 + 7Y4 = - 3

Y1  0, X2 No restringida, Y3  0, Y4 No restringida

Ejemplo 11:

Problema Primal:

Minimizar Z = 9X1 – 4X2 + 11X3 +8X4

Sujeto a:

- 4X1 + 2X2 + 6X3 – 3 X4  16


9X1 + 10X2 + 13X3 + 11X4 = 25
12X1 + 10X2 + 15X3 + 14X4  34

X1, X3  0, X2, X4 No restringidas

Problema Dual:

Maximizar R = 16Y1 +25Y2 + 34Y3

Sujeto a:

- 4Y1 + 9Y2 + 12Y3  9


2Y1 + 10Y2 + 10Y3 = -4
6Y1 + 13Y2 + 15Y3  11
- 3Y1 + 11Y2 + 14Y3  8

X1  0, Y2 No restringida, Y3  0
Ejercicio de ilustración
Solución Primal:

Dado el siguiente problema de programación lineal:

Max Z = 34X1 + 40X2


Sujeto a:
4X1 + 6X2 <= 48
2X1 + 2X2 <= 18
2X1 + X2 <= 16
X1, X2 >= 0
a) Plantear el problema en su forma normal de máximo

Max Z = 34X1 + 40X2


Sujeto a:
4X1 + 6X2 + X3 = 48
2X1 + 2X2 + X4 = 18
2X1 + X2 + X5 = 16
X1, X2, X3, X4, X5 >= 0

b) ¿Cuántas soluciones básicas es posible obtener del sistema de ecuaciones?

5!
 10 Soluciones básicas
(5  2)!2!

c) Escriba el problema de programación lineal distinguiendo variables básicas y no básicas y obtenga


por lo menos una solución básicas ¿Esta es una solución básica posible?

Sea I el conjunto de subíndices de las variables básicas I = {3, 4, 5}. Entonces el conjunto de subíndice de
las variables básicas será: J = {1, 2}. Por tanto,

X3 
X 
Z   0 0 0  X 4    34 40  1 
 X 5  X 2 

1 0 0   X 3   4 6  48
0 1 0  X   2 2  X 1   18 
  3    X   
0 0 1  X 4  2 1   2  16 

X3 
X   0  X1 
 4 X   0
 X 5   2

Siendo,

1 0 0
B  0 1 0
0 0 1

Entonces,
 X 3  48
 
X B   X 4   18  Es una solución básica posible.
 X  16 
 5  

Por cuanto,

 X 3  48 0
 
X B   X 4   18   0
 X  16  0
 5    

d) Obtenga una solución básica posible inicial y escriba el sistema explícito del problema de
programación lineal

Para escribir el problema en su forma explícita es necesario calcular:

1 0 0 4 6 4 6
Y  B R  0
1
0 0.2 2  .2
 2
0 1 1  2 1  2 1 

4 6
Z R
 C Y  0
B
0 0..2 2   0 0
2 1 

C R  Z R   34 40   0 0   34 40

X3  1 0 0 48 48


 
XB   X 4   B b  0 1 0.18   18 
1

X  0 0 1 16  16 


 5

 48
Z  C B X B  0 0 0.18   0
16 
Luego tenemos,

X3 
X 
Z  0   0 0 0. X 4    34 40  1 
 X 5  X 2 

1 0 0  X 3  4 6 48
0 0 0. X   2 2  X 1   18 
   4   X   
0 1 1  X 5  2 1  2  16 
X3 
X   0  X1 
 4 X   0
 X 5   2

e) Traslade el sistema explícito del problema de programación lineal a un tablero simplex y obtenga su
solución con base al algoritmo simplex .

X1 X2 X3 X4 X5
Z 0 34 40 0 0 0 
X 3  48 4 66 1 0 0 48/6=8

X 4  18 2 2 0 1 0 18/2=9
X 5  16 2 1 0 0 1 16/1=16

1ª. ITERACION:

Cálculos Auxiliares:

Fila del Pivote:

[8 2/3 1 1/6 0 0]

Fila Cero:

[8 2/3 1 1/6 0 0] [-40]

-320 -80/3 -40 -20/3 0 0


0 34 40 0 0 0

______________________________________
-320 22/3 0 -20/3 0 0

Fila Dos:

[8 2/3 1 1/6 0 0] [-2]

-16 -4/3 -2 -1/3 0 0


18 2 2 0 1 0
______________________________________
2 2/3 0 -1/3 1 0

Fila tres:

[8 2/3 1 1/6 0 0] [-1]

-8 -2/3 -1 -1/6 0 0
16 2 1 0 0 1
______________________________________
8 4/3 0 -1/6 0 1

X1 X2 X3 X4 X5
 Z  320 22/3 0 -20/3 0 0 
X2  8 2/3 1 1/6 0 0 8:2/3=12

X4  2 2/3 0 -1/3 1 0 2:2/3=3


2/3
X5  8 4/3 0 -1/6 0 1 8:4/3=6

2ª. ITERACION:

Cálculos Auxiliares:

Fila del Pivote:

[3 1 0 -1/2 3/2 0]

Fila Cero:

[3 1 0 -1/2 3/2 0] [-22/3]

-22 -22/3 0 11/3 -11 0


-320 22/3 0 -20/3 0 0

______________________________________
-342 0 0 -3 -11 0

Fila Uno:

[3 1 0 -1/2 3/2 0][-2/3]

-2 -2/3 0 1/3 -1 0
8 2/3 1 1/6 0 0
______________________________________
6 0 1 1/2 -1 0

Fila Tres:

[3 1 0 --1/2 3/2 0][-4/3]

-4 -4/3 0 2/3 -2 0
8 4/3 0 -1/6 0 1
______________________________________
4 0 0 1/2 -2 1

X1 X2 X3 X4 X5
 Z  342 0 0 -3 -11 0 
X2  6 0 1 1/2 -1 0

X1  3 1 0 -1/2 3/2 0
X5  4 0 0 1/2 -2 1

Solución:

 X 2  6
 
X B   X 1   3
 X   4
 5  

6 
Z  CBX B
  40 34 0.3  342
4

Solución Dual:

Dado el siguiente problema de programación lineal

Min W = 48Y1 + 18Y2 + 16Y3


Sujeto a:
4Y1 + 2X2 + 2Y3 >= 34
6Y1 + 2X2 + Y3 >= 40
Y1, Y2, Y3 >= 0

a) Plantear el problema en su forma normal de máximo

Max R = - W = - 48Y1 - 18Y2 - 16Y3


Sujeto a:
4Y1 + 2X2 + 2Y3 - Y4 = 34
6Y1 + 2X2 + Y3 - Y5 = 40
Y1, Y2, Y3, Y4, Y5 >= 0

b) Obtener una base posible inicial

No es posible obtener una solución básica posible con las variables excedentes por ello recurrimos a
obtener una solución inicial mediante el método de coeficientes de castigo.

c) Plantear el problema ampliado introduciendo variables artificiales:

Max V = - 48Y1 - 18Y2 - 16Y3 – MU1 - MU2


Sujeto a:
4Y1 + 2X2 + 2Y3 - Y4 + U1 = 34
6Y1 + 2X2 + Y3 - Y5 + U2 = 40
Y1, Y2, Y3, Y4, Y5 >= 0

RESULOCION DE DUALIDAD MEDIANTE LINDO

SOLUCIONARIO PRIMAL
SOLUCIONARIO DUAL
RESULOCION DE DUALIDAD MEDIANTE EXCEL

SOLUCIONARIO PRIMAL

SOLUCIONARIO DUAL

CONCLUSIÓN

You might also like