DUALIDAD En esta sección se presenta un tratamiento más riguroso de la dualidad, que nos permite verificar las relaciones primal-dual que formaban la base del análisis de sensibilidad que vimos anteriormente. También veremos las bases del desarrollo de la programación paramétrica. Definición matricial del problema dual Suponga que el problema primal, en forma de ecuación con m restricciones y n variables se define como sigue: Maximizar z = CX sujeta a AX = b, X ≥ 0 Si el vector Y = (y1 y2 y3 . . . ym ) representa las variables duales, tenemos el siguiente problema dual: Minimizar w = Y b sujeta a YA≥C Y no restringida Observe que algunas de las restricciones Y A ≥ C pueden imponer una restricción sobre alguna yk no restringida. Solución dual óptima En esta sección se establecen las relaciones entre los problemas primal y dual, y se indica cómo se puede determinar la solución dual óptima a partir de la solución primal óptima. Sea B la base primal óptima actual, y defı́nase CB como los coeficientes de la función objetiva asociados con el vector óptimo XB . Teorema de la dualidad débil: Para cualquier par de soluciones factibles primal y dual (X, Y), el valor de la función objetivo en el problema de minimización establece una cota superior al valor de la función objetivo en el problema de maximización. Para el par óptimo (X*, Y*), los valores de las funciones objetivo en los dos problemas son iguales. Demostración. El par factible (X, Y ) satisface todas las restricciones de los dos problemas. Al multiplicar desde la izquierda ambos lados de las restricciones del problema de maximización por Y (no restringida), se obtiene Y AX = Y b = w 1 (1) También, para el problema de minimización, al multiplicar ambos desde la derecha por X(≥ 0), se obtiene Y AX ≥ CX o bien Y AX ≥ CX = z (2) (Es esencial la no negatividad del vector X para mantener la dirección de la desigualdad.) Al combinar las ecuaciones (1) y (2) se obtiene z ≤ w para cualquier par factible (X, Y ). Nótese que el teorema no depende de etiquetar a los problemas como primal o dual. Lo que importa es el sentido de la optimización en cada problema. En forma especı́fica, para cualquier par de soluciones factibles, el valor objetivo en el problema de maximización no es mayor que el valor objetivo en el problema de minimización. La implicación del teorema es que dada z ≤ w para toda solución factible, el máximo de z y el mı́nimo de w se alcanzan cuando los dos valores objetivo son iguales. Una consecuencia de este resultado es que la “bondad” de cualesquiera soluciones primales y duales dadas, en relación con el óptimo, se puede verificar comparando la diferencia (w − z) con (z + w)/2. Mientras menor sea la relación 2(w − z)/(w + z) las dos soluciones se acercarán más a ser óptimas. La regla fácil que se sugiere no implica que el valor objetivo óptimo sea (z + w)/2. ¿Qué sucede si uno de los dos problemas tiene un valor objetivo no acotado? La respuesta es que el otro problema debe ser no factible. Porque si no lo fuera, ambos problemas tiene soluciones factibles y debe seguir vigente la relación z ≤ w; esto es imposible, porque se supuso desde el principio que z = +∞ o w = −∞. La siguiente pregunta es: si un problema es no factible, ¿el otro problema es no acotado? No necesariamente. El siguiente contraejemplo demuestra que el primal y el dual pueden ser no factibles al mismo tiempo (¡compruébelo gráficamente!): Primal: Dual: Maximizar z Minimizar w = = {x1 + x2 |x1 − x2 ≤ −1, −x1 + x2 ≤ −1, x1 , x2 ≥ 0} {−y1 − y2 |y1 − y2 ≥ 1, −y1 + y2 ≥ 1, y1 , y2 ≥ 0} Teorema 2: Dada la base primal óptima B y su vector asociado de coeficientes de objetivo CB , la solución óptima del problema dual es Y = CB B −1 Demostración: Esta demostración se basa en verificar dos puntos: que Y = CB B −1 es una solución dual factible, y que z = w según el teorema de la dualidad débil. La factibilidad de Y = CB B −1 está garantizada por la optimalidad del primal zj − cj ≥ 0, ∀ j; esto es, CB B −1 A − C ≥ 0 2 Ası́, Y A − C ≥ 0 o Y A ≥ C, lo que demuestra que Y = CB B −1 es una solución dual factible. A continuación demostraremos que la w asociada es w = z observando que w = Y b = CB B −1 b De igual modo, dada la solución primal XB = B −1 b, se obtiene z = CB XB = CB B −1 b De acuerdo con las ecuaciones (2) y (1) se concluye que z = w. A veces se les llama multiplicadores sı́mplex a las variables Y = CB B −1 . También se les llama precios sombra, nombre que se originó en la interpretación económica de las variables duales. Dado que Pj , es la j-ésima columna de A, se observa, por el teorema 2, que zj − cj = CB B −1 Pj − cj = Y Pj − cj representa la diferencia entre los lados izquierdo y derecho de las restricciones duales. El primal de maximización comienza con zj − cj < 0 para cuando menos una j, lo que quiere decir que la restricción dual correspondiente, Y Pj ≥ cj , no se satisface. Cuando se llega a la primal óptimo se obtiene zj − cj ≥ 0, para toda j, lo que quiere decir que la solución dual correspondiente Y = CB B −1 se vuelve factible. Se llega a la conclusión que mientras el primal busca la optimalidad, el dual busca automáticamente la factibilidad. Este punto es la base para desarrollar el método sı́mplex dual en el que las iteraciones comienzan mejores que la óptima, y son no factibles, y permanecen ası́ hasta que en la última iteración se adquiere la factibilidad. Esto es un contraste con el método sı́mplex primal, que sigue siendo peor que lo óptimo, pero factible, hasta que se llega a la iteración óptima. Ejemplo 7.5-1 La base óptima para el siguiente problema lineal es B = (P1 , P4 ). Escribir el dual y determinar su solución óptima usando la base primal óptima. Maximizar z = 3x1 + 5x2 sujeta a x1 −x1 + + 2x2 3x2 + x3 + x4 xk ≥ 0, ∀ k. El problema dual se plantea como, Minimizar w = 5y1 + 2y2 3 = = 5 2 sujeta a y1 2y1 − + y2 3y2 ≥ 3 ≥ 5 yk ≥ 0, ∀ k. En este caso XB = (x1 , x4 )T ; en consecuencia CB = (3, 0). La base óptima y su inversa son, 1 0 1 0 B= , B −1 = −1 1 1 1 Los valores primal y dual asociados son (x1 , x4 )T = B −1 b = (5, 7)T (y1 , y2 )T = CB B −1 = (3, 0)T Ambas soluciones son factibles y z = w = 15 (¡compruébelo!). Ası́, las dos soluciones son óptimas. PROGRAMACIÓN LINEAL PARAMÉTRICA La programación lineal paramétrica es una extensión de los procedimientos de análisis de sensibilidad. Investiga el efecto de variaciones continuas predeterminadas en los coeficientes de la función objetivo, y el lado derecho de las restricciones, sobre la solución óptima. Supongamos que el problema lineal se define como n X Maximizar z = CX| Pj xj = b, X ≥ 0 j=1 En el análisis paramétrico se reemplazan la función objetivo C y los vectores del lado derecho b por las funciones parametrizadas C(t) y b(t), siendo t el parámetro de variación. Desde el punto de vista matemático, t puede tener cualquier valor positivo o negativo. Sin embargo, en la práctica t suele representar al tiempo, por lo que sólo asume valores no negativos. En esta explicación supondremos que t ≥ 0. La idea general del análisis paramétrico es iniciar con la solución óptima en t = 0. Después, usando las condiciones de optimalidad y factibilidad del método sı́mplex se determina el intervalo 0 ≤ t ≤ t1 para el cual la solución permanece óptima y factible en t = 0. En este caso, a t1 se le llama valor crı́tico. El proceso continúa determinando valores crı́ticos sucesivos y sus soluciones óptimas factibles correspondientes. Termina el proceso en t = tr cuando hay indicación ya sea de que la última solución permanece sin cambio para t > tr o que no existe solución factible más allá de ese valor crı́tico. 4 Cambios paramétricos en C Sean XBi , Bi , CBi (t) los elementos que definen la solución óptima asociada con ti , crı́tico (los cálculos se inician en t0 = 0 con B0 como su base óptima). A continuación se determina el valor ti+1 y su base óptima, si existe. Como los cambios en C sólo pueden afectar la optimalidad del problema, la solución actual XBi = Bi−1 b permanecerá óptima para algun t ≥ ti , siempre que se satisfaga la siguiente condición de optimalidad: zj (t) − cj (t) = CBi Bi−1 Pj − cj (t) ≥ 0, ∀ j. El valor de ti+1 es igual a t > ti máxima que satisface todas las condiciones de optimalidad. Observe que nada en las desigualdades pide que C(t) sea lineal en t. Es aceptable toda función C(t), lineal o no lineal. Sin embargo, con la no linealidad la manipulación numérica de las desigualdades resultantes puede ser complicada. Ejemplo 7.6-1 Maximizar z = (3 − 6t)x1 + (2 − 2t)x2 + (5 + 5t)x3 sujeta a x1 3x1 x1 + 2x2 + 4x2 + + x3 2x3 ≤ 40 ≤ 60 ≤ 30 xk ≥ 0, ∀ k. Se tiene que, C(t) = (3 − 6t, 2 − 2t, 5 + 5t), t ≥ 0 Las variables x4 , x5 y x6 son holguras. Solución óptima en t = t0 = 0 Básica z x2 x3 x6 x1 4 −1/4 3/2 2 x2 0 1 0 0 x3 0 0 1 0 x4 1 1/2 0 −2 x5 2 −1/4 1/2 1 x6 0 0 0 1 Solución 160 5 30 10 XB0 = (x2 , x3 , x6 )T = (5, 30, 10)T CB0 = (2 − 2t, 5 + 5t, 0) 1/2 −1/4 0 1/2 0 B0−1 = 0 −2 1 1 Las condiciones de optimalidad para los vectores no básicos P1 , P4 y P5 actuales son {CB0 (t)B0−1 Pj − cj (t)}j=1,4,5 = (4 + 14t, 1 − t, 2 + 3t) ≥ 0 5 Ası́, XB0 permanece óptima siempre que se satisfagan las siguientes condiciones: 4 + 14t 1−t 2 + 3t ≥ 0 ≥ 0 ≥ 0 Como t ≥ 0, la segunda desigualdad estipula que t ≤ 1 y las otras dos desigualdades se satisfacen para toda t ≥ 0. Entonces se tiene que t1 = 1, y eso significa que XB0 permanece óptima (y factible) para 0 ≤ t ≤ 1. En t = 1, z4 − c4 = 1 − t es igual a cero y se vuelve negativo para t > 1. Ası́, P4 debe entrar a la base para t > 1. En este caso, P2 debe salir de la base (véase el cuadro óptimo en t = 0). La nueva solución básica XB1 es la solución alternativa obtenida en t = 1 haciendo que P4 entre a la base; esto es, XB1 = (x4 , x3 , x6 )T y B1 = (P4 , P3 , P6 ). Base óptima alternativa en t = t1 = 1 1 B1 = 0 0 1 2 0 1 −1/2 0 0 1/2 0 0 , B1−1 = 0 0 0 1 1 Ası́, XB1 = (x4 , x3 , x6 )T = B1−1 b = (10, 30, 30)T CB1 (t) = (0, 5 + 5t, 0) Los vectores no básicos asociados son P1 , P2 y P5 , y entonces 5 + 5t 9 + 27t −1 , −2 + 2t, ≥0 {CB1 (t)B1 Pj − cj (t)}j=1,2,5 = 2 2 De acuerdo con estas condiciones, la solución básica XB1 permanece óptima para toda t ≥ 1. Observe que la condición de optimalidad −2 + 2t ≥ 0, “recuerda” automáticamente que XB1 es óptima para un intervalo de t que comienza en el último valor crı́tico t1 = 1. Éste siempre será el caso en los cálculos de programación paramétrica. Es decir, hay continuidad. La solución óptima para todo el intervalo de t se resume a continuación. El valor de z se calcula por sustitución directa. t 0≤t≤1 t≥1 x1 0 0 x2 5 0 6 x3 30 30 z 160 + 140t 150 + 150t Cambios paramétricos en b El lado derecho b(t) parametrizado sólo puede afectar la factibilidad del problema. Los valores crı́ticos de t se determinan entonces a partir de la siguiente condición: XB (t) = B −1 b(t) ≥ 0 Ejemplo 7.6-2 Maximizar z = 3x1 + 2x2 + 5x3 sujeta a x1 3x1 x1 + 2x2 + 4x2 + + x3 2x3 ≤ 40 − t ≤ 60 + 2t ≤ 30 − 7t xk ≥ 0, ∀ k, t ≥ 0. En t = t0 = 0, el problema es idéntico con el del ejemplo 7.6-1. Entonces se tiene XB0 = (x2 , x3 , x6 )T = (5, 30, 10)T 1/2 −1/4 0 1/2 0 B0−1 = 0 −2 1 1 Para determinar el primer valor crı́tico t1 , 0 con lo que se obtiene x2 x3 = x6 se aplica la condición XB0 (t) = B0−1 b(t) ≥ 5−t 30 + t ≥ 0 10 − 3t Estas desigualdades se satisfacen para t ≤ 10/3 (nos quedamos con la más restrictiva), lo que significa que t1 = 10/3 y que la base B0 permanece factible en el intervalo 0 ≤ t ≤ 10/3. Sin embargo, los valores de las variables básicas cambian en función de t, como se describió arriba. El valor de la variable básica x6 (= 10 − 3t) será igual a cero en t = t1 = 10/3 y se volverá negativo para t > 10/3. Ası́, en t = 10/3, se puede determinar la base alternativa B1 aplicando el método sı́mplex dual modificado. La variable saliente es x6 . Base alternativa en t = t1 = 10/3 Dado que x6 es la variable saliente, se determinará como sigue la variable entrante: XB0 = (x2 , x3 , x6 )T =, CB0 = (2, 5, 0) Ası́, {zj − cj }j=1,4,5 = {CB0 B0−1 Pj − cj }j=1,4,5 = (4, 1, 2) 7 A continuación, para xj=1,4,5 , no básica, se calcula (Fila de B0−1 asociada con x6 )(P1 , P4 , P5 ) = = = (Tercera fila de B0−1 )(P1 , P4 , P5 ) (−2,1,1)(P1 , P4 , P5 ) (2,−2,1) Ası́, la variable entrante está asociada con 1 1 θ = mı́n −, | |, − = −2 2 Entonces, el vector entrante es P4 . La base alternativa es 2 1 1 B1 = (P2 , P3 , P4 ) = 0 2 0 4 0 0 Ası́, 0 0 1/4 1/2 0 = 0 1 −1/2 −1/2 B1−1 La nueva XB1 = (x2 , x3 , x4 )T . El siguiente valor crı́tico t2 se determina con la condición XB1 (t) = B1−1 b(t) ≥ 0, con lo que se obtiene 30−7t x2 4 x3 = 30 + t ≥ 0 −10+3t x4 2 Estas condiciones indican que B1 permanece factible cuando 10/3 ≤ t ≤ 30/7. En t = t2 = 30/7, se puede obtener una base alternativa con el método sı́mplex dual modificado. La variable saliente es x2 , porque corresponde a la condición que produce el valor crı́tico t2 . Base alternativa t = t2 = 30/7 Ya que x2 es la variable saliente, se determina la variable entrante como sigue: XB1 = (x2 , x3 , x4 )T , CB1 = (2, 5, 0) Ası́, {zj − cj }j=1,5,6 = {CB1 B1−1 Pj − cj }j=1,5,6 = (5, 5/2, 1/2) A continuación, para no básica, xj=1,5,6 , se calcula (Fila de B1−1 asociada con x2 )(P1 , P5 , P6 ) = = = (Primera fila de B1−1 )(P1 , P5 , P6 ) (0,0,1/4)(P1 , P5 , P6 ) (1/4,0,1/4) Como todos los elementos del denominador, (1/4, 0, 1/4), son ≥ 0, el problema no tiene solución factible para t > 30/7 y el análisis paramétrico termina en t = t2 = 30/7. La solución óptima se resume como sigue: 8 t 0 ≤ t ≤ 10/3 10/3 ≤ t ≤ 30/7 t > 30/7 x1 0 0 x2 x3 z 5 − t 30 + t 160 + 3t (30 − 7t)/4 30 + t 165 + 3t/2 No existe solución factible 9