FORMULACION Y OPTIMIZACION DE MODELOS
Introducción
El desarrollo de los métodos de optimización, según muchos autores, ha representado uno de los avances científicos más importantes desde mediados del siglo XX. Actualmente son una herramienta utilizada en muchos campos de la administración, de la economía y de la ingeniería. Existen muchos libros de texto sobre el tema y miles de artículos científicos en revistas especializadas.
Los métodos de optimización tienen como base el método científico para investigar y ayudar a tomar decisiones sobre los problemas complejos de las organizaciones de hoy en día. Básicamente siguen los pasos siguientes: (1) la observación de un problema, (2) la construcción de un modelo matemático que contenga los elementos esenciales del problema, (3) la obtención, en general con la utilización de un ordenador, de las mejores soluciones posibles con la ayuda de algoritmos exactos o heurísticos y finalmente (5), la calibración y la interpretación de la solución y su comparación con otros métodos de toma de decisiones.
Un ejemplo simple, el problema de la asignación, nos puede servir para ilustrar la dificultad esencial de los métodos cuantitativos. Una Empresa tiene 70 empleados con calificaciones diferentes (Administradores, Ingenieros, personal Auxiliar, etc.) que hemos de asignar a 70 tareas también diferentes. Si pudiéramos determinar un valor que reflejase la asignación de un empleado a una tarea determinada, tendríamos que escoger una entre 70! (Setenta factorial) formas posibles de permutación de las asignaciones que maximice el valor total. Cómo que 70! es aproximadamente igual a 10100, necesitaríamos un ordenador que ejecutase 1.000.000 de operaciones por segundo durante aproximadamente 1087 años, para examinar todas las permutaciones. Problemas de decisión como éste son muy comunes y se tienen que desarrollar modelos de programación matemática, métodos matemáticos para obtener soluciones a los modelos, y algoritmos de ordenador muy eficientes.
Los métodos cuantitativos han tenido un impacto impresionante en la mejora de la eficiencia de numerosas organizaciones en todo el mundo. Existen inúmeras aplicaciones con éxito en todos los campos en donde la toma de decisiones es compleja y que pueden implicar para la organización grandes inversiones o cambios en la organización que determinen su futuro.
2.1 Programación Lineal: Formulación de Problemas
La programación lineal es la herramienta básica más utilizada dentro de los métodos cuantitativos, debido tanto a su inmenso abanico de aplicaciones como a su simplicidad de implementación. Efectivamente, el desarrollo de la programación lineal, según muchos autores, ha representado uno de los avances científicos más importantes desde mediados del siglo XX. Actualmente es una herramienta utilizada en muchos campos de la administración, de la economía y de la ingeniería.
La programación lineal es un caso especial de la programación matemática, en donde todas las funciones que hay en el modelo son lineales: siempre tenemos una función objetivo lineal a optimizar (maximizar o minimizar), sujeta a restricciones lineales individuales. Las variables del modelo, que son continuas, únicamente pueden coger valores no negativos. Si bien puede parecer que estos supuestos quitan realismo al problema porque el modelador está limitado al uso de ecuaciones que quizás no son frecuentes en el mundo real, las técnicas de programación lineal se utilizan en un amplísimo espectro de problemas como, entre otros, de planificación y gestión de recursos humanos y materiales, de transporte, de planificación financiera y de organización de la producción. En definitiva, una extensa gama de problemas que aparecen en las áreas de tipo industrial, económico, administrativo, militar...
El término programación tiene su origen en la planificación de las actividades que se realizan en una organización tal como una fábrica, un hospital, una compañía aérea o un organismo público, en dónde hay un objetivo a optimizar (maximización de beneficios, minimización de costos, maximización de la cobertura sanitaria, etc.). No tenemos que confundir este término con la “programación” en referencia a la preparación de una serie de órdenes e instrucciones de un lenguaje informático en un ordenador.
Orígenes de la Programación Lineal
La programación lineal, si bien actualmente se utiliza frecuentemente para resolver problemas de decisión, era casi desconocida antes de 1947. Ninguna investigación significativa fue realizada antes de esta fecha, si bien hay que mencionar que, alrededor de 1823, el matemático francés Jean Baptiste Joseph Fourier parecía conocer el potencial del tema.
Un matemático ruso, Leonid Vitalievitx Kantorovitx, que publicó una extensa monografía en 1939, Matematitxeskie Metodi Organisatsi i Planirovaniia Proisvodstva (Métodos matemáticos para la organización y planificación de la producción) fue el primer investigador en reconocer que una amplia gama de problemas de producción y distribución tenían una estructura matemática y, que por lo tanto, se puedan formular con un modelo matemático. Desgraciadamente sus propuestas fueron desconocidas tanto en Unión Soviética como en el occidente durante dos décadas. Durante este periodo, la programación lineal experimentó un gran desarrollo tanto en Estados Unidos como en Europa. Después de la segunda guerra mundial, funcionarios del gobierno americano consideraron que la coordinación de las energías de toda una nación debido al peligro de una guerra nuclear requeriría la utilización de técnicas científicas de planificación. Con la aparición del ordenador esto se hizo posible. Se crearon instituciones como la Corporación RAND en donde ingenieros y matemáticos se pusieron a trabajar intensamente en la formulación y resolución de problemas matemáticos aplicados a la toma de decisiones. Entre otros, se propuso un modelo de programación lineal por su simplicidad y aplicabilidad, sin dejar de dar un marco lo suficientemente amplio para representar actividades interdependientes que han de compartir recursos escasos. El sistema (como, por ejemplo, la producción industrial) se compone de diversas actividades relacionadas entre ellas (formación, fabricación, almacenaje, transporte, distribución y venta). Este fue el primer modelo de programación lineal conocido.
¿En qué consiste la Programación Lineal?
La Programación lineal (PL de ahora en adelante) consiste en encontrar los valores de unas variables que maximizan o minimizan un único objetivo sujeto a una serie de restricciones. Las principales características de PL son:
1. Un único objetivo lineal a optimizar (maximizar o minimizar)
2. Unas variables de decisión que siempre son continuas y no negativas
3. Una o más restricciones lineales
4. Un conocimiento exacto de los parámetros y recursos utilizados en la construcción del modelo.
Si todas estas condiciones se cumplen, existen varios métodos de obtención de soluciones que nos dan la solución óptima con un costo computacional relativamente reducido.
Estas son algunas características y lo que ocurre si una o varias de ellas no se cumplen.
En primer lugar, cabe destacar que en la PL todas las funciones utilizadas tanto en el objetivo como en las restricciones son lineales. Es decir, las restricciones consisten en la suma de variables multiplicadas por sus respectivos parámetros, siendo esta función menor, igual o mayor que un determinado recurso. El objetivo también es lineal, si bien desconocemos a priori su valor. En caso de que tanto el objetivo como una o más restricciones no fueran lineales, sería necesario el introducir métodos de programación no- lineal, que son mucho más complejos de resolver y cuya optimización no siempre está garantizada.
En segundo lugar, la PL considera que las variables de decisión son continuas. Desde el punto de vista matemático de obtención de soluciones, esta característica no ofrece problemas. Ahora bien, en muchas situaciones, la interpretación económica de la solución de un problema de PL no tiene sentido si obtenemos fracciones en las variables. Por ejemplo, si estamos asignando trabajadores a tareas, no tiene sentido un resultado que en un momento determinado asigne 3,4 trabajadores a una determinada tarea. Por otro lado, y como veremos más adelante, si uno opta por redondear al entero más próximo se puede cometer un grave error. Para poder obtener soluciones enteras en problemas que lo requieren, se utiliza la Programación lineal Entera, que será objeto de estudio en el capítulo cuarto de este libro.
En tercer lugar, los modelos de PL consideran que hay un único objetivo a maximizar o minimizar. Muchas veces podemos tener que resolver problemas que tienen más de un objetivo. Por ejemplo, por un lado podemos querer maximizar la cobertura de un determinado servicio sanitario, mientras que por el otro queremos reducir los costos generales. Ambos objetivos son conflictivos, en el sentido de que aumentar la cobertura significaría un aumento en la necesidad de recursos con el consecuente incremento de costos en el sistema. Esta conflictividad se resuelve utilizando métodos de Programación Multicriterio o multiobjetiva, presentados en el capítulo quinto de este libro.
Finalmente, en la PL se considera que los parámetros utilizados en la construcción del modelo se conocen con exactitud, o en términos más técnicos, son determinísticos. Sin embargo, existen situaciones en las que uno o más parámetros tienen un componente estocástico, o en palabras menos técnicas, tienen una variabilidad (que en algunos casos puede ser representada por una distribución estadística). Si esto acontece, la PL ya no es un buen instrumento para la obtención de soluciones. Es necesario utilizar técnicas de Programación Estocástica.