Recapitulación Dualidad matemática Dualidad en Programación Lineal Jorge Valenzuela Universidad Libre Ejemplo Recapitulación Contenido 1 Recapitulación 2 Dualidad matemática 3 Ejemplo Dualidad matemática Ejemplo Recapitulación Dualidad matemática Ejemplo Representaciones equivalentes Los problemas de programación lineal se definen y formulan matemáticamente en dos diferentes representaciones, que constituyen las formas más comunes: Forma Estándar: Forma Canónica: Cualquiera de estas formas utilizadas para representar problemas de programación lineal, proporciona un marco estructurado que facilita el análisis y permite abordar una gran variedad problemas dentro del campo de la optimización, bien sean de maximización o minimización. Recapitulación Dualidad matemática Forma Estándar En la forma estándar: Las restricciones son ecuaciones de igualdades = en lugar de inecuaciones. Todas las variables de decisión deben ser no negativas. Ejemplo de forma estándar: Maximizar Z = c1 x1 + c2 x2 + · · · + cn xn a11 x1 + a12 x2 + · · · + a1n xn = b1 a21 x1 + a22 x2 + · · · + a2n xn = b2 .. . am1 x1 + am2 x2 + · · · + amn xn = bm x1 , x2 , . . . , xn ≥ 0 Ejemplo Recapitulación Dualidad matemática Forma Canónica En la forma canónica: Las restricciones se escriben como inecuaciones del tipo ≤. Las variables deben ser no negativas. Ejemplo de forma canónica: Maximizar Z = c1 x1 + c2 x2 + · · · + cn xn a11 x1 + a12 x2 + · · · + a1n xn ≤ b1 a21 x1 + a22 x2 + · · · + a2n xn ≤ b2 .. . am1 x1 + am2 x2 + · · · + amn xn ≤ bm x1 , x2 , . . . , xn ≥ 0 Ejemplo Recapitulación Dualidad matemática Ejemplo Dualidad en Programación Lineal Todo problema de programación lineal (PL) (independiente de su representación) tiene un problema asociado llamado problema dual. Al problema original se le denomina problema primal. El problema primal original y su dual están estrechamente relacionados: Si uno es un problema de maximización, el otro será de minimización. Las restricciones del problema primal corresponden a las variables del problema dual, y viceversa. Un Teorema de la dualidad expresa: Si una de las soluciones es óptima, la otra también lo es y ambas tienen el mismo valor de la función objetivo. Recapitulación Dualidad matemática Ejemplo Relación entre la Forma Canónica y Dualidad La forma canónica del problema primal (maximización con restricciones ≤) da lugar a un problema dual en forma estándar (minimización con restricciones ≥). En el problema dual: La función objetivo es una minimización. Las restricciones duales son iguales o mayores que. Las variables duales están asociadas a las restricciones del problema primal. Ejemplo: Primal: Maximizar Z = 3x1 + 2x2 , 2x1 + x2 ≤ 100, x1 + 3x2 ≤ 90 Dual: Minimizar W = 100y1 + 90y2 , 2y1 + y2 ≥ 3, y1 + 3y2 ≥ 2 Recapitulación Dualidad matemática Dualidad en Forma Canónica En esta presentación explicaremos el concepto de dualidad en programación lineal representado en forma canónica. Ejemplo Recapitulación Dualidad matemática Ejemplo El concepto de dualidad Dualidad significa doble perspectiva o doble significado o doble cara. En matemáticas crea correspondencias significativas entre diferentes estructuras: La figura muestra un ejemplo clásico en los poliedros. Consideremos un cubo y los centros de cada una de sus caras; uniendo mediante una arista los centros de cada par de caras adyacentes se obtiene un octaedro. Haciendo la misma operación (intercambio de caras por vértices) en el octaedro el resultado es el cubo y si la repetimos ... Llamamos primal al poliedro de partida y dual al transformado, entonces tenemos una propiedad: ((el dual del dual es el primal)) Recapitulación Dualidad matemática Ejemplo Puntos y lı́neas Para cada acción siempre hay una acción igual y en el sentido opuesto Isaac Newton Una dualidad matemática, generalmente hablando, traduce conceptos, teoremas o estructuras matemáticas en otros conceptos, teoremas o estructuras, en una manera ((uno a uno)), a menudo (pero no siempre) por medio de una operación inversa: Si la dualidad de A es B, entonces la dualidad de B es A. Ejemplo: Dos puntos R y S determinan una recta Recapitulación Dualidad matemática Ejemplo Puntos y lı́neas Para cada acción siempre hay una acción igual y en el sentido opuesto Isaac Newton Una dualidad matemática, generalmente hablando, traduce conceptos, teoremas o estructuras matemáticas en otros conceptos, teoremas o estructuras, en una manera ((uno a uno)), a menudo (pero no siempre) por medio de una operación inversa: Si la dualidad de A es B, entonces la dualidad de B es A. Ejemplo: Dos puntos R y S determinan una recta Dos rectas r y s determinan un único punto Recapitulación Dualidad matemática Ejemplo Relación entre cubos y octaedros Un cubo se la llama también hexaedro, porque tiene 6 lados. Parámetros de las dos figuras Número de lados Número de vértices Forma de cada lado Cubo 6 8 Cuadrado Octaedro 8 6 Triángulo El número de vértices y de caras son opuestos entre las dos figuras. A partir de cubo se construye un octaedro inscrito en este y a partir de un octaedro se obtiene un cubo inscrito en este. Recapitulación Dualidad matemática Ejemplo Dualidad Matemática Establece que para cada objeto matemático, teorema o problema original (primal), existe otro (dual) que puede ser considerado como su contraparte. Como principio que relaciona dos problemas o estructuras matemáticas proporciona herramientas prácticas para resolver problemas complejos, por ejemplo, que la solución de uno proporciona la solución del otro. Presente en diversas áreas de la matemática, como la geometrı́a, la programación lineal, la teorı́a de grafos, álgebra, economı́a, etc. El principio básico establece que las propiedades del problema primal están relacionadas con las del problema dual. Grafo plano azul (primal) y su grafo dual en rojo Recapitulación Dualidad matemática Ejemplo Dualidad En programación lineal. En programación lineal, cada problema (denominado problema primal) tiene un problema asociado llamado problema dual. La solución óptima del problema primal proporciona información sobre la solución del problema dual y viceversa. Para cada problema de programación lineal (primal), existe otro problema asociado llamado dual. El primal y el dual están estrechamente relacionados y proporcionan información valiosa entre sı́. Recapitulación Dualidad matemática Ejemplo Relaciones entre el problema Primal y el Dual Objetivos opuestos de optimalidad: si el problema primal es de maximización, el dual será de minimización y viceversa. Si las restricciones del Primal son de:≤, entonces las del dual son de ≥ y viceversa. Las restricciones del primal se convierten en variables del dual y viceversa. Si el primal tiene m restricciones, entonces el dual tendrá m variables. Las variables del primal se convierten en restricciones del dual y viceversa Si el primal tiene n variables, entonces el dual tendrá n restricciones. Los coeficientes de la función objetivo primal se convierten en los términos independientes del dual Los términos independientes del primal se convierte en los coeficientes de la función objetivo del dual Bajo ciertas condiciones, el valor óptimo de la función objetivo del problema primal es igual al valor óptimo de la función objetivo del problema dual. Recapitulación Dualidad matemática Ejemplo Formulación Primal y Dual Entonces, el problema: Primal (maximización): Maximizar c T x sujeto a Ax ≤ b x ≥0 Se convierte en el problema: Dual (minimización): Minimizar b T y sujeto a AT y ≥ c y ≥0 Donde x y c son vectores de n componentes, y y b son vectores de m componentes, y A es una matriz m × n. Recapitulación Dualidad matemática Ejemplo Propiedades de la Dualidad Teorema de dualidad débil: El valor objetivo de cualquier solución factible del dual es mayor o igual que el valor objetivo de cualquier solución factible del primal. Teorema de dualidad fuerte: Si el primal tiene una solución óptima, el dual también tiene una solución óptima, y los valores objetivos óptimos son iguales. Las variables del dual pueden interpretarse como precios sombra de las restricciones del primal. Recapitulación Dualidad matemática Ejemplo Problema Primal (Maximización) Entendido el concepto elaboremos un ejemplo Consideremos el siguiente problema primal de maximización: Maximizar Z = 3x1 + 2x2 Sujeto a: 2x1 + x2 ≤ 18 x1 + 3x2 ≤ 42 3x1 + x2 ≤ 24 x1 , x2 ≥ 0 Este es nuestro ejemplo de problema primal que usaremos para obtener el dual aplicando las reglas derivadas de las relaciones ya vistas. Recapitulación Dualidad matemática Ejemplo Reglas para formar el problema Dual Para un problema primal de maximización (como es nuestro ejemplo), se aplicaran los siguientes pasos para formal su problema Dual: 1 El dual será un problema de minimización. 2 Cada restricción del primal se convierte en una variable en el dual. 3 Cada variable del primal se convierte en una restricción en el dual. 4 Los coeficientes de la función objetivo del primal se convierten en términos constantes en las restricciones del dual. 5 Los términos constantes de las restricciones del primal se convierten en coeficientes de la función objetivo del dual. 6 Las desigualdades se invierten (≤ se convierte en ≥). Recapitulación Dualidad matemática Ejemplo 1. El dual será un problema de minimización Aplicamos el objetivo opuesto de optimalidad, dado que el problema primal es de maximización, el dual será de minimización Nótese que también cambiamos el nombre de Z a W Recapitulación Dualidad matemática Ejemplo 2. Restricción en el primal → variable en el dual Los términos independientes de las restricciones del primal se convierten en coeficientes de la función objetivo del dual Nótese que cambiamos la forma de nombrar las variables, del : xi , del primal pasamos al: yi en el dual. Recapitulación Dualidad matemática Ejemplo 3. Restricción en el primal → variable en el dual Cada vector de variables en las restricciones del primal se convierten en una restricción del dual. El coeficiente de la variable de la función objetivo del primal que da lugar a la restricción del dual, será su término constante. Nótese que también invertimos el sentido de las desigualdades, del : ≤, del primal pasamos al: ≥ en el dual. Recapitulación Dualidad matemática Ejemplo 4. El dual será un problema de minimización Cada vector de variables en las restricciones del primal se convierten en una restricción del dual. El coeficiente de la variable de la función objetivo del primal que da lugar a la restricción del dual, será su término constante. Nótese que también invertimos el sentido de las desigualdades, del : ≤, del primal pasamos al: ≥ en el dual. Recapitulación Dualidad matemática Ejemplo 5. El dual será un problema de minimización Mantenemos la restricción general de no negatividad de las variables también en el dual Y con este paso completamos la formulación del problema dual correspondiente al problema primal original. Recapitulación Dualidad matemática Ejemplo Problema Dual Aplicando las reglas de dualidad a nuestro problema primal, obtenemos el siguiente dual: Minimizar W = 18y1 + 42y2 + 24y3 Sujeto a: 2y1 + y2 + 3y3 ≥ 3 y1 + 3y2 + y3 ≥ 2 y1 , y2 , y3 ≥ 0 Observe cómo cada restricción del primal se ha convertido en una variable yi en el dual. Recapitulación Dualidad matemática Ejemplo Interpretación Geométrica (Max Z = 3x1 + 2x2 ) La solución del problema primal, con el método gráfico se muestra en la siguiente figura que establece la región factible y el punto de la solución óptima para Z , en el vértice (2,4, 13,2) Como deducimos de la figura y del vértice con la solución óptima, el valor máximo aplicado a la función objetivo es: 2,4(3) + 13,2(2) = 7,2 + 26,4 = 33,6 Recapitulación Dualidad matemática Ejemplo Interpretación económica de la dualidad Un fabricante de muebles finos fabrica dos productos: sillas y sillones, utiliza dos recursos limitados: caoba y mano de obra. Quiere maximizar sus ganancias resolviendo la mejor combinación de los dos productos. Una solución trivial serı́a fabricar lo máximo posible del producto más rentable y, si quedan sobrantes de recursos, fabricar lo que alcance del otro producto. ¿serı́a ésta la combinación óptima? !Por supuesto que no! Trascender la mirada del problema primal para proyectar las ganancias desde los recursos disponibles, de forma tal que la ganancia máxima pueda provenir de fabricar otros productos con estos recursos; por ejemplo mesas y escritorios. Recapitulación Dualidad matemática Ejemplo Interpretación económica de la dualidad Un fabricante de muebles finos fabrica dos productos: sillas y sillones, utiliza dos recursos limitados: caoba y mano de obra. Quiere maximizar sus ganancias resolviendo la mejor combinación de los dos productos. Una solución trivial serı́a fabricar lo máximo posible del producto más rentable y, si quedan sobrantes de recursos, fabricar lo que alcance del otro producto. ¿serı́a ésta la combinación óptima? !Por supuesto que no! Un mejor enfoque es mirar el problema no solo en las dos dimensiones o variables de los productos sino desde la perspectiva de 4 dimensiones Trascender la mirada del problema primal para proyectar las ganancias desde los recursos disponibles, de forma tal que la ganancia máxima pueda provenir de fabricar otros productos con estos recursos; por ejemplo mesas y escritorios. Recapitulación Dualidad matemática Ejemplo Interpretación económica de la dualidad Un fabricante de muebles finos fabrica dos productos: sillas y sillones, utiliza dos recursos limitados: caoba y mano de obra. Quiere maximizar sus ganancias resolviendo la mejor combinación de los dos productos. Una solución trivial serı́a fabricar lo máximo posible del producto más rentable y, si quedan sobrantes de recursos, fabricar lo que alcance del otro producto. ¿serı́a ésta la combinación óptima? !Por supuesto que no! Un mejor enfoque es mirar el problema no solo en las dos dimensiones o variables de los productos sino desde la perspectiva de 4 dimensiones Las cantidades a fabricar de los 2 productos junto a las 2 restricciones impuestas por la limitación de recursos Trascender la mirada del problema primal para proyectar las ganancias desde los recursos disponibles, de forma tal que la ganancia máxima pueda provenir de fabricar otros productos con estos recursos; por ejemplo mesas y escritorios. Recapitulación Dualidad matemática Ejemplo Interpretación económica de la dualidad Un fabricante de muebles finos fabrica dos productos: sillas y sillones, utiliza dos recursos limitados: caoba y mano de obra. Quiere maximizar sus ganancias resolviendo la mejor combinación de los dos productos. Una solución trivial serı́a fabricar lo máximo posible del producto más rentable y, si quedan sobrantes de recursos, fabricar lo que alcance del otro producto. ¿serı́a ésta la combinación óptima? !Por supuesto que no! Un mejor enfoque es mirar el problema no solo en las dos dimensiones o variables de los productos sino desde la perspectiva de 4 dimensiones Las cantidades a fabricar de los 2 productos junto a las 2 restricciones impuestas por la limitación de recursos Al fin y al cabo son estas restricciones la que definen los vértices factibles de la máxima ganancia. Trascender la mirada del problema primal para proyectar las ganancias desde los recursos disponibles, de forma tal que la ganancia máxima pueda provenir de fabricar otros productos con estos recursos; por ejemplo mesas y escritorios. Recapitulación Dualidad matemática Ejemplo Aplicaciones de la Dualidad Análisis de sensibilidad: Estudiar cómo los cambios en los parámetros afectan la solución óptima. Desarrollo de algoritmos eficientes: El método simplex dual. Teorı́a económica: Interpretación de precios y asignación de recursos. Demostración de optimalidad: Usar la dualidad para probar que una solución es óptima. Recapitulación Dualidad matemática Ejemplo Ejercicio de Dualidad Vamos a retomar el problema de la fabricación de los dos robots de juguete para aplicar la dualidad: Se produce dos robots de juguete: R-01 y R-02; requieren circuitos integrados, componentes armables y mano de obra. Cada R-01 necesita 6 circuitos, 5 componentes y 8 horas de mano de obra. Cada R-02 necesita 6 circuitos, 10 componentes y 4 horas de mano de obra. La utilidad es de $60 US$ para R-01 y $80 US$ para R-02. Se cuenta con 300 circuitos, 400 componentes para ensamblar y 320 horas de mano de obra. El fabricante desea determinar la cantidad de juguetes de cada modelo que debe fabricar para vender y maximizar, de esta manera, la contribución a la utilidad Recapitulación Dualidad matemática Ejemplo Forma canónica del problema de programación lineal El problema se plantea representado en su forma canónica: Maximizar Z = 60x1 + 80x2 Sujeto a: 6x1 + 6x2 ≤ 300 5x1 + 10x2 ≤ 400 8x1 + 4x2 ≤ 320 (1) x1 , x2 ≥ 0 Y al cual debemos aplicar la dualidad según los pasos explicados antes