Programación Lineal con Excel: estabilidad de la solución PROGRAMACIÓN LINEAL CON EXCEL: ESTABILIDAD DE LA SOLUCIÓN Inmaculada Lekubarri y José Mª Eguzkitza (*) El objetivo principal que se persigue en todo problema de programación lineal (PL) es la obtención de unos valores numéricos que verifiquen ciertas restricciones y optimicen una determinada función. El problema, sin embargo, no termina con el cómputo de la solución óptima. Es importante además conocer la estabilidad de esa solución; es decir, saber en qué márgenes pueden moverse, por ejemplo, los coeficientes de la función objetivo sin que la solución óptima cambie. Por lo general, este último punto es de gran interés en el mundo empresarial ya que las decisiones que son válidas dentro de una amplia gama de valores de entrada no se transforman tan pronto en malas decisiones a causa de pequeños cambios en algunas de las entradas del modelo y por ello son decisiones “cómodas”. Las consideraciones anteriores tienen que ver con el denominado análisis de sensibilidad. Mediante este análisis se trata de estudiar qué sensibles son la solución óptima y el correspondiente valor de la función objetivo a cambios en los datos del problema; es decir, a cambios en los coeficientes de la función objetivo y de las restricciones. Aquí prestaremos atención únicamente al efecto producido por las variaciones en los coeficientes de la función objetivo. Para ello consideremos el problema siguiente: Una empresa produce dos clases de mosto A y B, siendo A de mejor calidad que B. Sus disponibilidades de uva por día le permiten producir 400 litros de un tipo u otro o de ambos. Así mismo, dispone de máquinas para embotellar diariamente 200 litros del tipo A y 350 del tipo B como máximo. El mosto A, que se exporta en su totalidad y se cobra en dólares, deja en el momento presente un beneficio neto de 2 euros por litro, mientras que el mosto de tipo B se coloca en el mercado interior dejando un beneficio neto fijo de 1, 8 euros por litro. ¿Cuántos litros de cada mosto se deben producir diariamente para conseguir el máximo beneficio? ¿En qué medida afecta a la solución obtenida la posible fluctuación del dólar, que se espera a la baja en el próximo período, teniendo en cuenta que el beneficio que deja el mosto B no varía en absoluto? El problema expresado en forma estándar es: Max Z = 2X + 1,8Y s.a X + Y ≤ 400 X ≤ 200 Y ≤ 350 X,Y ≥ 0 (*) Profesores del Departamento de Matemática Aplicada de la Universidad del País Vasco/ Euskal Herriko Unibertsitatea. Noviembre 2003 • 2003ko Azaroa 81 Inmaculada Lekubarri y José Mª Euzkitza La resolución gráfica (dos variables) del problema se presenta en la figura 1. Figura 1 Puesto que la solución óptima se halla en alguno de los vértices de la región factible, veamos cuál es el beneficio en cada uno de ellos: En En En En el el el el vértice vértice vértice vértice I(200, 0) el beneficio obtenido es 400 euros por día. II(200, 200) el beneficio obtenido es 760 euros por día. III(50, 350) el beneficio obtenido es 680 euros por día. IV(0, 350) el beneficio obtenido es 630 euros por día. Por tanto, si se producen 200 litros de mosto del tipo A y otros 200 litros del tipo B, el beneficio diario que se obtiene, 760 euros, es el máximo. Vamos a comprobar que la solución obtenida es la correcta, representando en la figura 2 las rectas de nivel de ecuación genérica 2X + 1,8Y = K, K e R. Trasladándolas hacia la derecha del eje 0X aumenta el nivel (K) y se comprueba que el último punto de contacto de dichas curvas de nivel con la región factible corresponde al máximo beneficio buscado. Figura 2 Analicemos ahora en qué medida afecta a la solución obtenida la posible fluctuación de la divisa en la que se cobra el mosto del tipo A. Teniendo en cuenta que el coeficiente de Y en la función objetivo no varía a causa de la estabilidad del precio en el mercado interior, de la figura 2 se sigue lo siguiente: 82 SIGMA Nº 23 • zk. 23 SIGMA Programación Lineal con Excel: estabilidad de la solución 1. Cuando la divisa aumenta de valor el coeficiente de X crece y la recta 2X + 1,8 Y = K gira en sentido horario. Entonces la solución óptima sigue siendo la misma, II(200, 200); no importa cuánto crezca ese coeficiente pues la recta nunca llega a ser vertical. 2. Cuando la divisa se deprecia el coeficiente de X disminuye y la recta 2X + 1,8 Y = K gira en sentido antihorario, de modo que para valores del coeficiente menores que 1,8 la solución óptima ya no es II(200, 200) sino III(50, 350). Teniendo en cuenta esto último, y como se prevé que la divisa tiende a la baja en el próximo período, estimándose como muy probable que sea menor que 1,8 €, la política a seguir más conveniente sería vender únicamente 50 litros diarios del mosto A en el mercado exterior y 350 litros del mosto B en el interior (solución III), a pesar de que la solución óptima es la II(200, 200). Lo que ocurre es que III(50, 350) es más estable que II, pues permanece como óptima en un rango de valores más amplio cuando el coeficiente tiende a la baja. Como se acaba de ver, este ejemplo puede ser resuelto gráficamente al intervenir únicamente dos variables de decisión. Cuando el número de variables aumenta la resolución gráfica ya no es posible y se hace necesaria la aplicación de métodos sofisticados (método del Simplex). No obstante, existe una herramienta informática ampliamente extendida que resuelve con relativa facilidad problemas de programación lineal de dimensiones incluso grandes: la hoja de cálculo EXCEL. Esta hoja de cálculo ofrece muchas posibilidades y su uso es tan natural en el mundo del trabajo como una hoja en blanco, un lápiz y una calculadora. Las características de EXCEL para la resolución y análisis de problemas de programación lineal no se presentan habitualmente en cursos donde se enseña la mecánica de las hojas de cálculo electrónicas, ni tampoco, usualmente, son tenidas en cuenta a la hora de comenzar el estudio de los modelos de programación lineal. Sin embargo, presentaremos aquí el análisis de un problema concreto haciendo uso de la opción Solver disponible en la hoja de cálculo EXCEL. Resolveremos el problema planteado más arriba, pero suponiendo ahora que interviene una tercera variable de decisión: el bodeguero decide producir un tercer tipo de mosto que se destina al mercado interior y que deja un beneficio de 3 euros por litro, siendo el tope máximo de producción 250 litros por día. Solver aportará la solución óptima y, sobre todo, que es lo que aquí nos ocupa, un informe de sensibilidad sobre la estabilidad de esa solución. El problema de PL se plantea ahora en los siguientes términos: Max Z = 2X + 1,8Y + 3Z s.a X + Y + Z ≤ 400 X ≤ 200 Y ≤ 350 Z ≤ 250 X,Y,Z ≥ 0 Las siguientes ilustraciones nos mostrarán las pantallas correspondientes a la resolución del problema mediante EXCEL. (*) En primer lugar se debe prestar una especial atención al planteamiento del problema en la hoja de cálculo, como se muestra en la figura 3. De forma práctica, algunas celdas contienen rótulos cuya finalidad es aclarar el significado de las entradas de la hoja de cálculo electrónica; otras contienen fórmulas subyacentes que determinan el valor numérico de varios coeficientes del modelo: Noviembre 2003 • 2003ko Azaroa 83 Inmaculada Lekubarri y José Mª Euzkitza Figura 3 • En las celdas B2, C2 y D2 se introducen los rótulos de las variables de decisión. • En B3, C3 y D3 se indican los beneficios diarios por litro que se obtienen de la venta de cada uno de los tres tipos de mosto. • Las celdas B4, C4 y D4 muestran los valores numéricos que el programa elige respetando las restricciones del problema hasta que optimiza la función objetivo. Como valores iniciales hemos introducido de forma arbitraria: 1, 1, 1. • Los coeficientes que representan a cada una de las tres restricciones del problema se reseñan en las celdas B7, C7, D7, B8, C8, D8, B9, C9, D9, B10, C10 y D10 . • Las celdas G7, G8, G9 y G10 corresponden a los términos independientes de las restricciones. • En E7, E8, E9 y E10 se introducen las fórmulas que proporcionan el valor numérico del lado izquierdo de las restricciones; por ejemplo, en la celda E7 debe ponerse B4*B7+C4*C7+D4*D7. • La celda G4 contiene la fórmula: B3*B4+C3*C4+D3*D4, que representa la función objetivo que se debe maximizar. • Por último, las celdas H7, H8, H9 y H10 representan la “Holgura”; es decir la diferencia, siempre considerada positiva, entre las celdas de “Términos Independientes” y las del “Total”. Por ejemplo, en la celda H7 debe aparecer la fórmula: G7-E7. Figura 4 84 SIGMA Nº 23 • zk. 23 SIGMA Programación Lineal con Excel: estabilidad de la solución Una vez construido correctamente el modelo de optimización, se selecciona el comando Solver en el menú Herramientas, como muestra la figura 4. Después de que se ha cargado en memoria el comando Solver aparece el cuadro de diálogo “Parámetros de Solver” de la figura 5. Figura 5 En primer lugar se ha de reseñar que la “Celda objetivo” indica cuál de las celdas va a contener el valor óptimo de la función objetivo. El siguiente campo del cuadro, “Valor de la celda objetivo”, nos permite definir el tipo de optimización que se desea realizar. El campo “Cambiando las celdas” permite especificar las variables de decisión del modelo que desean optimizarse; en este caso se encuentran en las celdas B4, C4 y D4. A continuación debemos definir las restricciones del modelo una a una. Para ello, en el campo “Sujetas a las siguientes restricciones” pulsaremos el botón “Agregar” que está situado a su derecha. Aparecerá un nuevo cuadro: “Agregar restricción” (figura 6). Figura 6 En “Referencia de la celda” se detallarán las celdas que representan el total del lado izquierdo de cada restricción y en “Restricción” los términos independientes. Cada vez que se introduce una restricción se pulsa “Agregar”. Una vez introducidas todas se pulsa el botón “Aceptar” para regresar al cuadro de diálogo “Parámetros de Solver”. Al pulsar, por último, el botón de “Opciones” del cuadro de dialogo aparece uno nuevo: “Opciones de Solver” (figura 7). En él sólo debemos marcar las casillas de verificación que están junto a “Adoptar modelo lineal”y “Asumir no negativos”. En el resto de casillas se dejan los valores por defecto establecidos. A continuación se pulsa el botón “Aceptar” de la derecha para regresar de nuevo al cuadro de diálogo “Parámetros de Solver”. Pulsando en él el botón “Resolver”, al cabo de unos segundos aparece el cuadro de diálogo “Resultados de Solver” con un mensaje de terminación como muestra la figura 8. Hay que prestar especial atención al mensaje que en él se encuentra sobre la solución obtenida. Seleccionando el comando “Aceptar” se obtiene el valor óptimo de las variables junto con el valor también Noviembre 2003 • 2003ko Azaroa 85 Inmaculada Lekubarri y José Mª Euzkitza óptimo de la función objetivo (figura 9). Figura 7 Figura 8 Figura 9 A la derecha del cuadro “Resultados de Solver” se encuentra el campo “Informes” con tres opciones: “Respuestas, Sensibilidad y Límites”. Si marcamos “Respuestas” aparece la ilustración de la figura 10. En ella se aprecian los valores originales de las variables X, Y y Z junto con sus valores finales (óptimos) obtenidos. También cabe destacar el valor original de la función objetivo (el correspondiente a los valores iniciales de las variables que han sido introducidos) y el valor final u óptimo de ella. 86 SIGMA Nº 23 • zk. 23 SIGMA Programación Lineal con Excel: estabilidad de la solución Figura 10 Si se pulsa el “Informa de Sensibilidad” se obtiene la ilustración de la figura 11. Analizaremos lo que nos interesa en este caso, pasando por alto otro tipo de información que aporta el informe. En concreto, estamos interesados en el rango de valores para los que el coeficiente de la variable X no cambia. Por tanto, centraremos la atención únicamente en la mitad superior de la figura 11; la mitad inferior se refiere a posibles variaciones en las restricciones. Figura 11 Según indica el informe, la solución óptima A(150, 0, 250) permanece estable, siempre que el coeficiente de X no aumente en más de una unidad ni disminuya menos de 0,2. Como hemos dicho al principio, las expectativas son a la baja para este coeficiente, por lo que si decrece más de 0,2 la solución A deja de ser válida. Si resolvemos el problema cambiando el coeficiente de X al valor 1,7 (una disminución mayor que 0,2) se obtiene la solución B(0, 150, 250), cuyo correspondiente análisis de sensibilidad nos muestra una mayor estabilidad. Como conclusión podemos decir que en PL, y en Investigación Operativa en general, tan importante como la solución óptima es la estabilidad de tal solución. De hecho, en ocasiones es mejor un resultado que, aun no siendo óptimo, se muestre más estable frente a la incertidumbre que pueda deparar el futuro. Noviembre 2003 • 2003ko Azaroa 87 Inmaculada Lekubarri y José Mª Euzkitza BIBLIOGRAFÍA Eppen G., Gould F., Schmidt C. y Weatherford L. (2000). Investigación de operaciones en la ciencia administrativa. Editorial Prentice Hall. Mexico. Infante Macías, R. (1991). Métodos de programación matemática. Vol. I y II. UNED. Madrid. Pardo L. y Felipe A. (1990). Programación lineal continua. Aplicaciones prácticas en la empresa. Editorial Díaz de Santos. Madrid. NOTAS (*) Imágenes de pantalla reimpresas con permiso de Microsoft Corporation. 88 SIGMA Nº 23 • zk. 23 SIGMA