Investigación Operativa TEMA 4. TEORÍA DE LA DUALIDAD. TEMA 4. TEORÍA DE LA DUALIDAD. ..................................................................... 1 1. INTRODUCCIÓN ............................................................................................ 1 2 ALGORITMO DUAL DEL SIMPLEX ............................................................. 2 2.1 EJEMPLO 1 .............................................................................................. 2 2.2 EJEMPLO 2 .............................................................................................. 3 2.3 EJEMPLO 3 .............................................................................................. 3 3 TEORÍA DE LA DUALIDAD .......................................................................... 3 3.1 PROBLEMA PRIMAL Y PROBLEMA DUAL ........................................ 3 3.2 PROPIEDADES BÁSICAS....................................................................... 3 3.3 TEOREMA DE EXISTENCIA.................................................................. 3 3.4 EJEMPLO ................................................................................................. 3 4 INTERPRETACIÓN ECONÓMICA................................................................. 3 4.1 EJEMPLO ................................................................................................. 3 1. INTRODUCCIÓN Dado un problema de programación lineal, denominado problema primal, existe otro problema de programación lineal, denominado problema dual, íntimamente relacionado con él. Se dice que ambos problemas son mutuamente duales. Bajo ciertas hipótesis, los problemas primal y dual dan lugar al mismo valor óptimo de la función objetivo, y por tanto se puede resolver indirectamente el problema primal resolviendo el problema dual. Además nos permite utilizando el algoritmo dual del simplex el resolver problemas que por la forma estándar nos serían irresolubles. Además permite facilitar otros cálculos como los de las variables artificiales. Teoría de la Dualidad Página 1 de 23 Investigación Operativa 2 ALGORITMO DUAL DEL SIMPLEX El algoritmo dual del simplex será utilizado cuando se llegue mediante el método clásico del simplex a la siguiente situación: - Alguna componente de la solución es menor que cero. - Para todas las variables no básicas el último renglón son mayores o iguales que cero. También es útil cuando la introducción de variables artificiales complica demasiado el problema. Con este algoritmo podemos encontrarnos varias circunstancias: - En el último renglón todos los valores son positivos (no varía conforme a la situación inicial) y los valores negativos de la solución han desaparecido. Es entonces cuando encontramos la solución óptima. - Si en el último renglón tiene valores negativos la solución no es óptima. o Si la solución tiene valores negativos el problema no tiene solución. o Si la solución no tiene valores negativos para obtener la solución óptima se utilizará el método clásico del simplex. - Si además de tener una componente negativa tenemos que los elementos de su fila asociada no son también negativos tenemos que no hay solución al problema. El método de resolución es muy similar al del simplex con las siguientes diferencias: o La variable básica que sale es la que posee un valor negativo más alto. o En este caso la prueba para encontrar la variable que entra es la siguiente: Z j −Cj max − yij 2.1 EJEMPLO 1 Calcular la solución optima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex. Minimizar: z = 30 x1 + 8 x 2 + 6 x3 − 4 x1 + 3 x2 + 2 x3 ≤ 1 Restricciones: 1 3 x1 + 5 3 x2 − 4 3 x3 ≤ 1 − x1 + 2 x2 + 5 x3 ≤ −2 Teoría de la Dualidad Con xi ≥ 0 ∀i Página 2 de 23 Investigación Operativa Para resolver este problema introduciremos variables de holgura, y multiplicaremos la segunda restricción por 3 para que los cálculos nos sean más sencillos, quedando las ecuaciones de la siguiente manera: Minimizar: z = 30 x1 + 8 x 2 + 6 x3 Maximizar: z = −30 x1 − 8 x 2 − 6 x3 − 4 x1 + 3 x2 + 2 x3 + x4 = 1 x1 + 5 x2 − 4 x3 + x5 = 3 Restricciones: − x1 + 2 x2 + 5 x3 + x6 = −2 Comenzaremos con el desarrollo tabular del método dual del Simplex, recordar que partimos de una solución básica no factible. Las variables que forman la base son: x4 , x5 , x6 . y1 y2 y3 y4 y5 y6 B -4 3 2 1 0 0 0 XB x4 = 1 x5 = 3 1 5 -4 0 1 0 1 3 0 x 6 = −2 -1 2 5 0 0 1 -2 Zi 0 0 0 0 0 0 Z i − Ci 30 8 6 0 0 0 CB 0 Aunque Z i − C i ≥ 0 ∀ i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna X B la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x6 , veamos por cual la vamos a sustituir: Z − Ci 30 max − i ∀ i tal que y i 3 < 0 max − 30 yi3 −1 Hemos comprobado que la variable x6 dejará de formar parte de la base sustituida por x1 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Teoría de la Dualidad Página 3 de 23 Investigación Operativa Las variables que forman la base son: x4 , x5 , x1 . CB 0 0 XB x4 = 9 x5 = 1 y1 y2 y3 y4 y5 y6 B 0 0 -5 7 -18 1 1 0 0 1 -4 1 9 1 -30 x1 = 2 1 -2 -5 0 0 -1 2 Zi -30 60 150 0 0 30 Z i − Ci 0 68 156 0 0 30 Como Z i − Ci ≤ 0 ∀ i 2.2 (2,0,0,9,0,1,0) es la solución óptima del problema. EJEMPLO 2 Calcular la solución optima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex. Minimizar: z = 30 x1 + 8 x 2 + 6 x3 4 x1 + 3 x 2 + 2 x3 ≤ 1 Restricciones: 1 3 x1 + 5 3 x 2 − 4 3 x3 ≤ −1 − x1 + 2 x 2 + 5 x3 ≤ −2 Con xi ≥ 0 ∀i Para resolver este problema introduciremos variables de holgura y sin modificar las restricciones quedando las ecuaciones de la siguiente manera: Minimizar: z = 30 x1 + 8 x 2 + 6 x3 Maximizar: z = −30 x1 − 8 x 2 − 6 x3 4 x1 + 3 x 2 + 2 x3 + x 4 = 1 Restricciones: 1 3 x1 + 5 3 x 2 − 4 3 x3 + x5 = −1 Con xi ≥ 0 ∀i − x1 + 2 x 2 + 5 x3 + x 6 = −2 Comenzaremos con el desarrollo tabular del método dual del Simplex, recordar que partimos de una solución básica no factible. Teoría de la Dualidad Página 4 de 23 Investigación Operativa Las variables que forman la base son: x1 , x 2 , x3 . CB 0 0 XB x4 = 1 x5 = −1 y1 y2 y3 y4 y5 y6 B 4 13 3 53 2 −4 3 1 0 0 1 0 0 1 -1 0 x 6 = −2 -1 2 5 0 0 1 -2 Zi 0 0 0 0 0 0 Z i − Ci 30 8 6 0 0 0 Aunque Z i − C i ≥ 0 ∀ i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna X B la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x6 , veamos por cual la vamos a sustituir: max − Z i − Ci ∀ i tal que y i 3 < 0 yi3 max − 30 8 6 ,− ,− −1 2 5 30 Hemos comprobado que la variable x6 dejará de formar parte de la base sustituida por x1 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Las variables que forman la base son: x1 , x 2 , x3 . y1 y2 y3 y4 y5 y6 B 0 1 0 0 11 73 22 0 XB x 4 = −7 x5 = − 5 3 3 0 1 4 13 -7 -5/3 -30 x1 = 2 1 -2 -5 0 0 -1 2 Zi -30 60 150 0 0 30 Z i − Ci 0 68 156 0 0 30 CB 0 Aunque Z i − C i ≥ 0 ∀ i la solución es básica no factible por lo cual tendremos que hacer un cambio de variables en la tabla. Escogemos de la columna X B la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x 4 , veamos por cual la vas a sustituir: Z − Ci max − i ∀ i tal que y i1 < 0 max{∅} ∃/ y i1 Como y i1 ≥ 0 ∀ i Teoría de la Dualidad El problema no tiene solución óptima. Página 5 de 23 Investigación Operativa 2.3 EJEMPLO 3 Calcular la solución óptima, si existe, del siguiente problema. Realizar los cálculos mediante el desarrollo tabular del método dual del Simplex. Minimizar: Z = 2 x1 + x 2 + 3 x3 (Maximizar Z = -2x1 –x2 – 3x3) Restricciones: − 3 x1 + 5 x 2 + 6 x3 ≤ 2 5 x1 − 2 x 2 − 4 x3 ≥ 1 Con xi ≥ 0 ∀i Introducimos variables de holgura para poder solucionar el problema mediante el método del simplex. − 3 x1 + 5 x 2 + 6 x3 + x 4 = 2 5 x1 − 2 x 2 − 4 x3 − x5 = 1 No podemos utilizar aún el algoritmo del simplex ya que no tenemos las suficientes variables básicas, por lo que habría que introducir variables artificiales. También existe otra alternativa, cambiar de signo la segunda restricción y partir de una tabla simplex no factible y encontrar la solución óptima mediante el algoritmo dual del simplex. Las restricciones quedarían como sigue: − 3 x1 + 5 x 2 + 6 x3 + x 4 = 2 − 5 x1 + 2 x 2 + 4 x3 + x5 = −1 Las variables que forman la base son: x 4 , x5 . CB 0 0 XB x4 = 2 x5 = −1 y1 y2 y3 y4 y5 B -3 -5 5 2 6 4 1 0 0 1 2 -1 Zi 0 0 0 0 0 Z i − Ci 2 1 3 0 0 Aunque Z i − C i ≥ 0 ∀ i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual y hacer un cambio de variables en la tabla. Teoría de la Dualidad Página 6 de 23 Investigación Operativa Escogemos de la columna X B la variable cuyo valor es el más negativo y ésta será la que deje de formar parte de la base. En este caso es x5 , veamos por cual vamos a sustituir: Z − Ci 2 2 ∀ i tal que y i 2 < 0 max − max − i yi 2 −5 5 Hemos comprobado que la variable x5 dejará de formar parte de la base sustituida por x1 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. CB 0 -2 y1 y2 y3 y4 0 1 19/5 -2/5 18/5 -4/5 1 0 -3/5 13/5 -1/5 1/5 Zi -2 4/5 8/5 0 2/5 Z i − Ci 0 9/5 23/5 0 0 Como Z i − C i ≤ 0 ∀ i y5 B XB x 4 = 13 5 x1 = 1 5 1 13 ,0,0, ,0 es la solución óptima del problema. 5 5 Ahora intentamos resolver el siguiente problema: Minimizar: Z = −2 x1 − x 2 − 3 x3 (Maximizar Z = 2x1+x2+ 3x3) 3 x1 − 5 x 2 − 6 x3 ≤ 2 Restricciones: − 5 x1 + 2 x 2 + 4 x3 ≥ 1 Introducimos variables de holgura y cambiamos de signo la segunda restricción para evitar tener que utilizar variables artificiales. Con esto queda el siguiente problema a resolver: Minimizar: Z = −2 x1 − x 2 − 3 x3 Restricciones: 3 x1 − 5 x 2 − 6 x3 + x 4 = 2 5 x1 − 2 x 2 − 4 x3 + x5 = −1 Las variables que forman la base son: x 4 , x5 . CB 0 0 XB x4 = 2 x5 = −1 y1 y2 y3 y4 y5 B -3 5 -5 -2 -6 -4 1 0 0 1 2 -1 Zi 0 0 0 0 0 Z i − Ci -2 -1 -3 0 0 NOTA: El 5 no puede ser pivote porque es positivo. Teoría de la Dualidad Página 7 de 23 Investigación Operativa Como Z i − C i ≤ 0 ∀ i y la solución es básica no factible no podemos solucionar el problema mediante el algoritmo dual del simplex y tendremos que recurrir a utilizar variables artificiales. Minimizar: Z = −2 x1 − x 2 − 3 x3 + Mx6 Restricciones: 3 x1 − 5 x 2 − 6 x3 + x 4 = 2 − 5 x1 + 2 x 2 + 4 x3 − x5 + x6 = 1 Las variables que forman la base son: x 4 , x6 . CB 0 -M XB x4 = 2 x6 = 1 y1 y2 y3 y4 y5 y6 B -3 -5 -5 2 -6 4 1 0 0 -1 0 1 2 1 Zi 5M -2M -4M 0 M -M Z i − Ci 5M+2 -2M+1 -4M+3 0 M 0 Como Z 3 − C 3 < 0 ∧ ∃ y 3 j > 0 es mejorable. La variable de la base que va a entrar a la base es x3 , veamos por cual lo hacemos mediante la prueba del cociente mínimo obviando los valores negativos: x x 2 1 1 1 min 4 , 6 min , min y 34 y 36 −6 4 4 4 Hemos comprobado que la variable x1 pasará a formar parte de la base en lugar de x6 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Las variables que forman la base son: x 4 , x3 . CB 0 3 XB x4 = 7 2 x3 = 1 4 y1 y2 y3 y4 y5 y6 B -21/2 -5/4 -2 1/2 0 1 1 0 -3/2 -1/4 3/2 1/4 7/2 1/4 Zi -15/4 3/2 3 0 -3/4 ¾ Z i − Ci -7/4 1/2 0 0 -3/4 (3/4)+M Como Z 1 − C1 > 0 la solución no es óptima, pero al tener que Z i − Ci > 0 ∧ y i < 0 el problema no tiene solución. Teoría de la Dualidad Página 8 de 23 Investigación Operativa 3 TEORÍA DE LA DUALIDAD 3.1 PROBLEMA PRIMAL Y PROBLEMA DUAL Cada problema de programación lineal lleva asociado un problema “dual” con el que prácticamente está muy relacionado. Para calcular el problema dual, partimos del problema de programación lineal expresado de la forma siguiente (habitual en todos nuestros problemas): - Maximizar la función objetivo: Z = c1x1 + c2x2 + …+ cnxn Poner las restricciones en la forma siguiente: a11x1 + a12x2 + … + a1nxn <= b1 a21x1 + a22x2 + … + a2nxn <= b2 … am1x1 + am2x2 + … + amnxn <= bm El problema dual va a definirse de la siguiente forma: - Minimizar una función Z’ con unas variables distintas a Z y con los coeficientes derechos de las restricciones como coeficientes. Quedaría como sigue: Z = b1y1 + b2y2 + …+ bnyn o El problema dual tiene tantas variables como inecuaciones el sistema de restricciones del problema primal. o Los coeficientes de la función objetivo del dual son los términos independientes de las restricciones del primal. - Las restricciones quedarían de la forma siguiente: a11y1 + a21y2 + … + am1yn >= c1 a22y1 + a22y2 + … + am2yn >= c2 … a1my1 + a2my2 + … + amnyn >= cn o El sistema de restricciones del dual tiene tantas inecuaciones ligadas por el signo “>=” como variables tiene el primal. o Los coeficientes de las inecuaciones del sistema de restricciones del problema dual son los mismos que los del sistema de restricciones del problema primal cambiando filas por columnas. o Los términos independientes de las inecuaciones del sistema de restricciones del dual son los términos de la función objetivo del primal. Teoría de la Dualidad Página 9 de 23 Investigación Operativa PROBLEMA PRIMAL n Max( Z ) = j =1 cjxj Min( yo ) = restricciones : (i = 1,2.., m) n j =1 j =1 i =1 bi y j aij yi ≤ c j yi ≥ 0 j = 1,..., n m restricciones : ( j = 1,2.., n) n aij xi ≤ bi xj ≥ 0 PROBLEMA DUAL i = 1,..., m Un ejemplo de transformación primal/dual sería el que sigue: PROBLEMA PRIMAL Max( Z ) = 3 x1 + 5 x2 PROBLEMA DUAL Min( y0 ) = 4 y1 + 12 y2 + 18 y3 restricciones : x1 + 0 x2 ≤ 4 restricciones : y1 + 0 y2 + 3 y3 ≤ 3 0 x1 + 2 x2 ≤ 12 0 y1 + 2 y2 + 2 y3 ≤ 5 y1 , y2 , y3 ≥ 0 3x1 + 2 x2 ≤ 18 x1 , x2 ≥ 0 >= >= >= Term. ind. c1 c2 … cm Coeficientes F.O. min y1 y2 … ym PROBLEMA PRIMAL x1 x2 … xn Term. Ind. a11 a21 … a1n ≤ b1 a21 a22 … a3n ≤ b2 … … … … … am1 am2 … amn ≤ bm >= PROBLEMA DUAL Para hallar la correspondencia entre ambos problemas se suele utilizar la tabla primaldual o de Tucker. En ella se puede observar el problema primal por filas, es decir verticalmente. Por columnas, es decir horizontalmente, se observa el problema dual. Coeficientes F.O. max. Teoría de la Dualidad Página 10 de 23 Investigación Operativa Para el ejemplo anterior tendríamos lo siguiente: Term. ind. 3 5 Term. Ind. ≤4 ≤ 12 ≤ 18 Coef. F.O. min x2 0 2 2 >= y1 y2 y3 x1 1 0 3 >= PROBLEMA DUAL PROBLEMA PRIMAL Coef. F.O.max. Como conclusión la transformación del problema primal en el dual (y viceversa) sería como sigue: Teoría de la Dualidad Página 11 de 23 Investigación Operativa 3.2 PROPIEDADES BÁSICAS Dada la relación existente entre el problema dual y el primal se pueden enumerar las siguientes propiedades que nos permitirán el uso de esta dualidad para resolver diferentes aspectos de los problemas de optimización. - Propiedad de la dualidad débil: Cualquier solución factible en el primal tiene un valor menor o igual que una solución factible en el dual. Matemáticamente: cX <= Yb. Siempre se cumple porque el valor máximo factible de Z es igual al valor mínimo factible de Z’. - Propiedad de la dualidad fuerte: Si X e Y son respectivamente soluciones factibles del problema primal y del dual y se cumple que cX=Yb entonces X e Y son soluciones a ambos problemas. En conclusión, en el óptimo ambas soluciones son iguales. - Propiedad de las soluciones complementarias: En cada iteración, el simplex determina una solución FEV X del primal, y una solución complementaria Y del dual. En cada paso se obtienen variables básicas para el primal, y los valores de las variables de holgura son las soluciones del dual complementarias óptimas. Éstas se forman con los elementos correspondientes situados en la última fila y en las columnas que están asociadas a las variables de holgura. Cuando se está resolviendo el problema primal, el problema dual es no factible. Sólo se vuelve factible cuando se halla la solución óptima. - Propiedad de las soluciones complementarias óptimas: En la tabla simplex final, se obtiene la solución óptima x* del primal, y se obtiene la solución óptima complementaria y* del dual, y en este punto ambas son factibles. c x* = y*b Los valores de yi* se denominan precios sombra para el problema primal. - Propiedad de la simetría: Para cualquier problema, el dual del dual es el primal. La solución del problema dual corresponderá a los valores del último renglón de las variables de holgura Teoría de la Dualidad Página 12 de 23 Investigación Operativa 3.3 TEOREMA DE EXISTENCIA Las relaciones entre el primal y el dual se pueden establecer en tres puntos: 1. Si un problema tiene soluciones factibles y función objetivo acotada, entonces el otro también y los valores de la función objetivo en el óptimo son iguales. 2. Si uno de los problemas tiene soluciones factibles y función objetivo no acotada, entonces el otro es no factible. 3. Si un problema no tiene soluciones factibles, entonces el otro no tiene soluciones factibles o tiene la función objetivo no acotada. El Teorema de Existencia se enunciaría como sigue: Dados un par de problemas duales, una y sólo una de las siguientes afirmaciones es verdadera: - Ninguno de los dos problemas posee soluciones factibles. - Uno de los problemas no tiene solución factible y el otro sí, pero no posee solución óptima. - Los dos problemas poseen solución óptima. Esto puede resumirse diciendo que entre dos problemas duales únicamente se pueden dar las siguientes alternativas: 1. Ambos poseen soluciones factibles, entonces los valores de las funciones objetivo Z y Z’ son 2 conjuntos de números. El punto P la solución simultánea de los problemas dual y primal. Z = cx P Y’ = yb 2. La función Z no alcanza un máximo, por lo tanto no existe una solución óptima para el problema dual (no hay punto P). 3. La función objetivo dual Y no está acotada inferiormente y por esto no hay punto P. El problema primal no tendrá solución óptima. 4. No hay conjunto de soluciones factibles para Z ni para Y, entonces ninguno de esos dos problemas tiene soluciones factibles. A partir de las cuatro alternativas podemos establecer dos reglas prácticas: 1. Todo problema de programación lineal puede resolverse aplicando el algoritmo del simplex a su problema dual asociado. 2. Los lemas de la dualidad son claves en la resolución de algunos problemas (Ej. Si X e Y son soluciones de un problema dual y primal correspondiente y cX = Yb, X e Y serán óptimos). Teoría de la Dualidad Página 13 de 23 Investigación Operativa 3.4 EJEMPLO Sea el problema de programación lineal expresado en forma primal: Max( Z ) = −7 x1 + 8 x 2 − 5 x3 Re stricciones 4 x1 − 3 x1 + 6 x3 ≤ 25 − x1 + x 2 + 7 x3 ≤ 12 xi ≥ 0 1) Expresar el problema dual asociado a éste. 2) Resolver el problema primal aplicando el algoritmo del simplex y calcular las soluciones del problema dual. 3) Calcular aplicando el algoritmo del simplex el problema dual antes expresado y resolver también el problema primal. 1) Expresión del problema dual: Min(Y ) = 25 y1 + 12 y 2 4 y1 − y 2 ≥ −7 Re stricciones − 3 y1 + y 2 ≥ 8 6 y1 + 7 y 2 ≥ −5 yi ≥ 0 2) Resolución del problema primal. Introducimos las variables de Holgura Max( Z ) = −7 x1 + 8 x 2 − 5 x3 Re stricciones 4 x1 − 3 x 2 + 6 x3 + x 4 = 25 − x1 + x 2 + 7 x3 + x5 = 12 xi ≥ 0 Construimos la tabla simplex inicial. Las variables básicas son x4, x5 CB 0 0 XB x4 = 25 x5 = 12 y1 y2 y3 y4 y5 B 4 -1 -3 1 6 7 1 0 0 1 25 12 Zi 0 0 0 0 0 Z i − Ci 7 -8 5 0 0 Como Z 2 − C 2 < 0 ∧ ∃ y 2 j > 0 Teoría de la Dualidad (0,0,0,25,12) es mejorable. Página 14 de 23 Investigación Operativa La variable de la base que va a entrar a la base es x 2 , veamos por cual lo hacemos mediante la prueba del cociente mínimo obviando los valores negativos: min x 4 x5 , y 22 y 23 min 25 12 , −3 1 min{12} 12 Hemos comprobado que la variable x 2 pasará a formar parte de la base en lugar de x5 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Las variables que forman la base son: x4 , x2 . CB 0 8 XB x4 = 61 x2 = 12 y1 y2 y3 y4 y5 B 1 -1 0 1 27 7 1 0 3 1 61 12 Zi -8 8 56 0 8 Z i − Ci -1 0 61 0 8 Como Z 1 − C1 < 0 ∧ ∃ y1 j > 0 (0,12,0,61,0) es mejorable. La variable de la base que va a entrar a la base es x1 , veamos por cual lo hacemos mediante la prueba del cociente mínimo obviando los valores negativos: x x 61 12 min 4 , 2 min , min{61} 61 y14 y12 1 −1 Hemos comprobado que la variable x1 pasará a formar parte de la base en lugar de x4 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Las variables que forman la base son: x1 , x2 . CB -7 8 XB x1 = 61 x 2 = 73 y1 y2 y3 y4 y5 B 1 0 0 1 27 34 1 1 3 4 61 73 Zi -7 8 83 1 11 Z i + Ci 0 0 88 1 11 Como Z i − Ci ≤ 0 ∀ i (61,73,0,0,0 ) es la solución óptima del problema primal, quedándose reflejando únicamente las tres variables principales en (61,73,0). La solución del problema dual corresponderá a los valores del último renglón de las variables de holgura por lo tanto ( y1 , y 2 ) (1,11) Teoría de la Dualidad Página 15 de 23 Investigación Operativa 2) Resolución del problema dual. Minimizar: z = 25 y1 + 12 y 2 4 y1 − y 2 ≥ −7 Restricciones: − 3 y1 + y 2 ≥ 8 6 y1 + 7 y 2 ≥ −5 Para resolver este problema introduciremos variables de holgura, y cambiamos de signo las inecuaciones con el fin de que podamos aplicar el algoritmo dual del simples sin tener que introducir variables artificiales. Al final las ecuaciones quedan de la siguiente manera: Minimizar: z = 25 y1 + 12 y 2 (Max z = −25 y1 − 12 y 2 ) − 4 y1 + y 2 + y3 = 7 Restricciones: 3 y1 − y 2 + y 4 = −8 − 6 y1 − 7 y 2 + y5 = 5 Construimos la tabla simplex inicial. Las variables básicas son y3,y4, y5 y1 y2 y3 y4 y5 B 0 YB y3 = 7 -4 1 1 0 0 7 0 0 y 4 = −8 y5 = 5 3 -6 -1 -7 0 0 1 0 0 1 -8 5 Zi 0 0 0 0 0 Z i − Ci 25 12 0 0 0 CB Aunque Z i − C i ≥ 0 ∀ i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual del simplex. Escogemos de la columna Y B la variable cuyo valor es el más negativo y ésta será la salga de la base. En este caso es y 4 , veamos por cual la vamos a sustituir: max − Z i − Ci ∀ i tal que y i 3 < 0 yi 4 max − 25 12 ,− 3 −1 12 Hemos comprobado que la variable y 2 pasará a formar parte de la base en lugar de y 4 . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. Teoría de la Dualidad Página 16 de 23 Investigación Operativa Las variables que forman la base son: y3 , y 2 , y5 . CB 0 -12 0 y1 y2 y3 y4 y5 B 0 1 1 0 1 -1 0 0 -1 y2 = 8 y5 = 61 -1 -3 -27 0 0 -7 1 Zi 36 -12 0 12 0 Z i − Ci 61 0 0 12 0 YB y3 = −1 8 61 Aunque Z i − C i ≤ 0 ∀ i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual del simplex. Escogemos de la columna Y B la variable cuyo valor es el más negativo y ésta será la salga de la base. En este caso es y3, veamos por cual la vamos a sustituir: Z − Ci 61 12 max − i ∀ i tal que y i 3 < 0 max − ,− 61 yi3 −1 1 Hemos comprobado que la variable y1 pasará a formar parte de la base en lugar de y . Por lo tanto el pivote será el número que está en la casilla sombreada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. 3 CB -25 -12 0 YB y1 = 1 y 2 = 11 y 5 = 88 y1 y2 y3 y4 y5 B 1 0 0 1 -1 -3 -1 -4 0 0 0 0 -27 -34 1 1 11 88 Zi -25 -12 61 73 0 Z i − Ci 0 0 61 73 0 Como Z i − Ci ≤ 0 ∀ i (1,11,0,0,34 ) es la solución óptima del problema dual, quedándose únicamente con sus dos variables en (1,11) y tomando los valores del último renglón para las variables de holgura este quedaría (61,73,0) Teoría de la Dualidad Página 17 de 23 Investigación Operativa 4 INTERPRETACIÓN ECONÓMICA Un problema de programación líneal está destinado a la optimización de determinados recursos económicos. Los problemas “primales” consisten en maximizar una función objetivo sometida a un conjunto de restricciones representadas por inecuaciones. La interpretación económica de estos valores es la siguiente: - Las variables xi pueden interpretarse como los términos desconocidos de los productos que fabricaremos. Los bi son las cantidades disponibles de recursos para elaborar los productos. Los términos aij son las cantidades necesarias del recurso i para producir una unidad del producto j. Las restricciones representarán la limitación de los recursos disponibles para fabricar los productos. El objetivo del fabricante será obtener un beneficio máximo, o sea, maximizar los beneficios, con lo cual cj serán los beneficios por cada unidad producida del producto j. A partir de las relaciones primal-dual interpretaremos económicamente los términos del anterior: - yi: Contribución a la ganancia por cada unidad del recurso i. Estas variables del problema dual reciben el nombre de precios de sombra. yi>=0: La ganancia por cada unidad del recurso i, debe ser no negativa, de lo contrario sería mejor no utilizar este recurso en absoluto. F.Objetivo: Es la minimización total del valor implícito de los recursos consumidos por las actividades. En general el precio sombra de una restricción proporciona el cambio en el valor de la función objetivo como resultado de un cambio unitario en el término independiente de la restricción, suponiendo que el resto de parámetros del problema permanecen inalterados. En muchos problemas de programación lineal los precios sombra son tan importantes como la solución del problema, ya que proporcionan información sobre el efecto en la función objetivo de cambios en los recursos disponibles. Teoría de la Dualidad Página 18 de 23 Investigación Operativa 4.1 EJEMPLO (Procedente Escuela Técnica Superior de Ingeniería Industrial de Ciudad Real) Un carpintero modesto fabrica dos tipos de mesas de madera. Cada mesa del tipo 1 necesita 4 horas de mecanizado primario (preparación de piezas) y 4 horas de mecanizado secundario (ensamblado y barnizado). Análogamente, cada mesa del tipo 2 necesita 3 horas de mecanizado primario y 7 horas de mecanizado secundario. Las disponibilidades diarias de mecanizados primario y secundario son respectivamente de 40 y 56 horas-máquina. La venta de una mesa del tipo 1 reporta un beneficio de 70 euros, mientras que la venta de una mesa del tipo 2 de 90 euros. Siendo x1 y x2 son las cantidades diarias de mesas a fabricar de los tipos 1 y 2 respectivamente el problema de programación lineal quedaría como sigue: Maximizar: z = 70 x1 + 90 x 2 Restricciones: 4 x1 + 3 x 2 ≤ 40 ∀xi ≥ 0 4 x1 + 7 x 2 ≤ 56 Introducimos las variables de Holgura Max( Z ) = 70 x1 + 90 x 2 Re stricciones 4 x1 + 3 x 2 + x3 = 40 4 x1 + 7 x 2 + x 4 = 56 xi ≥ 0 Construimos la tabla simplex inicial. Las variables básicas son x4, x5 CB 0 0 y1 y2 y3 y4 B 3 7 1 0 0 1 40 x 4 = 56 4 4 Zi 0 0 0 0 Z i − Ci -70 -90 0 0 XB x3 = 40 56 Como Z 2 − C 2 < 0 ∧ ∃ y 2 j > 0 (0,0,40,56 ) es mejorable. La variable x2 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo. 40 56 , min{10,8} 8 3 7 saldrá de la base por lo que el elemento pivote es el 7. min La variable x4 Teoría de la Dualidad Página 19 de 23 Investigación Operativa CB 0 90 y1 y2 y3 y4 B 0 1 1 0 -3/7 1/7 16 x2 = 8 16/7 4/7 Zi 360/7 90 0 90/7 Z i − Ci -130/7 0 0 90/7 XB x3 = 16 8 Como Z 1 − C1 < 0 ∧ ∃ y1 j > 0 (0,8,16,0 ) es mejorable. La variable x1 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo. 16 8 , min{7,14} 7 16 / 7 4 / 7 La variable x3 saldrá de la base por lo que el elemento pivote es el 16/7. min CB 70 90 XB x1 = 7 x2 = 4 y1 y2 y3 y4 B 1 0 0 1 7/16 -1/4 -3/16 ¼ 7 4 Zi 70 90 65/8 75/8 Z i − Ci 0 0 65/8 75/8 Como Z i − C i ≥ 0 (70,90,0,0 ) es mejorable. La variable x1 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo. La solución óptima (obtenida por el método gráfico o el algoritmo del simplex) establece que han de producirse diariamente 7 y 4 sillas de los tipos 1 y 2 respectivamente, lo que da lugar a un beneficio de 850 euros. Este resultado indica que ambos recursos de mecanizado (primario y secundario) están plenamente utilizados porque las restricciones relacionadas con ellos están ambas activas, es decir, las dos son restricciones obligatorias. Por otra parte, considérese que quiere aumentarse el beneficio diario. Para ello es necesario aumentar la capacidad productiva. Considérese que la capacidad de mecanizado secundario puede aumentarse cada día de 56 a 72 horas de máquina. ¿Cómo afecta esta ampliación de capacidad a los beneficios diarios? Teoría de la Dualidad Página 20 de 23 Investigación Operativa La solución puede obtenerse mediante Análisis de Sensibilidad utilizando los mecanismos vistos en el tema anterior y el algoritmo dual del simplex si procede. 7 / 16 − 3 / 16 − 1/ 4 1/ 4 * 40 72 = 4 8 En este caso la solución óptima es x1 = 4 y x2 = 8 con un beneficio máximo diario de 1000 euro. Este solución indica que el beneficio diario crece en 150 euros y la capacidad de mecanizado secundario crece en 72 - 56 = 16 horas máquina. El ratio 1000-850/16=150/16=75/8 euros, al que la función objetivo crece al crecer la capacidad de mecanizado secundario 1 hora, se denomina sensibilidad o precio sombra (también precio dual) de la capacidad de mecanizado secundario. En general el precio sombra de una restricción proporciona el cambio en el valor de la función objetivo como resultado de un cambio unitario en el término independiente de la restricción, suponiendo que el resto de parámetros del problema permanecen inalterados. En muchos problemas de programación lineal los precios sombra son tan importantes como la solución del problema, ya que proporcionan información sobre el efecto en la función objetivo de cambios en los recursos disponibles. Los precios sombra pueden obtenerse resolviendo el problema dual. El problema dual del problema del carpintero se formula a continuación. Minimizar: z = 40 y1 + 56 y 2 Restricciones: 4 y1 + 4 y 2 ≥ 70 ∀y i ≥ 0 3 y1 + 7 y 2 ≥ 90 Introducimos variables de holgura cambiando de signo las restricciones: Minimizar: z = 40 y1 + 56 y 2 Maximizar: z = −40 y1 − 56 y2 Restricciones: Teoría de la Dualidad − 4 y1 − 4 y 2 + y 3 = −70 ∀y i ≥ 0 − 3 y1 − 7 y 2 + y 4 = −90 Página 21 de 23 Investigación Operativa La tabla simplex inicial quedaría CB 0 0 YB y 3 = −70 y1 y2 y3 y4 B -4 -3 1 0 0 1 -70 y 4 = −90 -4 -7 Zi 0 0 0 0 Z i − Ci 40 56 0 0 -90 Aunque Z i − C i ≤ 0 ∀ i la solución es básica no factible por lo cual tendremos que aplicar el algoritmo dual del simplex. Escogemos de la columna Y B la variable cuyo valor es el más negativo y ésta será la salga de la base. En este caso es y4, veamos por cual la vamos a sustituir: Z − Ci 40 56 max − i ∀ i tal que y i 3 < 0 max − ,− 40 / 3 yi 3 −3 −7 Hemos comprobado que la variable y1 pasará a formar parte de la base en lugar de y4. Por lo tanto el pivote será el número que está en la casilla subrayada de la tabla anterior. Ahora, a partir del pivote calcularemos la nueva tabla. y1 y2 y3 y4 B 0 YB y 3 = 50 0 1 -4/3 50 -40 y1 = 30 1 16/3 7/3 0 -1/3 30 Zi 40 -280/3 0 40/3 Z i − Ci 0 -112/3 0 40/3 CB Como Z 2 − C 2 < 0 ∧ ∃ y 2 j > 0 (30,0,50,0 ) es mejorable. La variable y2 es la variable que entrará a la base, la variable que saldrá será la correspondiente a la prueba del cociente mínimo. 50 30 150 90 150 , min , 16 / 3 7 / 3 16 7 16 La variable y3 saldrá de la base por lo que el elemento pivote es el 16/3. min CB -56 -40 YB y 2 = 150 / 16 y1 = 130 / 16 y1 y2 y3 y4 B 0 1 1 0 3/16 -7/16 -1/4 1/4 150/16 130/16 Zi -40 -56 7 4 Z i − Ci 0 0 7 4 Teoría de la Dualidad Página 22 de 23 Investigación Operativa La solución óptima de este problema es y1 = 65/8, y2 = 75/8, y el valor óptimo de la función objetivo es 850. Obsérvese que y1 y y2 son los precios sombra de las capacidades de mecanizado primario y secundario, respectivamente, y que los valores óptimos de la función objetivo de los problemas primal y dual coinciden. El problema dual puede interpretarse de la siguiente manera. Considérese que el objetivo es vender tiempo de mecanizado primario y secundario y supóngase que de esta forma se obtienen al menos el mismo nivel de beneficios que haciendo mesas. En esta situación vender tiempo de mecanizado y hacer mesas han de ser actividades igualmente lucrativas. Las variables y1 y y2 variables representan los precios de venta de una hora de mecanizados primario y secundario respectivamente. Para preservar la competitividad del negocio, el beneficio diario ha de minimizarse, esto es minimizar la función 40y1 + 56y2, donde 40 y 56 representan respectivamente la disponibilidad diaria en horas de mecanizado primario y secundario respectivamente. Las restricciones del problema dual establecen que el coste de las horas de mecanizado primario y secundario para producir una mesa de cada tipo no debe superar el beneficio que se obtiene por venta de la misma; y que los precios son cantidades no negativas. Teoría de la Dualidad Página 23 de 23