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