RESOLUCIÓN DE PROBLEMAS DE PROGRAMACIÓN LINEAL EN MATEMÁTICAS APLICADAS A LAS CIENCIAS SOCIALES CON LA HOJA DE CÁLCULO CALC 1.- Introducción Los actuales componentes del bachillerato formulados por el Real Decreto 1467/2007 de 2 de Noviembre, adaptado en Andalucía por el Decreto 416/2008, de 22 de Julio y concretado por la orden de 5 de Agosto de 2008 han permitido organizar la materia de matemáticas aplicadas a la ciencias sociales en tres núcleos temáticos: Resolución de problemas, Historia de las matemáticas y Fundamentos de las matemáticas. La programación lineal forma parte de la rama matemática llamada investigación operativa, cuyo objeto más amplio es la resolución de problemas utilizando una gran diversidad de estrategias, que no son siempre estrictamente matemáticas. Esta rama surge con fuerza a partir de la segunda mitad del siglo XX, tras el incremento de la velocidad de cálculo en las computadoras. Así pues, una visión inicial de este fundamento matemático no puede desprenderse ni de su componente histórica, reciente por otra parte, ni de su estrecha relación con el extraordinario avance tecnológico sufrido en la segunda mitad del siglo XX. Así el aumento de la velocidad de cómputo ha permitido aplicar los algoritmos de resolución del problema de Programación Lineal provocando mejoras considerables en la organización empresarial, económica y social. Y a la postre, la consecución de tan buenos resultados al utilizar este modelo matemático en la economía, ha culminado con la inclusión de la Programación Lineal en los programas de estudios de las universidades de los diferentes países occidentales durante los años 60 y 70 del siglo pasado, y su posterior inclusión en los programas de estudios de la educación secundaria durante las décadas siguientes. En este documento se ofrecen los pasos necesarios para la resolución de cualquier problema de programación lineal planteado en el bachillerato, e incluso puede ser válido para cursos universitarios. La herramienta digital sobre la que se apoya este documento es la hoja de cálculo Calc, que se encuentra instalada en la mayoría de los ordenadores disponibles en los centros educativos. En primer lugar hay que tener en cuenta que se podrá resolver el problema con la Hoja Calc si tiene insertado el módulo Solver1 (Estará activo en el menú desplegable que 1 Si no se tiene instalado Solver se puede programar el método de simplex, pero es necesario la creación de un macro. 1 se obtiene de Herramientas), este programa (Solver) no está incluido en versiones anteriores. 2.- Elementos del problema de programación lineal clásico El problema de programación Lineal Clásico consta de tres elementos básicos: 1.El objetivo: Será obtener el máximo o el mínimo de la función objetivo. 2.La función Objetivo que será una función Lineal de varias variables, en principio dos. 3.Las restricciones o condiciones que obligatoriamente ha de cumplir toda solución. En nuestro problema de programación lineal serán restricciones lineales. En el ejemplo siguiente se puede observar las distintas partes en el problema formulado. (Objetivo) Maximizar 5x + 3y Sujeto a : (Función Objetivo) Restricciones x≥0 y≥0 4x3y≤12 3x5y≤15 3.- Definición del problema de programación lineal en la hoja de cálculo Calc Para definir el problema de programación lineal en la hoja de cálculo se ha intentado conseguir dos objetivos: 1.- Crear un entorno lo más amigable posible para el usuario del programa. Se han incorporado ciertas etiquetas que permiten comprender la organización de las operaciones programadas. Y se ha resaltado la fuente en algunas celdas con el color rojo (C6 y D6) donde se encuentran los valores que toman las variables que se están optimizando que además serán calculados por el programa solver. Esto puede observarse en el gráfico 1. 2.- Incluir las fórmulas necesarias para definir el problema y procurar que no se precisen de grandes modificaciones cuando deseemos resolver otro problema con valores y/o estructura diferente. Por ello se ha pretendido plantear un problema de carácter muy general. Función objetivo: Valores: Se inserta los coeficientes de la función objetivo. Las celdas C5 y D5 serán aquellas en las que se incluirán los valores de los coeficientes de la función objetivo, para nuestro problema (5,3). 2 Fórmulas: La fórmula de la función objetivo se insertará en la celda E5 y corresponde con [E5] =C5*C$6+D5*D$6; las celdas C6 y D6 (en color amarillo) son las que tendrán los valores solución del problema de optimización. Restricciones Valores: Las celdas C10 y D10 incluirán los valores de los coeficientes de la primera restricción. En las filas siguientes se incluirán las restricciones siguientes si las hubiera. En la columna inmediatamente adjunta a la de las fórmulas se incorpora los límites de cada restricción que corresponde a las celdas F10, F11 y siguientes, es decir, se introducen los términos independientes de las restricciones. Fórmulas: En cada fila con los coeficientes de las restricciones y a continuación se introduce la fórmula en la columna E de forma similar a la de la función objetivo: [E10] = C10*C$6+D10*D$6;[E11] = C11*C$6+D11*D$6. Las restricciones de no negatividad de las variables se incluyen en el subprograma Solver y por tanto no es preciso implementarlas en la hoja de cálculo como el resto de las restricciones. Tanto la función objetivo como las restricciones son expresiones algebraicas lineales, éstas últimas se expresarán con fórmulas similares a la fórmula de la función objetivo. Gráfico 1 3 4.- Inclusión de los detalles del problema en el subprograma Solver Se pulsa sobre el menú HERRAMIENTAS, después sobre SOLVER obteniendo un cuadro de diálogo como el que se presenta en el gráfico 3. Gráfico 2 El cuadro de diálogo que sigue es el que presenta el módulo Solver y debe ser completado rellenando los parámetros siguientes: 1.- Objetivo de Celda o Celda objetivo: en este caso es la celda E5: Donde se colocó la fórmula de la función objetivo. Se indicará en ese cuadro E5. 2.- Optimizar resultados a :Se selecciona si es máximo o mínimo el objetivo del problema de programación lineal que se va a resolver. En nuestro caso el Máximo. 3.- Al cambiar las celdas o Cambiando las celdas los valores de las celdas C6 y D6 son las que donde el programa comprueba si son los valores que al sustituir en la función objetivo, ésta alcanzan el óptimo(El máximo o el mínimo) . 4.- Condiciones límites: se indicará las celdas donde están incluidas las fórmulas de las restricciones (las indicadas en la celda E10 y E11) Gráfico 3 4 Objetivo de Celda o Celda objetivo Se observará que en la celda Objetivo se selecciona la celda E5, como puede verse en el gráfico 4, en el que la celda E5 corresponde con el valor de la función objetivo. Optimizar resultados a Se selecciona el valor máximo, porque se está resolviendo un problema de Maximizar. Gráfico 4 Al cambiar las celdas o Cambiando las celdas Se selecciona las celda C6 y D6 ; que serán los valores de la variables que obtiene el objetivo marcado, que en este ejercicio es el máximo. Es decir, son los valores que han de cumplir las condiciones o restricciones y ofrecen el mayor valor en la función objetivo. Gráfico 5 Condiciones límites Ahora es el momento de definir las restricciones, en el cuadro de condiciones límites se completarán tantas filas como restricciones tenga el problema. La primera restricción está definida en la celda E10 (que es la celda dónde se encuentra la fórmula de la restricción, aunque los valores en los que se basa están en las celdas C10 y D10) y en la celda que se encuentra a la derecha de E10, esto es, la 5 F10, será la celda en la que se incluye el valor del término independiente o límite de la restricción.En el cuadro de diálogo , debajo de celda de referencia se ha de incluir la celda E10. Gráfico 6 En la parte inferior del cuadro de diálogo de solver, es decir, en la parte de condiciones límites,debajo de la etiqueta “valor", se debe incluir la referencia de la celda que se encuentra bajo la etiqueta “Límite de las Restricciones” , es decir, la celda F10 que definirá la restricción 4x3y12 Esto puede observarse en el gráfico 7. Gráfico 7 6 Observe que debajo de vínculo se puede modificar el tipo de desigualdad y que en este caso se ha optado por la de menor o igual ( ) que es la desigualdad definida en el problema. El proceso se repite con todas las restricciones que se haya establecido para el problema. En nuestro caso se ha de incorporar la restricción 3x5y15 Gráfico 8 Por último, para implementar las restricciones de no negatividad se pulsa en OPCIONES y se activa la casilla Asumir no negativos, tal y como se presenta en el gráfico 8. Gráfico 9 7 Una vez aceptado, vuelve al cuadro de diálogo de SOLVER y se pulsa SOLUCIONAR , obteniendo el cuadro de diálogo que presenta el gráfico 9, que se aceptará con MANTENER RESULTADOS. Y la hoja de cálculo se actualiza con los datos calculados por el programa SOLVER como en el resultado obtenido en el gráfico 9. Ya por último se tienen calculados los valores de x e y que hacen óptimo la función objetivo con las condiciones establecidas: Max 5x + 3y Sujeto a : x≥0 y≥0 4x3y≤12 3x5y≤15 La solución viene dada por x=3; y =0; como puede observarse en el gráfico 10. Debe comprobar que el cuadro de diálogo resultado de la solución ofrece la solución de la función objetivo, en este caso el valor óptimo es 15. 6.- Análisis de la solución en el problema de programación lineal. Puede observase que la solución del problema de programación lineal viene dado por los valores x=3; y=0 y que la restricción limitante es la primera, sin embargo la segunda restricción se verifica sin llegar al límite, es decir, con una holgura de 6 unidades. Gráfico 10 8 7.- Ampliación del problema a más dimensiones La hoja de cálculo creada podrá ser ampliada y modificada en tanto en cuanto el problema disponga de más de dos incógnitas, debiéndose insertar una columna por cada variable a ampliar (x1,x2,x3,x4 ...) extendiendo a más dimensiones la función objetivo y las restricciones del problema. Pero básicamente la resolución del problema consta, en cuanto al procedimiento, de un tratamiento muy similar. Gráfico 11 La función objetivo vendrá dada por la expresión =C5*C$6+D5*D$6+E5*E$6+F5*F$6 y las restricciones por las expresiones : =C5*C$6+D5*D$6+E5*E$6+F5*F$6, que son las extensiones naturales al problema de programación lineal de dimensión cuatro. (Objetivo) Maximizar 3x 14x 2 2x 3 x 4 Sujeto a : (Función Objetivo) Restricciones x 1x 2 x 3x 4≤20 2x 1 x 2 x 3 x 4≤36 x 12x 2 x 3 x 4≤24 x 1x 4≤20 x 1≥0 ; x 2≥0 ; x 3≥0 ; x 4≥0 Cuyas soluciones óptimas , como pueden verse en el gráfico 11 son: x 1=16 ; x 2=4 ; x 3=0 ; x 4=0 9 8.- Conclusiones La hoja de cálculo Calc posee una gran potencia de cálculo, además de una gran facilidad de implementar fórmulas que posibilitan la resolución de problemas de programación lineal. Esta herramienta permite resolver problemas que previamente han de ser formulados, por tanto, facilita la necesidad de insistir en la formulación de problemas, y por consiguiente en el proceso de simbolización necesario para la formulación de todo tipo de problemas. Para resolver el siguiente problema de programación lineal Max 3x + y Sujeto a : x≥0 y≥0 3x + 4y ≤ 12 5x + 3y ≤ 15 han de modificarse los valores de los coeficientes de la función objetivo y las limitaciones de las restricciones. Iniciar el subprograma SOLVER y realizar las mimas operaciones , que las descritas exceptuando las definiciones de fórmulas que ya están definidas. Gráfico 12 10 Para resolver el siguiente problema de programación lineal Max 2x+3y Sujeto a : x≥0 y≥0 4x + 3y ≤ 12 3x + 5y ≥ 15 han de modificarse los valores de los coeficientes de la función objetivo y las limitaciones de las restricciones. Iniciar el subprograma SOLVER y realizar las mismas operaciones, que las descritas exceptuando las definiciones de fórmulas que ya están definidas, salvo en el caso de la segunda restricción indicar que es mayor o igual. La solucíon del problema puede verse en el gráfico 13, el valor óptimo de x es 0 y el de la y es 4 por lo que se obtiene un valor máximo de 12 unidades en la función objetivo. Gráfico 13 11 BIBLIOGRAFÍA Departamento de Ingeniería de la producción. Facultad de Ingeniería. Universidad Nacional de la Plata. (2005). Solución de modelos de programación lineal en una hoja de calculo. Problemas de transporte y asignación. La Plata. Autor. Lekubarri, I, Eguzkitza,J.M.(2003). Programación lineal con Excel: Estabilidad de la solución. Sigma 23 Noviembre (pp. 81-88) 12