4.3 INTERPRETACIÓN ECONÓMICA DE LA DUALIDAD El problema de programación lineal se puede considerar como modelo de asignación de recursos, en el que el objetivo es maximizar los ingresos o las utilidades, sujetos a recursos limitados. Si se aprecia el problema desde este punto de vista, el problema dual asociado ofrece interpretaciones económicas interesantes del modelo de programación lineal de asignación de recursos. Para formalizar la descripción se considerará la siguiente representación de los problemas generales primal y dual, en donde el primal asume el papel de un modelo de asignación de recursos: Primal Maximizar z = sujeta a Pn j=1 Dual Pn j=1 cj xj Minimizar w = sujeta a aij xj ≤ bi , 1 = 1, 2, . . . , m xj ≥ 0, j = 1, 2, . . . , n Pm i=1 Pm i=1 bi yi aij yi ≥ cj , 1 = 1, 2, . . . , n yi ≥ 0, i = 1, 2, . . . , m Desde el punto de vista de modelo de asignación de recursos, el problema primal tiene n actividades económicas y m recursos. El coeficiente cj del primal representa la utilidad por unidad de actividad j. El recurso i, cuya disponibilidad máxima es bi , se consume con la tasa de aij unidades por unidad de actividad j. 4.3.1 Interpretación económica de variables duales En la sección 4.2.5 se indicó que para dos soluciones factibles primal y dual cualquiera, los valores de las funciones objetivo, cuando son finitos, deben satisfacer la siguiente desigualdad: z= n X cj xj ≤ j=1 m X bi yi = w i=1 La igualdad estricta, z = w, es válida cuando las soluciones primal y dual son óptimas ambas. Examinemos primero la condición óptima z = w. Como el problema primal rep1 resenta un modelo de asignación de recursos, se puede imaginar que z representa la utilidad monetaria. Como bi representa la cantidad disponible de unidades del recurso i, la ecuación z = w se puede expresar en forma dimensional como sigue: P $ = i (unidades del recurso i) × ($ por unidad del recurso i) Eso quiere decir que las variables duales yi representan el valor por unidad del recurso i. (En la sección 2.3.3 se obtuvo esta misma interpretación, por vı́a gráfica, sin usar la dualidad.) En las publicaciones, las variables yi se conocen con el nombre abstracto de precios duales. Otros nombres (que de igual manera no sugieren nada) son precios sombra y multiplicadores sı́mplex. Con la misma lógica, la desigualdad z < w asociada con dos soluciones asociadas, primal y dual, se interpreta como sigue: (Utilidad) < (Valor de los recursos) Según esta relación, siempre que los ingresos totales por todas las actividades sean menores que el valor de los recursos, las soluciones primal y dual correspondientes no son óptimas. La optimalidad (retorno máximo) sólo se alcanza cuando se han explotado los recursos por completo, lo que sólo puede suceder cuando los datos (valor de los recursos) son iguales a los resultados ($ de utilidad). En términos económicos se dice que el sistema permanece inestable (no óptimo) cuando los datos (valor de los recursos) son mayores que el resultado (retorno o ingreso). La estabilidad sólo se obtiene cuando las dos cantidades son iguales. Ejemplo 4.3-1 El modelo de Reddy Mikks (ejemplo 2.1-1) y su dual son los siguientes: Primal de Ready Mikks Maximizar z = 5x1 + 4x2 sujeta a 6x1 + 4x2 ≤ 24 (recurso 1, M 1) x1 + 2x2 ≤ 6 (recurso 2, M 2) −x1 + x2 ≤ 1 (recurso 3) x2 ≤ 2 (recurso 4) xk ≥ 0, ∀ k Solución óptima: x1 = 3, x2 = 1.5, z = 21 Dual de Ready Mikks Minimizar w = 24x1 + 6y2 + y3 + 2y4 sujeta a 6y1 + y2 − y3 ≥ 5 4y1 + 2y2 + y3 + y4 ≥ 4 yk ≥ 0, ∀k Solución óptima: y1 = 0.75, y2 = 0.5, y3 = y4 = 0, w = 21 2 En resumen, el modelo de Reddy Mikks maneja la producción de dos clases de pintura (para exteriores y para interiores) usando dos materias primas, M 1 y M 2 (recursos 1 y 2) y sujeta a las condiciones del mercado representadas por las restricciones tercera y cuarta. El modelo busca determinar las toneladas de pinturas para exteriores y para interiores que maximicen la utilidad (expresada en miles de dólares). La solución dual óptima indica que el valor por unidad de la materia prima M1 (recurso 1) es y1 = 0.75 (o sea, $750 por tonelada), y por unidad de materia prima M 2 (recurso 2) es y2 = 0.5 (es decir, $500 por tonelada). En la sección 2.3.3 mostramos en forma gráfica que esos mismos resultados son válidos para los intervalos (20, 36) y (4, 6.67), para los recursos 1 y 2, respectivamente (esos intervalos también se deducirán en forma algebraica en la sección 4.5.1). Ası́, la materia prima M 1 se puede aumentar desde su consumo actual de 24 toneladas, hasta un máximo de 36 toneladas, con un aumento correspondiente en la utilidad de 12 × $750 = $9000. De igual forma, el lı́mite para la materia prima M 2 puede aumentarse desde 6 toneladas hasta un máximo de 6.67 toneladas, con un aumento correspondiente en la utilidad de 0.67 × $500 = $335. Se pueden mostrar interpretaciones parecidas si bajan las cantidades de materia prima respecto a los niveles actuales, pero dentro de los intervalos de aplicabilidad indicados. La explicación no quiere decir que los recursos mencionados no se puedan cambiar a valores fuera de los intervalos citados. Sólo indica que la utilidad por unidad, para cada recurso, sólo se aplica dentro de los márgenes especificados. Para los recursos 3 y 4, que representan los requerimientos del mercado, los precios duales (ambos valores duales óptimos) son cero, lo que indica que sus recursos asociados son abundantes. De aquı́ que su valor por unidad es cero. 4.3.2 Interpretación económica de restricciones duales Se pueden interpretar las restricciones duales, usando la fórmula 2 de la sección 4.2.4, que indica que en cualquier iteración primal (Coeficiente objetivo de xj ) = Pm i=1 aij yi − cj De nuevo se aplicará el análisis dimensional para interpretar esta ecuación. La utilidad cj por unidad de actividad Pm j está en $ por unidad. En consecuencia, para tener consistencia, la cantidad i=1 aij yi también P debe estar en $ por unidad. Además, como cj representa una utilidad, la cantidad m i=1 aij yi , que aparece en la ecuación con signo contrario, debe representar un costo. Al mismo tiempo, como aij es la cantidad del 3 recurso i que usa la actividad j, las variables duales yi deben representar costo imPal m putado por unidad de recurso i y se puede considerar que la cantidad i=1 aij yi es el costo imputado de todos los recursos necesarios para producir una unidad de actividad j. La condición de optimalidad de maximización del método sı́mplex indica que un aumento en la cantidad de una actividad, j noP usada (no básica) puede mejorar la utilidad sólo en caso de que su coeficiente objetivo ( m i=1 aij yi − cj ) sea negativo. En función de la interpretación anterior, esta condición establece que Costo imputado de recursos por unidad < Utilidad por unidad de actividad j de actividad j Ası́, la condición de optimalidad de maximización indica que es económicamente bueno aumentar una actividad a un valor positivo si su utilidad unitaria es mayor que su costo imputado unitario. Para que el lector se familiarice con la notación normal que se usa en las publicaciones presentaremos la definición que representa el costo imputado de los recursos usados, por unidad de actividad j. La notación (zj − cj ) es el coeficiente objetivo de xj en la tabla sı́mplex y se llama con frecuencia costo reducido de la actividad j. En realidad, en algunos libros se usa (zj −cj ) para calcular en forma directa el coeficiente de la ecuación objetivo (en lugar de usar operaciones de fila de Gauss-Jordan). El uso de (zj − cj ) en los cálculos sı́mplex es, en realidad, una parte del método sı́mplex revisado que describiremos más adelante. Ejemplo 4.3-2 TOYCO arma tres juguetes: trenes, camiones y coches, con tres operaciones. Los lı́mites diarios de tiempo disponible para las tres operaciones son 430,460 y 420 minutos, respectivamente, y las utilidades por tren, camión y coche de juguete son $3, $2 y $5, respectivamente. Los tiempos de armado por tren, en las tres operaciones son 1, 3 y 1 minutos, respectivamente. Los tiempos respectivos por camión y por coche son (2, 0, 4) y (1, 2, 0) minutos (un tiempo de cero indica que no se usa la operación). Si x1 , x2 y x3 representan la cantidad diaria de unidades armadas de trenes, camiones y coches, y si el modelo de programación lineal correspondiente, y su dual son los siguientes: 4 Primal de TOYCO Dual de TOYCO Maximizar z = 3x1 + 2x2 + 5x3 sujeta a x1 + 2x2 + x3 ≤ 430 (operación 1) 3x1 + 2x3 ≤ 460 (operación 2) x1 + 4x2 ≤ 420 (operación 3) xk ≥ 0, ∀ k Solución óptima: x1 = 0, x2 = 100, x3 = 230, z = $1350 Minimizar z = 430y1 + 460y2 + 420y3 sujeta a y1 + 3y2 + y3 ≥ 3 2y1 + 4y3 ≥ 2 y1 + 2y2 ≥ 5 yk ≥ 0, ∀ k Solución óptima: y1 = 1, y2 = 2, y3 = 0, w = $1350 La solución primal óptima indica producir camiones de juguete x2 = 100 y coches de juguete x3 = 230, pero no armar trenes x1 = 0, porque no son rentables. Suponga que la competencia obliga a TOYCO a producir también trenes de juguete. ¿Cómo se puede hacer la producción? Si se considera el problema desde el punto de vista de la interpretación de z1 − c1 para x1 , los trenes de juguete tienen atractivo económico sólo si z1 < c1 Ası́, TOYCO puede aumentar la utilidad por unidad de c1 aumentando el precio unitario de venta, o disminuyendo el costo imputado z1 de los recursos usados z1 (= y1 + 3y2 + y3 ). Podrı́a no ser posible aumentar la utilidad por unidad, porque TOYCO desea permanecer competitivo en el mercado. Es más plausible una disminución en z1 , porque implica hacer mejoras en las operaciones de ensamble, que principalmente reduzcan su uso unitario de tiempos disponibles para las operaciones. Si r1 , r2 y r3 representan las proporciones con las que se reducen los tiempos unitarios de las tres operaciones, el problema requiere determinar r1 , r2 y r3 de tal modo que el nuevo costo imputado z1 de las tres operaciones sea menor que la utilidad unitaria c1 ; esto es, 1(1 − r1 )y1 + 3(1 − r2 )y2 + 1(1 − r3 )y3 < 3 Para los valores dados de y1 = 1, y2 = 2 y y3 = 0, esta desigualdad se reduce a (¡compruébelo!) r1 + 6r2 > 4 Ası́, todos los valores de r1 y r2 entre 0 y 1 que satisfagan r1 + 6r2 > 4 deben hacer que los trenes de juguete sean rentables. Sin embargo podrá ser que no se pueda alcanzar este objetivo, porque requiere reducciones en los tiempos de las operaciones 1 y 2, 5 que no parecen prácticas. Por ejemplo, aun reducciones hasta de 50% en esos tiempos (esto es, r1 = r2 = 0.5) no satisfacen la condición dada. 4.4 OTROS ALGORITMOS SÍMPLEX PARA PROGRAMACIÓN LINEAL En el algoritmo sı́mplex que presentamos primero, el problema se inicia en una solución básica factible. Las iteraciones sucesivas siguen siendo básicas y factibles, pero avanzan hacia la optimalidad, hasta llegar al óptimo en la última iteración. A veces se llama método sı́mplex primal a este algoritmo. Ahora introduciremos dos algoritmos más: el sı́mplex dual y el sı́mplex generalizado. En el sı́mplex dual, la programación lineal se inicia en una solución básica que es (mejor que la) óptima, pero no es factible, y las iteraciones sucesivas siguen siendo básica y (mejores que la) óptima, a medida que se acercan a la factibilidad. En la última iteración se encuentra la solución factible (óptima). En el método sı́mplex generalizado se combinan los métodos sı́mplex primal y dual en un solo algoritmo. Maneja problemas que comienzan siendo no óptimos y no factibles a la vez. En este algoritmo se asocian las iteraciones sucesivas con soluciones básicas (factibles o no factibles). En la iteración final la solución es óptima y factible al mismo tiempo (suponiendo, claro está, que exista una). Se pueden aplicar los tres algoritmos, el primal, el dual y el generalizado con eficacia en los cálculos del análisis de sensibilidad, lo que se indicará en la sección 4.5. 4.4.1 Método dual sı́mplex Como en el método sı́mplex (primal), la base el método sı́mplex dual es que cada iteración siempre esté asociada a una solución básica. Las condiciones de optimalidad y factibilidad se establecen para preservar la optimalidad de las soluciones básicas y al mismo tiempo mover las iteraciones de la solución hacia la factibilidad. Condición dual de factibilidad. La variable de salida xr es la variable básica que tiene el valor más negativo (los empates se rompen en forma arbitraria). Si todas las variables básicas son no negativas, termina el algoritmo. Condición dual de optimalidad. La variable de entrada se determina entre las variables no básicas, como la que corresponde a 6 zj − cj αrj , αrj < 0 no básica xj mı́n donde zj − cj es el coeficiente objetivo de la fila z en la tabla, y αrj es el coeficiente negativo de restricción de la tabla, asociado con la fila de la variable de salida xr , y con la columna de la variable xj no básica. Los empates se rompen arbitrariamente. Observe que la condición de optimalidad dual garantiza que se mantendrá la optimalidad en todas las iteraciones. Para el inicio de una programación lineal que sea óptima y no factible a la vez, se deben satisfacer dos requisitos: 1. La función objetivo debe satisfacer la condición de optimalidad del método sı́mplex regular. 2. Todas las restricciones deben ser del tipo (≤). Por la segunda condición se requiere convertir toda (≥) a (≤), sólo multiplicando ambos lados de la desigualdad (≥) por −1. Si en la programación lineal hay restricciones (=) se puede reemplazar la ecuación con dos desigualdades. Por ejemplo, x1 + x2 = 2, equivale a x1 + x2 ≤ 1, x1 + x2 ≥ 1, o bien x1 + x2 ≤ 1, −x1 − x2 ≤ −1, Después de convertir todas las restricciones en (≤), la programación lineal tendrá una solución de inicio no factible si, y sólo si al menos uno de los lados derechos de las desigualdades es estrictamente negativo. En caso contrario, si z es óptima y ninguno de los lados derechos es negativo no habrá necesidad de aplicar el método sı́mplex dual, porque la solución de inicio ya es óptima y factible. 7 Ejemplo 4.4-1 Maximizar z 3x1 + x2 4x1 + 3x2 x1 + x2 xk = ≥ ≥ ≤ ≥ 3x1 + 2x2 3 (1) 6 (2) 3 (3) 0, ∀ k En este ejemplo se multiplican por −1 las dos primeras desigualdades para convertirlas a restricciones (≤). Ası́, la tabla de inicio es: Básica x1 x2 x3 x4 x5 Solución z −3 −2 0 0 0 0 x3 −3 −1 1 0 0 −3 x4 −4 −3 0 1 0 −6 x5 1 1 0 0 1 3 La tabla comienza óptima (todas las zj − cj ≤ 0 en la fila z) y la solución básica de inicio es no factible (x3 = −3, x4 = −6, x5 = 3). Según la condición dual de factibilidad, x4 (= −6) es la variable de salida. La tabla siguiente muestra cómo se usa la condición dual de optimalidad para determinar la variable de entrada. Variable x1 x2 x3 x4 x5 Fila de z (zj − cj ) −3 −2 Fila de x4 , α4j −4 −3 zj −cj 3 2 Razón, α4j , α4j < 0 4 3 0 0 0 1 0 0 − − − Las razones indican que x2 es la variable de entrada. Observe que una variable xj es candidata para entrar a la solución básica sólo que su αij sea estrictamente negativa. Eso quiere decir que no se deben tener en cuenta las variables x3 , x4 y x5 . La siguiente tabla se obtiene con las conocidas operaciones de fila. 8 Básica z x1 x2 x3 x4 x5 Solución −1/3 0 0 −2/3 0 4 x3 x2 x5 Razón −5/3 4/3 −1/3 1/5 0 1 0 − 1 −1/3 0 −1/3 0 1/3 − 2 0 0 1 − −1 2 1 Esta tabla muestra que sale x3 y entra x1 , y ası́ se obtiene la siguiente tabla: Básica x1 x2 x3 x4 x5 Solución z 0 0 −1/5 −3/5 0 21/5 x1 x2 x5 1 0 0 0 −3/5 1/5 1 4/5 −3/5 0 −1/5 2/5 0 0 1 3/5 6/5 6/5 Esta última tabla es factible (y óptima) por lo que se termina el algoritmo. La solución correspondiente es x1 = 3/5, x2 = 6/5 y z = 21/5. Para reforzar la comprensión del método sı́mplex dual por parte del lector, la figura 4.2 muestra en forma gráfica la trayectoria seguida por el algoritmo para resolver el ejemplo 4.4-1. Se inicia en el punto extremo A (que es no factible y mejor que el óptimo), pasa a B (que todavı́a es no factible y mejor que el óptimo) y por último se vuelve factible en C. En este punto termina el proceso, con C como solución óptima factible. 9 10