modeladomatematico

March 16, 2018 | Author: Adriana Lopez | Category: Linear Programming, Operations Research, Decision Making, Model Theory, Information


Comments



Description

Modelos y Mét odos de I nvest igación deOperaciones. Procedimient os para Pensar. (Modelado y Resolución de Problemas de Organización I ndust rial mediant e Programación Mat emát ica) Métodos Cuantitativos de Organización Industrial José Pedro García Sabater Grupo de Investigación ROGLE Departamento de Organización de Empresas Curso 10 / 11 1 MODELOS .............................................................................................................................. 12 1.1 ¿Qué es un Modelo? ............................................................................................................. 12 1.2 ¿Para qué sirve un modelo? ................................................................................................. 13 1.2.1 Aprender / Entender. ........................................................................................................ 13 1.2.2 Implementar en un ordenador. .......................................................................................... 14 1.2.3 Toma de decisiones. ......................................................................................................... 14 1.3 El Problema, el Cliente y el Concepto de Solución. ............................................................. 14 1.4 Ciclo de Vida de la construcción de Modelos ...................................................................... 15 1.4.1 Definir el Problema ........................................................................................................... 15 1.4.2 Modelar y Construir la Solución ........................................................................................ 15 1.4.3 Utilizar la Solución. ........................................................................................................... 16 1.5 Generación de Soluciones Informáticas para la resolución de Problemas que se abordan mediante métodos matemático. .......................................................................................................... 16 1.6 Algunos principios para tener éxito en el modelado ........................................................... 17 1.6.1 Los Modelos han de ser simples, su análisis debe ser complejo........................................ 17 1.6.2 Ir paso a paso. .................................................................................................................. 17 1.6.3 Usar al máximo metáforas, analogías y similitudes ........................................................... 18 1.6.4 Los datos disponibles no deben conformar el modelo. ...................................................... 18 1.6.5 Principio Subyacente: Modelar es Explorar ....................................................................... 19 2 TIPOS DE MODELOS. LOS MODELOS DE PROGRAMACIÓN MATEMÁTICA. .................... 20 2.1 Clasificación de modelos según el efecto de su resolución ............................................... 20 2.1.1 Modelos Normativos ......................................................................................................... 20 2.1.2 Modelos Descriptivos. ....................................................................................................... 20 2.2 Modelos Matemáticos............................................................................................................ 21 2.3 Modelos de Programación Matemática ................................................................................ 21 2.3.1 ¿Por qué se llama Programación Matemática? ................................................................. 22 2.3.2 Una clasificación de Modelos de Programación Matemática. ............................................ 23 2.3.3 Los Componentes de un Modelo Matemático .................................................................... 25 2.4 Modelos de Optimización Combinatoria .............................................................................. 26 2.5 Otros Modos de Modelar. Otros Modos de Pensar. ............................................................. 27 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 4 de 190 © JPGS2011 2.5.1 Teoría de Grafos .............................................................................................................. 27 2.5.2 Programación Dinámica .................................................................................................... 28 2.5.3 Teoría de Colas ................................................................................................................ 29 2.5.4 Dinámica de Sistemas ...................................................................................................... 29 2.5.5 Simulación ........................................................................................................................ 30 2.5.6 Teoría de Juegos .............................................................................................................. 30 3 PROGRAMACIÓN MATEMÁTICA .......................................................................................... 31 3.1 La construcción de un Modelo de Programación Matemática. ........................................... 31 3.2 Implementación de un Modelo de Programación Matemática (Validación) ........................ 32 3.2.1 Modelo de sintaxis errónea. .............................................................................................. 32 3.2.2 Modelo incompatible ......................................................................................................... 33 3.2.3 Modelos no acotados ........................................................................................................ 34 3.2.4 Modelo Resoluble ............................................................................................................. 34 3.3 Características de un buen modelo de Programación Matemática ..................................... 35 3.3.1 Facilidad para entender el modelo .................................................................................... 35 3.3.2 Facilidad para detectar errores en el modelo ..................................................................... 35 3.3.3 Facilidad para encontrar la solución .................................................................................. 35 4 MODELOS DE PROGRAMACIÓN LINEAL............................................................................. 37 4.1 Qué es la Programación Lineal? ........................................................................................... 37 4.2 La importancia de la Linealidad. ........................................................................................... 37 4.3 Situaciones que pueden modelarse mediante Programación Lineal. ................................. 37 4.4 Definición de Objetivos ......................................................................................................... 38 4.4.1 Programación Lineal y Programación Multiobjetivo ........................................................... 38 4.5 Las restricciones ................................................................................................................... 40 4.5.1 Tipos básicos de Restricciones ......................................................................................... 40 4.5.2 La relación de las restricciones con la realidad, con las otras restricciones y con el propio modo de resolver. .............................................................................................................................. 40 4.6 Análisis de resultados ........................................................................................................... 43 4.6.1 Interpretaciones económicas ............................................................................................ 43 4.6.2 El Modelo Dual ................................................................................................................. 45 4.6.3 Análisis de Sensibilidad .................................................................................................... 46 Modelos y Métodos de Investigación de Operaciones Página 5 de 190 4.6.4 Modelos Estables ............................................................................................................. 46 5 LINEALIZANDO LO NO LINEAL ............................................................................................ 48 5.1 Objetivos no Lineales fácilmente linealizables .................................................................... 49 5.1.1 Objetivo “Minimizar un valor absoluto”. ............................................................................. 49 5.1.2 Objetivo “Minimizar el Máximo” o “Maximizar el Mínimo” ................................................... 50 5.1.3 Objetivos de Ratio ............................................................................................................ 50 5.1.4 Objetivos Maximizar el Máximo (o Minimizar el Mínimo) .................................................... 51 5.2 El uso de variables discretas para representar relaciones condicionales. ........................ 51 5.2.1 Funciones no continuas. ................................................................................................... 52 5.2.2 Relación Lógica: 1 j j j a x b o = ÷ s ¿ . ........................................................................... 52 5.2.3 Relación Lógica 1 j j j a x b o < ÷ = ¿ : ............................................................................ 52 5.2.4 Relación Lógica 1 j j j a x b o s ÷ = ¿ : ............................................................................ 53 5.2.5 Relación Lógica 1 j j j a x b o = ÷ > ¿ : .......................................................................... 53 5.2.6 Relación Lógica 1 j j j a x b o > ÷ = ¿ : .......................................................................... 54 5.2.7 Relación Lógica 1 j j j a x b o > ÷ = ¿ : .......................................................................... 54 5.3 Más Relaciones Lógicas y su representación. ..................................................................... 54 5.4 Conjuntos especiales de variables ordenadas .................................................................... 57 6 MODELOS DE PROGRAMACIÓN ENTERA ........................................................................... 60 6.1 Introducción ........................................................................................................................... 60 6.2 Diferentes áreas de aplicación de la Programación Entera ................................................. 60 6.2.1 Problemas con inputs (u outputs) discretos ....................................................................... 60 6.2.2 Problemas con condiciones lógicas .................................................................................. 60 6.2.3 Problemas de combinatoria .............................................................................................. 60 6.2.4 Problemas No-lineales ...................................................................................................... 61 6.3 Otras condiciones aplicadas a Modelos de Programación Lineal ...................................... 61 6.3.1 Restricciones disyuntivas .................................................................................................. 61 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 6 de 190 © JPGS2011 6.3.2 Regiones No-Convexas .................................................................................................... 62 6.3.3 Limitar el número de variables en una solución ................................................................. 62 6.3.4 Decisiones Secuencialmente Dependientes ...................................................................... 62 6.3.5 Extensiones discretas de capacidad ................................................................................. 62 6.4 Tipos Especiales de Modelos de Programación Entera ...................................................... 63 6.4.1 El problema de la mochila ................................................................................................. 63 6.4.2 Problemas de cubrimiento ................................................................................................ 63 6.4.3 Problemas de empaquetado ............................................................................................. 64 6.4.4 El Problema del viajante de comercio ............................................................................... 65 6.4.5 El problema de asignación cuadrática ............................................................................... 66 6.5 Buenas y malas formulaciones de un modelo de PE........................................................... 67 6.6 Simplificación de un modelo de Programación Entera ....................................................... 67 6.6.1 Más Restricciones y Más Ajustadas .................................................................................. 67 6.6.2 Simplificar una restricción entera con otra restricción ........................................................ 68 6.6.3 Restricciones discontinuas ................................................................................................ 69 6.7 Información económica y sensibilidad en los modelos de PE ............................................ 69 7 PROGRAMACIÓN NO LINEAL ............................................................................................... 70 7.1 Óptimos locales y globales ................................................................................................... 70 7.2 Programación Separable ....................................................................................................... 71 7.3 Cómo convertir un modelo no separable en un modelo separable .................................... 73 8 PROGRAMACIÓN ESTOCÁSTICA ........................................................................................ 74 8.1 Introducción ........................................................................................................................... 74 8.2 Formulación de Problema Estocástico................................................................................. 74 9 PROCEDIMIENTOS DE RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN MATEMÁTICA.76 9.1 Introducción ........................................................................................................................... 76 9.2 Resolución de problemas de programación matemática mediante el uso de paquetes ya disponibles .......................................................................................................................................... 76 9.2.1 Algoritmos y paquetes ...................................................................................................... 76 Modelos y Métodos de Investigación de Operaciones Página 7 de 190 9.2.2 El uso de la Hoja de Cálculo Excel .................................................................................... 78 9.2.3 El uso de Lenguajes de Modelado .................................................................................... 80 9.3 El uso de paquetes para la resolución de modelos de Programación Lineal ..................... 80 9.3.2 Sistemas de Apoyo en la Decisión y Sistemas Expertos ................................................... 82 9.4 Procedimientos de Resolución de Programación Lineal ..................................................... 82 9.4.1 El algoritmo Simplex ......................................................................................................... 82 9.4.2 Los Métodos del Punto Interior ......................................................................................... 83 9.5 Procedimientos de Resolución en Programación Lineal Entera ......................................... 83 9.5.1 Ramificación y acotación .................................................................................................. 83 9.5.2 Enumeración implícita....................................................................................................... 86 9.5.3 Métodos del plano cortante ............................................................................................... 87 9.6 Procedimientos de Resolución en Programación 0-1 .......................................................... 87 10 OPTIMIZACIÓN COMBINATORIA. INTRODUCCIÓN ............................................................. 88 10.1 Introducción ....................................................................................................................... 88 10.2 Complejidad en la Optimización Combinatoria,. .............................................................. 90 10.2.1 Optimización Combinatoria............................................................................................ 90 10.2.2 Variaciones (con y sin) Repetición, Combinaciones, Permutaciones. ............................. 90 10.2.3 P y NP .......................................................................................................................... 91 10.3 Algoritmos básicos. ........................................................................................................... 92 10.4 Problemas de Optimización Combinatoria ....................................................................... 92 10.4.1 Según su aplicación. ..................................................................................................... 92 10.4.2 Según su clasificación formal. ....................................................................................... 94 10.4.3 Según las soluciones que se buscan. ............................................................................ 94 10.5 Evaluación de Procedimientos. ......................................................................................... 94 11 OPTIMIZACIÓN COMBINATORIA. LA BÚSQUEDA RÁPIDA DE SOLUCIONES ................... 95 11.1 Introducción. ...................................................................................................................... 95 11.2 Procedimientos de Resolución Aleatorios........................................................................ 96 11.2.1 ¿Para qué sirven? ......................................................................................................... 96 11.2.2 ¿Pueden funcionar? ...................................................................................................... 96 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 8 de 190 © JPGS2011 11.2.3 Un procedimiento de generación aleatoria de soluciones............................................... 98 11.3 Algoritmos Heurísticos. ..................................................................................................... 98 11.3.1 Concepto de Heurística ................................................................................................. 98 11.3.2 Procedimientos Constructivos ....................................................................................... 99 12 ALGORITMOS ENUMERATIVOS ......................................................................................... 101 12.1 Concepto de Algoritmo Enumerativo. ............................................................................. 101 12.2 Algoritmo de Enumeración Completa ............................................................................. 101 12.3 Estructura de un algoritmo de exploración completa basado en exploración de nodos.102 12.3.1 Conceptos previos: Nodo ............................................................................................ 102 12.3.2 Estructura general de un procedimiento de exploración completa basado en nodos. ... 103 12.3.3 Funciones de evaluación ............................................................................................. 103 12.3.4 Selección del Nodo a explotar ..................................................................................... 104 12.3.5 Generación de nodos (explosión) ................................................................................ 104 12.3.6 Eliminación (o cierre) de Nodos. .................................................................................. 104 12.4 Otras técnicas de Enumeración basadas en la exploración por nodos. ....................... 105 13 PROCEDIMIENTOS DE MEJORA LOCAL ........................................................................... 106 13.1 Vecindario ........................................................................................................................ 106 13.1.1 Intercambio de 2 elementos ........................................................................................ 106 13.1.2 2-opt ........................................................................................................................... 106 13.1.3 Insertar ....................................................................................................................... 106 13.2 Algoritmos de Mejora basados en Vecindario ................................................................ 107 13.2.1 Nomenclatura .............................................................................................................. 107 13.2.2 Mejora Iterativa Simple. Procedimiento ........................................................................ 107 13.2.3 Descenso Rápido. Procedimiento ................................................................................ 107 13.2.4 Mejora Iterativa Aleatorizada. Procedimiento ............................................................... 107 14 PROCEDIMIENTOS METAHEURÍSTICOS ........................................................................... 108 14.1 Procedimientos de población .......................................................................................... 108 14.1.1 Algoritmos Genéticos .................................................................................................. 109 14.1.2 Scatter Search y Algoritmos Meméticos ...................................................................... 114 14.2 Metaheurísticas de Búsqueda de Entornos .................................................................... 115 Modelos y Métodos de Investigación de Operaciones Página 9 de 190 14.2.1 GRASP ....................................................................................................................... 115 14.2.2 ILS y VNS ................................................................................................................... 116 14.2.3 Recocido Simulado ..................................................................................................... 116 14.2.4 Tabu search. ............................................................................................................... 116 14.3 Metaheurísticas basadas en el reconocimiento de patrones. ........................................ 117 14.3.1 Redes Neuronales ...................................................................................................... 117 14.3.2 Algoritmo de Colonia de Hormigas .............................................................................. 117 15 ALGUNOS EJERCICIOS DE PROGRAMACION MATEMÁTICA .......................................... 119 15.1 ¿Cuánto gana la Empresa? ............................................................................................. 119 15.2 Problema de Corte ........................................................................................................... 119 15.3 Centralita Telefónica ........................................................................................................ 120 15.4 Varios Turnos ................................................................................................................... 120 15.5 Plan de Producción .......................................................................................................... 120 15.6 Localización ..................................................................................................................... 123 15.7 Vinos “DON PEPÓN” ....................................................................................................... 124 15.8 Plan de Producción de Zapatillas .................................................................................... 130 15.9 Problema de Distribución ................................................................................................ 131 15.10 Gestión de Stocks ........................................................................................................ 132 15.11 Equilibrado de Líneas ................................................................................................... 135 15.12 Jorge y Nuria................................................................................................................. 135 15.13 Operación Brisca .......................................................................................................... 139 15.14 Carga de Aviones. ........................................................................................................ 142 16 ALGUNOS EJERCICIOS DE OPTIMIZACIÓN COMBINATORIA .......................................... 146 16.1 Problema del FlowShop de 3 máquinas. ......................................................................... 146 16.1.1 Descripción del Problema ............................................................................................ 146 16.1.2 Definición de la estructura de la solución. .................................................................... 146 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 10 de 190 © JPGS2011 16.1.3 Definición del modo de evaluar la solución. ................................................................. 146 16.1.4 Un procedimiento de generación aleatoria de soluciones. ............................................ 146 16.1.5 Un procedimiento enumerativo de resolución. ............................................................. 146 16.1.6 Un procedimiento heurístico ........................................................................................ 147 16.1.7 Un procedimiento de mejora local ............................................................................... 147 16.1.8 Un algoritmo genético ................................................................................................. 148 16.2 Problema del viajante de comercio. ................................................................................ 148 16.2.1 Descripción del Problema. ........................................................................................... 148 16.2.2 Definición de la estructura de la solución. .................................................................... 149 16.2.3 Definición del modo de evaluar la solución. ................................................................. 149 16.2.4 Un procedimiento de generación aleatoria de soluciones. ............................................ 149 16.2.5 Un procedimiento enumerativo de resolución. ............................................................. 149 16.2.6 Un procedimiento heurístico ........................................................................................ 149 16.2.7 Un procedimiento de mejora local ............................................................................... 150 16.2.8 Un algoritmo genético ................................................................................................. 150 16.3 Problema de Secuenciación JIT ...................................................................................... 151 16.3.1 Descripción del Problema ............................................................................................ 151 16.3.2 Definición de la estructura de la solución. .................................................................... 151 16.3.3 Definición del modo de evaluar la solución. ................................................................. 151 16.3.4 Un procedimiento de generación aleatoria de soluciones. ............................................ 151 16.3.5 Un procedimiento enumerativo de resolución. ............................................................. 152 16.3.6 Un procedimiento heurístico ........................................................................................ 152 16.3.7 Un procedimiento de mejora local................................................................................ 153 16.3.8 Un algoritmo genético ................................................................................................. 153 16.4 Corte de Piezas rectangulares. ........................................................................................ 154 16.5 Quinielas........................................................................................................................... 156 16.6 SUDOKU ........................................................................................................................... 160 16.7 Secuenciando en la Línea de Montaje ............................................................................. 162 17 CASOS ................................................................................................................................. 167 17.1 Asignación de Fechas y Aulas para Exámenes. ............................................................. 167 17.2 La Ruta de Llanes ............................................................................................................ 167 17.3 Sistema Eléctrico ............................................................................................................. 169 Modelos y Métodos de Investigación de Operaciones Página 11 de 190 17.4 Optimización en la Refinería ............................................................................................ 172 17.5 Red de Metro de Valencia ................................................................................................ 175 17.6 Rutas de Distribución ...................................................................................................... 176 17.7 Fabricación de Zapatillas ................................................................................................. 177 17.8 Las Farmacias de Alcudia, Benimodo y Carlet ............................................................... 179 17.9 Planificación Agregada en una Planta de Motores. ........................................................ 181 17.10 REFRESCOS EN FONT DEL RAFOL ............................................................................ 183 17.11 Central Pendiente Dominicana. .................................................................................... 184 18 BIBLIOGRAFÍA..................................................................................................................... 189 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 12 de 190 © JPGS2011 1 MODELOS 1.1 ¿Qué es un Modelo? Se atribuye a Ackoff una de las definiciones más simples de modelo: “Un modelo es una representación de la realidad” Esta definición es llamativa por su simplicidad pero no aclara el porqué de los modelos. Pidd (1996) propone la siguiente definición mucho más completa: “Un modelo es una representación explícita y externa de parte de la realidad como la ven las personas que desean usar el modelo para entender, cambiar, gestionar y controlar dicha parte de la realidad” De esta definición se pueden extraer muchas reflexiones interesantes sobre los Modelos y su uso en Investigación de Operaciones. Los modelos son representaciones (no son la realidad). Desgraciadamente el ser humano tiende a confundir el modelo con la realidad, en un proceso de metonimia o sinécdoque. Así el hombre crea modelos y tergiversa la realidad hasta que esta se adapta. Los modelos son explícitos se construyen manejan y modifican como tales. Y deben ser modelos explícitamente no se pretende hacer creer que los modelos son la realidad. Los modelos son externos, una teoría mental no es modelo hasta que no tiene una representación externa respecto del modelador. En esa presentación externa radica una de las grandes ventajas de los modelos: ponen negro sobre blanco, los pensamientos, los datos, las hipótesis y las intuiciones. En ocasiones este esfuerzo es más que suficiente para reconocer que no hay tal modelo sino un conjunto de prejuicios. Los modelos representan parte de la realidad. Afortunadamente la realidad es siempre más compleja que cualquier modelo por sofisticado que este sea. El modelador discrimina que aspectos son relevantes y cuales no, en función del objetivo que pretende alcanzar. Los modelos los realizan los modeladores. Son su esfuerzo y son su resultado. En muchas ocasiones, al construir modelos, el modelador ha de atender comentarios que le obligan a incorporar este u otro aspecto de la realidad. Entonces el modelador es otro. Si a un pintor le dijeran el color con el que ha de pintar una puesta de sol, no sería su puesta de sol sino la del observador impertinente. En este caso la realidad representada se limita a ser la que quiere ver, manejar controlar o cambiar el que dirige el modelo. En muchas ocasiones una empresa solicita un modelo a un consultor externo para poderlo utilizar internamente. Es uno de los caminos más adecuados para que el modelo no se pueda utilizar, pues siempre habrá matices que podrían haber sido representados de otra manera. Los modelos, al representar externa y explícitamente parte de la realidad, permiten fundamentalmente entender. Una etapa bastante habitual en el ciclo de vida de un modelo exige, tras uno (o varios) intentos de modelado, cambiar de herramienta de modelado, puesto que el mejor entendimiento del problema provoca cambios radicales en la percepción de la realidad. Modelos y Métodos de Investigación de Operaciones Página 13 de 190 La inteligencia de la realidad a través del modelo, permitirá asesorar sobre la oportunidad de cambios en la realidad modelada. Dichos cambios serán más adecuados cuantos más aspectos de la realidad se hayan podido modelar. La gestión de la realidad a través de los modelos es una herramienta de continua, pero no percibida, aplicación de los modelos. La gestión financiera de una empresa es uno de los modos más extendidos de uso de un modelo (la contabilidad) sin una percepción clara del modelo utilizado. Pero también el uso de las técnicas MRP en la gestión de materiales responden a la implementación informática de modelos en función de los cuales se toman decisiones. Incluso la implementación informática es en ocasiones inadecuada porque no se conocía suficientemente bien la realidad (o lo que es peor, el modelo). Por último el modelo, al anticipar resultados permite establecer referencias en función de las cuales medir o controlar el rendimiento de un sistema. 1.2 ¿Para qué sirve un modelo? En atención a lo anterior se pueden definir tres ámbitos de utilidad de los modelos en la Investigación de Operaciones: - Aprender / Entender - Implementar en un ordenador - Tomar decisiones 1.2.1 Aprender / Entender. En primer lugar hay que destacar que la experiencia demuestra que el principal beneficio en la generación de un modelo es el entendimiento que el modelador adquiere del comportamiento de la realidad. Puede ocurrir, y de hecho ocurre con frecuencia, que una vez finalizado el modelo, los objetivos perseguidos inicialmente se hayan alcanzado sin hacer ningún tipo de experimento. “Modelar como proceso puede tener más valor que el modelo en sí mismo” Es habitual que para desarrollar un modelo se tenga que acceder a información a la que nunca se le habría prestado atención. Asimismo es común que la generación de modelo haga aparecer datos “reales y contradictorios” entre diferentes elementos de la realidad. Una vez construido el modelo, se puede utilizar su ejecución para conocer como el sistema actúa y reacciona. Es, por ejemplo, el caso de los “simuladores de vuelo” utilizados para el entrenamiento de los futuros pilotos. Además el modelo, como representación externa y explícita, puede permitirnos conocer errores y fundamentalmente mostrarlos. De tal modo que el responsable del error pueda reconocer sus equivocaciones sin que nadie tenga que “decírselo a la cara” (lo dice el ordenador) Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 14 de 190 © JPGS2011 Por último, dentro de este epígrafe, podemos destacar la utilidad de los modelos como base de discusión. Si el modelo representa la realidad, los gestores de ésta podrán probar las ventajas de sus opiniones sobre el modelo, centrando de este modo la discusión hacia aspectos realizables y rentables. 1.2.2 Implementar en un ordenador. La automatización de procesos exige el modelado previo. Si se desea gestionar la información que genera una empresa, o implementar un sistema de gestión de recursos humanos es necesario realizar un modelo de dicha empresa que comprenda de la manera más eficiente posible toda la información vinculada. Cuanto más general sea el modelo, mayor será la cantidad de empresas a las que se las podrá aplicar el mismo software. Del mismo modo la utilidad de los modelos de Programación de Producción viene justificada, en gran medida, es la capacidad de éstos de ser implementados y resueltos mediante sistemas informáticos que puedan automatizar el proceso de toma de decisión. 1.2.3 Toma de decisiones. Los modelos construidos permiten mediante su resolución ayudar a la toma de decisiones generando soluciones óptimas dado un objetivo establecido. Asimismo pueden ser utilizados para evaluar el impacto de tomar decisiones, antes de tomarlos, y de este modo elegir la que más se ajuste a la solución. 1.3 El Problema, el Cliente y el Concepto de Solución. En general el cliente no conoce suficientemente bien su problema. Si lo conociera no nos solicitaría ayuda para resolverlo. El cliente tiene una “nebulosa” sobre un problema que nosotros ayudamos a precipitar con la construcción del problema. Es por ello que muchos problemas de organización industrial no se resuelven sino que se disuelven. A partir de la descripción del problema, generamos información que podrá ser capturada en forma de datos, dichos datos son analizables de tal modo que generan unos datos conocidos como variables de salida. Esos datos por lo general son inútiles salvo que se transformen en información, y sólo ésta última puede ayudar a resolver el problema. Dat os I nf ormación Problema Solución I nformación Dat os Procedi- mient o Procedi - mient o I nformación Probl ema Solución Modelos y Métodos de Investigación de Operaciones Página 15 de 190 Así pues existen tres significados para la palabra solución en nuestro entorno. Una solución es un conjunto de variables que han adquirido un determinado valor. Una solución es también el programa que generará información a partir de los datos disponibles (generalmente se le denomina solución informática) Y por último está lo que el cliente considera que es la solución a su problema, que básicamente se da cuando el problema desaparece. 1.4 Ciclo de Vida de la construcción de Modelos No existe un método para construir un modelo perfecto de modo directo. En cualquier caso se puede decir que en la definición de cualquier modelo hay tres etapas o hitos básicos que se concretan en: 1. Definir el Problema. Esta fase incluye entender el problema y acordar con el cliente los resultados a obtener. 2. Modelar y Construir la Solución. Esta fase incluye definir el tipo de técnica a utilizar, generar el modelo (implementarlo informáticamente si es el caso) y por último validarlo. 3. Utilizar la Solución. Un modelo perfecto que no se utilice es un modelo perfectamente inútil. Ser capaz de implementar el modelo de tal manera que el cliente lo utilice, y mantener un concreto sistema de actualización son los dos elementos básicos de esta fase. Cualquiera de las etapas citadas exige replantearse siempre la vuelta al principio del proceso. La mejor comprensión de la realidad puede llevar (lleva) a cambiar el tipo (o tipos) de técnica a utilizar para alcanzar el objetivo propuesto. 1.4.1 Definir el Problema 1. Entender el problema: Hay que estructurar el problema para entenderlo. Cualquier herramienta es buena. En ocasiones con esta etapa el problema a resolver queda resuelto. Y en general también ocurre que el primer problema planteado no era el problema real. 2. Acordar con el cliente los resultados a obtener. No significa necesariamente que el cliente deba definir el resultado concreto del trabajo. Pero es interesante conocer si pretende una respuesta del tipo sí o no o una hoja Excel. 1.4.2 Modelar y Construir la Solución 3. Definir el tipo de técnica: La decisión del tipo de técnica que mejor se ajusta al problema puede ser revocada en cualquier instante, pero da por perdido todo el trabajo anterior. Esto incluye el análisis de datos disponibles y resultados requeridos. 4. Generar el modelo: Esta etapa incluye estimar los parámetros para modelar o calcular resultados, además de dar forma física al modelo. En este punto es de destacar la aplicación del principio “Ir paso a paso”. Que implica abordar escalonadamente los diferentes aspectos de la realidad que se pretenden modelar. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 16 de 190 © JPGS2011 5. Validar el modelo: Decidir si el modelo vale para algo, si se puede usar y si el cliente lo encontrará aceptable. Fundamentalmente esta fase exige comprobar que se comporta como se pretendía que se comportara. 1.4.3 Utilizar la Solución. 6. Implementar el modelo: Trabajar con el cliente para poder extraer los máximos beneficios del trabajo realizado. 7. Actualizar el modelo: Es evidente que si la realidad es cambiante el modelo debe adaptarse a las nuevas circunstancias de manera continua si se pretende que siga teniendo utilidad. 1.5 Generación de Soluciones Informáticas para la resolución de Problemas que se abordan mediante métodos matemático. A continuación se ofrece una estructura útil para ayudar a plantear herramientas que resuelven problemas reales de clientes reales. 1) Anál isi s del Pr obl ema. En gener al el cl i ent e no es capaz de def i ni r su pr obl ema. 2) Preproceso de Datos. Analizar los datos disponibles nos permite tener una visión detallada del problema. En general, si los datos no han sido previamente utilizados serán probablemente erróneos. 3) Generar resultados a mano. Si somos capaces de entender el problema seguro que somos capaces de generar una hoja de cálculo donde representar una posible solución, calculada a mano. a. Definir la Estructura de la Solución b. Diseñar e implementar un Representador de una Solución c. Diseño del Método de Evaluación de Resultados (definir cómo se va a presentar que un resultado es mejor que otro) d. Implementar un Evaluador de Solución 4) Comprobar que los resultados son inteligibles por parte del cliente. Y que lo que creemos que es peor es realmente peor. 5) Generar un modelo de programación matemática (preferiblemente lineal). 6) Selección de la Herramienta o Tecnología de resolución adecuada. 7) Definir el Procedimiento de Resolución 8) Diseño de Procedimientos de Resolución para clientes no-expertos. a. Diseño de Estructura de Datos de Entrada Modelos y Métodos de Investigación de Operaciones Página 17 de 190 b. Definir los Procedimientos de Lectura de Datos  Desde base de datos  Desde ficheros de texto  Desde pantalla c. Generar Algoritmos para generar soluciones  Generación aleatoria de Soluciones  Heurísticas Voraces  Diseño de Métodos de Enumeración  Diseño de Metaheurísticas 1.6 Algunos principios para tener éxito en el modelado Aunque como se verá posteriormente existen múltiples tipos de modelos (y por tanto de procesos de modelado) se pueden extraer algunos principios generales útiles en cualquier caso: - Los Modelos han de ser simples, su análisis debe ser complejo - Ir paso a paso - Usar metáforas, analogías y similitudes. - Los datos disponibles no deben conformar el modelo. - Modelar es explorar. 1.6.1 Los Modelos han de ser simples, su análisis debe ser complejo. Al modelar se puede tener la tendencia de trasladar toda la complejidad de la realidad al modelo. Esto, aunque suele agradar al que “mira” el modelo, no es útil para quien lo debe utilizar por dos motivos: un modelo de este tipo es difícil de construir y también es difícil de utilizar. Antes de comenzar el proceso de modelado se debería responder a la pregunta: “¿para qué quiero el modelo?” de un modo concreto. De este modo se puede garantizar que para hacer un simulador de coches, no se pierde tiempo modelando el funcionamiento del turbo cuando lo que se pretende es hacer una herramienta para comprender el funcionamiento del volante. 1.6.2 Ir paso a paso. Es habitual observar que se pretende construir un modelo considerando todos los aspectos simultáneamente. La ciencia avanza paso a paso, los modelos, si pretenden estar dentro de ella, también. Metafóricamente hablando intentar construir un modelo completo desde el principio, puede llevar a que, al intentar dibujar las hojas en los árboles, se olvide que el objeto a pintar era el bosque. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 18 de 190 © JPGS2011 Un corolario de este principio exige “Dividir para Vencer”. Empezar generando pequeños modelos de una parte reducida y determinada del proceso para aumentar la capacidad. Así pues la estrategia recomendable es evitar tener todos los aspectos en cuenta desde el principio. El proceso de modelado puede comenzar aislando una pequeña parte y realizando un modelo detallado, que permita su reproducción en otras secciones. También se puede realizar al principio un modelo muy general, e ir mejorando etapa a etapa la exactitud del mismo. 1.6.3 Usar al máximo metáforas, analogías y similitudes Más que quedar restringido por la realidad tal y como se percibe a primera vista, es interesante abordarla, e incluso modelarla desde otros puntos de vista. El punto anterior se pretenden ilustrar con este ejemplo: Si al hacer un modelo de secuenciación para líneas de montaje en sistemas Justo-a-Tiempo se cae en la cuenta de que el problema matemático es básicamente el problema de repartir escaños de una manera proporcional, se habrá conseguido resolver un problema actual (secuenciación JIT) con herramientas desarrolladas desde el siglo XVIII. Todas las propiedades analizadas para el segundo problema, pueden ser adaptadas para el primero más nuevo. Además, el abandonar de modo explícito la realidad puede simplificar el problema o representarlo de un modo más sencillo. Cualquier plano de metro de cualquier ciudad no representa cada línea y cada estación tal cual es sino que une mediante líneas, los puntos, que representan estaciones, que en casi ningún caso pueden superponerse sobre un plano detallado y proporcional de la ciudad. La representación exacta de la realidad incrementaría la dificultad en la lectura de dichos planos. 1.6.4 Los datos disponibles no deben conformar el modelo. Un fallo común a la hora de plantear un modelo es retrasar el comienzo del modelado hasta que se disponga de los datos. El planteamiento debe ser el contrario, el modelo debe requerir datos, no los datos conformar el modelo. El analista debe desarrollar las líneas básicas sobre el modelo y una vez hecho esto, debiera definirse la estructura de datos necesarios. Si hubiera tiempo lo lógico sería que a la luz de estos resultados preliminares se redefiniera el modelo y por tanto los datos necesarios, y así sucesivamente. Se pueden distinguir tres conjuntos básicos de datos necesarios para crear y validar un modelo: - Datos que aportan información preliminar y contextual. Permitirán generar el modelo. - Datos que se recogen para definir el modelo. Estos datos nos permitirán parametrizar el modelo. - Datos que permiten evaluar la bondad del modelo. Hay que destacar la importancia de que los datos del segundo y el tercer tipo sean distintos, porque en caso contrario el modelo no se habrá realmente validado. Modelos y Métodos de Investigación de Operaciones Página 19 de 190 Una última recomendación respecto a los datos es evitar aquellos que ya están recogidos. Un ejemplo lo ilustrará claramente: Para desarrollar un modelo para la programación de producción puede ser necesario desarrollar submodelos de demandas de los clientes para los productos fabricados. La mayor parte de las empresas guardan esta información en sistemas informáticos que se usan para introducir órdenes y enviar facturas. El modo obvio de recoger la información de la demanda es acudir a estos sistemas, sin embargo hay diferentes motivos por los que esto no se debe hacer así, por ejemplo: los sistemas sólo recogen lo que se vende, no lo que el cliente quiere. Por tanto muchas veces refleja lo que hay en stock, pues se obliga al cliente a comprar lo que existe. 1.6.5 Principio Subyacente: Modelar es Explorar Dado que un modelo es el resultado de intentar representar parte de la realidad para tomar decisiones, implementar o entender, se podría pensar que el proceso de modelar es un proceso lineal. Sin embargo, la experiencia muestra que en el proceso de modelar hay muchas vueltas atrás, cambios de dirección o cambios de perspectiva, incluso es bastante habitual que haya cambios de herramientas. Modelar es explorar la realidad. Y en especial la realidad desconocida. Por ellos siempre aplica el siguiente corolario de la ley de Murphy: Si se consigue que el modelo funcione a la primera, es que se ha errado el problema. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 20 de 190 © JPGS2011 2 TIPOS DE MODELOS. LOS MODELOS DE PROGRAMACIÓN MATEMÁTICA. 2.1 Clasificación de modelos según el efecto de su resolución Shapiro(2001) clasifica los modelos según el efecto de su resultado en Normativos o Descriptivos. Son normativos los modelos matemáticos (a su vez estos se pueden clasificar en modelos de optimización y modelos de resolución mediante heurísticas). Los modelos descriptivos que engloban al resto (Previsión, Data Mining, Simulación, Dinámica de Sistemas,…). 2.1.1 Modelos Normativos Los modelos normativos exigen el planteamiento de un modelo matemático (función objetivo y restricciones). Los modelos cuya estructura se ajusta a algunos de los patrones clásicos para los que es factible la optimización (programación lineal por ejemplo) forman el subconjunto de modelos de optimización. En ocasiones la estructura del modelo impide el uso de algún método de optimización conocido, es por ello que se plantean los procedimientos heurísticos de resolución que, si bien no garantizan óptimos, permiten encontrar soluciones en espacios cortos de tiempo. Es evidente que el trabajo en el primer caso se debe centrar en el proceso de modelado, mientras que en el segundo grupo el esfuerzo se hace en la definición del método heurístico de resolución. En estos apuntes se despliega uno de los tipos de modelos normativos, la Programación Matemática. La Programación Matemática no es el único modo de modelar matemáticamente, ni el único modo normativo de hacerlo. Por ello en los puntos siguientes se hará una presentación de algunos de estos modos. 2.1.2 Modelos Descriptivos. Los modelos descriptivos abarcan todas aquellas técnicas de modelado que no comportan la definición de estructuras matemáticas que definen una solución como la deseable para ser implementada. Entre los modelos descriptivos se pueden citar los modelos de simulación, la teoría de colas e incluso las técnicas de previsión entre otras. Algunos de los modelos descriptivos llevan aparejada una carga matemática importante, mientras que otros no necesariamente su estructura es de tipo matemático. Aunque ello no les quita ni un ápice de formalidad. Por poner un ejemplo los modelos IDEF-0 son altamente formales y estándar, y aunque tienen aspecto de grafo no necesariamente debieran ser incluidos entre los que se denominan Modelos Matemáticos. Modelos y Métodos de Investigación de Operaciones Página 21 de 190 2.2 Modelos Matemáticos Los modelos matemáticos son modelos formales que utilizan el lenguaje de las matemáticas para describir un sistema, expresando parámetros, variables, relaciones. El lenguaje matemático no se limita a la expresión de números y operadores aritméticos que los relacionan. Así por ejemplo la teoría de grafos, ampliamente utilizada en aplicaciones prácticas, es un “subconjunto” de la más general teoría de conjuntos. Los modelos matemáticos se pueden clasificar de múltiples maneras. A continuación se describen algunas que se consideran relevantes. Los modelos pueden ser lineales o no lineales. Si todos los operadores de un modelo son lineales el modelo es lineal, si al menos uno es no lineal el modelo es no-lineal. Aunque hay excepciones los modelos lineales son mucho más difíciles de manejar que los modelos no lineales. En general los modelos no lineales pueden ser linealizados, pero entonces, es posible, que se estén perdiendo aspectos relevantes del problema. Los modelos pueden ser determinista o estocástico. Un modelo determinista es aquel en que cada conjunto de variables en un estado está definido por los parámetros del modelo y por los estados anteriores. Un modelo determinista se comporta siempre igual para un conjunto de parámetros de entrada. En un modelo estocástico las variables de estado se representan por distribuciones de probabilidad, y por tanto el modelo es capaz de recoger aleatoriedad o incertidumbre. Los modelos pueden ser estáticos o dinámicos. Un modelo estático no tiene en cuenta el tiempo, mientras que los modelos dinámicos sí. Los modelos dinámicos se suelen representar con ecuaciones en diferencias o ecuaciones diferenciales. 2.3 Modelos de Programación Matemática La característica común que comparten todos los modos de modelar matemáticamente es que representan la realidad mediante variables y parámetros (y algunos otros artificios como funciones o conjuntos). De este modo la realidad queda cuantificada. Entre ellos están la Programación Dinámica o la Teoría de Grafos. Los modelos de Programación Matemática se distinguen por que representan la realidad mediante funciones. Estas son combinación de variables y parámetros en forma de restricciones y/o funciones objetivo. En general, las restricciones se deben respetar y las funciones objetivo optimizar. Este tipo de modelos matemáticos pertenecen al grupo de los modelos normativos (qué indican el camino a seguir) frente a la categoría de los descriptivos (que describen la situación actual o futura). Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 22 de 190 © JPGS2011 2.3.1 ¿Por qué se llama Programación Matemática? Tres nombres de tres científicos ilustres van asociados al origen del extraño nombre de “Programación Matemática”: Koopmans, Dantzig y Kantorovich 1 . Los tres parecen haber diseñado métodos de Planificación y Programación de Operaciones (producción y transporte) utilizando modelos matemáticos. Se podría decir pues que se lo que se conoce como Programación Matemática fue originariamente un modo de resolver problemas de Programación mediante métodos matemáticos. 1 Al finalizar el primer tercio del siglo XX, Kantorovich, premio Nobel de Economía en 1975, se enfrenta al problema de planificación desde una óptica de Optimización Matemática. Kantorovich, que vivía en la Unión Soviética enfoca cómo combinar la capacidad productiva de una fábrica para maximizar la producción. Para ello utiliza un método de análisis que posteriormente se llamó Programación Lineal. Aunque entonces no tenía nombre. En el año 1951 Koopmans (que fue premiado junto con Kantorovich con el Nobel) edita un libro de título "Activity Analysis of Production and Allocation", (Wiley, New York (1951) ). Dicho libro recoge trabajos que sus autores dicen que son ampliaciones o reducción de trabajos publicados entre 1947 y 1949. En el libro que él edita, Koopmans, escribe dos capítulos relevantes. El capítulo III "Analysis of production as an efficient combination of activities" donde expone un "problema de producción" de manera matemática, y el capítulo XIV de título "A model of transportation" donde planteó el problema de "programar el transporte de barcos" también desde una óptica de optimización matemática. Unos años antes había planteado el problema pero de modo teórico según él mismo indica. De hecho en los artículos indica que estaba influenciado por una corta entrevista que tuvo con Dantzig. El propio Dantzig escribe el capítulo II del citado libro de título: "The programming of interdependent activities: Mathematical Model" que indica que es una revisión de un artículo de 1949. En ese capítulo se distingue la palabra programming que hace referencia a la programación y Mathematical que hace referencia al modelo. Dantzig se concentra en los modelos donde las relaciones son lineales pues tienen unas propiedades interesantes, entre otras que no hay óptimos locales, y de repente en la página 30 los problemas de programación con modelos lineales se convierten en "problemas de programación lineal”. Aparentemente el nombre de Programación Lineal fue sugerido por Koopmans en 1948 en una reunión que tuvieron Koopmans y Dantzig en RAND Corporation. La nota de entrada del capítulo nos recuerda que está "republicando un trabajo de 1949". Porque ya en 1947 Dantzig había diseñado el algoritmo del Simplex, que es un procedimiento eficaz de resolución del problema de programación lineal. Según una historia paralela, el término programación lineal habría surgido porque "programación" era a lo que se dedicaba el departamento en la USAF para el que trabajaba Dantzig. El propio Dantzig , sugiere que inicialmente su método se utilizó para calcular las dietas óptimas. ¿Y Kantorovich? En su autobiografía para el Premio Nobel, Kantorovich escribe: "In 1939, the Leningrad University Press printed my booklet called The Mathematical Method of Production Planning and Organization which was devoted to the formulation of the basic economic problems, their mathematical form, a sketch of the solution method, and the first discussion of its economic sense. In essence, it contained the main ideas of the theories and algorithms of linear programming. The work remained unknown for many years to Western scholars. Later, Tjalling Koopmans, George Dantzing, et al, found these results and, moreover, in their own way. But their contributions remained unknown to me until the middle of the 50s." Modelos y Métodos de Investigación de Operaciones Página 23 de 190 Los modelos de programación cuyas variables tenían relaciones lineales, tenían la interesante propiedad de no tener óptimos locales… por lo que la Programación Lineal se convirtió pronto en un lugar común de encuentro de modeladores y solucionadores. 2.3.2 Una clasificación de Modelos de Programación Matemática. Una clasificación de los modelos de programación matemática podría tener en cuenta las siguientes características: - Estructura objetivos y restricciones (lineal o no lineal) - Características de las Variables (Reales, Discretas -Enteras-, Binarias) - Certidumbre de los Parámetros (Ciertos e Inciertos) - Número de Objetivos (Ninguno, Uno o más de Uno) - Número de Restricciones (Ninguna, Más de Cero) El objeto de esta descripción no es establecer una perfecta clasificación de todos los modelos de programación matemática. En realidad se pretende fijar un marco que sirva de referencia en el contexto de estos apuntes. 2.3.2.1 Programación Lineal Entre los tipos de modelos de uso más generalizado en Programación Matemática se encuentra la denominada Programación Lineal. Ésta, en su forma más básica, consiste en un conjunto de variables reales, que mediante combinación lineal de parámetros ciertos, permite establecer un objetivo y restricciones lineales. Los fundamentos matemáticos de los modelos lineales se encuentran en la teoría de las desigualdades lineales desarrollada en el siglo XIX como se puede leer en (Poler 2001). Aunque se encuentran precedentes en distintos campos (teoría de juegos, definición de dietas, problemas de transporte...) la formulación y resolución general de los problemas de Programación Lineal fue realizada en el proyecto SCOOP, lanzado en 1947 por el ejército del aire de los Estados Unidos de Norteamérica, dando lugar al algoritmo denominado Simplex expuesto inicialmente por Dantzig en 1947. En menos de 10 años la Programación Lineal experimento un fuerte desarrollo con trabajos que abordaron, entre otros temas, la degeneración, la dualidad y las formas compactas. Actualmente es posible encontrar en el mercado, incluyendo aplicaciones gratuitas en internet, aplicaciones comerciales para la resolución eficiente de problemas de Programación Lineal (CPLEX, XPRESS, LINDO, QSB...), siendo un avance significativo de los últimos años el desarrollo de paquetes que facilitan la introducción del modelo y la integración de éste con los Sistemas de Información de la empresa. La mayor parte de estos paquetes utilizan (o han utilizado) el denominado método Simplex. Dicho método, aunque computacionalmente ineficiente, tiene la ventaja docente de ser metódico y que permite explicar, mediante el propio método, algunos conceptos como precios-sombra o costes reducidos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 24 de 190 © JPGS2011 Hasta finales de la década de los 80 del siglo XX no surgen como alternativa válida los denominados métodos del punto interior. El menor coste computacional de este tipo de algoritmos hace que su implantación en los paquetes comerciales sea creciente. Por último parece necesario destacar que aunque para el observador no experimentado la exigencia de linealidad puede parecer excesivamente restrictiva, la realidad es que un gran número de problemas reales puedan ser modelados con esa consideración (Williams, 1999). La ventaja de los Programación Lineal frente a la Programación No-Lineal es que para esta no se conocen modelos generales de resolución eficientes. Curiosamente el trabajo que se desarrolla en resolución de Programación No- Lineal está colaborando en mejorar la eficiencia de la Programación Lineal. 2.3.2.2 Programación Lineal Entera Si a alguna de las variables de un problema lineal se le impone la condición de integridad el problema pasa a ser de Programación Lineal Entera (Mixta si todas no son variables enteras). La condición de integridad puede venir impuesta, entre otros motivos, por el imposible fraccionamiento de determinados recursos. Uno de los procedimientos más efectivos para la resolución de este tipo de problemas se fundamenta en el concepto de ramificación y cota. Desgraciadamente aunque la lógica de este procedimiento es eficaz, conduciendo necesariamente al óptimo, el coste computacional en algunos problemas es, aún hoy en día, excesivo. Otro procedimiento para la resolución de estos problemas se basa en los métodos de planos cortantes, aunque este método levantó grandes expectativas por ahora no han fructificado de modo eficiente. Una variante especial de los problemas de Programación Lineal Entera lo constituyen aquellos donde algunas variables son bivalentes. El uso de este tipo de variables tiene su origen en la representación de aquellas decisiones que sólo admiten dos valores, pero también aquellos problemas que exigen restricciones de tipo lógico. La pretensión de resolver estos problemas de modo eficiente ha dado lugar a métodos como el de enumeración implícita o técnicas más generales de enumeración como las descritas en (Kauffmann y Henry-Labordere, 1976). Hay que destacar la existencia de algunos tipos especiales de problemas con variables bivalentes, que se abordan mediante métodos específicos de resolución, óptimos en algunos casos y más eficientes por haber sido desarrollados ex profeso. Algunos de estos problemas son los de cubrimiento, asignación, partición, mochila y rutas. (Williams, 1999) 2.3.2.3 Programación Estocástica Si a los problemas de Programación Matemática (en general) se les incorpora la incertidumbre en los parámetros, esta incertidumbre se puede abordar mediante la denominada Programación Estocástica. Una variante de la misma especialmente interesante es la Programación Lineal Estocástica, que puede ser resuelta de modo óptimo, aunque con un coste computacional elevado. Modelos y Métodos de Investigación de Operaciones Página 25 de 190 Uno de los mecanismos para abordar la incertidumbre en los datos es el uso de los denominados escenarios. Estos constituyen un posible conjunto de valores para los parámetros. Cada uno de estos escenarios pueden tener una probabilidad asociada aunque no necesariamente. (Dembo, 1991). Existen diferentes modos de formular mediante un problema de Programación Lineal un Problema Estocástico aunque básicamente consiste en obtener una decisión para el instante actual teniendo en cuenta los escenarios futuros. De este modo la decisión a tomar no será óptima, en general, para ninguno de los escenarios aunque sí para el conjunto de ellos. Este modo de plantear y resolver el problema tiene un elevado coste computacional pero se puede abordado mediante descomposiciones y computación en paralelo con índice de paralelización elevado. Otro modo de abordar la estocasticidad en los parámetros es obtener el óptimo para cada escenario y comparar el valor que esta decisión tendría para el resto de escenarios, eligiendo como decisión definitiva la más buena, o la menos mala o cualquier otro mecanismo que se considere oportuno. 2.3.2.4 Programación No-Lineal Si a los modelos de Programación Lineal se les elimina el requerimiento de que la función objetivo o las restricciones sean lineales, se obtienen modelos de Programación No-Lineal. La eliminación del requerimiento de linealidad se suele fundamentar en la estructura no lineal del objeto, o parte de él, a modelar. Sin embargo muchas de las circunstancias aparentemente no lineales pueden ser linealizadas sin pérdida de su significado. El motivo de la aparente obsesión por la linealidad se basa, fundamentalmente, en la falta de eficacia en la obtención de óptimos mediante el uso de los procedimientos actualmente existentes para la resolución de problemas no-lineales en general. Es conocido que uno de los principales avances en la resolución de estos problemas es el conocido teorema de optimalidad de Kuhn y Tucker que establece las condiciones necesarias de optimalidad en problemas restringidos, aunque no cómo llegar a ellas. Una variante de la programación No-Lineal la constituyen aquellos problemas sin restricciones, para los que el cálculo del óptimo tiene su origen en el desarrollo del cálculo matemático del siglo XVIII. En general se puede admitir que la resolución de grandes problemas de optimización en programación No-Lineal aún hoy no es eficiente. Sin embargo el esfuerzo realizado no es infructuoso, por poner un ejemplo los algoritmos del punto interior fueron desarrollados a partir de conceptos No- Lineales y se han revelado eficientes en los problemas de Programación Lineal. 2.3.3 Los Componentes de un Modelo Matemático Los modelos matemáticos tienen dos componentes básicos: - Datos: Valores conocidos y constantes. - Variables: Valores que se calculan. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 26 de 190 © JPGS2011 Mediante la combinación lineal de los mismos se generan: - Función Objetivo que debe minimizarse o maximizarse - Restricciones que establece límites al espacio de soluciones. Tanto la función objetivo como las restricciones se expresan matemáticamente mediante el uso de variables o incógnitas. Se pretende definir unos valores a dichas variables de tal modo que se obtiene la mejor valoración de la función objetivo mientras se cumplen todas las restricciones. En su formulación básica los modelos matemáticos tienen una función objetivo y una o más restricciones. Sin embargo existen excepciones como: - Múltiples Objetivos - Objetivos No existentes - No existencia de restricciones 2.3.3.1 Múltiples objetivos Un modelo de Programación Matemática exige una única función objetivo que tiene que ser maximizada o minimizada. Esto sin embargo no implica que no se puedan abordar los problemas con múltiples funciones objetivo. De hecho, como se ha comentado, existen diferentes métodos de modelado y posterior resolución que se pueden aplicar en estos tipos de problemas. Numerosos autores relacionan la Programación Multi-Objetivo con la Teoría de la Decisión que se aborda más adelante. Optimización sin restricciones Los problemas de optimización sin restricciones pretenden minimizar (o maximizar) una función real f(x) donde x es un vector de n variables reales. Es decir se buscan un x* tal que f(x * )s f(x) para todos los x cercanos a x * . En el caso de un problema de optimización global, el x* buscado es el que minimiza f para todo el espacio xeR n . 2.4 Modelos de Optimización Combinatoria La Optimización Combinatoria es una rama de la Investigación Operativa que consiste en encontrar la solución óptima a un problema en que cada solución está asociada a un determinado valor (el valor de la solución). El término Combinatoria hace a la rama de la matemática que estudia colecciones finitas de objetos que satisfacen unos criterios especificados, y se ocupa, en particular, del "recuento" de los objetos de dichas colecciones (combinatoria enumerativa) y del problema de determinar si cierto objeto "óptimo" existe (combinatoria extremal). Modelos y Métodos de Investigación de Operaciones Página 27 de 190 El término Optimización hace referencia a este segundo aspecto de la búsqueda del mejor valor. En muchos de esos problemas la búsqueda exhaustiva no es factible y por la estructura de los problemas tanto no es posible. La optimización combinatoria actúa en el campo de los problemas de optimización en los que el conjunto de soluciones factibles es discreto (o reducible a discreto). En algunos casos se tiende la tendencia a asumir que la OC es la programación lineal entera con variables binarias. La búsqueda ( o la definición de la existencia) de un óptimo para tipos específicos de problemas ha dado lugar a una cantidad considerable de algoritmos que son capaces de resolver casos específicos en tiempo polinomial. Los problemas de optimización combinatoria tratan de encontrar la mejor solución de entre un conjunto de ítems discreto y por tanto finito. En principio cualquier algoritmo constructivo o de búsqueda podría encontrar la solución optima, pero no necesariamente tiene porqué garantizarla. En aquellos casos en que el problema parece resistirse a ser resuelto se suele abordar el problema de diferentes maneras: - Algoritmos que funcionan bien generalmente para tamaños pequeños de problemas. - En ocasiones hay problemas que su versión “aplicada” no presenta las características del worst-case. - Algoritmos de aproximación que son capaces de dar soluciones muy cerca del óptimo. 2.5 Otros Modos de Modelar. Otros Modos de Pensar. En el punto anterior se ha planteado una visión general de la Programación Matemática entendida en un sentido restrictivo. A continuación se revisan algunas técnicas diferentes en el fondo o en la forma. La lista, que no es exhaustiva ni las agrupaciones consideradas son necesariamente disjuntas, incluye las Teorías de Redes, de Colas y de Juegos, la Simulación, la Programación Dinámica. No se consideran, aunque son también importantes, modos de modelar como la Previsión (Companys, 1990), la Teoría de Decisión (White, 1972), (Raiffa, 1970) o Teoría de Juegos (Binmore, 1994), o aplicaciones concretas como modelos de Inventario (Axsäter, 2000) o de Reemplazo (Figuera y Figuera, 1979) 2.5.1 Teoría de Grafos Según (Kauffman, 1972) la Teoría de Redes es una rama de la teoría de conjuntos basada en los trabajos de Köning. En aquel momento, era para el autor, la rama de la teoría de conjuntos con más futuro. De hecho aporta una ayuda eficaz para modelar y resolver determinados problemas de carácter combinatorio que aparecen en los más diversos dominios(Companys, 2003). La teoría de redes, o de grafos, incluye un modo de representar y soporte matemático para resolver. El modo de representar es intuitivo en su forma más simple, por su relación con la realidad física, de Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 28 de 190 © JPGS2011 determinados tipos de problemas. El soporte matemático es especial para cada tipo de problema, que suelen ser complejos problemas de combinatoria, permite resolverlo de modo más simple que al utilizar la Programación Matemática convencional. Es relativamente sencillo traducir un modelo de red a un modelo de Programación Matemática, es un poco más complicado (aunque posible) hacer la traducción a la inversa. La decisión sobre qué modo de modelar se debe utilizar, debe tomarla el modelador teniendo en cuenta la necesidad de transmitir el modelo (donde la teoría de grafos es claramente superior), la disponibilidad de herramientas y la realidad concreta a modelar. En líneas generales se puede decir que los componentes básicos de la denominada Teoría de Grafos son los vértices (o nodos o puntos) y los arcos que los unen. A un conjunto determinado de vértices y arcos se le denomina “red”. A partir de estos conceptos se desarrollan otros como camino, corte, árbol, etc. Algunos de los principales modelos que de este modo se plantean son: los problemas de arbol mínimo, de camino mínimo, de flujo máximo o de permutación óptima. El poder reducir un problema real a un problema clásico de grafos implica la posibilidad de conocer métodos eficaces de resolución, para muchos de ellos (siempre dependiendo del tamaño y la complejidad). Algunos de los problemas de Gestión Industrial que se pueden abordar con estos métodos son la programación de Proyectos, la Gestion de Inventarios, Diseño de Rutas, Secuenciación y Temporización.... 2.5.2 Programación Dinámica Si antes se destacaba que el nombre de Programación Matemática no era muy representativo de la propia técnica, el de Programación Dinámica no lo mejora. Cuando el nombre Programación Matemática había adquirido cierto auge Bellman planteó en la década de los 50 (del siglo XX) la herramienta denominada Programación Dinámica, a través de su libro del mismo título para la resolución de problemas de carácter secuencial (inicialmente económicos pero también físicos y matemáticos). El fundamento de este procedimiento se encuentra en el principio de optimalidad que Bellman enunció del siguiente modo: “Una política es óptima si en un periodo dado, cualesquiera que sean las decisiones precedentes, las decisiones que queden por tomar constituyen una política óptima teniendo en cuenta los resultados precedentes” La Programación Dinámica es un método de optimización de los sistemas o de su representación matemática, sobre la que se opera por fases o secuencias. (Kauffman, 1972). El método de resolución denominado Programación Dinámica consiste en buscar las subpolíticas óptimas que comprendan cada vez más fases unitivas (Denardo, 1982), hasta encontrar la, o las, políticas óptimas. En ciertos problemas los cálculos se vuelven mucho más simples cuando se hace la optimización en un cierto sentido privilegiado o a partir de cierta fase(Companys, 2002). Modelos y Métodos de Investigación de Operaciones Página 29 de 190 Las variables utilizadas pueden ser discretas o continuas. Además los parámetros pueden ser deterministas o estocásticos. Cuando el futuro es aleatorio (parámetros estocásticos) la optimización de la esperanza matemática del valor total sólo puede llevarse a cabo en un sentido, remontándose desde el futuro hacia el pasado. (Kauffman, 1972). Si al concepto de Programación Dinámica se le une la consideración de los métodos de Ramificación y Corte, aparece el concepto de Programación Dinámica Acotada, por el cual se utilizan cotas en un esquema de Programación Dinámica, limitando el número de vértices que se pueden almacenar (Bautista, Companys, and Corominas, 1992) 2.5.3 Teoría de Colas Se admite como inevitable la existencia de colas en los sistemas en que las entradas y/o el servicio se producen a intervalos irregulares. La teoría de colas es un método de modelado que describe el comportamiento de las mismas. La primera aplicación práctica de la que se tiene constancia, y con la que se inicia la investigación en este campo es el trabajo de Erlang a principios del siglo XX. Uno de los resultados más conocidos de la teoría de colas es la denominada fórmula de Little que relaciona la longitud de la cola con el tiempo de espera y el ritmo de entrada al sistema. Los resultados más habituales de la teoría de colas se refieren a sistemas de una etapa con entradas y salidas siguiendo distribuciones exponenciales. Sin embargo más útiles en múltiples ocasiones son las redes de colas con tiempos de los procesos no necesariamente exponenciales. Un excelente resumen de la situación actual de la teoría de colas se puede encontrar en (Gross, Shortle, Thomson, and Harris, 2008). Los desarrollos en teoría de colas han ido extendiendo sus soluciones tanto para diferentes tipos de entradas como para redes de colas. Es de destacar el especial interés que la teoría de colas tiene en el diseño de elementos estructurales de la denominada Nueva Economía (servidores web, procesadores compartidos...) 2.5.4 Dinámica de Sistemas Se atribuye a Forrester el inicio del desarrollo de la denominada Dinámica de Sistemas. Esta tiene su relación directa con el Enfoque de Sistemas visto en el apartado dedicado a los Fundamentos Organizativos de la Organización de Empresas. Forrester desarrolló un conjunto de herramientas y una aproximación a la simulación que se ha llegado a conocer como dinámica de sistemas, mediante la cual se puede llegar a comprender como la estructura de un sistema humano y sus políticas de control operan. Mostró también el valor que tienen los modelos explícitos que combinan procesos de negocio y estructura organizacional. En (Pidd, 1996) se sugiere que el precursor de esta idea es Tustin que en 1953 publicó un trabajo titulado “El mecanismo de los sistemas económicos”. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 30 de 190 © JPGS2011 Las herramientas de la Dinámica de Sistemas pueden utilizarse de diferentes maneras. La aproximación básica suministra una manera de observar sistemas humanos, haciendo especial hincapié en la importancia de algunos aspectos estructurales como el control por retroalimentación. La consideración de esta circunstancia aporta interesantes resultados incluso sin el uso de herramientas informáticas. Otro modo de utilizar la dinámica de sistemas es realizando simulaciones mediante ordenador, que permitan entender mejor el funcionamiento de otro sistema. Por último, la Dinámica de Sistemas se puede utilizar para mejorar el diseño de un sistema, evaluando mediante simulación su comportamiento. 2.5.5 Simulación Asociada en ocasiones a la teoría de colas y heredera de la dinámica de sistemas se encuentra otra herramienta de los métodos cuantitativos como es la simulación. El incremento de la capacidad de cálculo de los ordenadores, así como sus crecientes capacidades gráficas hace que esta última esté experimentando una aplicación creciente en el modelado de flujos de materiales, e incluso de información. Esta aplicación creciente ha supuesto, en algunos casos, el abandono de las herramientas analíticas, que requiere un esfuerzo conceptual que aparentemente la simulación no requiere. Hay que destacar, en contra de esta opinión que la simulación bien aplicada exige un importante esfuerzo para garantizar la validez de resultados. De hecho, dado que la simulación es comparable al análisis por experimentos, al hacer una simulación hay que hacer frente a los mismos problemas que hay que afrontar cuando se hace experimentación convencional (incluyendo diseño experimental y análisis estadístico). De este modo el uso de la simulación no reduce el esfuerzo a realizar, sino que resuelve problemas que la teoría de colas analítica no es actualmente capaz de abordar(Gross and Harris, 1998). Pero no sólo la simulación de eventos discretos está disponible (aunque es con mucho la más utilizada en el terreno práctico) sino que la simulación basada en agentes y o la simulación mediante Dinámica de Sistemas tiene su importante utilidad al modelar otros conceptos. 2.5.6 Teoría de Juegos Algunos problemas de toma de decisión se plantean bajo la forma de un juego, donde se trata de tomar una o varias decisiones, frente a uno o varios decisores cuyas reacciones a las decisiones tomadas se conocen poco o nada. La teoría de juegos trata de establecer como debiera comportarse racionalmente un individuo ante la ignorancia del comportamiento del adversario cuando se conocen las reglas de la competencia aceptadas por los participantes. (Kauffmann, 1972) Para (Kauffman, 1972) la teoría de juegos se desarrolla a partir de los trabajos de Borel en 1921 y Von Neumann en 1924, aunque la teoría ya había preocupado en diferentes formas a Kepler, Huyghens, Pascal, Fermat y Bernouilli entre otros. Von Neumann y Morguestern en su primera obra sobre Teoría de Juegos, investigaron dos planteamientos distintos: el estratégico o no cooperativo y el cooperativo. La complejidad del primer Modelos y Métodos de Investigación de Operaciones Página 31 de 190 problema planteado hizo que se limitaran a los juegos estrictamente competitivos o de suma nula, donde los dos jugadores (sólo dos) tienen intereses diametralmente opuestos. La segunda parte (el juego cooperativo) aún fue más complejo y por tanto se limitaron a clasificar los modelos de formación de coaliciones, (Binmore, 1994) Nash afrontó dos de las barreras que Von Neumann y Morgenstern se habían autoimpuesto. Sobre los juegos no cooperativos estableció la idea del equilibrio que aparece cuando la elección estratégica de cada jugador es la respuesta óptima a las elecciones estratégicas de los otros jugadores, con lo que no es necesario restringirse a los juegos de suma cero. Respecto a los problemas cooperativos Nash rompió con la idea de que los problemas de negociación son indeterminados y ofreció argumentos para determinarlos. (Binmore, 1994) Actualmente la teoría de juegos, lleva aparejado un aparato matemático cada vez más complicado. En cualquier caso su modo de trabajo puede ser, y es, de gran utilidad en el análisis la toma de decisiones con la presencia de otros decisores. 3 PROGRAMACIÓN MATEMÁTICA 3.1 La construcción de un Modelo de Programación Matemática. Es importante destacar que en la metodología que se explica a continuación el camino es de continuas idas y vueltas. Así lo normal es que una vez terminada una fase haya que volver a una etapa anterior y de este modo volver a comenzar. Conjuntos de Datos, y por tanto de Índices Conocer los tipos de datos de los que se dispone permite establecer, conjuntos y con ellos índices. Muchos de los que se definen en esta fase no son estrictamente necesarios, y otros se incorporarán en fases siguientes. Parámetros. Representar los conjuntos de datos mediante Símbolos con subíndices, permitirá comenzar la conceptualización del problema. Generalmente en esta fase aparecen nuevos índices, o incluso se establecen parámetros que luego se comprobará que son variables. Objetivo. Establecer la función objetivo en forma de lenguaje natural (Maximizar el beneficio esperado o minimizar el ratio de aprovechamiento) permite empezar a definir variables que se pueden denominar de control. No es importante en una primera fase establecer el objetivo de modo lineal, simplemente con representarlo ya es suficiente. Variables de Control De la etapa anterior se han definido las variables que configurarán la función objetivo. Dichas variables deben ser explícitamente representadas. En general, aunque algunos autores opinan lo contrario, se puede decir que las variables en la función objetivo no son las decisiones que se toman, sino los efectos de dichas decisiones, es por ello que se ha preferido denominarlas de control. Restricciones. El modo más habitual de generar restricciones es expresarlas verbalmente y cuantificarlas posteriormente. Lo habitual es que surjan nuevos datos, parámetros índices y Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 32 de 190 © JPGS2011 variables. En principio tras fijar las restricciones evidentes se observará que las variables de decisión y las de control no están conectadas. Las conexiones darán lugar a nuevas restricciones. Variables de Decisión. En general al plantear la función objetivo no se está plasmando las decisiones que en realidad se quieren tomar. Dichas variables deben ser también reflejadas. Modelo Completo La construcción del modelo completo (funciones objetivo más restricciones) dará generalmente nuevos índices, parámetros, variables y restricciones. Validación La validación del modelo exige su formulación y su resolución. La importancia de esta etapa exige un apartado entero (el siguiente). La validación suele exigir recomenzar el proceso de validación desde el principio. Por último convendría recordar que el buen modelo, su resolución y el análisis de los resultados, generalmente dará una mejor comprensión del problema, cerrando de este modo el círculo de esta metodología. 3.2 Implementación de un Modelo de Programación Matemática (Validación) Un modelo matemático sobre el papel es en general consistente. Ahora bien su introducción en un formato que permita resolverlo adecuadamente nos informará de nuevos errores, que lleva Antes de prestar demasiada atención a la solución obtenida tras resolver un modelo que se haya construido, se debe comprobar que se ha modelado lo que se pretendía. Asumiendo que no hay errores de tipo sintáctico (generalmente los paquetes informáticos los detectan) existen tres salidas que en general se recorrerán sucesivamente: que el modelo sea incompatible, que el modelo no esté acotado y que el modelo sea resoluble. Aún llegado este punto caben dos situaciones, que el modelo sea resoluble pero sus soluciones no sean coherentes con el problema, y por último que el modelo sea resoluble y sus soluciones sea coherentes. Si se alcanza este punto, el modelo está listo para ser utilizado. 3.2.1 Modelo de sintaxis errónea. El error más típico es que la función objetivo no sea una fórmula sino un conjunto de fórmulas. Una manera de detectarlo es comprobar que ningún índice en las variables de la función objetivo se queda sin su sumatorio correspondiente. Otro error típico se da en las restricciones. Todos los índices de todas las variables utilizadas deben estar en la expresión de la restricción. Ya sea en forma de sumatorios, ya sea en forma del rango en el que aplica la restricción (el para todo i). Utilizar los paquetes de resolución para detectar problemas es lo más razonable en tiempo. Un modo de utilizarlos eficientemente es pedirles que escriban el modelo en formato .lp Modelos y Métodos de Investigación de Operaciones Página 33 de 190 De este modo es posible visualizar si lo que hemos escrito en formato compacto se parece a lo que pretendíamos obtener en modo desarrollado. 3.2.2 Modelo incompatible Un modelo no tiene solución si existen restricciones contradictorias. Por ejemplo, las siguientes restricciones harían el modelo irresoluble: 2 1 2 1 2 1 > + s + x x x x En la práctica esta situación no será tan evidente. El programa intentará resolver hasta que detecte la incompatibilidad. En algunos casos la indicará, aunque no es lo habitual. En pocas ocasiones la incompatibilidad será debida a que el problema real no tiene solución, aunque en la mayor parte de casos es debido a que se ha formulado mal el problema. Un modo lógico de buscar las restricciones que generan la incompatibilidad es ir anulándolas. Hasta encontrar aquella (o aquellas) que al anularlas permiten que la solución exista. Hay que tener en cuenta que en general las restricciones son incompatibles a pares, por lo tanto no necesariamente la restricción anulada es la que está mal. Podría ser otra restricción que use las mismas variables. En pocas Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 34 de 190 © JPGS2011 ocasiones, las incompatibilidades se producen por triangulación de restricciones (en pocas ocasiones pero ocurre). Otro mecanismo para encontrar las incompatibilidades es generar una solución obvia (o real). Al obligarla, introduciéndola como restricciones de igualdad, el modelo debiera soportarla. Si no lo hicieran las restricciones violadas serán las incompatibles. 3.2.3 Modelos no acotados Se dice que un problema no está acotado si su función objetivo se optimiza cuando alguna variable tiende a infinito. La solución obtenida en este caso, si puede ayudar a reconocer el error de formulación. Mientras que en un modelo incompatible el problema es la existencia de demasiadas restricciones, en un problema no acotado faltan restricciones. Generalmente restricciones físicas obvias que han sido olvidadas o relaciones entre variables no consideradas. Los modelos no acotados tienen un “dual” incompatible, aunque la inversa no es siempre cierta. Por eso muchas herramientas resuelven inicialmente el dual. 3.2.4 Modelo Resoluble Cuando un modelo no es incompatible y es acotado se conoce como un modelo resoluble. Cuando se obtenga la solución óptima de un modelo resoluble lo primero que hay que hacer es comprobar que ésta es lógica. Si no lo fuera el modelo sería erróneo. El sentido común es el mejor aliado en este caso. Para comprobar que los resultados son lógicos existen múltiples maneras, y cada modelador tiene su estructura de trabajo. Una que da buenos resultados es modificar de manera sistemática los costes en la función objetivo (o las limitaciones en las restricciones) para comprobar que se puede modificar la solución modificando los coeficientes. Hay que destacar el valor de la optimización en la validación del modelo. Cuando se trata de maximizar (o minimizar) alguna cantidad, alguna restricción debe ser utilizada completamente. Es interesante, cuando se trata de un modelo nuevo, probar con diferentes objetivos, porque dan relevancia a diferentes restricciones y, por tanto, se pueden ir comprobando todas. Si el resultado es lógico deberíamos compararlo con un resultado real, podría ser que el modelo fuera demasiado restrictivo (aunque no llegue a ser incompatible) o demasiado laxo (aunque no llegue a ser no acotado) En muchos casos, este análisis ya está conduciendo hacia un mejor entendimiento del problema, y por tanto, el esfuerzo (aunque sin solución) ya está siendo eficaz. De la exposición anterior se desprende de modo natural que el proceso modelado-validación debe ir repitiéndose hasta converger en un modelo que represente de modo suficientemente acertado la realidad. Y este proceso es muy útil para entender la propia realidad modelada. Modelos y Métodos de Investigación de Operaciones Página 35 de 190 3.3 Características de un buen modelo de Programación Matemática Tres son los objetivos básicos que se deben pretender al construir modelos de programación matemática. - Que sea un modelo fácil de entender - Que sea un modelo cuyos errores sean fáciles de detectar - Que sea un modelo de fácil resolución 3.3.1 Facilidad para entender el modelo A menudo es posible construir un modelo compacto y realista donde diferentes variables aparezcan de modo implícito y no de modo explícito. Sin embargo construir este tipo de modelos conduce habitualmente a soluciones difíciles de evaluar y más aún de interpretar. Incluso, aunque los modelos menos compactos, requieren un tiempo más largo de resolución, este tiempo compensa el que posteriormente habría que invertir en la interpretación de la solución. Es útil también utilizar acrónimos para designar las variables y las restricciones, de tal modo que los resultados se puedan, posteriormente, interpretar más fácilmente. Existe también unas normas de estilo que, no siendo obligatorias permiten entender mejor el modelo, si todo el mundo las utiliza igual. En general se admite que las letras de la h a la l (minúscula) se refieren a índices, que las letras x,y,z son variables mientras que a,b,c,d,m,n,p,q suelen utilizarse como parámetros, o las letras griegas suelen hacer referencia a variables binarias. Aunque no existe ninguna norma escrita, el uso de este estilo simplifica el trabajo que supone entender un modelo. En cualquier caso es imprescindible que no existan homónimos ni sinónimos, esto es, elementos con el mismo nombre y significado distinto, o elementos con distinto nombre y el mismo significado. 3.3.2 Facilidad para detectar errores en el modelo Este objetivo está claramente unido al anterior. Los errores podrían ser de dos tipos: de tecleo (números erróneos o defectos ortográficas) y de formulación. Para evitar los problemas de tecleo es útil utilizar programas de generación de matrices o lenguajes de modelado. Muchos de estos programas tiene procedimientos que detectan errores además de otras funciones relacionadas. 3.3.3 Facilidad para encontrar la solución Los modelos de Programación Lineal utilizan una gran cantidad de tiempo de computación, y por tanto sería interesante construir modelos que sean resueltos de modo rápido. Este objetivo se contrapone en la práctica al primero de los enunciados. En algunos casos es posible reducir el tamaño del modelo mediante procedimientos instalados en el propio editor de modelos. En otros es un ejercicio que debe realizar el modelador. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 36 de 190 © JPGS2011 A continuación se presentan tres métodos que permiten reducir el coste de computación: Uso de Cotas, Unidades de Medida apropiadas y uso de formulación modal. 3.3.3.1 Uso de Cotas Es posible alcanzar reducciones sustanciales en el tiempo de computación teniendo en cuenta las cotas globales (GUB) citadas en el capítulo siguiente. Evidentemente esta reducción será efectiva dependiendo de si el paquete lleva o no incorporadas rutinas que traten estas cotas. 3.3.3.2 Unidades de medida Cuando se modela una situación práctica es importante prestar atención a las unidades en las cuales se miden las cantidades. Si existe una gran disparidad en los coeficientes de un modelo de Programación Lineal se incrementa sustancialmente el tiempo de computación. Es decir, si las restricciones de capacidad se miden en toneladas, los beneficios no se deberían dar en pesetas por kilo. Idealmente las unidades se deberían plantear de tal manera que los coeficientes no nulos estén entre 0.1 y 10. Algunos paquetes comerciales tienen procedimientos para “escalar” automáticamente los coeficientes antes de resolver y después “desescalar” también de modo automático. 3.3.3.3 Formulación Modal En problemas de Programación Lineal grandes, se puede reducir sustancialmente el número de variables utilizando la denominada formulación modal. Si un conjunto de restricciones se ve afectada por un reducido número de variables, se puede considerar como espacio de soluciones el espacio que marcan estas variables y sus restricciones. Y, de este espacio, sólo serían de interés algunos puntos (los vértices). Modelos y Métodos de Investigación de Operaciones Página 37 de 190 4 MODELOS DE PROGRAMACIÓN LINEAL 4.1 Qué es la Programación Lineal? El problema básico de Programación Lineal consiste en minimizar una función objetivo lineal de variables lineales continuas, sujetas a restricciones lineales. Se considera que una función es lineal si es una combinación lineal de las variables consideradas. Una expresión estándar de un problema de Programación Lineal es: , min . . · 0 i i i i j i j i i c x s a a x b x > > ¿ ¿ La región de factibilidad es un poliedro y al menos una solución óptima es un vértice del citado poliedro. 4.2 La importancia de la Linealidad. Los modelos de Programación Lineal exigen que tanto las expresiones de las restricciones como de los objetivos se hagan de modo lineal. Esto quiere decir que no pueden aparecer expresiones del tipo 2 1 x x · , 1 x e ó x 1 3 . Para muchos problemas prácticos esta es una consideración que impide el uso de la Programación Lineal (aunque modos de reconvertir modelos de Programación no-Lineal en modelos de Programación Lineal) La principal razón por la que los modelos de Programación Lineal son preferibles es porque son mucho más fáciles de resolver. Los modelos de Programación Lineal son más fáciles de resolver puesto que en el espacio de soluciones factibles siempre será posible encontrar una solución en un vértice, reduciendo de este modo el espacio de posibles soluciones óptimas a un número finito de las mismas. Desde luego en cada ocasión hay que comprobar que es posible resolver mediante Programación Lineal, es decir, comprobar que el modelo se ajusta suficientemente a la realidad. 4.3 Situaciones que pueden modelarse mediante Programación Lineal. La programación lineal, pese a sus restricciones evidentes por las características de las variables y las funciones, tienen una amplia variedad de aplicaciones. Algunos de los problemas clásicos de Programación Lineal son: - Blending (Mezcla). Este tipo de problemas consideran las decisiones relativas a la mejor generación de uno o varios productos resultado de una mezcla. Quizá el problema más Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 38 de 190 © JPGS2011 antiguo se refiere a la generación de dietas, pero también en la industria de elaborados alimenticios o en la industria petrolera tiene aplicaciones. - Product Mix (Catálogo de Productos). En su versión más básica pretende establecer la proporción de productos a fabricar dados unos recursos limitados y unos beneficios esperados. - Decisión de Inversiones. Otro de los problemas clásicos consiste en seleccionar la mejor cartera de inversiones minimizando riesgos o maximizando beneficios dado un conjunto de limitaciones en los recursos. - Problema del Transporte. Consiste en definir, en una red de suministro, los centros que deben producir, la cantidad a producir y el destino de esta producción, teniendo en cuenta costes de transporte y/o de almacén, además de beneficios esperados y limitaciones en los recursos disponibles. 4.4 Definición de Objetivos Dado un conjunto de restricciones, diferentes funciones objetivo conducirán a diferentes soluciones. Si diferentes funciones objetivo dan lugar a la misma solución es conveniente analizar la estructura del modelo puesto que puede aportar un mejor entendimiento del problema. Algunos de los objetivos que se pueden definir son: Maximizar beneficio, Minimizar costes, Maximizar rentabilidad, Maximizar el número de empleados, Minimizar el número de empleados, Maximizar la satisfacción del cliente y Maximizar la probabilidad de sobrevivir. Podrían definirse muchos otros objetivos. Pero también podría ocurrir que no se quisiera optimizar nada o que se quieran “optimizar” diferentes objetivos de modo simultáneo, teniendo estos objetivos direcciones conflictivas. En cualquiera de estos casos la Programación Matemática es interesante y debe ser utilizada. 4.4.1 Programación Lineal y Programación Multiobjetivo El caso de los Objetivos Simples es el caso más sencillo, generalmente se pretenden maximizar beneficios o minimizar costes. La principal ventaja de estos objetivos es que los diferentes factores se ven reducidos a una unidad común: la monetaria. Si se pretende minimizar costes es importante fijar restricciones adecuadas, puesto que en ocasiones minimizar costes supone no hacer nada. También hay que distinguir de manera adecuada los costes fijos y los costes variables. Si se pretende maximizar beneficios hay que tener en cuenta que estos se pueden obtener a lo largo del tiempo. Incorporar el concepto de tiempo en la evaluación del beneficio se puede hacer de múltiples maneras entre las que destaca el Valor Actual Neto. Modelos y Métodos de Investigación de Operaciones Página 39 de 190 Se ha decidido incorporar la Programación Multi-Objetivo como parte de la Programación Matemática, puesto que conceptualmente pertenece a ella con la característica de la existencia de más de un objetivo (lo que por otro lado es más habitual en la realidad que el caso de un solo objetivo) La optimización Multi-Objetivo tiene sus raíces en los trabajos sobre economía de Edgeworth y Pareto realizados a finales del siglo XIX. El concepto escalar de optimalidad no es aplicable en la Programación Multi-Objetivo, dando lugar al concepto de solución no dominada u óptimo de Pareto (recibe también otros nombres). Este concepto permite la existencia de múltiples soluciones óptimas. Un modo de abordar este tipo de problemas es optimizar la suma ponderada de los valores de cada objetivo. Para algunos autores esto no es posible salvo que se encuentre un factor común como podría ser el coste monetario, aunque esto no es siempre posible. Los pesos deben ser relativos (o valores monetarios o similares) y deben tener en cuenta el rango de acción de cada variable. Al sumar diferentes objetivos, aunque sea ponderados, se está introduciendo un cierto grado de arbitrariedad por lo que será necesario comprobar que el resultado se ajusta a nuestros requerimientos. Uno de los pesos que se pueden utilizar inicialmente son los precios-sombra 2 que en cada resolución dan las restricciones, para un modelo en que todos los objetivos menos uno se han convertido en restricciones. Otro modo interesante de abordar estos problemas es la denominada Programación Multinivel, en la que los objetivos se ordenan por importancia y se van tratando de optimizar uno detrás de otro, fijando en cada caso como restricción que el valor de las funciones objetivos “más” importantes ha de ser igual al óptimo encontrado. Una variante relajada de la programación multinivel es la técnica denominada Goal Programming donde para cada objetivo se establece un valor suficiente (o valor meta), se fija también una penalización para el caso de que no se alcance dicho valor meta, y cada uno de los objetivos pasa al conjunto de restricciones pasando a formar parte de las restricciones. De este modo, al igual que en los casos anteriores el problema pasa a tener un solo objetivo, que es minimizar las penalizaciones ligadas a no alcanzar las metas fijadas. Por último es posible abordar el problema Multi-Objetivo encontrando las superficies que forman los puntos no dominados, siendo el decisor el que selecciona su opción. Una solución no-dominada es aquella que al compararse con cualquier otra solución factible tiene al menos uno de los objetivos mejor. Una primera aproximación consistirá en resolver el problema tantas veces como objetivos tenga el resultado, utilizando en cada ocasión un objetivo distinto. La comparación de los diferentes resultados puede dar una idea de qué solución es mejor. En este caso se puede utilizar la solución para un objetivo como la solución inicial. 2 El concepto de precio-sombra aparece al realizar la denominada interpretación económica de las soluciones. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 40 de 190 © JPGS2011 Por último en ocasiones no existe ningún objetivo real, lo único que se pretende es encontrar una solución válida. En otras ocasiones el objetivo a perseguir no es optimizable (por ejemplo el objetivo “sobrevivir”) El uso de los modelos matemáticos nos puede permitir encontrar soluciones factibles (que cumplen las restricciones si éstas existen). 4.5 Las restricciones 4.5.1 Tipos básicos de Restricciones Las restricciones son expresiones de relaciones entre variables. Dichas relaciones se representan mediante restricciones en la programación matemática, y tienen la formulación de una combinación lineal de variables limitada por un determinado valor. Las restricciones se pueden clasificar en función de la realidad que pretenden representar, o en función de su relación con el resto del modelo matemático. Según su relación con la realidad que pretenden representar se pueden encontrar las siguientes:. - Restricciones de capacidad. Se limita la producción de un conjunto de productos debido a la limitación de alguno de los recursos utilizados en su fabricación. - Disponibilidad de Materia Prima. Se limita la producción de un conjunto de productos según la cantidad de materia prima disponible. - Limitaciones en la demanda del mercado. Se limita la producción de un producto en función de la venta estimada. - Restricciones de Continuidad o Balance de Materiales. En programación multiperiodo, los productos que quedan al final de un periodo son las que hay al principio del siguiente. También si un producto se descompone la suma de las cantidades descompuestas es igual a la cantidad original ( o con un factor de rendimiento). Son también restricciones de continuidad las que conectan los diferentes arcos que entran o salen de un nodo (por ejemplo en problemas de distribución de energía). - Estipulaciones de Calidad. Al hacer mezcla de productos, se pueden establecer restricciones en función de características de calidad de la mezcla y las materias primas. - Relaciones de tipo lógico. En ocasiones las restricciones tienen forma de expresión lógica, “si consumes más de 40kw hay que activar un segundo generador” 4.5.2 La relación de las restricciones con la realidad, con las otras restricciones y con el propio modo de resolver. Las anteriores restricciones forman parte de las relaciones concretas entre las variables de los problemas. También se podrían clasificar las restricciones en función de su comportamiento en el resto del modelo. Modelos y Métodos de Investigación de Operaciones Página 41 de 190 - Restricciones Duras y Blandas - Restricciones Conflictivas - Restricciones Redundantes - Cotas Simples y Generalizadas. - Restricciones de Rango. Restricciones Duras y Blandas Una restricción del tipo: b x a j j j s ¿ elimina, evidentemente, cualquier solución para la que la suma sobre j exceda el valor de b. Esto puede ser considerado como poco realista en algunas ocasiones. Por ejemplo, si b son las horas disponibles quizá, si interesara, habría que contratar algunas horas extras. En este caso la restricción se denomina blanda. Son duras aquellas restricciones que no se pueden violar de algún modo. Un mecanismo para modelar las restricciones blandas podría ser: b u x a j j j s ÷ ¿ donde u es una variable que aparecería en la función objetivo con un coste c·u. De este modo en caso de ser necesario la restricción sería violada aunque penalizando la función objetivo. A la variable u se le puede incorporar un límite de tal manera que no exceda un cierto valor. Si la restricción blanda es una desigualdades mayor o igual se puede aplicar el mismo esquema. b x a j j j > ¿ Si la restricción es una igualdad la restricción debe sustituirse por: b v u x a j j j = ÷ + ¿ tanto u como v se verán penalizados en la función objetivo y en la solución uno de los dos valores debe ser cero. Restricciones conflictivas En ocasiones ocurre que un problema incorpora un conjunto de restricciones que no siempre pueden satisfacer al máximo cada una de las restricciones. En este caso los objetivos serían también conflictivos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 42 de 190 © JPGS2011 El tipo de modelo a que da lugar esta situación es de los que se llaman modelos de “coordinación de objetivos”. Cada restricción es, en este caso un objetivo, que debe cumplirse tanto como sea posible. Por ejemplo, si se pretendiera imponer el siguiente conjunto de restricciones: i b x a i j j ij ¬ = ¿ Y se deseara admitir que no todas se cumplen, se podría modelar del siguiente modo i b v u x a i i i j j ij ¬ = ÷ + ¿ El objetivo sería asegurar que cada restricción se cumple lo máximo posible. Este objetivo se puede modelar, entre otros modos de estas dos maneras a) Minimizar la suma de todas las desviaciones ¿ + i i i v u Min b) Minimizar la máxima desviación i 0 v - z i 0 s.a. i ¬ > ¬ > ÷ i u z z Min Sea cual sea el método elegido podría a su vez ser ponderado si alguna de las restricciones parece más importante. Restricciones redundantes En el caso en que se tenga una restricción del tipo b x a j j j s ¿ y la evaluación ¿ j j j x a sea en cualquier caso inferior a b, se puede decir que la restricción es redundante, o que su precio sombra es nulo, es decir no tiene influencia sobre la función objetivo. Una restricción redundante puede ser eliminada sin afectar al óptimo. Generalmente no es posible eliminar las restricciones redundantes a priori. Además, si el modelo se va a usar de modo continuado, la restricción no se puede eliminar por si nuevos valores de los coeficientes convierten a la restricción en relevante. Hay que tener en cuenta que en la Programación Entera la redundancia no es tan fácil de considerar como en la Programación Lineal, más aún en ocasiones las restricciones redundantes facilitan la búsqueda del óptimo. Modelos y Métodos de Investigación de Operaciones Página 43 de 190 Cotas Simples y Generalizadas Las cotas simples se pueden manejar de manera mucho más eficiente definiéndolas como tales. El motivo, que ya se ha indicado anteriormente es la existencia de una versión revisada del Simplex que maneja de manera especial estas cotas y reduciendo el tiempo total de computación. Las cotas simples tienen las siguientes formulaciones L x U x > s o Las otras cotas que algunos paquetes de resolución consideran son las denominadas Cotas Generalizadas (GUB) U x i s ¿ Restricciones de Rango En ocasiones las restricciones adquieren este formato: ¿ s s j j j b x a b 1 2 Estas restricciones (en realidad son dos) pueden expresarse como tales, pero existe un modo más compacto y que está disponible en muchos paquetes comerciales. Consiste en definir únicamente la restricción ¿ s 1 b x a j j con un rango de (b 1 -b 2 ) Otro modo de expresarlas consiste en transformar las restricciones en otras de este tipo: ( ) 2 1 1 b b u b u x a j j ÷ s = + ¿ siendo estas restricciones más fáciles de manejar por la mayor parte de paquetes y, por tanto, el tiempo de computación para obtener la solución se verá reducido. 4.6 Análisis de resultados 4.6.1 Interpretaciones económicas Para avanzar en esta sección es conveniente plantear un problema de mezcla de productos que sirva como ejemplo. Una empresa fabrica 5 tipos de productos utilizando fundamentalmente 2 tipos de recursos (3 tornos y 2 fresas) Tras deducir el coste de la materia prima cada producto aporta el beneficio expresado en la tabla 2. En la misma tabla se representa los tiempos de operación necesarios para hacer cada producto en cada máquina. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 44 de 190 © JPGS2011 Pr 1 Pr 2 Pr 3 Pr 4 Pr 5 Torno 12 20 - 25 15 Fresa 10 8 16 - - Beneficio unitario 550 600 350 400 200 La semana tiene 6 días de 16 horas. Al acabar el proceso de fabricación es necesario proceder al montaje final de cada producto que exige 20 horas de operario. La empresa dispone de 8 operarios trabajando en cada uno de los dos turnos. El modelo del programa es: [Max] 550 x1 +600 x2 + 350x3 + 400x4 + 200x5 Sujeto a: Tornos 12x 1 +20x 2 +25x 4 +15x 5 s288 Fresas 10x 1 +8x 2 +16x 3 s192 Montaje 20x 1 +20x 2 +20x 3 +20x 4 +20x 5 s384 La solución del problema es x1=12;x2=7,2;x3=x4=x5=0 Con valor de la función objetivo de 10920 euros Ejemplo 1 De la observación de los resultados se conoce que tanto la restricción de tornos como la de Montaje están al límite, mientras que fresas tiene aún capacidad. Pero además existe información de interés que puede salir del modelo. a) ¿Cuánto debieran incrementar su precio los productos 3,4,5 para que fueran rentable fabricarlos (coste reducido)? b) Cuánto vale una hora extra de cada recurso (precio-sombra) Estos resultados pueden obtenerse del análisis del simplex si este método ha sido utilizado como el de resolución. También pueden obtenerse de la resolución del dual que se explica en un punto posterior. En general cualquier paquete informático incorpora un análisis de sensibilidad más que suficiente para conocer tanto los costes reducidos y los precios sombra, como los rangos en los que se deben mover las variables para no cambiar de solución básica. Precios sombra Modelos y Métodos de Investigación de Operaciones Página 45 de 190 El “precio sombra” es el precio máximo que se debería pagar por una unidad extra de un determinado recurso. Estas variaciones son siempre marginales y tienen un cierto límite (incorporar 10000 horas de montaje sería absurdo). Estos límites (rangos) se establecen en la siguiente sección. Los “precios sombra” de varias restricciones no pueden utilizarse simultáneamente pues las variaciones en los términos independientes de varias restricciones simultánemente, no suponen la suma de los precios sombra en la función objetivo. Los precios sombra son un claro ejemplo de costes de oportunidad, concretamente del coste de la oportunidad perdida. Costes reducidos Los “costes reducidos” son el valor que habría que subir el precio (o la contribución marginal) de cada producto para que la variable que lo representa no fuera nula. También este incremento en precio tiene un límite por encima del cual no se van a establecer más variaciones. Otra manera de observar los costes reducidos es como el dinero que se dejaría de ganar si se obliga al sistema a producir al menos un producto del tipo en cuestión. 4.6.2 El Modelo Dual El modelo dual se genera al convertir los objetivos en restricciones y las restricciones en objetivos. Básicamente se trata de crear tantas variables como restricciones se encuentran, y combinarlas linealmente con el término independiente de cada restricción para generar la función objetivo. Al mismo tiempo los coeficientes de la función objetivo pasan a ser los términos independientes de las restricciones, cuya matriz tecnológica es la transpuesta de la original. De este modo el anterior problema queda. [Min] 288y 1 +192y 2 +384y 3 sujeto a: 12y 1 +10y 2 +20y 3 >550 20y 1 +8y 2 +20y 3 >600 16y 2 +20y 3 >350 25y 1 +20y 3 >400 15y 1 +1y 3 >200 Al resolver el modelo dual se obtiene la siguiente solución para las variables: y 1 =6,25 y 2 =0 y 3 =23,75 Ejemplo 2 Esto significa que si aumentáramos en una unidad el número de horas disponibles de torno el incremento en el beneficio de la empresa sería de 6,25 €, mientras que sería nulo si aumentáramos las horas de fresa. Este concepto es el denominado Precio Sombra. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 46 de 190 © JPGS2011 4.6.3 Análisis de Sensibilidad Al resolver un modelo lo importante generalmente no es conocer los valores solución de cada una de las variables, o la función objetivo sino la política a la que conduce el modelo. Así en el modelo de ejemplo lo que importa es que se fabrican productos de tipo 1 y tipo 2 de tal manera que utilizan a plena capacidad los recursos torno y mano de obra. Si un modelo es estable ligeras variaciones de los coeficientes no variarán esta política, sino únicamente las cantidades concretas. Rangos en las restricciones En el apartado anterior se han descrito los “precios sombra” como útiles para predecir el efecto de pequeños cambios en el valor de la restricción. Se ha indicado también que estos cambios son así interpretables dentro de un determinado rango. Conocer los rangos en los que se puede mover una restricción sin alterar gravemente la solución, sirve para realizar análisis de sensibilidad. En ocasiones los valores de las restricciones (y otros coeficientes) no son estrictamente conocidos, pero se la solución no variara (conceptualmente) con variaciones en los coeficientes dentro del rango, es útil conocer éste, para saber si hay que invertir un mayor esfuerzo en conocer exactamente el dato. Cuando los rangos son amplios se puede asumir que un modelo es estable. Rangos en el objetivo A menudo es útil conocer los efectos de cambios en los coeficientes de la función objetivo en la solución óptima (para ello se han definido los costes reducidos). Análogamente a las restricciones se pueden definir rangos de variación donde no existirán variaciones en la estructura de la solución. La misma aplicación en análisis de sensibilidad que los rangos en las restricciones pueden tener los rangos en los objetivos. Además de que aquí no solo variará la “política” de la solución sino tampoco la cantidad exacta. 4.6.4 Modelos Estables En muchas ocasiones es más interesante encontrar soluciones estables que soluciones óptimas. Las soluciones estables son aquellas en las que pequeñas variaciones de los coeficientes no alteran la solución final. Esto se da en una gran proporción de casos en los que no se puede cambiar la política de una empresa debido a pequeñas variaciones en los datos de entrada. De algún modo este tipo de situación puede ser modelado “relajando” algunas restricciones, es decir, suponer que se va a poder violar la restricción: b x a j j s ¿ Para ello resulta de interés que se pueda establecer como: b u x a j j = ÷ ¿ Modelos y Métodos de Investigación de Operaciones Página 47 de 190 Y un sumando en la función objetivo que penalice el uso de u. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 48 de 190 © JPGS2011 5 LINEALIZANDO LO NO LINEAL Cuando se trata de un modelo lineal los beneficios (o costes) son proporcionales a la cantidad vendida o fabricada, el uso de un recurso limitado depende linealmente de la cantidad fabricada y el uso total de un recurso por parte de un conjunto de actividades es la suma de consumos parciales. Todas estas expresiones configuran un modelo lineal. Sin embargo en realidad se dan, en ocasiones, circunstancias no lineales. Es fácil encontrar ejemplos sencillos de expresiones que, siendo aparentemente lineales, en el fondo no lo son, como por ejemplo el objetivo de minimizar el valor absoluto de una diferencia. También es habitual encontrar relaciones entre variables cuya aproximación es difícilmente aproximable a un caso lineal. Así por ejemplo los beneficios asociados a la venta de un producto pueden depender de la cantidad vendida. Un modo bastante acertado de representar esta relación entre el precio de venta y la cantidad pedida es la denominada elasticidad de precios (la inelasticidad supone que un incremento en el precio supone incremento en los beneficios). El grado de elasticidad de un producto es: precio el en cambio de porcentaje demandada x cantidad la en cambio de porcentaje = x E De este modo, y asumiendo E x constante en un rango: x E x k x p 1 ) ( = donde k es el precio sobre el cual la demanda es unitaria. Por tanto los beneficios esperados para una venta de x son: ) 1 1 ( ) ( x E x k x x p ÷ · = · Ejemplo 3 Modelos y Métodos de Investigación de Operaciones Página 49 de 190 El anterior es un ejemplo de relación no lineal que conduciría a un objetivo no lineal. Existen también ejemplos de restricciones no lineales. Por ejemplo en la mezcla de componentes cuyas características mezcladas no tengan un comportamiento lineal. O cuando se vean afectadas por un producto de variables (por ejemplo, mantener la presión de un gas por debajo de ciertos niveles, pudiendo alterar volumen y temperatura). Más habituales aún son las restricciones de tipo lógico, que por su propia estructura no son lineales. Los modelos de programación no-lineal son mucho más complejos de resolver que sus análogos lineales, además en muchos paquetes aunque se encuentra una solución ésta no es necesariamente óptima. Sin embargo es posible convertir relaciones no lineales en aproximaciones lineales. Y ese es el objeto de este capítulo. 5.1 Objetivos no Lineales fácilmente linealizables En los siguientes apartados se relacionan algunos de los objetivos que más comúnmente se encuentran en la construcción de modelos pero que no son lineales en su definición. Dichos objetivos son: - Minimizar un valor absoluto. - Minimizar el máximo. - Minimizar un ratio. 5.1.1 Objetivo “Minimizar un valor absoluto”. Esta situación se da cuando se pretende minimizar una cierta discrepancia entre dos valores. | | Min x y ÷ La función absoluto no es una función lineal, para convertirla en lineal es necesario establecer una tercera variable que: | | z Min sujeto a: z x y z y x > ÷ > ÷ Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 50 de 190 © JPGS2011 5.1.2 Objetivo “Minimizar el Máximo” o “Maximizar el Mínimo” En ocasiones el objetivo que se persigue se representa de la siguiente manera: | | ¿ j ij j x a Min i Max La función máximo no es una función lineal. Y por tanto debe ser linealizada. El objetivo minimizar el máximo se puede convertir en un objetivo lineal introduciendo una variable z que lo representa. La nueva formulación es: | | z Min sujeto a: i 0 ¬ s ÷ ¿ z x a j ij j Las nuevas restricciones garantizan que z será mayor o igual que cualquiera de los valores i x a j ij k ¬ ¿ Evidentemente el objetivo | | ¿ j ij j i x a Min Max se puede representar también de un modo similar. Sin embargo los objetivos maximizar el máximo y minimizar el mínimo no se pueden representar de modo lineal, sino según Programación Entera ( y se presentan en un apartado posterior) 5.1.3 Objetivos de Ratio En ocasiones aparecen objetivos de ratio. Por ejemplo maximizar la relación beneficios/inversión. Dichos siguientes objetivos no-lineales pueden ser representados genéricamente del siguiente modo. | | ¿ ¿ j j j j j j x b x a Max Es posible transformar la función objetivo de forma que se convierta en un objetivo lineal. Para ello hay que establecer una transformación de variables como la que se representa a continuación: j j w x t = · donde 1 j j j t b x = ¿ Con esta transformación el objetivo pasa a ser lineal, con la siguiente expresión: Modelos y Métodos de Investigación de Operaciones Página 51 de 190 | | ¿ j j j w a Max Para garantizar la transformación hay que incorporar la siguiente restricción. 1 = ¿ j j j w b Y además hay que convertir las restricciones originales que utilizan las variables x que han sido transformadas e x d j j j > s ¿ en nuevas restricciones que usan la variable w j 0 > s ÷ ¿ et w d j j j Hay que destacar que esta transformación es válida si ¿ j j j x b es siempre del mismo signo y no nula. 5.1.4 Objetivos Maximizar el Máximo (o Minimizar el Mínimo) Si el objetivo fuera del tipo | | ¿ j j ij x a Max i Max Sujeto a restricciones lineales convencionales Este tipo de situación se puede modelar del siguiente modo Max z Sujeto a ... ) 0 ( ) 0 ( 2 1 v = ÷ v = ÷ ¿ ¿ z x a z x a j j j j j j Pero eso exige el uso de restricciones de tipo lógico que se analizarán más adelante. 5.2 El uso de variables discretas para representar relaciones condicionales. El uso de variables enteras en el proceso de modelado puede servir a diferentes propósitos como se ha indicado anteriormente. Pueden representar cantidades indivisibles y también variables de decisión. Estas indican la decisión a tomar. Suelen ser variables de tipo binario 0-1 (o=1 abrir centro y o=0 no abrir) Aunque nada impide que adopten más valores (o=0 no abrir, o=1 abrir en Valencia, o=2 abrir en Alicante) Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 52 de 190 © JPGS2011 Sin embargo, en este apartado se pretende establecer, la utilidad de las variables enteras para establecer relaciones entre restricciones basadas en condiciones. 5.2.1 Funciones no continuas. La suposición de que la producción de un determinado artículo supone un coste fijo C 1 además de un coste variable C 2 que depende de la cantidad, y que el coste fijo no se paga si la cantidad fabricada es 0. ¹ ´ ¦ = > + = 0 x 0 0 x 2 1 x C C C T Sería interesante conocer, mediante una variable o si x es mayor que 0 o es nulo (o=1 o o=0 respectivamente). De este modo x C C C T · + · = 2 1 o Esto se podría lograr estableciendo la restricción 0 s ÷ o M x donde M es una cota superior conocida de x. 5.2.2 Relación Lógica: 1 j j j a x b o = ÷ s ¿ . También se pueden utilizar estas variables indicadoras para conocer si una restricción es violada o no. Sea la restricción: b x a j j j s ¿ Supóngase que se desea que o=1 represente que la restricción se cumple, esto se puede expresar como: 1 j j j a x b o = ÷ s ¿ Se puede mostrar que el modo de representar ésta condición mediante una desigualdad lineal es: b M M x a j j j + s + ¿ o Donde M es tal que j j j a x b M ÷ s ¿ en cualquier circunstancia. 5.2.3 Relación Lógica 1 j j j a x b o < ÷ = ¿ : Podría interesar representar la siguiente condición Modelos y Métodos de Investigación de Operaciones Página 53 de 190 1 j j j a x b o < ÷ = ¿ Esta condición se representa del siguiente modo: · j j j a x m b o + > ¿ Donde m es una cota inferior de j j j a x b ÷ ¿ . 5.2.4 Relación Lógica 1 j j j a x b o s ÷ = ¿ : Podría interesar representar la siguiente condición 1 j j j a x b o s ÷ = ¿ Esta condición se representa del siguiente modo: ( ) j j j a x m b c o c ÷ ÷ > + ¿ Donde m es una cota inferior de j j j a x b ÷ ¿ y c es la tolerancia a partir de la cual consideramos que j j j a x b > ¿ 5.2.5 Relación Lógica 1 j j j a x b o = ÷ > ¿ : Sea ahora la restricción: j j j a x b > ¿ Supóngase que se desea que o=1 represente que la restricción se cumple, esto se puede expresar como: 1 j j j a x b o = ÷ > ¿ Se puede mostrar que el modo de representar ésta condición mediante una desigualdad lineal es: j j j a x m m b o + > + ¿ Donde m es una cota inferior de j j j a x b ÷ ¿ Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 54 de 190 © JPGS2011 5.2.6 Relación Lógica 1 j j j a x b o > ÷ = ¿ : Podría interesar representar la siguiente condición 1 j j j a x b o > ÷ = ¿ Esta condición se representa del sigiente modo: · j j j a x M b o ÷ s ¿ Donde M es de nuevo una cota superior de j j j a x b ÷ ¿ 5.2.7 Relación Lógica 1 j j j a x b o > ÷ = ¿ : Asimismo, podría interesar representar la siguiente condición 1 j j j a x b o > ÷ = ¿ Esta condición se representa del siguiente modo: ( ) j j j a x M b c o c ÷ + s ÷ ¿ Donde M es de nuevo una cota superior de j j j a x b ÷ ¿ y c es la tolerancia a partir de la cual se considera que j j j a x b < ¿ 5.3 Más Relaciones Lógicas y su representación. Para poder abordar este apartado es necesario establecer una cierta notación del Algebra Booleana básica: ‘v’ significa o (o inclusivo, A, B, o ambos) ‘ . ’ significa y ‘ ¬ ‘ significa NO ‘÷’ significa implica ‘÷’ significa si y solo si Estos elementos se denominan operadores y unen proposiciones como P,Q,R... x>0, o=1, etc. Modelos y Métodos de Investigación de Operaciones Página 55 de 190 El par de operadores { ¬ ,v} sirve para representar cualquier combinación posible (lo que es especialmente interesante). Asumiremos que los símbolos por orden de importancia son ‘ ¬ ‘ , ‘.’ , ‘v’ y ‘÷’, lo cual evita el uso de excesivos paréntesis. Así por ejemplo: (P.Q)vR se puede escribir como P.QvR P÷(QvR) se puede escribir como P÷QvR ¬ ¬ P es lo mismo que P P÷Q es lo mismo que ¬ PvQ P÷Q.R es lo mismo que (P÷Q).(P÷R) P÷QvR es lo mismo que (P÷Q)v(P÷R) P.Q÷R es lo mismo que (P÷R)v(Q÷R) PvQ÷R es lo mismo que (P÷R).(Q÷R) ¬ (PvQ) es lo mismo que ¬ P. ¬ Q ¬ (P.Q) es lo mismo que ¬P v ¬Q Mediante estas reglas básicas es posible construir casi cualquier expresión y reducirla a otra que utilice distintos operadores. Así por ejemplo si X i es la proposición o i =1, se puede decir que: 0 a e equivalent es 0 a e equivalent es 0 ó 1 - 1 a e equivalent es 1 , 1 a e equivalent es 1 a e equivalent es 2 1 2 1 2 1 2 1 1 1 1 2 1 2 1 2 1 2 1 = ÷ ÷ s ÷ ÷ = = ÷ = = · > + v o o o o o o o o o o X X X X X X X X X Suponga que se quiere garantizar que si x=1 entonces y=0, siendo ambas variables binarias x+y≤1 Ejemplo 4 Ejemplo 2 Suponga que se quiere garantizar que si x≤b y x≥1 entonces y=z+1. Siendo x y z variables enteras. La expresión buscada es: ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1 1 1 x b x y y x b x y y t s . > ÷ = + s . > ÷ = ÷ = + Usando : Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 56 de 190 © JPGS2011 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 1 1 1 1 1 1 1 1 1 x b x y z y z o | o | t t t s ÷ = > ÷ = = . = ÷ = = ÷ > + = ÷ s + Se puede afirmar que la expresión es equivalente a: 1 1 0 1 1 x M b x M y z m m y z M M o | t o | t t + ÷ s + > + ÷ s ÷ ÷ > + ÷ + s + Donde m es una cota inferior de y-z-1 y M es una cota superior de y-z+1 Ejemplo 5 En un caso de programación de producción, si cualquiera de los productos A o B se fabrican, entonces hay que fabricar C, D, E. Esta condición se puede representar como ) ( ) ( E D C B A X X X X X v v ÷ v Sea o i =1 ÷ se fabrica el producto i Sea o una variable auxiliar tal que 1 1 = ÷ > + o o o B A Esta expresión se puede indicar como 0 2 s + + o o o B A Además 1 1 > + + ÷ = E D C o o o o Lo que se puede expresar como 0 s ÷ ÷ ÷ E D C o o o o Así pues el ejemplo se puede representar como el par de restricciones ) ` ¹ s ÷ ÷ ÷ s ÷ + 0 0 2 E D C B A o o o o o o o Modelos y Métodos de Investigación de Operaciones Página 57 de 190 Ejemplo 6 En ocasiones se admite como útil el uso de polinomios de variables indicadoras. Estas expresiones pueden ser siempre sustituidas por expresiones lineales, así, por ejemplo 2 a e equivalent es 1 1 a e equivalent es 0 2 1 2 1 2 1 2 1 = + = · s + = · o o o o o o o o De modo más general si el término 2 1 o o · ha de aparecer siempre podrá ser sustituido por una variable 2 1 3 o o o · = que tiene la siguiente condición ) 1 1 ( 1 2 1 3 = . = ÷ = o o o lo cual se puede expresar mediante 1 0 0 3 2 1 3 2 3 1 s ÷ + s + ÷ s + ÷ o o o o o o o Es incluso posible linealizar términos en los que se multiplica el valor de una variable 0-1 con una variable real ) ( o · x Sea ) ( o · = x y ) ` ¹ = ÷ = = ÷ = x y y 1 0 0 o o lo que es equivalente a M M y x y -x M y s + ÷ s + s ÷ o o 0 0 5.4 Conjuntos especiales de variables ordenadas Existen dos tipos de restricciones cuya presencia en problemas reales es habitual y que, además, están implementadas en múltiples paquetes porque facilitan la resolución. Estas son conjuntos de variables en que sólo una de entre todas puede adoptar un valor no nulo. Estas variables se denominan SOS1. El modelado de una función como | | | | | | ¦ ¹ ¦ ´ ¦ e ÷ e + e = 6,10 x 8 3 4,6 x 4 0,4 x 2 x x x y sería del tipo Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 58 de 190 © JPGS2011 1 22 10 8 10 6 4 4 3 2 1 4 3 2 4 3 2 = + + + + + = + + = ì ì ì ì ì ì ì ì ì ì y x siendo ( 4 3 2 1 , , , ì ì ì ì )un conjunto SOS2 Otro ejemplo de uso de estas variables es la denominada formulación modal, citada en un apartado anterior. Sea el siguiente conjunto de restricciones: 7 s + B A x x 15 · 3 s + B A x x 5 s B x La representación gráfica del espacio de soluciones de este modelo es: Esta situación se puede modelar representando exclusivamente los vértices. Usando por tanto más variables aunque menos restricciones (concretamente una) 1 4 3 2 1 0 = + + + + ì ì ì ì ì Y allí donde se encuentra x A y x B los cambiaremos por: 4 3 2 5 4 2 ì ì ì + + = A x 3 2 1 3 5 5 ì ì ì + + = B x Donde los coeficientes son las coordenadas x e y de cada uno de los puntos. Este tipo de formulación puede ahorrar gran cantidad de tiempo en la resolución del problema. Asociadas a estas existen los conjuntos de variables denominadas SOS2. En ellos sólo dos variables pueden tener valor no-nulo y además deben ser consecutivas. 0 ì 1 ì 2 ì 3 ì 4 ì A x B x (0,0) (0,5) (2,5) (4,3) (5,0) 0 ì 1 ì 2 ì 3 ì 4 ì A x B x (0,0) (0,5) (2,5) (4,3) (5,0) Modelos y Métodos de Investigación de Operaciones Página 59 de 190 Supóngase que la región de factibilidad de una variable es la siguiente OABCDEFG región no- convexa Esta región se puede representar de la siguiente manera, utilizando las variables 3 2 1 , o o o y ) 5 ( ) 1 ( 1 ) 8 3 ( ) 0 ( 1 ) 4 ( ) 3 ( 1 1 2 3 2 1 2 1 2 2 1 2 1 s . s ÷ = s ÷ . s + ÷ ÷ = s + . s ÷ = x x x x x x x x x o o o lo que equivale a imponer las siguientes restricciones: 1 5 4 3 15 7 3 4 4 9 5 4 3 2 1 1 3 2 2 2 1 2 2 1 1 2 1 1 2 > + + s s + s + ÷ s + + ÷ s + + s + o o o o o o o o x x x x x x x x x Existe una formulación alternativa para una región no-convexa y conectada. Esta sería la siguiente 1 0 4 2 3 3 0 5 5 3 4 2 2 1 s + + + + + = ÷ ÷ ÷ ÷ ÷ ÷ = ÷ ÷ ÷ ÷ ÷ ÷ F E D C B A F E D C b A G F E D C B x x ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì ì Siendo en este caso el conjunto ) , , , , , ( F E D C B A ì ì ì ì ì ì del tipo SOS2 El uso de estos dos tipos de variables SOS1 y SOS2 es considerado explícitamente por algunos motores de resolución y facilita enormemente el proceso de ramificación y corte, y por tanto reduce el coste computacional. A B C D E F G Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 60 de 190 © JPGS2011 6 MODELOS DE PROGRAMACIÓN ENTERA 6.1 Introducción Una gran cantidad de problemas reales se puede modelar utilizando variables enteras y restricciones lineales. En la mayor parte estos los valores que pueden adoptar las variables enteras son 0-1. Tales valores se utilizan para modelar decisiones “si o no”. Como se verá en los siguientes apartados, es posible establecer relaciones lógicas entre restricciones, usando este tipo de variables y manteniendo la linealidad. Antes de abordar la linealización mediante programación entera, hay que destacar la problemática de la resolución de estos modelos. Los tiempos de computación para resolver un problema de Programación Entera son mucho más largos que para un problema de Programación Lineal de similares características. Existe un peligro evidente de invertir gran cantidad de recursos en modelar, sólo para descubrir al final que el problema no era resoluble en un tiempo razonable, por ello en los últimos apartados del presente capítulo se abordará el problema de reducir el tamaño de los modelos. 6.2 Diferentes áreas de aplicación de la Programación Entera En el presente apartado se tratan diferentes áreas donde la programación entera resulta de interés. 6.2.1 Problemas con inputs (u outputs) discretos Este es el caso más obvio: si fabricamos aviones o coches no es posible fabricar 2.33 unidades. Por tanto la solución debe ser entera. En realidad en estos casos es especialmente relevante la PE sólo si los valores resultado son de un dígito. En otros casos basta resolver como si fuera Programación Lineal y posteriormente redondear. 6.2.2 Problemas con condiciones lógicas Suele ocurrir que en algunas de las restricciones que se deseen imponer son de tipo lógico. “si se abre fábrica en Valencia, no se debe abrir en Madrid” Este tipo de condiciones lógicas pueden ser modeladas mediante Programación Entera, simplemente introduciendo nuevas variables como se verá en un apartado posterior. 6.2.3 Problemas de combinatoria Muchos de los problemas prácticos de Investigación Operativa tienen como característica básica la existencia de un extremadamente largo número de soluciones posibles. Dichas soluciones aparecen a partir de diferentes métodos de ordenar actividades y/o asignar recursos. Modelos y Métodos de Investigación de Operaciones Página 61 de 190 Este tipo de problemas se denominan “Combinatorios”. Los problemas de tipo combinatorio se pueden clasificar a su vez en problemas de “Secuencia” o de “Reparto”. Estos últimos se clasifican a su vez en problemas de asignación, donde existen tantos trabajos como recursos, y cada trabajo exige sólo un recurso, y los problemas de transporte donde cada trabajo requiere varios recursos. Algunos problemas de Reparto no requieren PE, aunque la mayoría sí. 6.2.4 Problemas No-lineales Como ya se ha comentado en el capítulo anterior los problemas No-Lineales se pueden atacar mediante modelos de PE. Para ello se han mostrado diferentes técnicas en el capítulo anterior. 6.3 Otras condiciones aplicadas a Modelos de Programación Lineal La mayor parte de los modelos de PEM aparecen desde Programación Lineal en la que hay que aplicar unas restricciones extraordinarias. En este apartado se observan las más comunes de estas restricciones. 6.3.1 Restricciones disyuntivas Supongamos que en un problema de Programación Lineal pretendemos que no todas las restricciones actúen simultáneamente N R R R R v v v v ... 3 2 1 Introduciremos un conjunto de variables i o (i=1,...,N) donde 1 = i o si se ha de cumplir R i . i i R ÷ =1 o Y el conjunto i o debe cumplir 1 ... 2 1 > + + + N o o o Ejemplo: Sea una restricción 1 2 3 R R R v v Si R i es del tipo i j j ij b x a s ¿ entonces el caso se representa como: 1 1 1 2 2 2 3 3 3 j j j j j j j j j a x M M b a x M M b a x M M b o o o + s + + s + + s + ¿ ¿ ¿ Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 62 de 190 © JPGS2011 1 2 3 1 o o o + + > 6.3.2 Regiones No-Convexas 6.3.3 Limitar el número de variables en una solución Esta es otra aplicación de restricciones disyuntivas. Como ya se ha comentado en cualquier problema de Programación Lineal no habrá más variables no-nulas que restricciones. Sin embargo es posible que nos interese reducir este número de variables no nulas. Para hacer esto se necesita la PE. Para ello se incorporan nuevas variables i o tales que: 1 0 = ÷ > i i x o lo que equivale a introducir la restricción 0 s ÷ i i M x o En este caso se introducirá la siguiente condición k i s ¿ o que reducirá a k el número de variables no-nulas 6.3.4 Decisiones Secuencialmente Dependientes A menudo ocurre que se pretende que una decisión se prolongue en el tiempo. Por ejemplo si t ¸ representa si una instalación está abierta o cerrada, y se pretende que una vez cerrada ya no se vuelva a abrir ) 0 ( ... ) 0 ( ) 0 ( 0 2 1 = . . = . = ÷ = + + n t t t ¸ ¸ ¸ ¸ se puede representar como 0 2 - .... 0 2 0 2 1 3 2 2 1 s + s + ÷ s + ÷ ÷ n n ¸ ¸ ¸ ¸ ¸ ¸ 6.3.5 Extensiones discretas de capacidad A menudo no es realista suponer que determinadas restricciones no pueden ser violadas. Así por ejemplo una máquina podría aumentar su número de horas disponibles sin más que duplicar (o triplicar) el número de turnos que trabaja. Con evidentemente un coste asociado. Modelos y Métodos de Investigación de Operaciones Página 63 de 190 Supongamos que la restricción citada se puede expresar como j j j b x a s ¿ Donde b i es variable y tiene un coste asociado de c i (independiente para cada b i ) con n o c c c < < < < ... 0 1 Esta situación se puede modelar del siguiente modo en la restricción 0 ... 1 1 0 s ÷ ÷ ÷ ÷ ¿ n n o j j b b b x a o o o y en la función objetivo se añade n n o c c c o o o + + + ... 1 1 0 el conjunto de variables ( n o o o ,..., , 1 0 ) es de tipo SOS1 y fijándole una cota de 1 no es siquiera necesario establecer condiciones de integralidad. 6.4 Tipos Especiales de Modelos de Programación Entera En estos apartados se presentan algunos problemas clásicos de Programación Entera. La importancia de estos problemas radica en el hecho de que los problemas complejos se suelen poder reducir a combinaciones de éstos. 6.4.1 El problema de la mochila Un problema de PE con una única restricción se denomina “Problema de Mochila” y toma la forma | | b Max i i s ¿ ¿ o o i i a s.a c El problema de la mochila se da pocas veces de modo independiente (selección de proyectos o decisión de inversión). El problema de la mochila es, comparativamente, fácil de resolver. El mejor modo de resolverlo es programación dinámica, y no ramificación y corte que explora de manera demasiado amplia. 6.4.2 Problemas de cubrimiento Estos problemas derivan de un tipo de problema abstracto que puede ser enunciado del siguiente modo: “Dado un conjunto S de objetos que podemos numerar S=(1,2,...,m) y dada una clase T de subconjuntos de S, teniendo cada clase un coste el problema es cubrir todos los miembros de S utilizando miembros de T” Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 64 de 190 © JPGS2011 Sea S=(1,2,3,4,5,6) sea T=((1,2),(1,3,4),(5,6),(4,6),(3,4,5)). Se produciría cubrimiento con ((1,2),(1,3,4),(5,6)) o con ((1,2),(5,6),(3,4,5)) Para modelarlo sea: T de elemento ésimo - i el usar de coste el contrario caso en 0 do selecciona es T de elemento ésimo - i el si 1 = ¹ ´ ¦ = i i c o El modelo resulta | | 1 1 1 1 1 1 s.a 4 3 5 3 5 4 2 5 2 1 2 1 i > + > + > + + > + > > + ¿ o o o o o o o o o o o o o i i c Min Este problema de cubrimiento tiene 3 propiedades básicas. P1 El problema es de minimización y las restricciones son >1 P2 Todos los coeficientes RHS son 1 P3 Todos los demás coeficientes de la matriz son 0 o 1 Si se relaja la propiedad 2 (se obliga a que algunos elementos de S sean cubiertos en un mayor número de ocasiones) se tiene un tipo de problema de cubrimiento ponderado. Y si además se permite que los demás coeficientes de la matriz puedan valer 0 y ±1 (propiedad 3) tenemos lo que se denomina un problema de cubrimiento generalizado. 6.4.3 Problemas de empaquetado Otro tipo clásico de problemas son los de empaquetado, que se pueden enunciar así: “Dado un conjunto S de objetos que podemos enumerar S=(1,2,...,m) y dada una clase T de subconjuntos de S, teniendo cada subconjunto un valor asociado, se trata de relacionar miembros de T que maximicen el valor pero que no se superpongan” Con el conjunto S y la clase T del ejemplo anterior el problema queda (incorporando un valor v i a cada miembro de T) Modelos y Métodos de Investigación de Operaciones Página 65 de 190 | | 1 1 1 1 1 1 s.a 4 3 5 3 5 4 2 5 2 1 2 1 i s + s + s + + s + s s + ¿ o o o o o o o o o o o o o i i v Max Las mismas generalizaciones de los problemas de cubrimiento se pueden aplicar en los problemas de empaquetado dando lugar al problema de empaquetado ponderado y al problema de empaquetado generalizado. 6.4.4 El Problema del viajante de comercio Éste problema es un problema muy habitual y de simple formulación aunque de resolución muy complicada en circunstancias reales. El problema consiste en establecer un circuito que recorra todos los destinos pasando una solo vez por cada uno de ellos. Existen muchas situaciones reales asociadas a este problema de rutas, con diferentes variantes, e incluso se da en otras situaciones como por ejemplo en la reducción de costes de cambio de partida. Su formulación evidente es la siguiente i 1 j 1 s.a c j ij i ij j i, ij ¬ = ¬ = ¿ ¿ ¿ o o o ij Min En una situación cualquiera (con 6 ciudades) la solución óptima podría ser: lo que, evidentemente, no es una solución satisfactoria. Para eliminar esta circunstancia se puede añadir el siguiente conjunto de restricciones, que requieren de las variables u i . 1 ÷ s + ÷ n n u u ij j i o Esto incorpora n·(n-1) restricciones al problema. La variable u i representa el orden en el que el punto i será visitado, siendo u 1 =1. 1 2 3 5 4 6 1 2 3 5 4 6 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 66 de 190 © JPGS2011 Si el número de restricciones incorporado es excesivo (lo que puede ocurrir) existe un procedimiento alternativo para resolver el problema de las sub-ciclos. Consistiría en incorporar la restricción 2 31 23 12 s + + o o o Esto eliminaría la solución planteada anteriormente de entre las posibles. En definitiva éste es un modo de buscar el óptimo mediante el sucesivo refinamiento del modelo. En cualquier caso hay que destacar el elevadísimo coste computacional de la resolución de este problema mediante PEM, cuando las dimensiones no son pequeñas por ello lo habitual es plantear mecanismos de resolución especiales. 6.4.5 El problema de asignación cuadrática Esta es una generalización del problema de asignación descrita en un capítulo anterior. Aunque el problema de asignación es un problema de Programación Lineal fácil de resolver, el problema de asignación cuadrática es un problema de PE y generalmente muy difícil de resolver. El problema consiste en: “Dado un conjunto S con n elementos y un conjunto T con el mismo número de elementos, el problema consiste en asignar exactamente un elemento de S a T y viceversa” Para ello se define ¹ ´ ¦ e e = contrario caso en 0 T j a asigna se S i si 1 , j i o Las restricciones son las siguientes 1,2,..., j 1 n 1,2,..., i 1 1 1 = = = = ¿ ¿ = = n i ij n j ij o o La diferencia con el problema de asignación normal radica en la función objetivo. En ella las variables se multiplican, para valorar la asignación combinada. Es decir, se asigna un coste c ijkl si al mismo tiempo que ieS se asigna a jeT se asigna a keS a leT. ¿ > n i k l j i kl ij ijkl c , , o o Este problema se puede abordar como un problema de PE clásico con n 4 variables binarias. También existen procedimientos específicos de resolución. Modelos y Métodos de Investigación de Operaciones Página 67 de 190 6.5 Buenas y malas formulaciones de un modelo de PE La mayor parte de las consideraciones realizadas en apartados anteriores para la Programación Lineal sirven para la PE. Además nuevas consideraciones se convierten en importantes en el momento que el problema tiene variables enteras. La primera y más importante de las razones es que la resolución de un modelo de PE es mucho más complicada que uno de Programación Lineal de parecidas dimensiones. El número de variables no es un buen indicador para saber si un modelo está bien o mal construido. De hecho en ocasiones es interesante introducir nuevas variables siempre que faciliten el proceso de resolución. El número de restricciones afecta, generalmente, en un sentido contrario que a los modelos de Programación Lineal, es decir, un mayor número de restricciones facilita el proceso de resolución. El motivo es que aumenta la posibilidad de que el óptimo del modelo de Programación Lineal asociado sea a su vez entero. El uso de los conjuntos ordenados de variables, si el paquete puede trabajar con ellos, facilita la resolución. 6.6 Simplificación de un modelo de Programación Entera En este apartado se proponen cuatro procedimientos que permiten mejorar el tiempo de resolución de modelos de PE. La mayor parte de estos procedimientos parten del análisis concreto de cada problema. 6.6.1 Más Restricciones y Más Ajustadas En Programación Lineal es habitual pretender reducir el número de restricciones como un modo de facilitar la resolución. En PE el efecto deseado es el mismo, aunque el método es el contrario. Mediante el análisis directo de diferentes restricciones es posible encontrar restricciones combinadas que reducen el ámbito de variación de diferentes variables, haciendo que el óptimo del problema de Programación Lineal esté muy cerca del óptimo del PE. | | { } 1 , 0 1 2 2 2 0 2 2 3 6 2 - 2 5 3 . 3 10 7 5 i 5 4 3 2 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 e > ÷ ÷ + ÷ > + ÷ ÷ + > ÷ + + ÷ + + + + o o o o o o o o o o o o o o o o o o o o a s Min De la tercera restricción se puede sacar la siguiente relación: 1 2 2 1 2 5 4 2 3 > + + + > o o o o  1 2 1 3 3 = ÷ > o o Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 68 de 190 © JPGS2011 De la segunda restricción, y realizando operaciones parecidas: 1 2 2 3 2 6 5 4 1 2 > ÷ + + > o o o o  1 6 1 2 2 = ÷ > o o Y nuevamente de la restricción tercera: 0 5 4 s ÷ s o o  0 0 0 5 4 4 = = ÷ s o o o De donde 0 1 = o y la función objetivo es 0 Básicamente se puede admitir que el método consiste en analizar la configuración del problema, para encontrar relaciones, más o menos evidentes, que reducen el número de variables al asignarles valores. 6.6.2 Simplificar una restricción entera con otra restricción Dada la restricción entera 9 6 4 2 1 s + ¸ ¸ Donde 2 1 y ¸ ¸ son variables enteras. A efectos de la resolución la restricción 2 2 2 1 s + ¸ ¸ es equivalente y mucho más adecuada porque los enteros más próximos están en ella considerados El procedimiento consiste en encontrar para cada restricción o n n a a a a s + + + o o o ... 2 2 1 1 Una restricción o n n b b b b s + + + o o o ... 2 2 1 1 que no reduzca el espacio de enteros posibles pero sí el del problema de Programación Lineal asociado. Aunque es un método muy efectivo, realmente el cálculo de las restricciones citadas a menudo consume excesivos recursos. Modelos y Métodos de Investigación de Operaciones Página 69 de 190 6.6.3 Restricciones discontinuas En ocasiones hay que restringir una variable continua a segmentos o puntos, por ejemplo 0 ó a x b ó x c x = s s = Esta circunstancia puede ser representada por un conjunto de restricciones disyuntivas, pero también existe un procedimiento alternativo para representarla 1 2 2 1 1 2 2 1 = + + + · + · + · = o o o y y c y b y a x donde 2 1 y o o son variables binarias y y 1 y y 2 son variables continuas (y no negativas) Un caso común pero especial es: 0) (a a x ó 0 > > = x En este caso 1 2 1 2 1 = + + · + · = y y y M y a x o 6.7 Información económica y sensibilidad en los modelos de PE Por las propias restricciones de los modelos de PE no es posible extraer de la resolución (o del dual) información estricta sobre los precios sombra o los costes reducidos, de las restricciones o de los coeficientes. Las restricciones no completamente utilizadas no implican, necesariamente que no tengan precio sombra, puesto que es posible que una ligera ampliación introduzca (o saque) de la región de factibilidad un punto que cumpla las condiciones de integralidad y mejore la función objetivo. El único modo de conocer tanto la información económica prevista como de hacer un análisis de sensibilidad adecuado consistiría en resolver una y otra vez el mismo modelo cambiando coeficientes. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 70 de 190 © JPGS2011 7 PROGRAMACIÓN NO LINEAL Los modelos de programación no-lineal son mucho más complejos de resolver que sus análogos lineales, además en muchos paquetes aunque se encuentra una solución ésta no es necesariamente óptima. Sin embargo es posible convertir relaciones no lineales en aproximaciones lineales. Para poder tomar la decisión acerca de qué método de resolución es más apropiado es importante conocer si el problema es convexo o no-convexo. 7.1 Óptimos locales y globales El problema más grave de la denominada Programación No Lineal es la dificultad de garantizar que un óptimo local (es decir un punto que es objetivamente mejor que todos sus vecinos) sea el óptimo global. Mucha investigación se dedica a este problema, y estos apuntes no pretenden ni de lejos reflejarla. Pero sí que hay que entender determinados conceptos que ayudan a comprender la complejidad del problema. Para ello es necesario recordar tres definiciones. Definición de región convexa: Se dice que una región del espacio es convexa si el segmento que une dos puntos cualesquiera de la región está íntegramente en la región. Definición de función convexa: Se dice que una función es convexa si el conjunto de los puntos (x,y) donde y>f(x) forma un región convexa. Definición de un modelo de PM convexo: Se dice que un modelo de Programación Matemática es convexo si implica la minimización de una función convexa sobre una región convexa. Un modelo de Programación Matemática Convexo: 0 , x 2 4 x - 5 2x 4 : s.a. 2 4 2 1 2 1 2 1 2 1 2 1 2 1 > > + s + s + ÷ ÷ x x x x x x x x Min Ejemplo 7 Un modelo de Programación Matemática No-Convexo 0 , x 2 4 x - 5 2x 4 : s.a. 6 3 4 - 2 1 2 1 2 1 2 1 2 1 3 1 > > + s + s + ÷ + x x x x x x x x Min Ejemplo 8 Modelos y Métodos de Investigación de Operaciones Página 71 de 190 En el segundo de los ejemplos la región de factibilidad es convexa, aunque la función objetivo no lo es, por lo que es modelo no es convexo. La no convexidad conduce a una situación en la que aparecen óptimos locales lejos del óptimo global. La posibilidad de que óptimos locales aparezcan como óptimos propiamente dichos, cuando el modelo es no-convexo, es lo que convierte estos problemas en muy difíciles de resolver. Si el problema es convexo cualquier óptimo que se encuentre es óptimo global. Sin embargo encontrar un óptimo global en un problema no-convexo requiere algoritmos más sofisticados. Por ejemplo el uso de la programación separable que se explica en la siguiente sección. 7.2 Programación Separable Se dice que una función es separable si puede ser expresada como la suma de funciones de una variable única. Por ejemplo, la función ) log( 1 3 2 3 1 x x x + + se puede denominar separable mientras que 2 1 3 2 1 x x x x x + + · no es función separable. La importancia de que una función sea separable para la programación matemática radica en el hecho de que una vez separada la mayor parte de las funciones se pueden aproximar a funciones definidas por tramos que sean lineales. A partir de aquí será posible encontrar un óptimo global para una función convexa, o al menos un óptimo local si es no-convexa. Aunque puede parecer que la clase de funciones separables es muy restrictiva, en realidad es posible convertir en separables muchas funciones objetivo aparentemente no separables. Una vez las variables han sido separadas, la función resultante se puede aproximar a una función por tramos lineal. No importa donde esté la no linealidad, pues el procedimiento es el mismo tanto se es en la función objetivo como si es en las restricciones. Para convertir en lineal la siguiente función objetivo del Ejemplo 7: 2 1 1 2 4 2 x x x ÷ ÷ solo es necesario convertir la función x 1 2 . A partir de la segunda restricción del ejemplo es evidente que no es posible que x 1 sea mayor que 2.5. En este caso La función Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 72 de 190 © JPGS2011 | | 5 . 2 , 0 2 1 e = x x y puede ser sustituida por: | | | | | | ¦ ¦ ¹ ¦ ¦ ´ ¦ e ÷ e ÷ e = 2,2.5 x 5 5 . 0 25 . 2 2 , 0 x 2 3 1 , 0 x x x x y Esta representación es equivalente a: 1 25 . 6 4 1 0 5 . 2 2 1 0 4 3 2 1 4 3 2 1 4 3 2 1 1 = + + + + + + = + + + = ì ì ì ì ì ì ì ì ì ì ì ì y x Por tanto el modelo del ejemplo 1 es el siguiente: 0 , , , , , x y, 1 0 6.25 4 y - 0 2.5 2 x - 2 4 x - 5 2x 4 : s.a. 2 4 4 3 2 1 2 1 4 3 2 1 4 3 2 4 3 2 1 2 1 2 1 2 1 2 1 > = + + + = + + + + = + + + + > + s + s + ÷ ÷ ì ì ì ì ì ì ì ì ì ì ì ì ì ì x x x x x x x y Min Ejemplo 9 Dado que la función es convexa no es necesario añadir ninguna restricción más. Si la función fuera no-convexa sería necesario añadir una restricción que tuviera en cuenta que “como máximo 2 ì i adyacentes pueden ser no nulos” Esta restricción sólo se puede modelar mediante Programación Entera, como se vió en un apartado anterior. Lo destacable es que existen implementaciones que la consideran de manera eficiente. En cualquier caso la separación de variables para generar problemas no convexos conduce con demasiada frecuencia a óptimos locales. Para resolver este problema a menudo es posible resolver el mismo modelo mediante diferentes estrategias, lo que da lugar a diferentes óptimos locales y, con suerte, algunos de ellos es óptimo global. Existe un modo más eficiente de convertir una función no-lineal en una función lineal. Este modo alternativo conduce a la siguiente formulación del Ejemplo 7 3 2 1 3 2 1 1 25 . 2 3 5 . 0 o o o o o o + + = + + = y x Modelos y Métodos de Investigación de Operaciones Página 73 de 190 “ i j 0 i j 1 0 > ¬ > . < ¬ = ¬ > j j i si o o o ” Aunque en tiempo de computación es más eficiente, este sistema es más difícil de modelar y requiere necesariamente del uso de programación entera. Y en cualquier caso el problema de óptimos locales permanece. 7.3 Cómo convertir un modelo no separable en un modelo separable Considerar la no-linealidad sólo si el modelo es separable puede parecer demasiado restrictivo. Sin embargo, es posible convertir casi cualquier función de dos o más variables en una función separable. Una de las funciones no separables más comunes es el producto de dos o más variables. Si observamos en nuestra función la expresión: 2 1 x x · ésta puede ser sustituida por 2 2 2 1 u u ÷ donde ) ( 2 1 ) ( 2 1 2 1 2 2 1 1 x x u x x u ÷ = + = que es una función separable, donde los términos pueden ser linealizados de modo aproximado como se explica en el apartado anterior. Hay que destacar que u 2 es un variable libre, es decir, puede adoptar valores negativos. Otro método de separación es el uso de logaritmos. La anterior función x 1 ·x 2 puede ser representada por: y donde ) log( ) log( ) log( 2 1 x x y + = que es una restricción que puede tener variables separadas. Y donde la función logaritmo puede ser linealizada. Un tercer modo de separación es el uso de funciones lineales definidas por tramos de más de una dimensión. Aunque este modo obliga a la aparición de un gran número de variables y restricciones auxiliares. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 74 de 190 © JPGS2011 8 PROGRAMACIÓN ESTOCÁSTICA 8.1 Introducción Hasta este momento todas las formulaciones que se han presentado de Programación Matemática asumen que los datos son conocidos. Sin embargo, en muchos problemas reales los datos no pueden ser conocidos con exactitud. En ocasiones por errores de medida, pero más generalmente porque son datos sobre circunstancias que se darán en el futuro, y simplemente no pueden ser conocidos con anticipación. Este tipo de problemas se dan con mucha frecuencia, puesto que en muchas ocasiones las decisiones se toman de modo recurrente. Por ejemplo el departamento de compras de una empresa toma la decisión de adquirir cierta cantidad de materia prima atendiendo a una demanda conocida para el presente pero estimada para el futuro. Y cuando ese futuro sea presente se tomará una nueva decisión. El anterior es un ejemplo de recursividad. Ésta es, básicamente, la capacidad de emprender acciones correctivas después de que la situación incierta ocurra. Hay que destacar también la propiedad de no-anticipación que se exige a la programación estocástica. Se puede definir esta como la imposibilidad de vincular la decisión en el primer periodo no depende de lo que de hecho ocurra en el segundo periodo. La decisión de hoy para hoy no puede ser modificada mañana. 8.2 Formulación de Problema Estocástico Una posible formulación del Problema Lineal Estocástico es la siguiente: 0 0 . . min e > > s + s + ¿ y x h y W x T b Ax a s y d p x c e e e e e e T e e T Donde x c T es el coste de la decisión inmediata e T e y d es el coste de la mejor decisión en el escenario e. A es la matriz tecnológica sin incertidumbre T e es la matriz tecnológica con incertidumbre para las variables que corresponden a la decisión a tomar. W e es la matriz tecnológica con incertidumbre para las variables que corresponden al futuro. Modelos y Métodos de Investigación de Operaciones Página 75 de 190 Los problemas estocásticos son especialmente complicados debido a su tamaño, que crece con el número de escenarios. Pero además la propia generación de los escenarios y la definición de probabilidades a los mismos p e es un tema de gran complejidad. Una de las principales ventajas de la programación estocástica es que las soluciones que obtiene para los periodos congelados (x) son estables ante los diferentes escenarios. Existen paquetes informáticos específicamente dedicados a la resolución de problemas con escenarios, pero también se pueden utilizar paquetes estandar, aunque la complejidad anteriormente aludida es una limitación evidente en su uso. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 76 de 190 © JPGS2011 9 PROCEDIMIENTOS DE RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN MATEMÁTICA. 9.1 Introducción Hasta el momento se han planteado procedimientos de Modelado, dando por supuesto que el modelo en sí mismo podría ser resuelto. En el presente apartado se pretenden mostrar cómo se resuelven problemas de programación matemática. Pero existen en el mercado, disponibles para su adquisición, procedimientos generales de resolución capaces de resolver en tiempos adecuados problemas cada vez más complicados. Aunque en la práctica es posible que sea más rentable diseñar el propio procedimiento de resolución. Por ello se abordan en la fase final del capítulo métodos para diseñar procedimientos de resolución para los problemas que ya han sido modelados 9.2 Resolución de problemas de programación matemática mediante el uso de paquetes ya disponibles 9.2.1 Algoritmos y paquetes Algoritmo es una palabra de origen árabe, concretamente, Al-jwarizmi era el apodo de un matemático cordobés de nombre Mohamed ibn Musa. Un algoritmo es un conjunto finito y ordenado de operaciones cuya aplicación permite resolver un problema. Un algoritmo puede ser programado como un conjunto de rutinas de ordenador para resolver problemas que tienen que estar expresados en un tipo particular de formato. Cuando los algoritmos resuelven problemas suficientemente generales se suelen agrupar en paquetes que posteriormente se comercializan. Estos paquetes comerciales contienen habitualmente algoritmos para resolver modelos de Programación Lineal y de Programación Entera Mixta. Cuatro son los tipos de algoritmos que se pueden encontrar generalmente en un paquete comercial: Una versión revisada del Simplex Una extensión del Simplex para modelos separables Un algoritmo de Ramificación y Corte para modelos de Programación Entera. Algoritmos del Punto Interior En cualquier caso otros hacen un uso cruzado de los diferentes métodos. Así la estrategia que parece más adecuada para problemas de muy grandes dimensiones es utilizar algoritmos genéricos que Modelos y Métodos de Investigación de Operaciones Página 77 de 190 rápidamente nos conduzcan al entorno del óptimo y finalizar la exploración del espacio de soluciones con un Simplex que Una de las mayores ventajas del uso de “paquetes” comerciales es que son muy flexibles en su uso. Además suelen contener unas características que los hacen muy interesantes, si se desean utilizar: Reducción, Soluciones iniciales, Cotas de Variables, Análisis de Sensibilidad. Reducción Algunos paquetes tienen procedimientos para detectar y eliminar redundancias en los modelos. De este modo se reduce el tamaño y por tanto el tiempo de resolución. Soluciones iniciales La mayor parte de los paquetes permiten que el usuario aporte una solución inicial. Si está suficientemente cerca del óptimo el tiempo de resolución se verá sustancialmente reducido. Esta herramienta es especialmente útil cuando se quiere probar el efecto de pequeños cambios en los valores del modelo. Cotas de variables En algunas ocasiones el valor de las variables está acotada del siguiente modo: L x U x > s ó Donde U y L son constantes. Aunque en la formulación convencional de los problemas de Programación Lineal, esta restricción sería asociada a una fila de la matriz de restricciones, es más eficiente considerar U o L simplemente como una cota. Existe una versión modificada del Simplex que permite trabajar con estas variables acotadas. Restricciones de Cotas Generalizadas Son bastante habituales las restricciones del tipo: M x x x n s + + + .... 2 1 Este tipo de restricciones corresponden con una fila de unos en la matriz de restricciones y se suelen denominar Cotas Superiores Generalizadas GUB (Generalized Upper Bound) del subconjunto. Si existen muchas restricciones de este tipo para conjuntos disjuntos es útil representarlos como GUB’s, puesto que reducen considerablemente el coste computacional. Análisis de sensibilidad Cuando se halla la solución óptima a menudo nos interesa investigar como afectarían cambios en los coeficientes de la función objetivo y las restricciones. Esta información, que se puede obtener de todos los paquetes comerciales es de una gran importancia, en el uso de los modelos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 78 de 190 © JPGS2011 9.2.2 El uso de la Hoja de Cálculo Excel La hoja de cálculo Excel dispone entre sus herramientas una dedicada a la resolución de problemas de Programación Matemática. Dicha herramienta (que en ocasiones hay que instalar a través de Herramientas/Opciones) se denomina Solver.. Para ilustrar su uso, bastante intuitivo por otro lado, se procede a plantear el modelo del apartado 3.6. Una disposición de las celdas, meramente orientativa, pues el solver es versátil en ese aspecto, podría ser la siguiente: En la celda G3 se ha introducido la fórmula =SUMAPRODUCTO($B2:$F2;B3:F3) ésta celda se ha copiado en las celdas de la columna G inferiores. Para poder usar el solver hay que acceder a través de Herramientas/Solver. En la fila 1 se ha puesto los nombres de las variables, en la fila 2 aparecerán los valores de éstas. La fila 3 se dedica a los coeficientes de la función objetivo. Las filas 4 a 6 se dedican a las restricciones. En la columna H se colocan los límites de las restricciones. Modelos y Métodos de Investigación de Operaciones Página 79 de 190 Para que el ejemplo sea más ilustrativo se ha incorporado una restricción de integridad. Accediendo al menú de opciones se pueden modificar parámetros tales como el método de resolución usado, o el tiempo máximo permitido. Al acabar la resolución del problema el Solver pregunta qué tipo de informes se desean. Y por tanto es posible acceder a ellos. Dichos informes incluyen respuestas, sensibilidad (precios-sombra y costes- reducidos) y análisis de límites (rangos) Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 80 de 190 © JPGS2011 9.2.3 El uso de Lenguajes de Modelado 9.3 El uso de paquetes para la resolución de modelos de Programación Lineal Aunque, en principio, uno podría programarse sus propios algoritmos para la resolución de problemas de Programación Lineal, la realidad es que existen muchas alternativas que son mucho más eficientes que cualquier implementación individual. En el terreno del software comercial dos son los paquetes relevantes: CPLEX y Gurobi. CPLEX es el software clásico. Llevan años mejorando sus algoritmos y los últimos pasos que dio (concretamente CPLEX 12) parecían haber dejado completamente atrás a sus competidores. Sin embargo Gurobi en el 2009 saltó a la arena, con un solucionador que es capaz de dejar atrás a CPLEX. En cualquier caso pueden resolver problemas con decenas de miles de variables, tanto enteras como binarias, en algunos segundos. Muy lejos de estos dos software se encuentran las aplicaciones de software libre como GLPK LPSolve. En cualquier caso además del soft de optimización, generalmente hace falta tener un soft de interface, para poder introducir datos en formato natural, y extraerlos de manera natural también. Se pueden encontrar en el mercado diferentes paquetes que ayuden al usuario a estructurar e introducir un problema en un paquete en forma de modelo.Este tipo de programas se denominan “generadores de matrices” por su origen, aunque en realidad son lenguajes de alto nivel para la programación matemática. El lenguaje de escritura más utilizado es MathProg que es implementado en diferentes herramientas como, o MPL. Algunas son de pago (AMPL y MPL de Maximal Software por ejemplo) y otras son gratuitas como . Gusek o LPSolveIDE. Por otro lado, el uso de software para la resolución de programación lineal cuando los programas son de un cierto tamaño (unos miles de variables) pueden requerir, para ser eficientes, de un cierto nivel de “tuneado”. Parámetros como los gaps admisibles, las reglas de pivote, la reducción previa, exigen unos minutos hasta dar con una combinación adecuada. Se admite habitualmente que el mayor problema para aplicar de modo exitoso los modelos de programación matemática no son los modelos ni los tiempos de resolución, sino la interface con el usuario: la entrada y la salida de datos. El uso de paquetes de modelado aporta las siguientes ventajas: a) Un modo de entrada de datos más natural b) Corregir y verificar es mucho más fácil c) Modificar se hace más fácilmente Modelos y Métodos de Investigación de Operaciones Página 81 de 190 d) La repetición de la ejecución se puede automatizar. 9.3.1.1 Brevísima Introducción al MPL El MPL es uno de los programas existentes en el mercado que facilita la introducción de modelos matemáticos en sistemas de resolución de problemas de programación matemática. Una versión MPL de prueba para estudiantes puede descargarse de la web www.maximal-usa.com. Existiendo también en dicha web un muy buen manual en castellano, y múltiples ejemplos. La utilidad del MPL se aprecia rápidamente sin más que analizar cómo se introduciría el problema del apartado 3.6 citado anteriormente. Es evidente la relación entre este modo de introducir el modelo y el propio modelo. Además MPL incluye muchas otras funcionalidades como que Los datos pueden imputarse directamente, o a través de ficheros de texto, excel, access y otros medios. O que Si hay sumatorios largos se pueden calcular por separado como macros. Además de un fichero solución convencional se puede conectar a Excel o Access. Y por tanto el sistema puede dar y recibir información a/de paquetes convencionales. Por otro lado el MPL tiene funcionalidades como al corrección ortográfica y sintáctica de los modelos, así como herramientas que permiten analizar los modelos desde un punto de vista estructural. 9.3.1.2 El proyecto NEOS También es relevante citar del denominado proyecto NEOS. Este se traduce en una web donde los mejores optimizadores están disponibles para ser utilizados remotamente. Además el servidor tiene INDEX i= 1..5; j= (torno,fresa,montaje); DATA benef[i] := (550,600,350,400,200); prodhoras[j,i] :=(12,20,0,25,15, 10,8,6,0,0, 20,20,20,20,20); rechoras[j] := (288,192,384); VARIABLES x[i]; MAX SUM( i : benef*x); SUBJECT TO restr[j] : SUM(i : prodhoras*x)<=rechoras; END Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 82 de 190 © JPGS2011 interesantes resúmenes sobre la programación matemática. http://www-neos.mcs.anl.gov/neos/ es la dirección web donde toda esta mina de información esta disponible. 9.3.2 Sistemas de Apoyo en la Decisión y Sistemas Expertos En ocasiones, al diseñar software para aplicaciones específicas, se incorporan algoritmos de programación matemática que sirven de soporte a la toma de decisión. Generalmente este software desarrollará otras múltiples funciones además de resolver el modelo, como acceder a bases de datos e interactuar con el gestor o persona que toma la decisión. Si tales sistemas incorporan algoritmos que resuelvan los problemas más habituales y establecidos, el gestor podrá concentrarse en la toma de decisión real. Para diseñar dichos algoritmos es conveniente construir modelos y diseñar métodos de resolución de Programación Matemática. A medida que los sistemas de apoyo a la toma de decisión se vuelven más sofisticados incorporan procedimientos que plantean “opciones” y no sólo representan datos. La definición de tales “opciones” no es más que encontrar soluciones a los problemas que se plantean y modelan. Otro concepto relacionado es el denominado “sistema experto”. Estos sistemas aceptan, en teoría, definiciones informales de los problemas, que se formalizan a medida que el usuario le ayuda, a través del interfase diseñado al efecto, seleccionando entre diferentes alternativas. Esta información que añade el usuario se complementa con información histórica recogida de resoluciones anteriores. 9.4 Procedimientos de Resolución de Programación Lineal Se proponen en este apartado los principios en los que se basan el método de resolución conocido como Simples. Este método se utiliza desde su desarrollo a mediados de los 50. En la década de los 80 se desarrollaron nuevos métodos como los de Punto Interior o el Método de los Elipsoides, que no se tratarán en estos apuntes. 9.4.1 El algoritmo Simplex No es objeto de este apartado establecer concretamente como funciona el algoritmo del Simplex. Sin embargo sí es necesario destacar los principios básicos de funcionamiento. Dado un problema de Programación Lineal, éste se debe expresar de forma estándar (maximización y desigualdades menor-igual o minimización y desigualdades mayor-igual) ¿ ¿ s = i j i b x sujeto x Max ij i a a c z Las restricciones se pueden expresar mediante notación matricial de modo: b Ax s Modelos y Métodos de Investigación de Operaciones Página 83 de 190 Se obtiene una solución básica al problema Ax=b haciendo n-m variables iguales a 0 (para convertir el problema en linealmente independiente y determinado). A las variables definidas como nulas se les denomina variables no-básicas, y a las demás, variables básicas. Si existe solución para el problema planteado con las n-m variables no básicas definidas, entonces a esa solución se le denomina solución básica factible. Las soluciones básicas factibles generan los vértices de un poliedro convexo. En uno de estos vértices se encuentra el óptimo si este existe. Se dice que dos vértices son adyacentes si sus conjuntos de variables básicas tienen m-1 variables básicas en común. El algoritmo simplex consiste, básicamente, en desplazarse de un vértice a otro adyacente (empezando por uno cualquiera) hasta que cualquier movimiento “empeore” la función objetivo. El algoritmo simplex clásico, ha sido revisado, en diferentes ocasiones. De él han salido procedimientos, denominados simplex revisados, en los que se hace un especial hincapié en la estructura matricial y por tanto en el cálculo matricial, reduciendo notablemente el coste computacional. 9.4.2 Los Métodos del Punto Interior Los métodos del punto interior se basan en que el progreso de las soluciones se realizan en el interior de la región factible, y no a través de los vértices de la misma como hace el método Simplex. La estrategia del algoritmo del punto interior es implementar, en el espacio original de la región de factibilidad, transformaciones a media que avanza el algoritmo. Una vez conocida la región de factibilidad y un punto inicial e interior al mismo, se debe definir un modo de progreso en una dirección que permita reducir el valor de la función objetivo, y que el nuevo punto siga siendo factible e interior. Este proceso se debe repetir hasta que no pueda haber una mayor reducción en el valor de la función objetivo. Así pues las preguntas que hay que conocer como responder son tres: ¿Cómo encontrar un punto factible e interior?, ¿Cómo definir el camino de evolución? y ¿Cómo se sabe que se ha alcanzando el óptimo? 9.5 Procedimientos de Resolución en Programación Lineal Entera 9.5.1 Ramificación y acotación En la práctica la mayor parte de los problemas de PE se resuelven utilizando la técnica conocida como ramificación y corte (branch and bound). Este procedimiento se basa en la división de problemas en subproblemas (ramificación) mientras el óptimo no sea una solución factible entera. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 84 de 190 © JPGS2011 La Ramificación y Poda es un método general de búsqueda. Empieza considerando el problema raíz (el problema original con la región factible completa sin las restricciones de integridad). Si se cumplen dichas restricciones el procedimiento ha terminado.Si no se cumplen, la región de factibilidad se divide en o más regiones.Se resuelve cada uno de los subproblemas, si uno de ellos satisface las restricciones de integridad el problema ha sido resuelto pero no se puede garantizar su optimalidad. Si no satisface dichas restricciones, su valor se puede tomar como una cota. Si el valor de dicha cota es peor que el mejor resultado obtenido hasta el momento no hará falta seguir explorando este problema. Este procedimiento se resuelve de modo iterativo para cada uno de los subproblemas generados. Concretamente en Programación Entera El método consiste en relajar el problema de PE convirtiéndolo en Programación Lineal , resolver mediante el simplex este problema de Programación Lineal, si las variables de la solución óptima satisfacen la condición de integralidad, hemos obtenido el óptimo. SI dicha condición no se satisface el valor de la función objetivo aporta una cota superior del óptimo. Hay que volver a ramificar y volverlo a intentar. 0 x , 8 2 7x 9 3 2 5 2 3x . 4 3 7x z 2 3 1 2 1 3 2 3 2 1 3 2 1 > e s + s ÷ s ÷ + + + = + Z x x x x x x x a s x x Max La solución del problema relajado es 2857 . 14 ) 3 , 0 , 1428 . 1 ( ) , , ( 3 2 1 = = z x x x Este valor es una cota máxima del problema, aunque no es un valor solución porque + eZ x 1 La ramificación consiste en generar un par de nuevos subproblemas, mediante la adición respectiva de nuevas restricciones. Subproblema2 = Problema1 + ) 1 ( 1 s x Subproblema3 = Problema1 + ) 2 ( 1 > x La relajación del subproblema2 da lugar a la siguiente solución y función objetivo 1667 . 14 ) 667 . 2 , 5 . 1 , 1 ( ) , , ( 2 3 2 1 = = z x x x Dado que + eZ x 2 , volvemos a obtener una cota máxima más ajustada aunque la solución no es factible. Modelos y Métodos de Investigación de Operaciones Página 85 de 190 La relajación del subproblema3 no tiene solución, por lo que no se profundizará más en esa rama. Se crearán pues dos nuevos subproblemas Subproblema4 = Subproblema2 + ) 2 ( 3 s x Subproblema5 = Subproblema2 + ) 3 ( 3 > x La relajación del suproblema 4 da la siguiente solución. 42857 . 9 ) 2 , 5 . 1 , 714 . 0 ( ) , , ( 4 3 2 1 = = z x x x La relajación del subproblema 5 da la siguiente solución. 14 ) 3 , 0 , 1 ( ) , , ( 5 3 2 1 = = z x x x La solución del subproblema 5 da valores enteros de x 1 , x 3 , y además se puede garantizar su optimalidad porque la cota superior del subproblema 4 es 9.42, inferior al 14 ya obtenido. Gráficamente se puede representar del siguiente modo: En la resolución mediante métodos de ramificación y acotación, se puede optar básicamente por dos estrategias en la selección del siguiente nodo a ramificar: a) Elegir la rama más profunda b) Elegir la rama con mejor cota c) Elegir el primero de los nodos aún no explotados (FIFO) d) Elegir el último nodo abierto y no explotado (LIFO) Aunque aparentemente la opción b llevaría más rápidamente a la solución, lo cierto es que depende de cada problema la selección de una alternativa u otra. 2857 . 14 ) 3 , 0 , 1428 . 1 ( ) , , ( 3 2 1 = = z x x x Problema 1 1667 . 14 ) 667 . 2 , 5 . 1 , 1 ( ) , , ( 2 3 2 1 = = z x x x Subproblema 2 42857 . 9 ) 2 , 5 . 1 , 714 . 0 ( ) , , ( 4 3 2 1 = = z x x x Subproblema 4 14 ) 3 , 0 , 1 ( ) , , ( 5 3 2 1 = = z x x x Subproblema 5 Subproblema 3 No factible ) 1 ( 1 s x ) 2 ( 1 > x ) 2 ( 3 s x ) 3 ( 3 > x Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 86 de 190 © JPGS2011 Otra técnica interesante en la aplicación de la ramificación y corte es la del cálculo inicial de una solución que permita fijar la cota superior (en algunos textos anglófonos se denomina incumbent). Ésta, obtenida mediante algún procedimiento heurístico, daría una solución candidato que permitiría, en ocasiones, podar ramas sin necesidad de explorarlas profundamente. Por otro lado, aunque en este apartado se ha explicado la técnica de ramificación y acotación para un problema de PE, es posible aplicarlo en otros entornos conservando la misma configuración (Por ejemplo para la resolución de problemas de Optimización Combinatoria) 9.5.2 Enumeración implícita El método de enumeración implícita se usa frecuentemente para resolver PE 0-1. En la enumeración implícita se aplica el hecho de que cada variables es binaria para simplificar las componentes a ramificar y acotar del proceso de ramificación y acotación y para determinar eficazmente cuando un nodo no debe ser explorado. El árbol que se usa en el método de la enumeración implícita es similar a los árboles que se utilizan para resolver Pe convencional. Cada rama del árbol especificará para una determinada variables si vale x i =0 ó x i =1. Todas las variables a las que se las asigna un valor se denominan variables fijas y las demás variables libres. Para cualquier nodo (un conjunto de variables fijas con sus valores asignados) se denomina integración del nodo a cualquier especificación de las variables libres. Un modo de integrar de modo eficiente un nodo es asignando a las variables libres los valores que permiten maximizar (o minimizar) la función objetivo. Si esta integración es factible entonces esta es la mejor solución a que se puede llegar a través del nodo en el que nos encontramos. Si no fuera factible el valor de la función objetivo obtenido definiría una cota superior (o inferior) del nodo. Desgraciadamente no hay ningún modo efectivo de saber si para un nodo no existe ninguna integración factible. | | 2 3 2 2 : a sujeto 2 3 6 5 3 1 5 3 2 1 4 3 2 1 6 5 4 3 2 1 s + + + + s + + + s + ÷ + + ÷ ÷ + + o o o o o o o o o o o o o o o o o o Max Modelos y Métodos de Investigación de Operaciones Página 87 de 190 9.5.3 Métodos del plano cortante Los métodos del plano cortante se utilizan para resolver problemas de PE. El método consiste en relajar los problemas de PE a problemas de Programación Lineal. Si la solución resultante del problema es entera, el problema ha sido resuelto. Si no es así, se planteará una nueva restricción (plano de corte) que se añadirá al problema y que pretenden “relajar” las aristas que dan soluciones no enteras. El nuevo problema se vuelve a resolver como Programación Lineal y el proceso anterior se repite hasta que la solución es entera. Aunque el número de cortes necesarios para garantizar la optimalidad se ha demostrado que es finito, en realidad no es un procedimiento muy exitoso para problemas grandes. 9.6 Procedimientos de Resolución en Programación 0-1 Cuando el número de variables binarias es muy alto, probablemente compense diseñar procedimientos específicos como los explicados en el capítulo de Optimización Combinatoria que sucede a éste. 1 1 1 0 0 0 1 NO 7 0 1 1 0 0 1 SI 4 1 1 1 0 0 1 NO 7 1 0 1 0 0 1 NO 5 1 1 1 0 0 1 NO 7 1 1 0 0 0 1 SI 6 1 1 1 1 0 1 NO 6 1 1 1 0 0 1 NO 7 1 1 1 0 1 1 NO 5 1 1 1 0 0 1 NO 7 1 1 1 0 0 0 SI 7 1 1 1 0 0 1 NO 7 1 1 = o 0 1 = o 1 2 = o 0 2 = o 1 3 = o 0 3 = o 0 4 = o 1 4 = o 0 5 = o 1 5 = o 0 6 = o 1 6 = o Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 88 de 190 © JPGS2011 10 OPTIMIZACIÓN COMBINATORIA. INTRODUCCIÓN 10.1 Introducción Como se ha comentado anteriormente el Ingeniero de Organización Industrial diseña y mejora artefactos lógicos. Estos suelen tener forma de herramienta software que interpreta datos en el ámbito de un problema, y los transforma entregando como resultados datos que pueden ser ejecutados. Específicamente dentro del área de la Gestión de la Producción y las Operaciones, muchos de los problemas que se plantean tienen estructuras especialmente difíciles para garantizar la optimalidad en la resolución. Entre las herramientas disponibles para generar dichas soluciones, los algoritmos de optimización combinatoria resuelven instancias de problemas que se creen difíciles en general, explorando el espacio de soluciones (usualmente grande) para estas instancias. Los algoritmos de optimización combinatoria logran esto reduciendo el tamaño efectivo del espacio, y explorando el espacio de búsqueda eficientemente. La mayor parte de los procesos de resolución de problemas en optimización combinatoria no garantizan el óptimo ni siquiera en el contexto de modelo, que no necesariamente es el problema real, pero su aproximación al óptimo es probablemente suficiente. Los métodos de resolución se pueden clasificar de muchas maneras. Una de ellas permite pueden clasificar los métodos de resolución en 4 grandes grupos: a) Algoritmos constructivos: Construyen la solución desde una solución incompleta, a partir de los datos del problema y el conocimiento que del mismo se tiene. b) Algoritmos de mejora Comienzan con una solución factible y completa al problema, y esta solución general es modificada gradualmente de un modo progresivo. c) Estrategias de "divide y vencerás" En esta estrategia se opta primero por dividir el problema en fragmentos a los que se le aplica cualquier otra estrategia, recomponiendo finalmente la solución. d) Estrategias de aprendizaje. Las estrategias de aprendizaje pasan por tomar decisiones, en función de datos conocidos por el resultado de resoluciones anteriores o en la misma resolución. La clasificación que se utiliza aquí extiende el concepto de heurística tanto para los métodos constructivos como para los de mejora, y considera las últimas dos estrategias las dentro del proceso general de resolución, más que entre los procedimientos de resolución en Optimización Combinatoria. Los métodos habitualmente utilizados para resolver problemas son del tipo heurístico o metaheurístico. Esto es, son capaces de generar soluciones al problema. Son aproximaciones que pretenden acercarse lo más posible al óptimo, pero que pueden fallar en el intento. En los inicios de la Investigación Operativa, y dada las limitaciones de cálculo automático que entonces se tenía, era habitual desarrollar procedimientos heurísticos (es decir que hallaban soluciones) muy rápidamente. Los Modelos y Métodos de Investigación de Operaciones Página 89 de 190 procedimientos eran específicos para cada problema y en general su eficiencia era escasa cuando se intentaban utilizar en otros ámbitos. Pese a no garantizar la optimalidad, los métodos heurísticos de resolución (incluyendo entre ellos los procesos de mejora local y los algoritmos metaheurísticos), son básicos por varios motivos. En primer lugar son capaces de generar soluciones lo que generalmente es mejor que no tener solución alguna. En segundo lugar se puede decir que alcanzar el óptimo de un modelo que tampoco es exactamente el problema real no es esencialmente grave. Por último ser capaz de diseñar una buena heurística, exige un conocimiento del problema que puede conducir a mejoras de otro tipo. Con la existencia de ordenadores cada vez más potentes, y aprovechando su capacidad de cálculo han surgido en las últimas décadas, las denominadas técnicas metaheurísticas. Son procedimientos genéricos que pueden ser fácilmente adaptados para resolver La mayoría de las metaheurísticas tienen como objetivo los problemas de optimización combinatoria, pero por supuesto, se pueden aplicar a cualquier problema que se pueda reformular en términos heurísticos, por ejemplo en resolución de ecuaciones booleanas Muchos de los procedimientos denominados metaheurísticos se fundamentan generalmente en la capacidad del mundo natural de encontrar buenas soluciones y se intenta reproducir esta capacidad, surgiendo de este modo algoritmos como el Recocido Simulado, los Algoritmos Genéticos, las Redes Neuronales, los Sistemas de Hormigas y GRASP (Diaz, Glover, Ghaziri, Gonzales, Laguna, and Moscato, 1996). En realidad los fenómenos naturales en los que dicen basarse todas las metaheurísticas tienen en común su capacidad de explorar convenientemente el adyacente posible (Kauffman, 2003) para abandonar óptimos locales. Se puede realizar una clasificación simplificada de los procedimientos metaheurísticos indicando que hay tres grandes grupos. El primer grupo lo forman los que dada una solución intentan mejorarla (búsqueda local). El segundo grupo lo conforman los que parten de un conjunto de soluciones (población) para intentar obtener una mejor por combinación y evolución de las anteriores. El tercer grupo lo conforman aquellos que pretenden específicamente aprender de soluciones previas. La búsqueda local es la base de la mayor parte de los métodos heurísticos. Empezando por una determinada solución (en ocasiones generada aleatoriamente) la búsqueda local se mueve hacia un vecino que es mejor que la actual solución de acuerdo con la función objetivo. En general la búsqueda local corre el riesgo evidente de quedar atrapada en un óptimo local y la mayor parte de los algoritmos basados en óptimos locales pretenden evitar este problema. Estos apuntes se estructuran en dos partes, una dedicada a la introducción a la Optimización Combinatoria y otra a los procedimientos de resolución. Se acompañan los apuntes con resoluciones aproximadas a 3 problemas según serían requeridos en examen. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 90 de 190 © JPGS2011 En la primera parte se pretende, en primer lugar, establecer qué es la Optimización Combinatoria y dar una idea general sobre la complejidad de establecer soluciones óptimas en dichos entornos. Se presenta a continuación una aproximación a los problemas de optimización combinatoria mediante una tentativa de clasificación de los mismos. Se presenta finalmente una aproximación a los criterios que permiten seleccionar algoritmos en función de los requerimientos solicitados. En la segunda parte se abordan los procedimientos de resolución de problemas de optimización combinatoria clasificados en 3 grandes grupos: a) Procedimientos de Resolución Aleatorios b) Procedimientos Enumerativos c) Procedimientos Heurísticos (se incluyen en estos los Metaheurísticos 10.2 Complejidad en la Optimización Combinatoria,. 10.2.1 Optimización Combinatoria Un problema de optimización combinatoria es un problema de optimización en el cual el espacio de soluciones posibles es discreto. La optimización combinatoria es una rama de la optimización de las matemáticas aplicadas fuertemente relacionada con la investigación operativa, la teoría algorítmica y la teoría de la complejidad computacional. Los algoritmos de optimización combinatoria resuelven problemas que se creen difíciles en general, por la vía de explorar el, habitualmente grande, espacio de soluciones del citado problema. Los buenos algoritmos de optimización combinatoria lo logran por la vía de reducir el tamaño efectivo del espacio a buscar y explorando de modo eficiente dicho espacio. 10.2.2 Variaciones (con y sin) Repetición, Combinaciones, Permutaciones. Es relevante recordar algunos conceptos de combinatoria, pues estos permiten establecer la dimensión de alguno de los problemas aquí tratados. Los problemas de combinatoria se pueden definir como la “Selección de un subconjunto de entre un conjunto de elementos con permitiendo (o no) la repetición y siendo (o no) relevante el orden de los mismo”. Si el subconjunto seleccionado es todo el conjunto original el problema tratado es de permutaciones. Si el orden no importa el problema es de Combinación. A continuación se recuerdan algunas fórmulas básicas que permiten calcular el número de alternativas posibles a determinadas estructuras Variaciones sin Repetición: Número de modos de seleccionar y ordenar r elementos de un conjunto de n, donde ninguno se puede repetir. ! ( )! r n n A n r = ÷ Modelos y Métodos de Investigación de Operaciones Página 91 de 190 Variaciones con Repetición: Número de modos de seleccionar y ordenar r elementos de un conjunto de n. r n Permutación sin Repetición: Número de modos en el que se puede ordenar un conjunto de n elementos distintos entre sí. ! n Permutación con Repetición: Número de modos de ordenar un conjunto de n elementos donde hay m1 elementos de tipo 1, m2 elementos de tipo 2…mS elementos de tipo S. ! 1!· 2!····· ! n m m mS Combinaciones sin Repetición: Número de modos de seleccionar r elementos de un conjunto de n, donde ninguno se puede repetir. ! !·( )! r n n C r n r = ÷ Combinaciones con Repetición: Número de modos de seleccionar r elementos de un conjunto de n, permitiendo la repetición en la selección. ( ) 1 1 ! !·( 1)! r n r n r C r n + ÷ + ÷ = ÷ Por su interés se destacan algunas otras relaciones que permiten calcular de cuantos modos se pueden introducir elementos (iguales o distintos-ordenados y no ordenados) en casillas (iguales o distintas – ordenadas y no ordenadas). Cuando se indica que los elementos están ordenados hace referencia a que interesa el orden, no a que estén previamente ordenados. r Objetos distintos y no ordenados en n casillas distintas y no ordenadas r n r Objetos idénticos en n casillas distintas y ordenadas ( ) 1 1 ! !·( 1)! r n r n r C r n + ÷ + ÷ = ÷ r Objetos distintos y ordenados en n casillas distintas y ordenadas ( ) 1 1 ! ( 1)! r n r n r C n + ÷ + ÷ = ÷ Todas estas relaciones (junto con otras muchas y –lo que es más importante- el modo de llegar a ellas), se pueden encontrar en (Kauffmann, 1971). 10.2.3 P y NP Teoría de la Complejidad La teoría de la complejidad computacional es la rama de la teoría de computación que estudia los recursos, o coste, de computación requerido para resolver un problema dado. Este coste se suele medir en terminos de parámetros abstractos como el tiempo y el espacio. Tiempo son los pasos que requiere el problema para ser resuelto y el espacio suele referirse a la cantidad de memoria que utiliza. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 92 de 190 © JPGS2011 Otros recursos que se pueden considerar es el número de procesadores en paralelo que se necesitan para resolver un problema en paralelo. En este caso hay que considerar el tiempo paralizable y el no paralelizable. La teoría de la complejidad no es la teoría de la “comptuabilidad” que tiene que ver con la capacidad de resolver un problema, independientemente de los recursos requeridos. P y NP La clase de complejidad P es el conjunto de problemas de decisión que pueden ser resueltos por una máquina determinista en tiempo polinomial. Esta clase corresponden a la idea intuitiva de los problemas que se puede resolver de modo efectivo en los peores casos. La clase de complejidad NP es el conjunto de problemas de decisión que pueden resolverse por una máquina no determinista en tiempo polinomial. Esta clase contiene una gran cantidad de problemas que se pretenden resolver. La principal propiedad de los problemas de esta clase es que sus soluciones pueden ser chequeadas de modo eficiente en tiempo polinomial. 10.3 Algoritmos básicos. - Ordenar - Buscar el Mayor (o menor) - Intercambiar - Sumar - Voltear 10.4 Problemas de Optimización Combinatoria En este apartado se describen algunos problemas clásicos de optimización combinatoria. La intención inicial al redactar el apartado era establecer una clasificación, pero esto parece casi imposible, habida cuenta de que se pueden encontrar muchos tipos de clasificaciones en función de diferentes criterios para cada tipo de problema. Así, se ha optado por enumerar (sin ánimo de ser exhaustivos ni exclusivos) diferentes tipos de problemas en función de diferentes aspectos como por ejemplo: su aplicación, la clase teórica a la que pertenecen o las soluciones que se pretenden conseguir. Se han dejado aparte clasificaciones que considerarían aspectos como su dureza en terminos de complejidad, o la existencia de algoritmos eficientes para su resolución. 10.4.1 Según su aplicación. 10.4.1.1 Secuenciación Los problemas de secuenciación son, junto con los de rutas, la aplicación más clásica en optimización combinatoria, tanto por la extensión de su aplicación, como por su facilidad de planteamiento. Aún así el número de problemas diferentes que se puede plantear son muchos. Modelos y Métodos de Investigación de Operaciones Página 93 de 190 Definir el orden en el que se deben ejecutar las tareas de un proyecto para minimizar su duración, teniendo en cuenta limitaciones en los recursos, es un clásico problema de secuenciación. La secuenciación en una máquina hace referencia al orden en que un conjunto de trabajos deben pasar por una máquina. Permite considerar aspectos como la duración, fecha de entrega, la importancia del cliente… Los problemas de secuenciación de una máquina se extienden teniendo en cuenta máquinas en paralelo y/o máquinas en serie (taller de flujo) y de ahí al taller general. Otra extensión habitual es considerar tiempos de preparación de máquinas. Además el uso de múltiples recursos diferentes y limitados forma parte también de las posibilidades Si además de definir la secuencia (o incluso asignar la máquina) se tuviera que definir la cantidad a producir se entraría en los problemas que unen la lotificación con la Secuenciación (ELSSP). La secuenciación con mezcla de modelos en una línea de montaje, pretende establecer el orden en el que un conjunto de productos (pertenecientes a varias familias en diferentes cantidades) deben circular por una línea de montaje. 10.4.1.2 Rutas Los problemas de rutas tratan de establecer el circuito a recorrer para dar un determinado servicio, ya sea de entrega de recepción o de ambos. El problema clásico denominado del viajante de comercio (TSP) supone visitar una y sólo una vez un conjunto de puntos. A este problema se le pueden añadir variantes como incluir varios viajantes, limitar la capacidad de los camiones o la disponibilidad de tiempo, incorporar ventanas temporales de entrega o recepción, obligar o prohibir determinados tramos, hacerlo en una o varias ocasiones por cada tramo… 10.4.1.3 Corte y Empaquetado Los problemas de corte son los ligados a reducir el consumo de materia prima que se vende o consume troceada. Pueden ser unidimensionales (vigas), bidimensionales (placas de vidrio, cartón o tela) o incluso tridimensionales como en el corte de mármol. También se pueden considerar variantes como que las piezas a obtener tengan una forma regular, o irregular (por ejemplo retales de tela). O restricciones que obligan a mantener determinadas direcciones de corte, o realizar cortes completos. Los problemas de Trim son una variante de estos problemas en los que de un rollo (de papel o de acero) se trocean otros rollos de anchos y longitudes diferentes). El problema radica en este caso en establecer los modos en los que los diferentes rollos se van haciendo para minimizar no sólo la materia prima desperdiciada sino también las preparaciones de máquina a realizar. Los problemas de empaquetado son similares siendo los contrarios, pretenden ubicar en la mínima superficie (o el mínimo volumen) posible un conjunto de partes que son inicialmente diferentes. 10.4.1.4 Horarios Los problemas de horarios son un problema clásico de optimización de combinatoria que tiene en la gestión docente (aunque evidentemente no es exclusiva de ella) una gran cantidad de aplicaciones: el diseño de horarios de clase, repartos de guardias, calendarios de exámenes, son algunos fácilmente Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 94 de 190 © JPGS2011 reconocibles. En la industria se pueden encontrar fácilmente cuando se trata de repartir cargas de trabajo desiguales entre operarios con calendarios laborales. 10.4.1.5 Asignación Los problemas en los que se asignan recursos a tareas o tareas a agrupaciones son otra clase habitual de problemas. El equilibrado de líneas es un problema muy conocido, pero los problemas de asignación de frecuencias o de generación de equipos multidisciplinares equilibrados no son menos habituales. 10.4.2 Según su clasificación formal. - El pr obl ema de l a mochi l a (uni o mul t i dimensi onal ) - De máxi mo (o mi nimo) f l uj o - Pr obl emas de Asi gnaci ón Cuadr át i ca - Gr aph Par t i t i oni ng Pr obl em - Bi par t i t e Dr aw i ng Pr oblem - Cubr i mi ent o, Par t i ci ón y Empaquet ado. - De cami no más cor t o (o más l ar go) - El pr obl ema de col or eado de gr af os - Li near Or der i ng Pr obl em 10.4.3 Según las soluciones que se buscan. En algunos problemas, sólo se tiene interés en encontrar una solución factible (e incluso en algunos casos únicamente se pretende saber si existe una solución). En otros casos el objetivo es que la solución factible encontrada sea suficientemente buena o incluso que sea óptima (es decir que no haya ninguna solución mejor).Por último es posible que se tenga interés en localizar todas las soluciones óptimas o incluso todas las soluciones factibles. 10.5 Evaluación de Procedimientos. Los algoritmos se pueden medir en función de su capacidad de alcanzar buenos resultados, y del coste (tanto en tiempo como en memoria que requieren) para alanzar dichos resultados. Estos criterios se denominan: Eficiencia, Robustez y Bondad. Al comparar los algoritmos se puede realizar tanto en el tiempo de resolución que emplean como en el resultado que obtienen. En el caso de comparar los resultados estos se pueden comparar contra el óptimo, contra una cota del óptimo, o contra el resultado de otros algoritmos. Lo que se mide puede ser el comportamiento promedio, el comportamiento en el peor de los casos o el número de éxitos (número de veces que se obtiene el óptimo o el mejor resultado). Modelos y Métodos de Investigación de Operaciones Página 95 de 190 11 OPTIMIZACIÓN COMBINATORIA. LA BÚSQUEDA RÁPIDA DE SOLUCIONES 11.1 Introducción. La mayor parte de los procesos de resolución de problemas en optimización combinatoria no garantizan el óptimo ni siquiera en el contexto de modelo, que no necesariamente es el problema real. (Foulds 1983) clasifica los métodos de resolución en 4 grandes grupos: a) Algoritmos constructivos: Construyen la solución desde una solución incompleta, a partir de los datos del problema y el conocimiento que del mismo se tiene. b) Algoritmos de mejora Comienzan con una solución factible y completa al problema, y esta solución general es modificada gradualmente de un modo progresivo. c) Estrategias de "divide y vencerás"La esta estrategia se opta primero por dividir el problema en fragmentos a los que se le aplica cualquier otra estrategia, recomponiendo finalmente la solución. d) Estrategias de aprendizaje. Las estrategias de aprendizaje pasan por tomar decisiones mensuales robre el modo de resolver, en función de datos conocidos por el resultado de resoluciones anteriores o en la misma resolución. Sin embargo la clasificación que se va a utilizar en estos apuntes extiende el concepto de heurística tanto para los constructivos como para los de mejora, y las últimas dos estrategias las considera dentro del proceso general de resolución, más que entre los procedimientos de resolución en Optimización Combinatoria. Así se clasifican en estos apuntes los métodos según los siguientes cuatro tipos: a) Generación de soluciones por métodos heurísticos constructivos b) Generación de soluciones por métodos enumerativos c) Generación de Soluciones por Métodos Heurísticos de Mejora Local. d) Generación de Soluciones por Métodos Heurísticos de Población. Además se incorpora la generación de soluciones por métodos aleatorios, pues aunque son ineficientes en el proceso de búsqueda, pueden ser eficaces, tanto para calibrar métodos cómo, y más relevante para comprobar que se ha entendido bien el problema. Los métodos habitualmente utilizados para resolver problemas son del tipo heurístico o metaheurístico. Esto es, son capaces de generar soluciones al problema. Son aproximaciones y inacciones que pretenden acercarse lo más posible al óptimo, pero que pueden fallar en el intento. Pese a su no-optimalidad, muchos de estos métodos son básicos por varios motivos. En primer lugar son capaces de generar soluciones lo que generalmente es mejor que no tener solución alguna. En Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 96 de 190 © JPGS2011 segundo lugar se puede decir que alcanzar el optimo de un modelo que tampoco es exactamente el problema real no es esencialmente grave. Por último ser capaz de diseñar una buena heurística, exige un conocimiento del problema que puede conducir mejoras de otro tipo. 11.2 Procedimientos de Resolución Aleatorios. 11.2.1 ¿Para qué sirven? Diseñar un procedimiento de resolución aleatorio debiera, en primer lugar, ser fácil de hacer. Además debiera permitir generar soluciones factibles (o al menos evaluables) de modo rápido. Dos son los motivos por los que se recomienda comenzar el análisis de cualquier problema con el desarrollo de procedimientos de resolución aleatorios: a) Para comparar contra procedimientos más elaborados. b) Para tener rápido un procedimiento que dé soluciones y comprobar que se está abordando el problema adecuado. Además las soluciones obtenidas aleatoriamente pueden servir de base para otros procedimientos más elaborados (mejora local o algoritmos genéticos). 11.2.2 ¿Pueden funcionar? En principio esto dependería de cada problema, pero se puede generalizar diciendo que los resultados aleatorios tienen una baja probabilidad de ser buenos, pero en ese caso, la repetición suficiente podría llegar a dar, de un modo ni eficiente ni robusto resultados aceptables. Como ejemplo se ha evaluado un problema de Flow-Shop de 3 máquinas, 12 tareas, con tiempos aleatorios de ejecución entre 2 y 20. Se ha ejecutado un algoritmo aleatorio 1000 veces y se ha obtenido la siguiente gráfica de resultados. Tras 1000 iteraciones en una ocasión se ha obtenido un resultado igual a 164, siendo el óptimo 163 (aunque eso no es conocido a priori). Se ha repetido el experimento con 10000 iteraciones obteniendo los siguientes resultados. Modelos y Métodos de Investigación de Operaciones Página 97 de 190 Es decir, en dos ocasiones (de entre 10000) se ha alcanzado el óptimo, y sólo en 10 ocasiones el error cometido sobre el óptimo ha sido menor que el 2,5%. En problemas más grandes la dispersión crece, y además el tiempo de ejecución no es despreciable. Sin embargo, y en el mismo problema, con un algoritmo de mejora iterativa sencillo, a partir de una solución aleatoria, se obtiene el óptimo en el 50% de las ocasiones, en la misma cantidad de tiempo que se tarda en generar aproximadamente 100 soluciones aleatorias. Para comprobarlo se han utilizado las 1000 soluciones aleatorias generadas en la primera experiencia y a cada una de ellas se le ha aplicado un algoritmo de mejora iterativa con un vecindario definido según un intercambio de 2 (común para todos los problemas de permutación). El histograma resultado ha sido el siguiente: Es decir, el óptimo se alcanzó en casi el 50% de las ejecuciones y el peor resultado obtenido estaba a 13% del óptimo. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 98 de 190 © JPGS2011 Con el anterior ejemplo se ha pretendido mostrar que las heurísticas aleatorias no funcionan de modo eficiente, aunque son fundamentales, pues permiten iniciar los procesos tanto de modelado como incluso de resolución. 11.2.3 Un procedimiento de generación aleatoria de soluciones En este apartado se presenta un sencillo procedimiento que permite generar soluciones aleatorias para problemas en los que el vector solución es una permutación de n elementos. Sea v un vector con n elementos a permutar i:=0; while i<n-1 do begin j:=random(1..n-i) intercambiar(v[i+1];v[i+j]) i:=i+1 end; Intercambiar es un procedimiento que intercambia los valores de v en las posiciones señaladas. Procedure intercambiar(v[i+1];v[i+j]) begin aux:=v[i+1]; v[i+1]:=v[i+j]; v[i+j]:=aux; end; 11.3 Algoritmos Heurísticos. 11.3.1 Concepto de Heurística Un algoritmo heurístico es un procedimiento que permite encontrar una solución y que suelen diseñarse de modo específico para cada problema. En métodos matemáticos, heurística suele hacer referencia a un procedimiento que busca una solución aunque no garantiza encontrar la mejor solución. En Inteligencia Artificial se suele denominar función heurística a aquella que dirige la búsqueda (o construcción) de una solución, utilizando algún mecanismo más o menos sencillo. Un buen algoritmo heurístico debe ser eficiente, bueno y robusto. Esto es: debe requerir un esfuerzo computacional realista, su resultado debe estar suficientemente cerca del óptimo, y la probabilidad de obtener una mala solución debe ser baja. Un tipo especial de heurísticas son las constructivas, es decir aquellas que en cada paso añaden un elemento más a una solución que no ha sido completamente construida. Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. (Rutas, Secuenciación, Líneas de Montaje…).En muchas ocasiones el objeto de la decisión es evidente, pero no necesariamente es así. El otro tipo principal de heurísticas son las de búsqueda de entornos o de mejora local. Estas parten de una solución cualquiera (no necesariamente aleatoria) y avanzan buscando en el vecindario más próximo, produciendo mejoras hasta que alcanzan un punto donde ningún elemento en el vecindario es mejor que la solución de la que ya se dispone. Modelos y Métodos de Investigación de Operaciones Página 99 de 190 Las heurísticas también pueden ser de tipo voraz (en inglés greedy) estas heurísticas eligen siempre las soluciones mejores de modo local para generar el resultado. Algúnas heurísticas greedy son óptimas (como ejemplo el algoritmo de Johnson para un flow-shop de 2 máquinas), pero no necesariamente es así. Los algoritmos de tipo voraz suelen ser muy rápidos pues no consideran alternativas. La alternativa a las heurísticas greedy son las Heurísticas con BackTracking. Estas son heurísticas que si alcanzan un punto de no retorno (o no suficientemente buenos) retroceden en el proceso de reconstrucción, para analizar caminos abandonados. - M ét odos Const r uct i vos  Vor aces  Heur íst i cas con BackTr acki ng - Heur íst i cas No Const r uct i vas  Expl or aci ón de Ent or nos - M ét odos Combi nados 11.3.2 Procedimientos Constructivos Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. (Rutas, Secuenciación, Líneas de Montaje…). En muchas ocasiones el objeto de la decisión es evidente, pero no necesariamente es así. Aunque cada heurística constructiva es diferente, y no hay ningún límite en su diseño, algunas de las alternativas que permiten plantear heurísticas son las siguientes: a) Reglas de Prioridad: Se asignan valores a los objetos que se van a seleccionar en el proceso de construcción y se utilizan para elegir la siguiente opción. Los valores pueden calcularse de una vez para el resto del cálculo o variar dinámicamente tras cada decisión dando lugar a las Reglas Estáticas o a las Dinámicas. En muchos casos es importante que la regla de prioridad tenga en cuenta criterios de desempate. b) Dirección de Construcción: En ocasiones es posible identificar una dirección de construcción. En general se suele trabajar hacia adelante, pero también es posible diseñar heurísticas que funcionen hacia atrás o incluso en las dos direcciones simultáneamente. c) Técnicas de Reducción Previa: El análisis previo del problema puede llevar a tomar decisiones que afecten a la estructura de la solución antes de comenzar el proceso de resolución. (Por ejemplo eliminar subsecuencias antes de empezar por ser demasiado caras) d) Heurística de Paso Múltiple: Se repite el cálculo cambiando las reglas de decisión o incluso tomando decisiones de modo estocástico. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 100 de 190 © JPGS2011 e) Heurísticas MultiStart: Repetir la heurística pero comenzando cada vez por un elemento diferente. 11.3.2.1 Miopía de las Heurísticas Constructivas Uno de los principales problemas de las heurísticas constructivas es la denominada “miopía”. Ésta consiste en el mal comportamiento de algunas heurísticas, según el cual las decisiones tomadas en cada etapa, aunque buenas según el criterio de selección, perjudican la solución final. Dos son los modos de solución a este problema: dotar de profundidad a la regla de prioridad o diseñar heurísticas con backtracking. Dotar de profundidad a la regla de decisión es que en cada etapa de decisión se tenga en cuenta, en la medida de lo posible como afectará en las siguientes etapas de decisión la decisión actual. La regla de prioridad en este caso evaluaría no sólo el efecto de la decisión a tomar sino también las decisiones que se tomarían como consecuencia de la que se tome. Dotar a las heurísticas de técnicas de backtracking. Es decir dotar de capacidad a las heurísticas de volver atrás en las decisiones (y tomar nuevas decisiones) si la situación no es la deseable. 11.3.2.2 Heurísticas con BackTracking Las heurísticas con backtracking buscan una solución probando una de entre varias alternativas, cada decisión se almacena de tal modo que si se puede demostrar que una decisión fue incorrecta se restablezca la solución en ese punto. Conceptualmente un algoritmo de bracktracking es equivalente a una búsqueda en profundidad en un algoritmo enumerativo, donde cada decisión equivale a un nodo en el árbol. 11.3.2.3 Procedimientos de enumeración incompletos. Como se ha dicho la Optimización Combinatoria es una rama de la Optimización de las matemáticas aplicadas en el cual el espacio de soluciones posibles es discreto. Es decir, el óptimo se podría alcanzar mediante la enumeración de todas las soluciones, aunque esta posibilidad está restringida a tamaños muy pequeños de problema. Las técnicas de enumeración pueden ser utilizadas para diseñar procedimientos constructivos que sean más rápidos aunque menos eficaces reduciendo el número de nodos a explorar o limitando el tiempo de ejecución. 11.3.2.4 Heurísticas Constructivas. Estructura General y Alternativas de Diseño Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. (Rutas, Secuenciación, Líneas de Montaje…). En muchas ocasiones el objeto de la decisión es evidente, pero no necesariamente es así. Se consideran heurísticas voraces aquellas que avanzan sin posibilidad de deshacer las decisiones tomadas. Modelos y Métodos de Investigación de Operaciones Página 101 de 190 12 ALGORITMOS ENUMERATIVOS 12.1 Concepto de Algoritmo Enumerativo. Un algoritmo Enumerativo o Completa exacto es aquel que garantiza la obtención de la mejor solución posible, el óptimo, por la vía de explorar el espacio de soluciones en su totalidad. En el problema citado para ejemplificar la búsqueda aletoria (el Flow-Shop con 12 tareas) el número de alternativas posibles es de 479.001.600. Si en generar y evaluar cada solución se tardará una milésima de segundo el problema requeriría más de 5 días de computación si se pudiera hacer de un modo ordenado y sistemático (de un modo aleatorio sería sencillamente imposible). A la vista de las anteriores magnitudes es evidente que los métodos de enumeración completa no son prácticos en la mayor parte de situaciones normales. Sin embargo son una buena estructura para comenzar la búsqueda de soluciones. Los procedimientos de Enumeración Completa se pueden clasificar en ciegos o guiados según la forma de dirigir la exploración. Según si buscan una solución exacta o se conforman con una buena solución los procedimientos son exactos o heurísticos. También se pueden clasificar según si buscan una solución óptima, todas las soluciones óptimas o todas las factibles. Por último los algoritmos pueden utilizar la Fuerza Bruta analizando una por una todas las soluciones, o pueden tener algún tipo de inteligencia que permita podar aquellas ramas del árbol de exploración que no van a ser útiles. 12.2 Algoritmo de Enumeración Completa Los algoritmos de enumeración completa son diferentes en función de la estructura de la solución. Así por ejemplo no es lo mismo hacer enumeración completa para soluciones que se representan como un vector de n dimensiones donde los valores pueden ser 0 o 1, que para una solución que se representa como una permutación de valores, o una solución cuya estructura sea una combinación de n elementos tomados de r en r. A continuación se presenta un algoritmo de enumeración completa para problemas de permutación basado en una propuesta de Dijkstra citado en http://www.cut-the-knot.org/do_you_know/AllPerm.shtml. For c = 1 To M i = N - 1 Do While (S(i - 1) >= S(i)): i = i - 1: Loop j = N Do While (valor(j - 1) <= valor( i - 1)): j = j - 1: Loop Intercambia S( i - 1) con S(j - 1) i = i + 1 j = N Do While (i < j) Intercambia S( i - 1) con S(j - 1) i = i + 1 j = j - 1 Loop Next c Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 102 de 190 © JPGS2011 El algoritmo propuesto anteriormente enumera de modo lexicográfico a partir de una solución inicial expresada en el vector S. El que se expresa a continuación enumera combinaciones (r,n) de la página 231 de Matemáticas discreta Escrito por Richard Johnsonbaugh,Óscar Alfredo Palmas Velasco 12.3 Estructura de un algoritmo de exploración completa basado en exploración de nodos. 12.3.1 Conceptos previos: Nodo Se puede plantear que los procedimientos de exploración siguiendo un sistema arborescente de nodos que se se evaluan, se podan, se seleccionan y se explotan. Cada nodo hace referencia a una solución parcial (o relajada) del problema. Dicha solución parcial puede ser valorada, por lo que ya se sabe de la solución, o por lo que las futuras incorporaciones a la solución incorporarán. Cada nodo, excepto el nodo final, es descendiente de algún nodo padre, al que completa parcialmente la solución que aquel traía de sus antecedentes. Por la vía de la explosión, se generan descendientes a cada nodo se completa un poco más la solución, añadiéndole un subconjunto de opciones que permiten definir un poco más la información. Modelos y Métodos de Investigación de Operaciones Página 103 de 190 12.3.2 Estructura general de un procedimiento de exploración completa basado en nodos. La estructura propuesta parte de la estructura básica nodo que mantiene toda la información relativa a los nodos (como mínimo: cual es el nodo padre, evaluación, que información incorpora a la solución del nodo padre, si está explotado o no). Una estructura superior al nodo la constituye la lista de nodos. Dicha lista almacenará todos los nodos abiertos (podría almacenar todos los nodos). Mientras haya algún nodo abierto el proceso se repetirá con las siguientes 3 fases: seleccionar el siguiente nodo a explotar, explotar el nodo seleccionado (que incluye evaluar los nuevos nodos y cerrar el nodo ya explotado) y una última fase que cierra aquellos nodos que no se tengan, o no se quieran, mantener abiertos. Además cada vez que se genere una solución completa hay que comprobar si mejora la mejor solución disponible hasta este momento GenerarNodoOriginal; GenerarUnaSolucionInicial; // esto es opcional While haya_nodos_abiertos do begin SeleccionarNodoExplotar; ExplotarNodoSeleccionado; // incluye EvaluarNuevosNodos; ComprobarSiSeHaAlcanzadoUnaSoluciónMejor; CerrarNodosNoÚtiles; End; //del while A continuación se desarrollan las funciones básicas que hacen falta para el uso de esta estructura que son: a) La función de evaluación de cada nodo. b) El modo de seleccionar el nodo a explotar. c) El modo de explotar el nodo seleccionado. d) Los criterios por los cuales se cierran nodos 12.3.3 Funciones de evaluación La función de evaluación considera dos paquetes de información que suministra la solución parcial que, como tal, tiene el nodo. Por una lado la parte de la solución que ya está completamente detallada. Por el otro la información asociada a la parte de la solución que no se ha definido. Según lo dicho la función de evaluación del nodo, sea f(n), se compone de una parte ligada la solución parcial conocida ,sea g(n) y sea h(n) la evaluación de la solución que quedaría por definir. Si el componente de la función de evaluación del nodo ligado a la fase ya definida de la solución se conoce de modo exacto se definirá como g*(n). Si el componente de la función de evaluación del nodo ligado a la parte no definida de la solución se conoce de modo exacto se definirá como h*(n). Teniendo en cuenta la existencia de estos dos componentes se pueden definir diferentes modos de evaluar la calidad de cada nodo (que servirá posteriormente para compararlo entre ellos). Algunos de los parámetros que permiten crear los diferentes criterios son: Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 104 de 190 © JPGS2011 De modo general se puede definir f(n)=(2-w(n))g(n)+w(n)h(n), donde w(n) es un coeficiente que pondera la importancia de g y h en función del nodo en el que se encuentre la exploración. En general, y salvo que se tenga una razón fundada, se puede asumir que w(n)=1 para todo n. Es importante destacar que, en ocasiones, g(n) y h(n) serán muy costosos de calcular. Este hecho requiere una evaluación especial dado que el número de ocasiones en que haya que hacer el cálculo puede ser considerable. 12.3.4 Selección del Nodo a explotar De entre los nodos abiertos hay que elegir cual es el nodo a explotar. Cada criterio tiene sus ventajas e inconvenientes ligadas a: b) La facilidad de búsqueda del nodo. c) La rapidez en la que se encuentran soluciones completas. d) La rapidez en la que se encuentran buenas soluciones completas. Los criterios más habituales son: a) Selección aleatoria b) Primero el más antiguo (FIFO) c) Primero el más moderno (LIFO) d) Primero el más profundo (búsqueda en profundidad) e) Primero el menos profundo (Búsqueda en Anchura) f) Primero el de menor coste (g(n)) g) Primero el de mejor cota (f(n)), h) Primero el de mejor esperanza 12.3.5 Generación de nodos (explosión) Cada problema tiene un mecanismo de generación de nodos (una vez seleccionado el mismo) diferente. No es posible proponer un mecanismo general. Aunque sí hay algunos criterios que se deben observar. En primer lugar debe generar todas las opciones posibles a partir del nodo explotado, y no debe conducir a la generación de una cantidad excesiva de nodos en cada explosión. En los problemas en que la solución es una permutación de valores un modo habitual de explotar nodos es añadir un nuevo valor a la solución parcialmente construida. 12.3.6 Eliminación (o cierre) de Nodos. No todos los nodos abiertos son igualmente necesarios, por ello se suele añadir un procedimiento que elimine aquellos nodos que no se quieran mantener abiertos. Modelos y Métodos de Investigación de Operaciones Página 105 de 190 Algunos de los nodos abiertos serán manifiestamente incompatibles y por ello deben ser cerrados. Otros nodos serán estructuralmente iguales que otros nodos ya creados (abiertos o no), podría interesar buscar esos nodos para cerrar el nodo idéntico. Es posible que haya nodos que conduzcan de manera unívoca a la generación de una solución completa. En ese caso hay que crearla y valorarla, comparándola con la mejor solución disponible hasta el momento, guardándola si es mejor que ella y en cualquier caso cerrándolas. Algunos nodos estarán dominados por otros nodos ya creados, en ese caso se debe cerrar el nodo. Otros nodos podrían tener alguna característica que les impidiera conducir a un óptimos en cuyo caso pueden también ser cerrados. En algunos casos la cota de los nodos abiertos es ya peor que la mejor de las soluciones obtenidas. En ese caso no tiene sentido seguir explotando ese nodo y conviene que sea cerrado. Por último, es posible que por problemas de memoria no se pueda tener abierta más de una cierta cantidad de nodos. En ese caso hay que elegir el conjunto de nodos a mantener y cerrar el resto. Los procedimientos de enumeración completa analizan todos y cada uno de los nodos que se abren. 12.4 Otras técnicas de Enumeración basadas en la exploración por nodos. Las técnicas de Enumeración Implícita analizan que nodos no se deben abrir puesto que se puede deducir de su estructura los resultados que puede obtener. Las técnicas Beam Search avanzan por niveles y no permiten que haya más de M nodos abiertos simultáneamente. Las técnicas Laser generan, a partir de cada nodo abierto, soluciones, mediante heurísticas rápidas, aunque la exploración se hace también por niveles. Este método permite tener buenas soluciones sin necesidad de acabar el procedimiento que garantizaría el óptimo. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 106 de 190 © JPGS2011 13 PROCEDIMIENTOS DE MEJORA LOCAL Son procedimientos basados en analizar el vecindario de una determinada solución, para averiguar si existe, en dicho vecindario, una solución con mejor valor de función objetivo. El proceso de búsqueda examina todas las opciones dentro del vecindario actual y selecciona (generalmente) la mejor opción para moverse hacia él y recomenzar el proceso 13.1 Vecindario La definición de vecindario es el conjunto de soluciones que pueden ser alcanzados desde la solución actual con una operación simple. Cualquier punto que requiera dos operaciones no es vecindario. La mejor solución en un vecindario es un óptimo con respecto a su vecindario. A continuación se describen los tres tipos de vecindario más habituales. 13.1.1 Intercambio de 2 elementos Son vecinos de una determinada solución todas aquellas soluciones alcanzables mediante el intercambio de de dos elementos de la solución. Ejempo: Sea ABCDEFGH la solución original considerada. Un intercambio de los elementos 3 y 6 proporcionaría la siguiente solución ABFDECGH 13.1.2 2-opt Son vecinos de una determinada solución todas aquellas soluciones mediante el siguiente movimiento: Tras seleccionar dos elementos de una solución invertir el tramo que hay entre los mismos. Este tipo de vecindario ha demostrado su superioridad, en general, frente al del intercambio simple. Además todos los vecinos según el proceso de intercambio son vecinos en segundo nivel del vecindario 2-opt. Lo mismo ocurre con los vecinos encontrados mediante el proceso Insertar. Ejempo: Sea ABCDEFGH la solución original considerada. Un 2-opt de los elementos 3 y 6 proporcionaría la siguiente solución ABFEDCGH 13.1.3 Insertar Son vecinos de una solución mediante el proceso de inserción aquellos en los que se coge un elemento y se inserta entre otros dos elementos. Los vecinos así conseguidos son vecinos en segundo nivel del vecindario 2-opt. Ejempo: Sea ABCDEFGH la solución original considerada. Insertar 3 en 6 proporcionaría la siguiente solución ABDEFCGH. Modelos y Métodos de Investigación de Operaciones Página 107 de 190 13.2 Algoritmos de Mejora basados en Vecindario 13.2.1 Nomenclatura x: solución actual x': solución en el vecindario c(x) = valor de la función objetivo para x N(x): vecindario de x random: función 13.2.2 Mejora Iterativa Simple. Procedimiento Paso 1) Inicialización 1.1 Seleccionar una solución inicial x 1.2 Definir mejor_coste:=c(x) Paso 2) Selección (y acabar si no hay mejora) 2.1 Seleccionar x' perteneciente N(x) tal que c(x')<c(x) 2.2 Si no hay tal x' entonces STOP Paso 3) Actualizar 3.1 x:=x' 3.2 mejor_coste:=c(x) 3.3 Ir a paso 2. 13.2.3 Descenso Rápido. Procedimiento Paso 1) Inicialización 1.1 Seleccionar una solución inicial x 1.2 Definir mejor_coste:=c(x) Paso 2) Selección (y acabar si no hay mejora) 2.1 Seleccionar x' perteneciente N(x) tal que c(x')<c(x) y es el menor coste en el vecindario c(x')=min(N(x)) 2.2 Si no hay tal x' entonces STOP Paso 3) Actualizar 3.1 x:=x' 3.2 mejor_coste:=c(x) 3.3 Ir a paso 2. 13.2.4 Mejora Iterativa Aleatorizada. Procedimiento wp: real positivo menor que 1. Paso 1) Inicialización 1.1 Seleccionar una solución inicial x 1.2 Definir mejor_coste:=c(x) Paso 2) Selección 2.1 Si random<wp seleccionar x' perteneciente N(x) de modo aleatorio 2.2 en caso contrario Seleccionar x' perteneciente N(x) tal que c(x')<c(x) Paso 3) Actualizar 3.1 x:=x' 3.2 mejor_coste:=c(x) 3.3 Mientras no se produzca la condición de terminación ir a paso 2. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 108 de 190 © JPGS2011 14 PROCEDIMIENTOS METAHEURÍSTICOS Los procedimientos metaheurísticos son un marco de referencia de alto nivel que se especializa para resolver problemas de optimización. Es también una estrategia que guía otras heurísticas en la búsqueda de mejores soluciones factibles. Las metaheurísticas deberían ser generales y simples. A medida que se especializan pierden la generalidad y exigen más conocimiento del problema específico, Además de los parámetros que definen cada algoritmo específico, las metaheurísticas requieren algún tipo de representación que por tanto es dependiente de cada problema. Entre las metaheurísticas más conocidas se puede destacar: - Algoritmos Genéticos - Scatter Search - Algoritmos Meméticos - Algoritmos de Hormigas - Redes Neuronales - GRASP. - Recocido Simulado - Búsqueda Tabú - Iterated Local Search, Variable Neiborhood Search 14.1 Procedimientos de población Según (Osman, 1995) las metaheurísticas de población, a la que pertenecen los algortimos genéticos, presentan todo o parte del siguiente esquema de la Ilustración 1: Estructura genérica de las Metaheurísticas (Osman, 1995) En este esquema se puede observar que todos los procedimientos empiezan obteniendo una generación inicial (que algunas veces pueden estar constituidas por un solo individuo). Esta generación pasa a una segunda etapa (búsqueda por generación de movimientos) o a una tercera (búsqueda por generación de soluciones). En la segunda etapa puede ser usado cualquier procedimiento de búsqueda local que generan vecindarios a partir de una solución única. Los métodos de búsqueda por individuos pueden operar sobre cada individuo de la generación actual. Modelos y Métodos de Investigación de Operaciones Página 109 de 190 Ilustración 1: Estructura genérica de las Metaheurísticas (Osman, 1995) Al final de la segunda etapa puede finalizar la búsqueda en la población actual e ir a la etapa cuatro o reinicializada volviendo a la etapa primera si la búsqueda evolutiva no se incluye, o la población actual pasa por la etapa tercera. En esta tercera etapa se realiza una búsqueda basada en la generación de nuevas soluciones. Al final de esta etapa se puede volver a la segunda o repetir otro ciclo de búsqueda evolutiva. Las líneas punteadas indican opciones que pueden ser utilizadas o no. 14.1.1 Algoritmos Genéticos Los Algoritmos Genéticos fueron introducidos por Holland en 1975 para imitar algunos de los mecanismos que se observan en la evolución de las especies. Basándose en las principales características de la reproducción sexual, Holland creó un algoritmo que genera nuevas soluciones a partir de la unión de soluciones progenitoras utilizando operadores similares a los de la reproducción, sin necesidad de conocer el tipo de problema a resolver. Una ventaja importante que presentan las heurísticas frente a las técnicas que buscan soluciones exactas es que, por lo general, permiten una mayor flexibilidad para el manejo de las características del problema. No suele ser complejo utilizar algoritmos heurísticos que en lugar de funciones lineales utilicen no linealidades. Habitualmente las heurísticas proponen un conjunto de soluciones, ampliando de esta forma las posibilidades de elección del decisor, especialmente cuando existen factores no cuantificables que no han podido ser reflejados en el modelo pero deben ser tenidos en cuenta. Generación de la Población Inicial Búsqueda en el espacio de soluciones Población para la generación actual Búsqueda mediante generación de movimientos Búsqueda local Fin de la búsqueda Generación temporal de la población Búsqueda mediante generación de soluciones Búsqueda evolutiva Población para la siguiente generación Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 110 de 190 © JPGS2011 En resumen, podría decirse que el uso de estas técnicas supone la posibilidad de resolver, de forma práctica, problemas de gran complejidad que resultaban intratables mediante técnicas exactas y permite definir con detalle el metabolismo del sistema. Los algoritmos genéticos son una clase de algoritmos inspirados en los mecanismos de la genética, que se aplican a problemas de optimización (especialemente a los problemas de combinatoria). “Procedimiento basado en la analogía con la evolución de los seres vivos. La premisa que subyace a este tipo de enfoques es, que se puede encontrar soluciones aproximadas a problemas de gran complejidad computacional mediante un procedimiento de evolución simulada matemáticamente en un ordenador “ [Holland, 1975] Es una Metaheurística que permite a partir de una población inicial de soluciones, obtener soluciones potencialmente mejores mediante el cruce de varias de las soluciones originales. Requieren el diseño de tres operadores (generalmente de tipo probabilístico) que actuan sobre objetos denominados “strings”. - Repr oducci ón: Sel ecci ón de “ st r i ngs” par a poder pr oceder a l a r epr oducci ón. - Cr uce: Combi naci ón de dos o más st r i ngs par a que i nt er cambi en val or es, r epr oduci éndose.. - M ut aci ón: Al t er aci ón espónt anea de l os el ement os de un “ st r i ng” . Estos procesos pueden tener cada uno formas variadas, e incluso se permite el avance en paralelo de Algortimos Genéticos con el mismo propósito. 14.1.1.1 Estructura General de un Algoritmo Genético. Generación de la Población Inicial Repetir Elegir dos (o más) padres de entre la población. Construir una solución nueva a partir de la estructura de los padres elegidos. Si se considera conveniente provocar mutaciones. Decidir si la nueva solución pasa a formar parte de la población. Hasta alcanzar un criterio de parada Generación de la Población Inicial ¿Se cumple la condición de parada? Si Selección de progenitores Aplicación de los operadores genéticos Mostrar la mejor solución de la población final. Fin Actualizar la población No Modelos y Métodos de Investigación de Operaciones Página 111 de 190 14.1.1.2 Representación de las soluciones (representación cromosómica). Inicialmente en los Algoritmos Genéticos se representaba la solución mediante vectores de carácter binario. Los operadores eran muy sencillos pero muchas de las soluciones obtenidas eran infactibles que posteriormente había que reparar. Otro modo de representar soluciones útil para los algoritmos genéticos es utilizar un vector unidimensional de elementos independientes. (Por ejemplo un vector para el Problema TSP). Cuando el problema es más complejo (por ejemplo un problema de Flow Shop Híbrido) puede exigir N Vectores con codificación combinada. En el caso del FlowShop Híbrido un buen modo de representar es un vector que representa la secuencia de operaciones y otro vector las máquinas donde cada producto va destinado. También se pueden utilizar vectores n-dimensionales cuyo problema fundamental es el de definir métodos de cruce eficientes (Ej: Vector Bidimensional para la Programación de Producción en Máquinas en Paralelo) Por último existen vectores con codificación implícita como por ejemplo para la codificación del balance de líneas en los que una correcta codificación es una exigencia para obtener resultados razonables. 14.1.1.3 Definición de la Medida de Evaluación de cada Solución (Fitness) El procedimiento de evaluación de una solución es especialmente importante en un algoritmo genético, pues se va a utilizar muchas veces. - Fi t ness(x)= Val or f unci ón obj et i vo - Fi t ness(x)= Val or f unci ón obj et i vo nor mal i zada - Fi t ness(x)= Val or f unci ón obj et i vo nor mal i zada –Penal izaci ón por i nf act i bi l i dad - Ot r os … 14.1.1.4 Definición de Métodos para la Generación de la Población inicial Procedimientos - Gener aci ón Al eat or i a - Heur íst i cas conoci das El tamaño de la Población es especialmente relevante. Un tamaño demasiado grande genera dispersión de resultados Un tamaño demasiado pequeño genera una excesivamente rápida convergencia de soluciones. Una pregunta interesante al diseñar un algoritmo genético es si debe mantenerse constante a lo largo del proceso. 14.1.1.5 Definición de Métodos para la selección de dos (o más) padres de la Población Inicial. El número de padres seleccionados es generalmente dos (aunque puede ser mayor si el procedimiento de cruce lo permite). El modo de selección de los padres se suele realizar mediante el uso de la denominada ruleta. Se asignan probabilidades a los padres en función de su fitness Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 112 de 190 © JPGS2011 14.1.1.6 Operaciones de Recombinación o Cruce de los individuos seleccionados. El cruce o intercambio de características entre las soluciones elegidas produce un fenómeno de convergencia puesto que hace que los individuos de la población cada vez se parezca mas entre sí. Existen infinidad de operadores de cruce, los más sencillos son los desarrollados para representaciones binarias como el one-point crossover que intercambia a partir de una posición determinada la cadena binaria que representa el individuo de cada padre. Este concepto se ha refinado con el two-point crossover que intercambia la parte del individuo que hay entre dos posiciones definidas de manera aleatoria. 14.1.1.7 Generación Soluciones Iniciales Para generar las soluciones iniciales se puede optar por generarlos de manera aleatoria o utilizando heurísticas conocidas que generan buenas soluciones de partida. El problema de la primera aproximación es que la convergencia a una buena solución puede ser lenta. El problema de la segunda aproximación es que tiene una tendencia inicial que será dificilmente superada. Por otro lado el tamaño de la Población es especialmente relevante. Un tamaño demasiado grande genera dispersión de resultados Un tamaño demasiado pequeño genera una excesivamente rápida convergencia de soluciones. Otra cuestión a resolver es si debe mantenerse constante dicho tamaño a lo largo del Proceso. fitness(A) = 3 fitness(B) = 1 fitness(C) = 2 fitness(A) = 3 fitness(B) = 1 fitness(C) = 2 A C 1/6 = 17% 3/6 = 50% B 2/6 = 33% A C 1/6 = 17% 3/6 = 50% B 2/6 = 33% 1-3-5-2-4-6-8-7 2-4-6-8-1-3-5-7 _-_-5-2-4-_-_-_ _-_-5-2-4-3-_-7 6-8-5-2-4-3-1-7 Se completa con cromosomas del segundo padre dentro de la zona intercambiada Modelos y Métodos de Investigación de Operaciones Página 113 de 190 14.1.1.8 Selección de “Padres” El número de padres seleccionados es generalmente dos (aunque puede ser mayor si el procedimiento de cruce lo permite). El modo de selección de los padres se suele realizar mediante el uso de la denominada ruleta. En ella se asigna una probabilidad a cada padre proporcional a su fitness de tal modo que la suma de probabilidades sea la unidad. 14.1.1.9 Cruce El cruce o intercambio de características entre las soluciones elegidas produce un fenómeno de convergencia puesto que hace que los individuos de la población cada vez se parezca mas entre sí. Existen infinidad de operadores de cruce, los más sencillos son los desarrollados para representaciones binarias como el one-point crossover que intercambia a partir de una posición determinada la cadena binaria que representa el individuo de cada padre. Este concepto se ha refinado con el “cruce de dos puntos” que intercambia la parte del individuo que hay entre dos posiciones definidas de manera aleatoria. Este operador En primer lugar se calculan dos números aleatorios entre 1 y el número de elementos del vector. El operador obtiene del vector “progenitor a” los elementos contenidos entre el primer número y el segundo número. Posición a posición de entre las aún no asignadas se copian los elementos del “progenitor b” si no están incluidos en el fragmento de vector copiado del padre. Los huecos que queden se rellenan con el orden en el que aparecen los valores no incorporados del “progenitor b”. En muchas ocasiones el resultado así obtenido no es una solución factible. En estos casos hay que proceder a realizar una operación de “reparación” en la que se genera factibilidad al resultado obtenido. 14.1.1.10 Actualizar Población El argumento fundamental de los algoritmos genéticos no es que obtienen buenos resultados a partir de la exploración ligada a una población inicial, sino que la población evoluciona a medida que se obtienen soluciones mejores. Dicha evolución se consigue por la vía de sustituir (de uno en uno o en paquetes) elementos de la población anterior por soluciones obtenidas durante la ejecución del algoritmo. 14.1.1.11 Monitorización de Convergencia y Mutación Cada cierto tiempo es interesante realizar operaciones de mutación, para garantizar que la población no converja demasiado rápidamente. Generalmente son operaciones en las que el vector obtenido es afectado por alguna operación de búsqueda de vecindario como la inserción o el intercambio de dos elementos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 114 de 190 © JPGS2011 La monitorización de la convergencia permite lanzar procedimientos de mutación si es necesario Un modo de monitorizar la convergencia es contabilizar para toda la población si se repiten los mismos valores en las posiciones. Puede ser interesante aplicar cada cierto tiempo pequeñas mutaciones a las soluciones obtenidas, ya sea para mejorar la población, ya sea para evitar la excesiva convergencia en la población. Los tipos básicos de mutación recuerdan a los vecindarios definidos en otro lugar de estos apuntes (2-opt, Inversión, Inserción) pero también podría ser la introducción selectiva de elementos “ajenos” a la evolución de la solución. 14.1.2 Scatter Search y Algoritmos Meméticos La Scatter Search o búsqueda dispersa es un método metaheurístico de población para resolver problemas de optimización. Aunque fue originalmente introducido en los años setenta, recientemente es cuando ha sido probado en numerosos problemas difíciles con gran éxito (Glover, Laguna, and Marti, 2003). Pertenece a la familia de los llamados Algoritmos Evolutivos, y aunque presenta similitudes con los Algoritmos Genéticos, difiere de éstos en principios fundamentales, tales como el uso de estrategias sistemáticas en lugar de aleatorias o la posibilidad de combinar más de dos elementos. Scatter Search proporciona un marco flexible que permite el desarrollo de diferentes implementaciones con distintos grados de complejidad. El método consta de las siguientes etapas: Generación de la Diversidad, Método de Mejora sobre la población anterior, selección de la población de referencia, selección de un subconjunto para la combinación, combinación y actualización de la población de referencia Comienza con una colección de puntos de referencia (obtenidos mediante la aplicación de otrso procedimientos). Se parece a los algoritmos genéticos excepto que en la búsqueda “scatter” la combinación de elementos de la población es una combinación lineal que es posteriormente adaptada para convertirse en una solución. Los algoritmos meméticos también pertenecen a los algoritmos basados en poblaciones. Explicado de una manera muy básica utiliza el operador de cruce de los algoritmos genéticos, pero al obtener un “hijo” le aplica métodos de mejora local. 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 0 . 3 0 . 4 0 . 5 0 . 6 0 . 7 0 . 8 0 . 9 1 1 . 1 1 . 2 1 . 3 G e n e ra t i o n s F it n e s s B e s t F i t n e s s M e a n F i t n e s s Modelos y Métodos de Investigación de Operaciones Página 115 de 190 14.2 Metaheurísticas de Búsqueda de Entornos 14.2.1 GRASP Probablemente el modo más sencillo para evitar los óptimos locales es empezar por puntos diferentes cada vez el camino de descenso(Marti, 2003). Esta es la lógica básica del procedimiento denominado Greedy Randomized Adaptive Search Procedure-GRASP- (Resende and Ribeiro, 2003). La generación de los puntos de inicio es la parte voraz, aleatoria y adaptativa del proceso mientras que la búsqueda local es el componente search. Este algoritmo de muy fácil implementación, puede ser también paralelizado o integrado con otras metaheurísticas. GRASP es el acrónimo de Greedy Randomized Adaptive Search Procedures. Es una metaheurística que empieza la resolución del problema en diferentes puntos del espacio de soluciones y una vez “reempieza” utiliza un procedimiento heurístico para completar o mejorar la solución, alcanzando un óptimo local. La definición de la situación inicial puede ser más o menos aleatoria. El método de resolución puede ser una heurística específica del problema u otra metaheurística de búsqueda local. El modo más sencillo para evitar los óptimos locales es empezar por puntos diferentes cada vez el camino de descenso(Marti, 2003). Esta es la lógica básica del procediminto denominado Greedy Randomized Adaptive Search Procedure-GRASP- (Resende et al., 2003). La generación de los puntos de inicio es la parte voraz, aleatoria y adaptativa del proceso mientras que la búsqueda local es el componente search. Este algoritmo de muy fácil implementación, puede ser también paralelizado o integrado con otras metaheurísticas. Otro modo de concebir las estructuras GRASP es mediante el uso de heurísticas constructivas randomizadas.. Dicha estructura utilizaría un algoritmo heurístico constructivo voraz, sustituyendo el criterio de selección del siguiente elemento a incorporar a la selección por un criterio estocástico. De este modo, en el problema TSP, en lugar de elegir, por ejemplo, el vecino más cercano, se elije aleatoriamente de entre los 3 vecinos más cercanos, o de entre aquellos vecinos que sólo estén un 10% más lejos que el más cercano de los vecinos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 116 de 190 © JPGS2011 14.2.2 ILS y VNS La idea de reiniciar la búsqueda de nuevo es interesante, pero para espacios de solución extenso puede llevar a un procedimiento no eficiente. Por ello la Iterated Local Search (Lourenço et al., 2003) lo que pretende es comenzar la búsqueda de nuevo no “por cualquier lado” si no por puntos del espacio que son modificaciones –no demasiado fuertes- de soluciones ya encontradas previamente. Específicamente se puede citar la Búsqueda de Vecindario Variable (Variable Neihborhood Search- VNS), cuya idea fundamental es la búsqueda de mejores soluciones cambiando de vecindario cuando el que se está considerando no va a dar mejores resultados (Hansen et al., 2003). La VNS se comporta como un método de descenso hacia mínimos locales, explorando sistemáticamente o aleatoriamente, cada vez más lejanos vecindarios de la solución. El método salta de la solución actual a una mejor sí y sólo sí encuentra una mejor solución. (Perez et al., 2006). 14.2.3 Recocido Simulado Los algoritmos de Recocido Simulado (Simulated Annealing) fueron introducidos por Cerny y Kirkpatrick a principio de la década de los 80 del siglo XX para la optimización de problemas combinatorios con mínimos locales. Utilizan técnicas de optimización no determinista: no buscan la mejor solución en el entorno de la solución actual sino que generan aleatoriamente una solución cercana y la aceptan como la mejor si tiene menor coste, o en caso contrario con una cierta probabilidad p; esta probabilidad de aceptación irá disminuyendo con el número de iteraciones y está relacionada con el empeoramiento del coste.(Henderson et al., 2003) El recocido simulado está basado en un cómo funciona el proceso físico de recocido. En el proceso de búsqueda de soluciones permite movimientos que no mejoran con una probabilidad que decrece a lo largo del tiempo. El ratio de dicho decrecimiento queda determinado por el programa de enfriamiento que casi siempre es un parámetro usado como ratio de decrecimiento exponencial. x: solución actual c(x) = valor de la función objetivo para x N(x): vecindario de x Paso 1) Inicialización 1.1 Seleccionar una solución inicial x 1.2 Definir mejor_coste:=c(x) 1.3 Determinar la T inicial Paso 2) Mientras no se produzca la condición de terminación 2.1 Elegir un x' perteneciente N(x) 2.2 Si x' es aceptable dependiendo del criterio de Recocido Simulado. x:=x' 2.3 Actualizar T de acuerdo a la planificación de Recocido Simulado. 14.2.4 Tabu search. Otro método metaheurístico que pretende dotar de "inteligencia" a los algoritmos de búsqueda local es denominado de Búsqueda Tabú (Gendreau, 2003). La búsqueda tabú, a diferencia de otros algoritmos basados en técnicas aleatorias de búsqueda en vecindario, se caracteriza porque utiliza una estrategia basada en el uso de estructuras de memoria para escapar de los óptimos locales, en los que Modelos y Métodos de Investigación de Operaciones Página 117 de 190 se puede caer al "moverse" de una solución a otra por el espacio de soluciones. Al igual que en la búsqueda local, la búsqueda tabú selecciona de modo agresivo el mejor de los movimientos posibles en cada paso. Al contrario que sucede en la búsqueda local, se permiten movimientos a soluciones del entorno aunque se produzca un empeoramiento de la función objetivo, de manera que sea posible escapar de los óptimos locales y continuar estratégicamente la búsqueda de mejores soluciones. La búsqueda tabú es una metaheurística que resuelve problemas de optimización, basandose en que se prohíbe al sistema deshacer algunos de los últimos movimientos realizados, para permitir la búsqueda por entornos que de otro modo no se explorarían. Esta metaheurística resuelve problemas de optimización, basándose en una gestión de memoria multinivel y exploración. Utiliza el concepto de vecindario para probar soluciones. En su versión más simple un procedimiento de búsqueda tabú es como sigue: x: solución actual c(x) = valor de la función objetivo para x N(x): vecindario de x x:=determinarSoluciónInicial; while not(hayQueTerminar) do begin V:=conjuntoDeVecinosNoProhibidos(x); x’:=elegirMejorVecino(V); actualizarListaDeMovimientosProhibidos(x,x’); x:=x’; end; Hay muchas variaciones, como por ejemplo los niveles de aspiración, que se pueden incluir en especificaciones más complejas. 14.3 Metaheurísticas basadas en el reconocimiento de patrones. 14.3.1 Redes Neuronales Las redes neuronales artificiales, son sistemas de procesamiento de la información cuya estructura y funcionamiento emulan a las redes neuronales biológicas. Los elementos simples de procesamiento de una red neuronal artificial también se denominan neuronas y el peso de sus conexiones, pesos sinápticos. Las redes neuronales tienen una gran utilidad en sistemas de predicción. Mediante un histórico de datos (y de salidas) se establecen las relaciones entre los datos y las salidas (entrenamiento), de tal modo que a un nuevo juego de datos le correspondería una nueva salida. 14.3.2 Algoritmo de Colonia de Hormigas Un procedimiento heurístico de búsqueda basado en el comportamiento de las colonias de hormigas. Particularmente su habilidad para encontrar el camino más corte de modo colectivo. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 118 de 190 © JPGS2011 Las hormigas tienen memoria que afecta al proceso de construcción del camino de modo que aquel camino que es de menor camino es el que tiene más probabilidad de ser elegido. En los algoritmos ACO se guarda memoria de las conexiones más habituales entre dos elementos consecutivos. Modelos y Métodos de Investigación de Operaciones Página 119 de 190 15 ALGUNOS EJERCICIOS DE PROGRAMACION MATEMÁTICA 15.1 ¿Cuánto gana la Empresa? Una empresa fabrica 2 productos P y Q. P se vende a 90 € y Q a 100 €. La demanda de cada producto es de P=100 unidades/semana y de Q=50 unidades/semana. Los dos productos requieren de una misma pieza central, la Materia Prima de la cual vale a 20€ la unidad. Para fabricar la pieza central hacen falta 15 minutos del recurso B y 5 minutos del recurso C. Para fabricar el componente 1 del producto P hace falta materia prima por valor de 20€/unidad, 15 minutos del recurso A y 10 minutos del recurso C. Al ensamblar la pieza central con el componente 1 utilizamos otro componente 3 que se compra al precio de 5€/unidad, lo ensambla el recurso D en 15 minutos cada unidad. El producto Q sigue un procedimiento similar. El componente 2 utiliza Materia Prima por valor de 20€/unidad, pasa por el recurso A donde está 10 minutos y luego por el proceso B donde está 15 minutos. Finalmente es ensamblado por el recurso D en 5 minutos. El mes tiene 20 días de 8 horas. Los gastos totales son 3600€/semana a) ¿Cuál es el mejor plan de producción para la empresa? ¿Qué beneficio le aporta? b) ¿Cuál es el valor de una hora más de cada recurso productivo? c) Establecer un objetivo que pretenda maximizar el ratio beneficio entre horas totales de trabajo. d) Establecer un objetivo que pretenda e) ¿Cómo incorporar limitaciones en la disponibilidad de materia prima? f) ¿Cómo incorporar un número indefinido de productos al modelo? 15.2 Problema de Corte Una empresa tiene barras metálicas de 12,5 metros. Un día cualquiera recibe pedidos que acumulan los siguientes cortes: 5 barras de 3 metros, 4 barras de 4 metros, 3 barras de 5 metros, 5 barras de 6,5 metros. Defina un modelo que genere un plan de corte con el mínimo resto posible. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 120 de 190 © JPGS2011 15.3 Centralita Telefónica Una empresa tiene una centralita telefónica que debe atender durante 17 horas al día. La demanda de operadores para las diferentes horas es variable. Puede contratar trabajadores a una ETT por 4,5,6,7 y 8 horas al día. Cada tipo de contrato tiene un coste diferente. Defina cuántos contratos de cada tipo ha de hacer para cada hora de una jornada. Resolución: El problema puede ser implementado en una hoja de cálculo con la siguiente estructura. 15.4 Varios Turnos Una fábrica puede trabajar a 3 turnos, con costes fijos por turno de (1000,500,200) y costes variables diferentes en cada turno por unidad (20,30,40). Las capacidades productivas son también diferentes (100,800,700). El precio de venta de cada unidad es de 50. a) ¿Cuántas unidades debe fabricar? b) Si variara el precio con la cantidad puesta en el mercado según una recta con los siguientes puntos extremos: si vende a 100 el mercado demanda 500. Y si vende a 50 el mercado demanda 3000. ¿Qué precio debe imponer? 15.5 Plan de Producción Sea una empresa que fabrica 3 tipos de productos. Para ello utiliza 2 tipos de máquinas (Mecanizado y Acabado). Tiene 3 máquinas de Mecanizado y 2 de Acabado. Cada centenar de producto A requiere 2 horas de Mecanizado y 2 horas de Acabado. Cada centenar de producto B requiere 3 horas de Mecanizado y 2 horas de Acabado. Cada centenar de producto C requiere 2 horas de Mecanizado y 1 horas de Acabado. Modelos y Métodos de Investigación de Operaciones Página 121 de 190 Además para poner en marcha cada máquina hay que utilizar mano de obra, de la que disponemos 4 unidades por turno. Los costes de personal semanales se evalúan en 3000 € . La semana laboral tiene 120 horas. Se plantean dos escenarios de precios por centenar de unidades con probabilidades respectivas del 30% y del 70%. Prob. Valor A Valor B Valor C e=1 30% 50 50 40 e=2 70% 40 60 30 Las demandas están limitadas en 5000 unidades de producto A y 4000 unidades de producto B y 5000 unidades de producto C. 1. Plantear el problema para el beneficio promedio esperado. 2. Plantear el problema para Maximizar el mínimo beneficio con Programación Lineal. 3. Maximizar el beneficio por hora trabajada con Programación Lineal. 4. Plantear el problema para maximizar el uso de la mano de obra, el beneficio promedio y el mínimo beneficio. 5. Relajar la restricción de mano de obra con escenario=1. El coste de la hora extra son 5€. No se hacen horas extra en fin de semana. 6. Imponer un consumo mínimo de 320 horas de mano de obra con el menor número de desigualdades posible. 7. Plantear el dual del problema original. 8. Suponer que en el escenario 1 existe una relación entre el precio y la cantidad vendida, de tal modo que el producto entre la cantidad vendida y la raíz cuadrada del precio de venta es constante e igual a 63. 9. Suponer que se puede alquilar una máquina más de mecanizado con un coste fijo semanal de 300€ y variable de 2€ por hora utilizada 10. Suponer que se puede alquilar una máquina más de mecanizado con un coste fijo semanal de 300€ y variable de 2€ por unidad fabricada. Resolución 2. Plantear el problema para el beneficio promedio esperado. (Resultado: Beneficio=5578) I ndi ces i =1..3 t i pos de pr oduct os j =1..2 t i pos de máqui nas e=1..2 escenar i os Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 122 de 190 © JPGS2011 Dat os fi,j= t i empo de pr oducci ón de i en j ((2,2),(3,2),(2,1)) pe = pr obabi l i dad del escenar i o e (0’3,0,7) nj = númer o de máqui nas de t i po j (3,2) mi = hor as de per sonal necesar i as par a fabr i car i (4,5,3) vi,e = pr eci o de vent a del pr oduct o i en escenar i o e : ((50,50,40),(40,60,60)) di = demanda par a el pr oduct o i en cent enar es de uni dades: (20,30,40) Vari abl es Xi : Cant i dad de pr oduct o a fabr i car . El model o queda 0 con 1..3 i 4 · 120 · m 1..2 j · 120 · f : a sujeto 3 1 i i 3 1 i j i, 2 1 e 3 1 , > = s s = s ¿ ¿ ¿ ¿ = = = = i i i i j i i i e i e X d X X n X X v p MAX 3. Plantear el problema para Maximizar el mínimo beneficio manteniendo Programación Lineal La expr esi ón del obj et i vo en for mat o no Li neal : 3 , e 1 max min · i e i i v X = ¿ Par a pl ant ear est e obj et i vo de modo l i neal es necesar i o cr ear una nueva var i abl e Z que r epr esent ar á di cho val or míni mo. nes restriccio de resto el y 1..2 e 0 - Z : a sujeto Z 3 1 , = s ¿ = i i e i X v MAX 4. Maximizar el beneficio por hora trabajada La expresión del objetivo en formato no Lineal: ¿ ¿ ¿ = = = 2 1 i 2 1 e 3 1 , · · max i i i i e i e X m X v p Para plantear este objetivo es necesario hacer una transformación introduciendo las variables w i y t, donde X i =w i ·t El modelo queda de este modo: Modelos y Métodos de Investigación de Operaciones Página 123 de 190 0 con 1..3 i 0 · t 0 · 480 · m 1..2 j 0 · · 120 · f : a sujeto 3 1 i i 3 1 i j i, 2 1 e 3 1 , > = s ÷ s ÷ = s ÷ ¿ ¿ ¿ ¿ = = = = i i i i j i i i e i e w d w t w t n w w v p MAX 5. Plantear el problema para maximizar el uso de la mano de obra, el beneficio promedio y el mínimo beneficio. Maximizar el uso de mano de obra se puede representar así: ¿ = 2 1 · i i i X m Los otros dos objetivos han sido planteados en los apartados 1 y 2. Los 3 objetivos no pueden ser considerados simultáneamente 6. Relajar la restricción de mano de obra con escenario=1.. El coste de la hora extra son 5€. No se hacen horas extra en fin de semana. 0 con 1..3 i 480 · m 1..2 j · 120 · f : a sujeto · 5 3 1 i i 3 1 i j i, 3 1 1 , > = s s ÷ = s ÷ ¿ ¿ ¿ = = = i i i i j i i i i X d X u X n X u X v MAX 7. Imponer un consumo mínimo de 320 horas de mano de obra con el menor número de desigualdades posibles. 120 480 · s = + ¿ u u X m i i i 15.6 Localización Dado un conjunto de ciudades, con un beneficio asociado de servirlas y un coste de implantar un centro de servicio en cada una de ellas, y unidas mediante carreteras de diferente longitud grafo conexo). Asumiendo que desde una ciudad se puede servir a otras si la distancia no es superior a un cierto valor. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 124 de 190 © JPGS2011 a) Cómo cubrir todas las ciudades a mínimo coste? b) Cómo obtener el máximo beneficio con coste limitado.? c) Cómo obtener máxima rentabilidad? d) Cómo imponer que se debe implantar en A o en B? e) Cómo imponer que se debe implantar en A y en B? f) Cómo imponer que si implantas en A debes hacerlo en B? g) Cómo imponer que si implantas en A no debes hacerlo en B? h) Cómo imponer que si implantas en A y en B debes hacerlo en C? 15.7 Vinos “DON PEPÓN” “DON PEPÓN” es la marca comercial de una empresa dedicada a la elaboración de vinos, zumos y licores. Cuando llega la época de la vendimia debe decidir que cantidad de 2 tipos básicos de uvas debe comprar. La uva la utiliza para fermentarla, tras un proceso de mezcla directamente dando lugar a tres tipos de vinos (Tinto, Rosado y Blanco). También la puede utilizar para venderla como zumo de uva. Y por último la puede fermentar de un modo acelerado y tras destilarla obtener alcohol etílico y un poso que se utiliza también para el zumo de uva. Cada kilo de uva comprado da lugar a 0,80 litros de cualquiera de los líquidos finales. El vino Tinto debe tener un porcentaje máximo de 15% de uva de tipo 2. El vino Rosado debe tener un porcentaje máximo de 35% de uva de tipo 2 y un porcentaje mínimo de 40% de uva de tipo 1. El vino Blanco debe tener un porcentaje máximo de 15% de uva de tipo 1. El zumo de uva se produce con un mínimo de un 70% en volumen de uva, el resto es agua. Aunque no se debe incorporar más de un 15% de poso de uva de tipo 1, o más de un 30% de poso de uva de tipo 2. Por cada tonelada de uva de tipo 1 se generan 1,6 hectólitros de alcohol etílico y 2,4 hectólitros de poso mediante la fermentación acelerada, y por cada tonelada de uva de tipo 2 se generan 1,2 hectólitros de alcohol etílico y 2 hectólitros de poso. Asimismo se generan El precio en el mercado mayorista del vino tinto “Don Pepón” es de 1 € el litro, el vino Rosado se vende a 0,9 € por litro, y el vino blanco a 0,8 € por litro. El litro de zumo de uva está a 0,5 € por litro. Mientras que el alcohol etílico obtenido de la uva se vende a 1,2 € por litro. Los precios de compra actuales de cada tipo de uva son 60 € los 100 kilos de tipo 1, y 50€ los 100 kilos de uva de tipo 2. Sean X1 y X2 las toneladas de uva de cada tipo que se compran. Sean V1, V2 y V3 los hectolitros de cada tipo de vino que se venden. Sea Z los hectolitros de zumo e Y los hectolitros de alcohol etílico. Modelos y Métodos de Investigación de Operaciones Página 125 de 190 a) Fija una función objetivo para un modelo que pretenda maximizar beneficios. b) Fija las restricciones del modelo anterior. c) Incorpora la restricción de que la capacidad de fermentación máxima de vino es de 5000 hectolitros. d) Por restricciones financieras no es posible adquirir más 600.000 € de uva en esta temporada. e) Suponga que algunas limitaciones del mercado imponen que al menos un 20% del Vino total producido debe ser Vino Tinto, al menos un 30% debe ser Vino Rosado, y al menos un 20% debe ser Vino Blanco. f) La empresa ha decidido hacer zumo 100% natural, para ello se utilizará el agua que resulta de la fermentación y nada de agua externa. g) Con la capacidad propia anterior, se podrían alquilar unas cubas de fermentación con un coste fijo de 100€ y un coste variable por hectolitro de 10€. Como incorporar esta condición. h) Cómo incorporaría la condición de que o bien se compra uva de tipo 1 o se compra uva de tipo 2, pero no las dos simultáneamente. Sobre el modelo realizado hasta la pregunta e) se resuelve mediante la excel con la siguiente tabla Posteriormente se realiza un análisis de sensibilidad con los siguientes resultados para las variables. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 126 de 190 © JPGS2011 Y el mismo análisis da los siguientes resultados para las restricciones: i) A partir de los datos anteriores se observa que la solución tiende a generar tanto vino tinto como sea posible. ¿Cuál es el precio mínimo que habría que ponerle al Vino Rosado para que fuera la opción prioritaria? j) ¿Qué precio debiera tener el alcohol etílico para que lo tuviéramos en cuenta en nuestras opciones de producción? k) ¿Cuánto debiera pagar como máximo por una capacidad de fermentación de un hectolitro de vino más? l) ¿Cuántos litros de agua está añadiendo al zumo? Atendiendo a la pregunta f. ¿en qué cree que cambiarán los resultados cuando el zumo sea 100% natural? Solución a) La función objetivo 100·VT + 90·VR + 80·VB + 50·Z +120·Y – 600·X1 – 500·X2 Modelos y Métodos de Investigación de Operaciones Página 127 de 190 b) Hacen falta la siguientes variables: X1VT Cantidad de uva 1 en toneladas dedicada a hacer vino tinto X2VT Cantidad de uva 2 en toneladas dedicada a hacer vino tinto X1VR Cantidad de uva 1 en toneladas dedicada a hacer vino rosado X2VR Cantidad de uva 2 en toneladas dedicada a hacer vino rosado X1VB Cantidad de uva 1 en toneladas dedicada a hacer vino blanco X2VB Cantidad de uva 2 en toneladas dedicada a hacer vino blanco X1Z Cantidad de uva 1 en toneladas dedicada a hacer zumo X2Z Cantidad de uva 2 en toneladas dedicada a hacer zumo X1FA Cantidad de uva 1 en toneladas dedicada a fermentar de modo acelerado X2FA Cantidad de uva 2 en toneladas dedicada a fermentar de modo acelerado P1 Poso obtenido de uva 1 tras la Fermentación acelerada en hectolitros P2 Poso obtenido de uva 2 tras la Fermentación acelerada en hectolitros P1Z Poso obtenido de uva 1 en hectolitros que se dedica al zumo P2Z Poso obtenido de uva 2 en hectolitros que se dedica al zumo Restricciones La uva de tipo 1 que compramos es la que utilizamos (idem para 2) X1=X1VT+X1VR+X1VB+X1Z+X1FA (R.1) X2=X2VT+X2VR+X2VB+X2Z+X2FA (R.2) El vino que fermentamos depende de la uva que dedicamos a ello VT = 8·(X1VT+X2VT) (R.3) VR = 8·(X1VR+X2VR) (R.4) VB = 8·(X1VB+X2VB) (R.5) Calidades del vino: 0,15·VT ≥ 8 X2VT (R.6) 0,35·VR ≥ 8 X2VR (R.7) 0,40·VR ≤ 8 X1VR (R.8) 0,15·VB ≥ 8 X1VT (R.9) El alcohol etílico que se fabrica es: Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 128 de 190 © JPGS2011 Y = 1,6·X1FA + 1,2·X2FA (R.10) El mismo proceso genera poso: P1 = 2,4·X1FA (R.11) P2 = 2·X2FA (R.12) El zumo se obtiene de la uva y del poso que dedicamos a zumo (más el agua que añadimos) Z ≥ 8(X1Z+X2Z) + P1Z + P2Z (R.13) 0,7·Z ≤ 8(X1Z+X2Z) + P1Z + P2Z (R.14) 0,15Z ≥ P1Z (R.15) P1Z ≤ P1 (R.16) P2Z ≤ P2 (R.17) c) La limitación de capacidad se expresa del siguiente modo VT + VR + VB ≤ 5000 (R.18) d) La restricción financiera se expresa del siguiente modo: 600 X1+500 X2 ≤ 600000 (R.19) e) Las restricciones que impone el mercado respecto a las cantidades de vino se representan del siguiente modo: 0,2(VT+VR+VB) ≤ VT (R.20) 0,3(VT+VR+VB) ≤ VR (R.21) 0,2(VT+VR+VB) ≤ VB (R.22) f) Se puede incorporar en la restricción R.13 un sumando relativo al agua y sustituir la relación de desigualdad por una igualdad. una variable A que es el agua obtenida de la fermentación Z = 4·X1FA + 3,2·X2FA + 8(X1Z+X2Z) + P1Z + P2Z (R.13b) g) Función objetivo: 100·VT + 90·VR + 80·VB + 50·Z +120·Y – 600·X1 – 500·X2 – 100·δ -10·u todas las restricciones igual y además: VT + VR + VB – u ≤ 5000 u-M·δ ≤ 0 h) X1-M·δ1 ≤ 0 X2-M·δ2 ≤ 0 δ1 + δ2 ≤ 1 Modelos y Métodos de Investigación de Operaciones Página 129 de 190 i) A partir de los datos anteriores se observa que la solución tiende a generar tanto vino tinto como sea posible. ¿Cuál es el precio mínimo que habría que ponerle al Vino Rosado para que fuera la opción prioritaria? 97,15 € por hectolitro. j) ¿Qué precio debiera tener el alcohol etílico para que lo tuviéramos en cuenta en nuestras opciones de producción? Al menos 321 € por hectolitro. k) ¿Cuánto debiera pagar como máximo por una capacidad de fermentación de un hectolitro de vino más? 13,5 € por cada hectolitro de fermentación. l) ¿Cuántos litros de agua está añadiendo al zumo? Atendiendo a la pregunta f. ¿en qué cree que cambiarán los resultados cuando el zumo sea 100% natural? 1697 hectolitros de agua. Actualmente no se produce ningún litro por fermentación acelerada, luego la generación de zumo 100% natural obligará a vender Alcohol Etílico, lo que reducirá la rentabilidad del zumo. Teniendo en cuenta que el zumo tiene un margen de variabilidad escaso en el precio, y sin embargo el alcohol etílico requiere un gran incremento de precio para ser rentable, se puede admitir casi sin hacer más pruebas, que el resultado será que Don Pepón abandonará el mercado de los zumos, salvo que suba sustancialmente el precio de éstos. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 130 de 190 © JPGS2011 15.8 Plan de Producción de Zapatillas Una empresa fabricante de zapatillas deportivas estima la siguiente demanda (en centenares de pares) para los próximos 6 meses. Mes 1 Mes 2 Mes 3 Mes 4 Mes 5 Mes 6 Cantidad 30 40 55 30 60 35 Los costes de producción de cada par se evalúan en 7 € si se producen en horas normales, y 9 € si se produce en horas extras. El número de horas normales disponibles por día son 8. El número de días laborables por mes son 20. Cada mes se puede trabajar un máximo de 40 horas Durante cada hora de producción es posible fabricar 25 pares de zapatillas. El coste de almacenar un par de un mes para otro es de 0’1 € por par. Se dispone de 200 pares en stock en estos momentos. a) Establecer el modelo que permite definir el plan de trabajo para los próximos meses a mínimo coste. b) Suponga que tiene un compromiso con los trabajadores de utilizar cada dos meses al menos un 25% de la capacidad en horas extra actual. c) ¿Cómo limitar la capacidad del almacén? d) Suponga que el objetivo sea minimizar el máximo stock entre periodos. e) Suponga que el objetivo es minimizar las diferencias de producción entre un mes y el siguiente: para cualquier mes. f) ¿Cómo modelaría que se pretende minimizar la máxima desviación entre la producción y la demanda? g) ¿Cómo haría periodos de duración variable? Por ejemplo la consideración de meses de diferente cantidad de días. h) ¿Cómo incorporaría diferentes tipos de zapatillas en el modelo, para poder hacer un plan conjunto? i) Suponiendo e) ¿Cómo incorporaría un precio fijo a fabricar de un tipo o de otro en cada periodo de tiempo? Básicamente es como un coste de cambio de partida, si fabrica de tipo A paga una penalización dependiente de A. j) Como limitaría los tipos de producto a fabricar en cada periodo de tiempo. k) Sobre el modelo original ¿podría incorporar una lista de materiales del producto a fabricar, para establecer sus planes de compra? Suponga un plazo de entrega de un mes para cada componente. l) Plantear el dual del problema original. Modelos y Métodos de Investigación de Operaciones Página 131 de 190 15.9 Problema de Distribución Una empresa de fabricación y distribución distribuye a 5 zonas de clientes, a través de 3 centros de distribución que se aprovisionan de 2 destilerías, propiedad también de la misma empresa. Se conocen los costes de servir a cada zona de clientes desde cada destilería a través de cada centro de distribución. Cada zona de clientes tiene una demanda (D) que debe ser abastecida. Cada destilería tiene una capacidad (C ) de producción limitada. Cada centro de distribución tiene una capacidad limitada tanto superior (S) como inferiormente (I) , y unos costes fijos (F) anuales y otros relativos al volumen (V) que se mueve. La empresa se plantea la política de mínimo coste para el nuevo año, lo que podría implicar cerrar algunos de los centros de distribución. a) Cómo modelaría el problema? b) Cómo incorporaría la consideración de diferentes productos en el mismo sistema logístico? c) Cómo definiría un modelo que pretendiera minimizar la diferencia de uso de capacidad entre las dos destilerías, siempre que no se sobrepasaran los costes totales óptimos más que en un 20%? d) Cómo incorporaría la posibilidad de servir directamente a las zonas de clientes desde las destilerías? e) De los 3 centros de distribución del modelo original sólo pueden quedar 2. Modele la situación. f) Se plantea hacer una inversión en el primer centro de distribución, para ampliar su capacidad en un 40%. ¿Cómo evaluaría las ventajas de invertir o no invertir? g) Se va a hacer una inversión en algún centro de distribución, para ampliar su capacidad en un 40%. ¿Cómo evaluaría en cual de ellos compensa invertir? h) Se plantea hacer una inversión en el primer centro de distribución, para ampliar su capacidad en un 40%. ¿Cómo evaluaría las ventajas de invertir o no invertir? i) Se plantea abrir un nuevo centro de distribución. Con unos costes de construcción, amortizables en 5 años, y unos costes de funcionamiento Fijos y Variables. ¿Cómo plantear el problema para saber si será rentable y a quien afectará el cambio? j) Sobre el problema original se pretende maximizar el ratio de costes variables sobre fijos. Modele el problema. k) Sobre el problema original se pretende que la capacidad de la destilería primera pueda duplicar, o triplicar su capacidad a diferentes costes. Modele el problema. l) La capacidad de la destilería 2 puede ser superada con un coste adicional por unidad vendida. m) Los costes variables de trasiego en cada centro de distribución, crecen proporcionalmente a la raíz cuadrada del volumen movido. Modele la situación. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 132 de 190 © JPGS2011 15.10 Gestión de Stocks Trabaja usted en una empresa cuya actividad básica es la compra-venta de material electrónico. La empresa ha decidido implantar un sistema de gestión de stocks informatizado, que decida cuánto y cuándo comprar. Ha quedado usted encargado de ello, entre otros motivos, por no asistir a la reunión donde se trató el tema. Sus compañeros insisten en que el marrón no le cayó por no estar presente, sino porque usted es el más capacitado para sacarlo adelante. Tras analizar los productos con los que trabaja (demandas variables, precios variables, costes de almacenamiento variables, etcétera) decide que no puede aplicar métodos de punto de pedido o de aprovisionamiento periódico. Para desarrollar un sistema informático, usted pretende plantear un modelo matemático y posteriormente resolver con herramientas de las que existen en la red. La empresa compra y vende un solo producto 3 de un proveedor taiwanés. El tipo de entrega es en bodegas del cliente, esto es, usted paga un precio de compra (PC) por el producto (que es variable para los distintos periodos de tiempo) y el proveedor se hace cargo de todo el transporte, aduanas y demás gastos asociados. El plazo de entrega desde que se lanza el pedido es de 4 semanas. Y al cliente se le paga 4 semanas después de haber recibido el producto. Los costes de almacenamiento físico (H) son conocidos aunque varían según el periodo. El dato viene en unidades monetarias por unidad de producto almacenado y por periodo de previsión. La demanda (D) de nuestro producto varía con los periodos, aunque su variabilidad es conocida con un margen de error pequeño. El precio de venta es conocido y variable por periodo(PV). La empresa suele cobrar 3 semanas después de haber producido la venta. El saldo negativo del flujo de caja (diferencia entre cobros y pagos) tiene un coste financiero (CF), del mismo modo que el saldo positivo lleva asociado un coste de oportunidad (CO). Además no es posible sobrepasar el saldo negativo en más de una cierta cantidad límite (LN). La empresa, como cualquier empresa seria, tiene una previsión de pagos (PP), que es variable según los periodos. Esta previsión incluye los gastos como nóminas, beneficios, energía, alquileres pero excluye los gastos de adquisición de materiales (porque de esto se encarga su programa informático) 3 Evidentemente esto es una simplificación para empezar. Modelos y Métodos de Investigación de Operaciones Página 133 de 190 Como es evidente el objetivo de la empresa es ganar la máxima cantidad de dinero posible 4 . Los periodos de previsión que usted considera son semanas. Y el horizonte de planificación es de 26 semanas. a) (2 puntos) Plantee el modelo matemático. Si requiere incorporar variables y/o parámetros no dude en hacerlo. Se considerará que indique y explique los índices, parámetros y variables que va a utilizar. Se considerará que explique cada restricción. Se agradecerá que utilice mayúsculas para los parámetros y minúsculas para las variables, asimismo será agradecido el uso de los parámetros ya indicados en negrita. Respuesta a) Índices t: Índice temporal Parámetros PV: Precio de Venta en el periodo t PC: Precio de Compra en el periodo t H: Coste de almacenar una unidad en el periodo t CF: Precio pagado en el periodo t por una unidad monetaria dispuesta de la línea de crédito que financia el flujo de caja. CO: Coste de oportunidad en el periodo t de una unidad monetaria D: Demanda prevista en el periodo t PP: Pagos Previstos LN: Límite de la línea de crédito. Variables x: cantidad vendida en el periodo t y: cantidad comprada en el periodo t z: cantidad en inventario al final del periodo t f: flujo de caja en el periodo t w: flujo de caja negativo 4 Hay que recordar que en contabilidad se aplica el concepto del devengo, que distingue el cobro del ingreso, y los gastos de los pagos. Para saber cuanto dinero gana una empresa nos fijamos en lo que ingresa y lo que gasta. Para conocer el flujo de caja nos fijamos en lo que cobra y lo que paga. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 134 de 190 © JPGS2011 v: flujo de caja positivo t t t t t 1 4 sujeto a t=1..26 [r1.1] t t t t t t t t t t t t t t t t Max PV x PC y H z CF w COv x D z z y x ÷ ÷ ÷ ÷ ÷ ÷ s = + ÷ ¿ ¿ ¿ ¿ ¿ 1 8 8 3 3 t=1..26 [r1.2] t=1..26 [r1.3] t t t t t t t t t t f f PC y PV x PP w f ÷ ÷ ÷ ÷ ÷ = ÷ + ÷ > ÷ =1..26 [r1.4] t=1..26 [r1.5] t=1. t t t v f w LN > s t .26 [r1.6] Todas las variables excepto f son reales positivos o nulos Cuando una variable tenga indice negativo se asume que el valor correspondiente es resultado de una programacion anterior anterior, y por tanto no es una variable sino un parametro b) (1 punto) ¿Cómo se modifica el modelo si hubiera más de un producto que se recibe del mismo proveedor? Construya el modelo. Se incorpora un nuevo índice i a todos los parámetros y variables que tengan que ver con los productos. Sean P los productos que se compran del mismo proveedor. , , , , , , i,t i,t i,t t t , , , , 1 , sujeto a t=1..26 i=1..P [r2.1] i t i t i t i t i t i t t t t t i t i t i t i t i t Max PV x PC y H z CF w CO v x D z z y ÷ ÷ ÷ ÷ ÷ s = + ¿ ¿ ¿ ¿ ¿ 4 , 1 , 8 , 8 , 3 , 3 , , t=1..26 i=1..P [r2.2] t=1..26 i=1..P [r2.3] i t t t i t i t i t i t t i t i t t t x f f PC y PV x PP w f ÷ ÷ ÷ ÷ ÷ ÷ ÷ = ÷ + ÷ > ÷ ¿ ¿ t=1..26 [r2.4] t=1..26 t t v f > t [r2.5] t=1..26 [r2.6] Todas las variables excepto f son reales positivos o nulos Cuando una va t w LN s riable tenga indice negativo se asume que el valor correspondiente es resultado de una iteracion anterior, y por tanto no es una variable sino un parametro c) (1 punto) Suponga que si en un periodo se produce compra de alguno de los productos hay que pagar un coste fijo (SU) por transporte. Modele la situación Modelos y Métodos de Investigación de Operaciones Página 135 de 190 d) (2 puntos) Suponga que puede diferir demanda de un periodo a otro con un coste suplementario (Ki,t) por unidad diferida por periodo. El ingreso que se producirá será acorde al precio de venta en la semana en que el cliente quería adquirir el producto. e) (2 punto) Suponga que hay descuentos por cantidad para cada producto, de tal modo que los precios de compra por unidad son los siguientes: si la cantidad a comprar es menor que 100 si la cantidad a comprar esta en [100,500[ si la cantidad a comprar esta en [500,1000[ si la cantidad a comprar es mayor que 1000 i i i i i A B PC C D ¦ ¦ ¦ = ´ ¹ ¦ ¦ Modele la situación, respetando la linealidad del modelo. f) (2 puntos) Un gran distribuidor le ofrece un contrato de compra garantizada para el próximo año de (CG t ) unidades de uno de los productos en cada uno de los periodos. Sus condiciones son: f1) que el precio por el que el distribuidor compra ha de ser un 25% inferior a nuestro precio de venta habitual y f2) los plazos de pago son de 9 semanas desde que el distribuidor adquiere el producto. Sus estimaciones indican que de aceptar el trato este distribuidor se hará con el 10% de su demanda habitual estimada, que le comprará a él en lugar de a usted. Si no aceptase la oferta sabe que perderá un 5% de las ventas. Modele la situación 15.11 Equilibrado de Líneas Se tiene un conjunto de tareas, cada una con una duración y un conjunto de precedencias. a) Dado un tiempo de ciclo. Establecer una asignación que utilice el mínimo número de estaciones. b) Como conseguir además el mínimo desequilibrio de carga entre estaciones. c) Dado el número de estaciones, conseguir la asignación de mínimo tiempo de ciclo. d) Cómo obligar a que dos tareas determinadas estén separadas. e) Cómo obligar a que dos tareas determinadas estén juntas 15.12 Jorge y Nuria Jorge y Nuria se quieren casar. Ella de blanco por la alegría y él de negro. Entre otros quebraderos de cabeza que les harán perder unas cuantas horas de aquí al día de la boda, no es el menor la tarea de asignar los invitados a las mesas. Inicialmente Jorge y Nuria querían una boda íntima, como todos, aunque ahora ya suman alrededor de 250 invitados. Dicho reparto de invitados es una de las actividades más tediosas de las que se encontrarán: El tío tal no se puede sentar con su concuñado porque se llevan a muerte, dos invitados excusan en el último momento su asistencia... Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 136 de 190 © JPGS2011 Tienen un amigo, usted, gran experto en diseño de modelos e implementaciones informáticas, que les va a echar una mano, construyendo una aplicación que permitirá hacer y rehacer, modificar, imprimir las listas, etcétera. Para ello considera que uno de los conjuntos de datos (en el modelo debe constituir uno de los índices) a considerar son las agrupaciones mínimas (individuos, matrimonios, parejas, tríos y otras agrupaciones de invitados). Estas agrupaciones mínimas son grupitos de invitados que no se pueden separar, por razones más o menos obvias. Otro de los conjuntos de datos a considerar son las mesas. Cada una de ellas tiene una capacidad diferente (entre 8 y 12 comensales cada una). a) Plantee un modelo donde se pretenda minimizar el número de mesas a utilizar. b) Plantee una restricción que evite que dos cuñados que se llevan mal se sienten en la misma mesa. c) Suponga que el número de mesas máximo viene fijado por la capacidad del salón. Suponga que entre cada agrupación mínima de invitados existe una relación de afinidad (que los novios valorarán numéricamente). Plantee un modelo que persiga maximizar la suma de afinidades en las mesas. Es decir, la afinidad entre dos agrupaciones mínimas se suma si pertenecen a la misma mesa. Será interesante en este apartado incorporar una variable binaria que indique si cada par de agrupaciones mínimas está en una misma mesa. d) En el caso anterior ¿cómo penalizaría que una agrupación mínima se quedara aislada en una mesa sin conocidos? Resolución a) Plantee un modelo donde se pretenda minimizar el número de mesas a utilizar. Modelos y Métodos de Investigación de Operaciones Página 137 de 190 , : Indice que recorren las agrupaciones minimas. : Indice que recorre las mesas disponibles. : Numero de individuos en la agrupacion i : Capacidad de sillas en la mesa k i k i Indices i k Parametros N M Variables o { } { } k k , , 0,1 Indica si la agrupacion i se sienta en la mesa k 0,1 Indica si la mesa k se utiliza [MIN] sujeto a · k 1 k k i i k k k i i k k N M i o o o o o = = s ¬ = ¬ ¿ ¿ ¿ En realidad la segunda restricción no es necesaria pero no está de más para ponerlo b) Plantee una restricción que evite que dos cuñados que se llevan mal se sienten en la misma mesa. , , Sean i y j las agrupaciones correspondientes a los cuñados que se llevan mal 1 k i k j k o o + s ¬ c) Suponga que el número de mesas máximo viene fijado por la capacidad del salón. Suponga que entre cada agrupación mínima de invitados existe una relación de afinidad (que los novios valorarán numéricamente). Plantee un modelo que persiga maximizar la suma de afinidades en las mesas. Es decir, la afinidad entre dos agrupaciones mínimas se suma si pertenecen a la misma mesa. Será interesante en este apartado incorporar una variable binaria que indique si cada par de agrupaciones mínimas está en una misma mesa. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 138 de 190 © JPGS2011 , : Indices que recorren las agrupaciones minimas. : Indice que recorre las mesas disponibles. : Numero de individuos en la agrupacion i : Capacidad de sillas en la mesa k MMax: Nu i k Indices i j k Parametros N M { } { } { } i,j , k i,j,k mero de mesas maximo C : Indice de afinidad entre agrupaciones 0,1 Indica si la agrupacion i se sienta en la mesa k 0,1 Indica si la mesa k se utiliza 0,1 Indica con un 1 si la agru i k Variables o o ¸ = = = , , i,j,k , , , , , , pacion i y la j comparten la mesa k [MAX] · sujeto a 2· 0 k · k 1 MMax i j i jk i k j k i j k i i k k k i i k k k k C N M i ¸ o o ¸ o o o o + ÷ > ¬ s ¬ = ¬ s ¿ ¿ ¿ ¿ d) En el caso anterior ¿cómo penalizaría que una agrupación mínima se quedara aislada en una mesa sin conocidos? i Sea i la agrupacion que no queremos dejar aislada. es una nueva variable que valdra 1 si en la mesa donde se sienta i no hay nadie conocido Se asumen que los coeficientes de afinidad solo pueden ser | , , , i , , , , , positivos =0 debemos penalizar a la agrupacion i ( =1) Esto se hace del siguiente modo 0 En la funcion objetivo se ha de incorporar un sumando que penalice la funcion i j i j k j k i j i j k j k Si C C i ¸ | ¸ | + > ¿ ¿ i i objetivo. - Con P un factor de penalizacion P| ¿ Modelos y Métodos de Investigación de Operaciones Página 139 de 190 15.13 Operación Brisca Usted trabaja en una multinacional del sector audiovisual y últimamente le están pidiendo que haga recopilatorios de canciones de “cantantes de ayer y siempre”. Estos recopilatorios se graban en CD’s para vender a través de Teletiendas. Básicamente el problema consiste en definir un conjunto de canciones que quepan en el CD, utilizando al máximo el espacio disponible y que las diferentes épocas del autor estén reflejadas. Últimamente está un poco harto del trabajo, en el que su criterio artístico (su famoso “oído musical”) no sale demasiado bien parado. Está pensando en hacer un pequeño software basado en programación lineal que haga automáticamente las recopilaciones. Para ello parte de los siguientes índices, datos y variables: Índices Datos Variables i: Recorre las épocas del autor j: Recorre las canciones de cada época C: Capacidad del soporte d i,j Duración de la canción j de la época i X i,j {0,1}Variable binaria que vale 1 si la canción j de la época i se incorpora en el soporte, 0 en caso contrario a) Defina la función objetivo b) Defina la restricción de que las canciones seleccionadas deben caber en el soporte. c) Si fijamos un número mínimo de canciones de cada época ¿cómo incorporaría esta restricción? d) Como minimizaría la diferencia entre el máximo y el mínimo número de canciones de cada época que ha puesto? e) Desde c) Suponga que le piden que diseñe, con las mismas canciones, además, una cinta de audio para la venta en gasolineras (con dos caras de igual capacidad C a ) . Diseñe el modelo entero incorporando lo que considere conveniente. f) Desde c) Determinadas canciones no pueden entrar simultáneamente en el mismo CD por razones de copyright. Sean éstas la canción 3 de la época 1 y la canción 8 de la época 3. g) Desde c) Por razones sentimentales le indican que la canción 4 de la época 2 y la canción 3 de la época 5 entran las dos o no entra ninguna. h) Desde c) Suponga que pretende dotar de una cierta calidad al sistema. Para ello puntúa las diferentes canciones y pretende que la calidad del CD sea lo máxima posible. Modele la nueva función objetivo i) Desde h) La productora le comenta que lo de la calidad está muy bien, pero que las buenas canciones valen más dinero. Plantee el objetivo lineal (así como las restricciones asociadas) que permiten maximizar el ratio calidad/precio. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 140 de 190 © JPGS2011 Resolución a) Defina la función objetivo maximizar j i j i j i X d , , , · ¿ b) Defina la restricción de que las canciones seleccionadas deben caber en el soporte. C X d j i j i j i s ¿ , , , · c) Si fijamos un número mínimo de canciones de cada época ¿cómo incorporaría esta restricción? siendo N j el número mínimo de canciones para cada época d) Como minimizaría la diferencia entre el máximo y el mínimo número de canciones de cada época que ha puesto? Se define una variable M que será el máximo, y una variable Ñ que será el mínimo entonces. j j j i j j i j i j j i j j i N X C X d Z X X Y a s Z Y > s > ÷ > ÷ ÷ ¿ ¿ ¿ ¿ , , , , , · 0 0 . min e) Desde c) Suponga que le piden que diseñe, con las mismas canciones, además, una cinta de audio para la venta en gasolineras (con dos caras de igual capacidad C a ) . Diseñe el modelo entero incorporando lo que considere conveniente. Habría que cambiar las variables para que indiquen en que cara va cada canción. Definimos X i,j,k como una variable binaria que indica que la canción i de la época j va en la cara k j j j i k k j i j j i j i j j i j i k j k j i j i k j i k j i j i N X X Ca X d Ca X d C X d a s X d > s s s s ¿ ¿ ¿ ¿ ¿ ¿ , , , 2 , , , 1 , , , , , , , , , , , , 1 · · · . · max j j i j i N X > ¿ , , Modelos y Métodos de Investigación de Operaciones Página 141 de 190 f) Desde c) Determinadas canciones no pueden entrar simultáneamente en el mismo CD por razones de copyright. Sean éstas la canción 3 de la época 1 y la canción 8 de la época 3. X 1,3 +X 3,8 s1 g) Desde c) Por razones sentimentales le indican que la canción 4 de la época 2 y la canción 3 de la época 5 entran las dos o no entra ninguna. X 2,4 -X 5,3 =0 h) Desde c) Suponga que pretende dotar de una cierta calidad al sistema. Para ello puntúa las diferentes canciones y pretende que la calidad del CD sea lo máxima posible. Modele la nueva función objetivo Definimos el parámetro a i,j que indica la calidad de la canción (i,j). La nueva función objetivo es: maximizar j i j i j i X a , , , · ¿ i) Desde h) La productora le comenta que lo de la calidad está muy bien, pero que las buenas canciones valen más dinero. Plantee el objetivo lineal (así como las restricciones asociadas) que permiten maximizar el ratio calidad/precio. Definimos el parámetro b i,j que indica el precio de la canción (i,j) La nueva función objetivo es: maximizar j i j i j i j i j i j i X b X a , , , , , , · · ¿ ¿ Para linealizar se define la variable w i,j 0 · 0 · · 1 · · max , , , , , , , , , > ÷ s ÷ = ¿ ¿ ¿ ¿ t N w t C w d w b w a imizar j j j i j j i j i j i j i j i j i j i j i Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 142 de 190 © JPGS2011 15.14 Carga de Aviones. Es usted el responsable de carga de una empresa de transporte de mercancías por avión. Está intentando cargar un BAING 717 con una carga de 4 productos distintos. Cada uno de ellos con las siguientes características: Carga Peso (Tm) Volumen (m3/tm) Beneficio (€/Tm) C1 18 500 300 C2 20 600 450 C3 10 550 350 C4 16 400 275 El proceso de asignación de cargas es como sigue. El avión se divide en 3 compartimentos (Delantero, Central y Trasero) con diferentes capacidades en peso y en volumen cada uno de ellos. Dichas capacidades no se pueden sobrepasar Capacidad en Peso (Tm) Capacidad en Volumen (m3) Delantero 12 6000 Central 16 9000 Trasero 10 5000 Además y a efectos de estabilidad en vuelo del avión, es necesario que el porcentaje de peso ocupado sobre el total sea el mismo en cada compartimiento (1 punto) a) Defina la función objetivo (1 punto) b) Defina las restricciones que considere necesarias para establecer la limitación de capacidad en peso y volumétrica. (1 punto) c) Defina las restricciones que considere necesarias para establecer la limitación de demanda. (1 punto) d) Defina las restricciones que considere necesarias para establecer las consideraciones de equilibrio de la carga. Modelos y Métodos de Investigación de Operaciones Página 143 de 190 El modelo anterior se ha resuelto utilizando el solver de Excel y se ha obtenido el siguiente análisis de sensibilidad (1 punto) e) ¿Cuál sería el beneficio de aumentar un poco aún a costa de seguridad, (ya sabe los beneficios son los beneficios) la carga en peso de la parte delantera ? (1 punto) f) ¿Cuál es el precio que debiera pagar el propietario de la carga de tipo 1 para que consideráramos su producto como posible mercancía en nuestro avión, sin pérdida de beneficios? (1 punto) g) Hay algunos elementos prescindibles en la carga muerta del avión que ocupan volumen aunque no pesan nada, (paracaídas y demás), su jefe le pregunta por el beneficio que supondría por unidad de volumen, deshacerse de ellos? (1 punto) h) Un cliente le indica que si transporta carga de tipo 2 debe también transportar al menos un 25% de la carga de tipo 1. Modele la situación (1 punto) i) Defina el modelo que incorpore todas las restricciones citadas y además el objetivo sea maximizar el ratio beneficio total/volumen ocupado. (1 punto) j) ¿Cómo permitiría un desequilibrio de un 10% en el ratio de peso entre las distintas bodegas del avión? Valor Gradiente Coeficiente Aumento Disminución Nombre Igual reducido objetivo permisible permisible 0 -25 300 25 1E+30 6 0 450 118,75 0 0 0 350 0 1E+30 6 0 275 100 0 13 0 450 89,06249965 0 0 0 350 0 1E+30 3 0 275 100 0 1 0 450 0 50,89285696 5,33 0 350 28,1249999 0 3,67 0 275 0 51,50602392 Restricciones Valor Precio Restricción Aumento Disminución Celda Nombre Igual Sombra lado derecho permisible permisible Limitación de Demanda de 1 0 0 18 1E+30 18 Limitación de Demanda de 2 20 75 20 3,88 1 Limitación de Demanda de 3 5,33 0 10 1E+30 4,67 Limitación de Demanda de 4 12,66 0 16 1E+30 3,33 Limitación de Peso delante 12 237,5 12 0 0,21 Limitación de peso central 16 0 16 1E+30 0 Limitación de peso trasero 10 0 10 1E+30 0 Limitación volumen delante 6000 0,5 6000 200 500 Limitación volumen central 9000 0,5 9000 200 500 Limitación volumen trasero 5000 0,5 5000 550 500 Cantidad Cargada de 3 detrás Cantidad Cargada de 4 detrás Cantidad Cargada de 4 en el centro Cantidad Cargada de 4 delante Cantidad Cargada de 2 delante Cantidad cargada de 1 Cantidad Cargada de 2 en el centro Cantidad Cargada de 2 detrás Cantidad Cargada de 3 delante Cantidad Cargada de 3 en el centro Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 144 de 190 © JPGS2011 Resolución Índices i : Recorre los productos a transportar. (1..P) j : Recorre las bodegas del avión. (1..Q) Parámetros Sea B i el beneficio de transportar una unidad (en peso) de carga de tipo i Sea CP j la capacidad en peso de la bodega j Sea CV j la capacidad en volumen de la bodega j Sea D i la demanda de transporte de producto i Variables Sea X i,j la cantidad a transportar (en peso) de carga de tipo i en la bodega j. a) Defina la función objetivo , , i i j i j B X ¿ b) Defina las restricciones que considere necesarias para establecer la limitación de capacidad en peso y volumétrica. , , j=1..Q j=1..Q i j j i i i j j i X CP V X CV s s ¿ ¿ c) Defina las restricciones que considere necesarias para establecer la limitación de demanda. , , i=1..P i j i i j X D s ¿ d) Defina las restricciones que considere necesarias para establecer las consideraciones de equilibrio de la carga. 1 ,2 2 ,1 1 ,3 3 ,1 i i i i i i i i CP X CP X CP X CP X s s ¿ ¿ ¿ ¿ e) ¿Cuál sería el beneficio de aumentar un poco aún a costa de seguridad, (ya sabe los beneficios son los beneficios) la carga en peso de la parte delantera ? Modelos y Métodos de Investigación de Operaciones Página 145 de 190 En realidad aunque el precio sombra es elevado (237,5) el aumento permisible es 0, lo que significa que no es posible aumentar la carga sin cambiar la estructura de la solución, y por tanto no se puede decir nada a priori sobre los beneficios. f) ¿Cuál es el precio que debiera pagar el propietario de la carga de tipo 1 para que consideráramos su producto como posible mercancía en nuestro avión, sin pérdida de beneficios? 325 €. g) Hay algunos elementos prescindibles en la carga muerta del avión que ocupan volumen aunque no pesan nada, (paracaídas y demás), su jefe le pregunta por el beneficio que supondría por unidad de volumen, deshacerse de ellos? 0,5 €. h) Un cliente le indica que si transporta carga de tipo 2 debe también transportar al menos un 25% de la carga de tipo 1. Modele la situación. 2, 1, 1 2, 1, 0 1 0, 25 20 0 4, 5 0 j j j j j j j j X X D X X o o o > ÷ = ÷ > ÷ s ÷ > ¿ ¿ ¿ ¿ i) Defina el modelo que incorpore todas las restricciones citadas y además el objetivo sea maximizar el ratio beneficio total/volumen ocupado. , , , , , , , , , , , 1 ,2 2 ,1 1 ,3 3 ,1 max max : 1 0 0 0 i i j i j i i j i j i i j i j i i j i j i j j i i i j j i i j i j i i i i i i i i B X Bw V X sujeto a V w w CPt V w CV t w Dt CP w CP w CP w CP w ÷ = ÷ s ÷ s ÷ s = = ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ j) ¿Cómo permitiría un desequilibrio de un 10% en el ratio de peso entre las distintas bodegas del avión? , , 1,1 j,k i k i j i i k j X X CP CP s ¬ ¿ ¿ Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 146 de 190 © JPGS2011 16 ALGUNOS EJERCICIOS DE OPTIMIZACIÓN COMBINATORIA 16.1 Problema del FlowShop de 3 máquinas. 16.1.1 Descripción del Problema Sea un taller de flujo compuesto por M máquinas donde se deben secuenciar N productos, que para su elaboración pasarán de manera consecutiva por cada una de las M máquinas, con unos tiempos de ejecución de cada producto i en cada máquina de p(i,j) respectivamente. Se trata de definir la secuencia que minimice el tiempo de flujo máximo (Cmax) que se define como el lapso de tiempo mínimo que transcurrirá desde que el primer producto se empieza a producir en la primera máquina hasta que el último se acaba de producir en la última máquina. 16.1.2 Definición de la estructura de la solución. Una solución es la permutación que indica el orden en que se deben ejecutar los trabajos. Una solución se puede representar por un vector v[i] que define de modo ordenado la secuencia de trabajo 16.1.3 Definición del modo de evaluar la solución. Dada una solución v(i), se trataría de calcular cuando acaba de producirse el producto en posición n, es decir v(n) Maq[1]:=0;Maq[2]:=0;Maq[3]:=0; for i=1 to n do begin Maq[1]:=Maq[1]+p[v[i],1]; Maq[2]:=Max(Maq[1],Maq[2])+p[v[i],2]; Maq[3]:=Max(Maq[2],Maq[3])+p[v[i],3]; end; Cmax=Maq[3]; 16.1.4 Un procedimiento de generación aleatoria de soluciones. Sea v un vector con los n elementos a permutar i:=0; While i<n-1 do begin j:=random(1..n-i) intercambiar(v[i+1];v[i+j]) i:=i+1 end; // del while 16.1.5 Un procedimiento enumerativo de resolución. Modelos y Métodos de Investigación de Operaciones Página 147 de 190 Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo, definir el modo en que se va a seleccionar el nodo a explotar, definir el modo de explosión, definir el primero de los nodos y definir el modo de eliminar los nodos. generarElNodoInicial; generarUnaSoluciónInicial; Mientras haya nodos abiertos; Elegir un nodo (por ejemplo según menor f(n)) Explotar el nodo (añadir un producto de los no secuenciados a la secuencia). Evaluar f(n) para las nuevos nodos. Eliminar los nodos para los cuales el valor de f(n) es mayor que la mejor solución ya obtenida. Si el número de elementos a añadir es 0, evaluar el nodo y comparar contra la mejor solución obtenida. Guardar en su caso. • Definir f(n) – f(n)=g(n)+h(n) – g(n)=el momento en el que acaba el último producto de la secuencia ya generada en la última máquina – h(n)=la suma de las operaciones en la última máquina de los productos no secuenciados. • Definir el modo de selección del nodo a explotar – Por ejemplo el de menor f(n) • Definir el modo de explotar nodos – Añadir un producto aún no secuenciado a la secuencia. • El primer nodo es la secuencia vacía. 16.1.6 Un procedimiento heurístico Se puede establecer un procedimiento heurístico por la vía de generar una lista ordenada según un determinado criterio y secuenciar según dicho criterio. Sea v un vector con los n elementos a permutar Calcular para cada producto prod[i]:=p[i,1]+p[i,2]+p[i,3]; Ordenar los productos según prod crecientes Asignar a v la anterior ordenación. Sea v un vector con los n elementos a permutar Calcular para cada producto prod(i)=sum{j=1..3} (2j-1)*p(i,j) Ordenar los productos según prod decrecientes Asignar a v la anterior ordenación. 16.1.7 Un procedimiento de mejora local Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario, Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 148 de 190 © JPGS2011 El vecindario seleccionado es el de intercambiar dos elementos de la permutación. El proceso de mejora local seleccionado es Mejora Iterativa Simple. La solución inicial se genera aleatoriamente. generarSolucionAleatoria; coste:=evaluarSolución(v); i:=1; while (i<=n-1) do begin j:=i; HayMejora:=false; while ((j<=n) and not(HayMejora)) do begin j:=j+1; intercambiar(v[i],v[j]); if evaluarSolucion(v)<=coste then HayMejora:=true else deshacerIntercambio(v[i],v[j]); end; if j=n then i:=i+1; if HayMejora then i:=1; end; // del while 16.1.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial; while not(hayQueParar) do begin seleccionarPadres; construirNuevaSolucion; provocarMutaciones; actualizarPoblación; end; Por tanto para definir el procedimiento hace falta: Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. Se define un procedimiento de cruce (por ejemplo OX con dos puntos de cruce). Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye. Si no es mejor se calcula una mutación mediante un intercambio de dos elementos y se incorpora a la población eliminando una solución cualquiera elegida al azar. 16.2 Problema del viajante de comercio. 16.2.1 Descripción del Problema. Sea un conjunto de puntos de un plano a una cierta distancia unos de otros. Se trata de unir todos los puntos mediante un circuito que sólo visite cada nodo en una ocasión minimizando el recorrido Modelos y Métodos de Investigación de Operaciones Página 149 de 190 16.2.2 Definición de la estructura de la solución. La solución se puede representar mediante una permutación de los puntos a visitar. 16.2.3 Definición del modo de evaluar la solución. coste:=0 For i:=1 to n-1 do begin coste=coste+distancia[v[i],v[i+1]]; End coste=coste+distancia[v[n],v[1]]; 16.2.4 Un procedimiento de generación aleatoria de soluciones. Sea v un vector con los n elementos a permutar i:=0; While i<n-1 do begin j:=random(1..n-i) intercambiar(v[i+1];v[i+j]) i:=i+1 end; // del while 16.2.5 Un procedimiento enumerativo de resolución. Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo, definir el modo en que se va a seleccionar el nodo a explotar, definir el modo de explosión, definir el primero de los nodos y definir el modo de eliminar los nodos. generarElNodoInicial; generarUnaSoluciónInicial; Mientras haya nodos abiertos; Elegir un nodo Explotar el nodo. Evaluar f(n) para los nuevos nodos. Eliminar los nodos para los cuales el valor de f(n) es mayor que la mejor solución ya obtenida. Si el número de elementos que quedan por añadir es 0, evaluar el nodo y comparar contra la mejor solución obtenida. Guardar en su caso. • Definir f(n) – f(n)=g(n)+h(n) – g(n)= es la suma de las distancias entre los puntos ya asignados – h(n)=el número de nodos por asignar multiplicado por el menor valor de la matriz distancia más el menor valor en la columna del primer elemento de la secuencia. • Definir el modo de selección del nodo a explotar – Por ejemplo el de mayor profundidad(mayor número de ciudades incorporadas) en caso de empate utilizar el menor valor de f(n) • Definir el modo de explotar nodos – Añadir todos los puntos aún no visitado a la secuencia. • El primer nodo contiene un punto cualquier al azar al azar. 16.2.6 Un procedimiento heurístico Un procedimiento heurístico de construcción sería el del vecino más próximo. Sea v un vector con todos los nodos a visitar i:=1 while i<=n-1 do begin seleccion=i+1; for j:=i+2 to n do begin if distancia[v[i],v[j]]< distancia[v[i],v[seleccion]] then seleccion:=j; end; // del for intercambiar[v[i+1],v[seleccion]]; Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 150 de 190 © JPGS2011 end; //del while Este procedimiento podría ser mejorado si se repitiera N veces y en cada ocasión se hiciera empezar el ciclo por un nodo diferente y se guardara el mejor resultado. Además se podría comenzar el tour por el último nodo, aunque este procedimiento sólo produciría mejoras en caso de matrices asimétricas. 16.2.7 Un procedimiento de mejora local Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario, Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. El vecindario seleccionado es el de provocar un 2-opt (o mutación inversa). El proceso de mejora local seleccionado es Mejora Iterativa Simple. La solución inicial se genera mediante la HeuristicaVecino más Cercano. generarSolucionVecinoMasCercano; coste:=evaluarSolución(v); i:=1; while (i<=n-1) do begin j:=i; HayMejora:=false; while ((j<=n) and not(HayMejora)) do begin j:=j+1; mutaciónInversa(i,j); if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(j,i); end; if j=n then i:=i+1; if HayMejora then i:=1; end; // del while 16.2.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial; while not(hayQueParar) do begin seleccionarPadres; construirNuevaSolucion; provocarMutaciones; actualizarPoblación; end; Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. Se selecciona un modo de selección de padres en función de una ruleta donde: fitness(v)=1/Evaluación(v) Se define un procedimiento de cruce (por ejemplo OX). Modelos y Métodos de Investigación de Operaciones Página 151 de 190 Se define un procedimiento de actualización: De cada 100 iteraciones se guardan las 18 mejores, dos soluciones se calculan aleatoriamente y se incorporan a la población. Cada 20 iteraciones se elige al azar un elemento de la población y se le hace una mutación inversa de modo aleatorio. generarPoblacionInicial; while not(hayQueParar) do begin seleccionarPadres; construirNuevaSolucion; provocarMutaciones; actualizarPoblación; end; 16.3 Problema de Secuenciación JIT 16.3.1 Descripción del Problema Sea una línea de montaje donde se ensamblan 3 modelos de un determinado producto. De cada uno de los modelos hay que fabricar una cantidad U[i] determinada. Se pretende, para garantizar la regularidad, que es básica en los sistemas Just-In-Time, que la producción salga de modo tan equilibrado como sea posible. 16.3.2 Definición de la estructura de la solución. Una solución es una concatenación de los diferentes tipos de productos, de tal manera que la cantidad de cada tipo es al final igual a la demandada U[i]. 16.3.3 Definición del modo de evaluar la solución. El criterio más habitual para medir la calidad de una solución es intentando evaluar la distancia que separa la producción acumulada en un determinado instante de la secuencia, de la que idealmente habría que haber fabricado. ( ) 2 , i k i i Y r k ÷ ¿ Donde Y[i,k] es la producción acumulada hasta k del producto de tipo i. r[i] es el ratio de producción de i, r[i]=U[i]/T T es el número total de unidades a producir, es decir la suma de U[i] para todo i. 16.3.4 Un procedimiento de generación aleatoria de soluciones. k:=0; for i:=1 to P do begin for h:=1 to U[i] do begin k:=k+1; v[k]:=I; end; end; T:=k; h:=0; Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 152 de 190 © JPGS2011 While h<T-1 do begin j:=random(1..T-h) intercambiar(v[h+1];v[h+j]) h:=h+1 end; // del while 16.3.5 Un procedimiento enumerativo de resolución. Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo, definir el modo en que se va a seleccionar el nodo a explotar, definir el modo de explosión, definir el primero de los nodos y definir el modo de eliminar los nodos. generarElNodoInicial; generarUnaSoluciónInicial; Mientras haya nodos abiertos; Elegir un nodo Explotar el nodo. Evaluar f(n) para los nuevos nodos. Eliminar los nodos. Si el número de elementos que quedan por añadir es 0, evaluar el nodo y comparar contra la mejor solución obtenida. Guardar en su caso. • Definir f(n) – f(n)=g(n)+h(n) – g(n)= es la valoración de la función hasta el punto de creación. – h(n)=0. • Definir el modo de selección del nodo a explotar – Por ejemplo el de menor profundidad(menor número de unidades ya incorporados) en caso de empate utilizar el menor valor de f(n) • Definir el modo de explotar nodos – Añadir un producto (todos los productos) de los que no se han fabricado toda la secuencia. • Eliminar aquellos nodos donde la cantidad de productos ya secuenciados de cada tipo sea idéntico a otro con mejor valoración. • El primer nodo está vacío. 16.3.6 Un procedimiento heurístico La modificación del valor de A permitirá obtener diferentes secuencias con el mismo procedimiento. Modelos y Métodos de Investigación de Operaciones Página 153 de 190 16.3.7 Un procedimiento de mejora local. Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario, Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. El vecindario seleccionado es el de provocar una inserción de un elemento elegido al azar en una posición elegida al azar. El proceso de mejora local seleccionado es Descenso Rápido. La solución inicial se genera aleatoriamente. generarSolucionVecinoMasCercano; coste:=evaluarSolución(v); i:=1; while (i<=n-1) do begin j:=i; HayMejora:=false; while ((j<=n) and not(HayMejora)) do begin j:=j+1; mutaciónInversa(i,j); if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(j,i); end; if j=n then i:=i+1; if HayMejora then i:=1; end; // del while 16.3.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial; while not(hayQueParar) do begin seleccionarPadres; construirNuevaSolucion; provocarMutaciones; actualizarPoblación; end; Por tanto para definir el procedimiento hace falta: Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. Se define un procedimiento de cruce: en este caso se propone un OX con un punto de cruce, donde la sección del Padre y la Madre se incorporan íntegramente y se repara (aquellos productos que se producen de más frente a los que se producen de menos) aleatoriamente quitando algún producto de los que hay de más para poner alguno de los que hay de menos (ambos seleccionados aleatoriamente). Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye. Si no es mejor se calcula una mutación mediante un intercambio de dos elementos y se incorpora a la población eliminando una solución cualquiera elegida al azar. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 154 de 190 © JPGS2011 16.4 Corte de Piezas rectangulares. En una empresa de fabricación de piezas metálicas, tienen una sierra automática capaz de hacer cualquier tipo de corte rectangular. La citada empresa compra planchas rectangulares de dimensiones DX y DY. La explosión de la lista de materiales de la empresa a partir de los pedidos en firme genera un conjunto de N piezas rectangulares de dimensiones (a,b). Se trata de diseñar un programa de corte para cada plancha que minimice los restos de cada plancha. a) Construya el Modelo que define el problema de corte. , : Recorre los cortes , : Dimensiones X e Y de la Placa Origen , : Dimensiones x e y de cada corte i , : Posicion (x,y) de la esquina superior izquierda de la placa i , i i i i i Indices i j Parametros DX DY a b Variables x y r s { } { } , , : Posicion (x,y) de la esquina inferior derecha de la placa i 0,1 que indica si un producto i esta mas a la izquierda que otro j 0,1 que indica si un producto i esta mas a arriba que otro j i i j i j o | ¸ = = { } ( ) ( ) ( ) i i i 0,1 que indica si la orientacion del producto es la natural o la perpendicular maximo de todos los valores r maximo de todos los valores s Modelo [MAX] · Sujeto a 1 i i i i i i t w DX t DY DY w DX wt r x b a ¸ ¸ = = = ÷ + ÷ ÷ = + + ÷ ( ) ( ) ( ) { } , , , , , , , , i 1 i i i i i 1 i j 1 i j 1 i j , , 0,1 ; , i i i i i i i i i i i j i i j i j i i j i j j i i j j i i j i j i i s y a b t r w s r DX s DY x a x y b y x ¸ ¸ o | o o | | o | ¸ ¬ = + + ÷ ¬ > ¬ > ¬ s ¬ s ¬ = ÷ + s ¬ = = ÷ + s ¬ = + + + > ¬ = = , , 0 i i i y r s > Sin que sirva de precedente se incorpora un ejemplo numérico) Modelos y Métodos de Investigación de Operaciones Página 155 de 190 DX=5 DY=8 Pieza M: (4,2) ; Pieza N: (2,2) ; Pieza P: (2,1) ; Pieza Q: (4,5) Una posible solución gráfica al problema sería La solución anterior se puede definir del siguiente modo: (Q1,N0,P1,M0), que representa que primero se ubica la pieza Q en posición perpendicular a la definida, luego N en su posición natural en la esquina más arriba y más a la izquierda posible. Luego el Producto P en posición perpendicular, y el producto M en posición natural. b) Sobre el resultado anterior. ¿Cuál es el resultado de ejecutar una inserción del 4 elemento en la segunda posición? (Q1,M0,N0,P1) c) Sobre el resultado anterior. ¿Cuál es la solución de ejecutar una 2-permutación del primer elemento con el tercero? (N0,M0,Q1,P1) d) ¿Cuál es la solución resultado de ejecutar un crossover (operador de los algoritmos genéticos) entre la solución (M0,N0,P1,Q1) y (M1,P1,Q0,N0) fijando las posiciones 2 y 3 (M1,N0,P1,Q0) Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 156 de 190 © JPGS2011 16.5 Quinielas Después de mucho pensar ha llegado a la elemental conclusión de que trabajando y ahorrando nadie se hace rico. Así pues, se ha lanzado por el terreno legal más cómodo para hacer dinero sin dar ni golpe: las apuestas. Concretamente las Quinielas, porque le permitirán hacer uso de su conocimiento exhaustivo del mundo del fútbol (tantas horas invertidas en leer el Marca más pronto o más tarde iban a dar sus frutos). Pero su manera de ganar dinero será científica, y así tantas horas invertidas en Métodos Cuantitativos también serán útiles. Quiere hacer un modelo matemático que rellene una columna en la quiniela con un número limitado de apuestas (todavía no es rico), maximizando la probabilidad de acertar con unas limitaciones que irá incorporando. Sea o i,1 la variable que indica que apuesta por la victoria del equipo de casa en el partido i. Sea o i,X la variable que indica que apuesta por el empate en el partido i. Sea o i,2 la variable que indica que apuesta por la victoria del equipo foráneo en el partido i. (1 punto) a) Modele una restricción (o juego de ellas) que asegure que apuesta en todos los partidos. (1 punto) b) Modele una restricción (o juego de ellas) que mostrará que no quiere apostar por menos de 4 unos ni por más de 7 unos. (1 punto) c) Modele que si le pone un 1 a un determinado partido A, le debe poner un 2 a un determinado partido B, aunque no necesariamente a la inversa. (2 puntos) d) Modele una limitación superior de 5 dobles y 2 triples. (1 punto) e) Establezca una restricción que limite el número total de apuestas a 2000. (1 punto) f) Incorpore una función objetivo que maximice la probabilidad de acertar. (2 puntos) g) Un análisis estadístico previo parece indicar que el ingreso esperado no crece linealmente con las apuestas jugadas sino en una curva en S con los siguientes puntos (en escala logarítmica). Establezca un objetivo lineal que pretenda maximizar el ratio beneficio esperado frente a coste de las apuestas. Log(número de apuestas) Log(coste de las apuestas) log(Beneficio Esperado) 0 -0,52 0,04 Modelos y Métodos de Investigación de Operaciones Página 157 de 190 1 0,48 0,30 2 1,48 1,00 3 2,48 3,00 4 3,48 4,48 5 4,48 5,30 6 5,48 5,78 6,68 6,16 5,85 (1 punto) h) Una determinada combinación se puede representar mediante una secuencia de 14 letras donde A representa un 1, B representa una X, C representa un 2, D representa 1X, E representa 12, F representa X2 y G representa 1X2. Sea una posible solución al problema planteado ADEABCEFFBEBFB. Y sea otra posible solución al mismo problema EDABBAEGAABCFF. ¿Qué combinación obtendría aplicando el operador genético de Order Crossover (OX) o Cruce, con el corte en las posiciones 5 y 9? Notas de apoyo. Como sabe la Quiniela es un juego donde se deben acertar el máximo número de resultados de 14 partidos de fútbol (por el momento prescindiremos del 15). El resultado puede ser 1, X o 2. Es decir gana el de casa, empatan o gana el de fuera. Tras su estudio de la excelente prensa deportiva y el análisis de vídeos, enfermerías, árbitros y previsiones climatológicas, usted establece una probabilidad de que en cada uno de los partidos se produzca uno de los resultados ( P i,1 es la probabilidad de que en el partido i gane el equipo de casa, P i,X es la probabilidad de que en el partido i empaten y P i,1 es la probabilidad de que en el partido i gane el equipo visitante, evidentemente P i,1 + P i,X + P i,2 =1). Tenga en cuenta para el punto f) que en cada partido la probabilidad de acertar es la suma de las probabilidades de los signos jugados. Y además que la probabilidad de acertar la quiniela es la multiplicación de probabilidades. Y además, si X i es la probabilidad de acertar el partido i ( ) es equivalente a log i i i MAX X MAX X ¿ [ Además la función logaritmo se puede aproximar por este conjunto de puntos: X log(X) Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 158 de 190 © JPGS2011 0,01 -2 0,1 -1 0,3 -0,52 1 0 El número de apuestas jugadas es la multiplicación para todos los partidos del número de columnas jugadas en cada partido. Así, si para un partido jugamos un doble entonces el número de apuestas se multiplica por 2, y si jugamos un triple se multiplica por 3. Si el partido se juega a simple el número de apuestas se multiplica por 1. Recuerde que log(A*B)=log (A)*log(B) y log(A/B)=log (A) – log (B) Log(1)=0 ; log(2)= 0,30 ; log(3)=0,48 Resolución a) Modele una restricción (o juego de ellas) que asegure que apuesta en todos los partidos. ,1 , ,2 1 i i X i o o o + + > b) Modele una restricción (o juego de ellas) que mostrará que no quiere apostar por menos de 4 unos ni por más de 7 unos. ,1 ,1 7 4 i i i i o o s > ¿ ¿ c) Modele que si le pone un 1 a un determinado partido A, le debe poner un 2 a un determinado partido B, aunque no necesariamente a la inversa. ,1 ,2 ,2 ,1 1 1 A B B A o o o o = ÷ = > d) Modele una limitación superior de 5 dobles y 2 triples. Definimos 3 variables binarias para cada partido (o, c, |) que indicarán si es simple doble o triple. ,1 , ,2 2 3 1 2 5 i i i X i i i i i i i i i i i i y y o o o o c | o c | | c = + + = + + = + + s s ¿ ¿ Modelos y Métodos de Investigación de Operaciones Página 159 de 190 e) Establezca una restricción que limite el número total de apuestas a 2000. Definimos 3 variables binarias para cada partido (o, c, |) que indicarán si es simple doble o triple. ,1 , ,2 2 3 1 2 *3 2000 log 2 log3 log 2000 i i i X i i i i i i i i numdobles numtriples i i i i y y numerodeapuestas o o o o c | o c | c | = + + = + + = + + = s + s ¿ ¿ f) Incorpore una función objetivo que maximice la probabilidad de acertar. Sea Xi la probabilidad de acertar un determinado partido , , i i j i j j X P o = ¿ Sea V i una variable equivalente a log(X i ) ( ) i i 1, 2, 3, 4, 1, 2, 3, 1, 2, 3, 4, es equivalente a log MAX V 0, 01 0,1 0, 3 2 0, 52 1 i i i i i i i i i i i i i i i i MAX X MAX X X V ì ì ì ì ì ì ì ì ì ì ì = + + + = ÷ ÷ ÷ + + + = ¿ [ ¿ g) Un análisis estadístico previo parece indicar que el ingreso esperado no crece linealmente con las apuestas jugadas sino en una curva en S en escala logarítmica. Establezca un objetivo lineal que pretenda maximizar el ratio beneficio esperado frente al coste de las apuestas. log log(Beneficio)-log(Coste) BENEFICIO BENEFICIO MAX MAX COSTE COSTE MAX | | | | ÷ ÷ | | \ . \ . ÷ Sea A el logaritmo del número de apuestas, sea C el logaritmo del coste de las apuestas y sea B el logaritmo del Beneficio esperado Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 160 de 190 © JPGS2011 ( ) 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 ,1 , ,2 0, 04 0, 30 3 4, 48 5, 30 5, 78 5,85 0, 52 0, 48 1, 48 2, 48 3, 48 4, 48 5, 48 6,16 log 2 log3 2 3 1 i i i i i i i X i i i i i i i i Max B C B C A y y ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ ¢ c | o o o o c | o c | ÷ = + + + + + + + = ÷ + + + + + + + = + = + + = + + = + + ¿ ¿ h) Una determinada combinación se puede representar mediante una secuencia de 14 letras donde A representa un 1, B representa una X, C representa un 2, D representa 1X, E representa 12, F representa X2 y G representa 1X2. Sea una posible solución al problema planteado ADEABCEFFBEBFB. Y sea otra posible solución al mismo problema EDABBAEGAABCFF. ¿Qué combinación obtendría aplicando el operador genético de Order Crossover (OX) o Cruce, con el corte en las posiciones 5 y 9? ADEABCEFFBEBFB EDABBAEGAABCFF EDABBCEFFABCFF 16.6 SUDOKU Durante este corto verano del 2005 ha triunfado como pasatiempo el denominado SUDOKU. La mayor parte de los periódicos nacionales e internacionales llevaban diariamente uno (o más) SUDOKU’s, que enganchaban (o del que se decían enganchados) cientos de bañistas en cualquiera de las playas de esta nuestra comunidad. Pocos de estos bañistas sabían que el SUDOKU es un clásico problema matemático heredero del “cuadrado mágico” y del “cuadrado latino”. Los cuadrados mágicos se remontan al 2800 AC en China, aunque posteriormente aparecieron también el Antiguo Egipto y otros lugares. Consiste en definir los valores de una matriz NxN de tal manera que ninguna de las celdas repita el valor y la suma de los valores en cada fila y en cada columna (así como los de las dos diagonales principales) valgan lo mismo. A ese valor se le denomina constante mágica. Los cuadrados latinos sin embargo son más recientes, hubo que esperar 4600 años a que Euler los describiera. Los cuadrados latinos son matrices de NxN celdas en las que N elementos se deben Modelos y Métodos de Investigación de Operaciones Página 161 de 190 asignar a cada celda, para que, en ninguna fila y en ninguna columna, se repita el mismo elemento dos veces (son especialmente útiles en el diseño de experimentos). El Sudoku es un cuadrado latino de 9x9 donde se deben rellenar las celdas con los dígitos del 1 al 9 y no sólo se prohíben las repeticiones en filas y columnas, sino que además se prohíbe la repetición en el interior de 9 zonas disjuntas de tamaño 3x3. Además se asignan algunos valores en algunas celdas, y de este modo se pretende que haya una y sólo una solución al problema. Por su configuración el Sudoku es también un problema de coloreado de grafos, donde cada celda es un nodo, que está unido con todos los nodos de su línea, de su columna y de su cuadrado. Se pide: a) (3 puntos) Plantear un modelo matemático cuya solución sea una solución de un cuadrado mágico de 3x3 con constante mágica tan pequeña como sea posible. b) (2 puntos) Plantear un modelo matemático para el problema de un cuadrado latino de 4x4. (Atención : Este es un problema sin objetivo) c) (1 punto) El número de cuadrados latinos de orden 4 es muy elevado, nos interesa especialmente aquel que tiene los valores pequeños tan cerca de la celda superior izquierda como sea posible. Defina el objetivo del nuevo modelo. d) (2 puntos) Plantear un modelo matemático cuya solución sea una solución del SUDOKU. Así ahorraremos mucho tiempo a los bañistas que podrán dedicarse al clásico autodefinido. (Nuevamente este modelo no tendrá objetivo, sólo restricciones). Dado que no todos los bañistas disponen de CPLEX, plantear un procedimiento de ramificación y corte que permita obtener una solución. El procedimiento debe ser lo más eficaz posible. Ramifica en cada nodo teniendo en cuenta los valores que puede asignar a cada celda, y elimina el nodo si al explotarlo no hay ninguna posibilidad. e) (1 punto) Proponga un método para seleccionar el siguiente nodo a explotar. f) (1 punto) Proponga un método para explotar un nodo. g) (1 punto) ¿Qué información debiera tener en cuenta para que el descarte de opciones al abrir cada nuevo nodo sea lo más rápido posible? Proponga un modo de almacenar dicha información Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 162 de 190 © JPGS2011 h) (1 punto) Desarrolle el árbol para las cuatro primeras celdas que vaya a generar. Nota: (Esta nota es útil a partir del apartado b) Un modo de garantizar que todos los elementos son distintos, y pertenecientes a un conjunto limitado de opciones, es establecer un índice para cada una de las opciones. De este modo se puede definir la opción a introducir en cada celda asignando a una variable binaria, que identifique la celda y la opción que se le ha incorporado, con el valor 1 (y 0 en caso de que no se asigne dicho valor). Así se podría definir una variable binaria ì i,j,k que valiera 1 si en la celda de coordenadas i y j se asigna el valor k. Nota 2: Si una restricción no sabe como representarla escríbala “en letra”, recuerde que el proceso y el orden del mismo es tan (o más) importante que el resultado. 16.7 Secuenciando en la Línea de Montaje Una línea de montaje de coches tiene en medio de su sistema un almacen formado por 4 líneas en paralelo cada una con capacidad para alrededor de 20 coches, que sirve para absorber las fluctuaciones entre la primera parte de la planta (denominada trim) y la segunda parte de la misma (denominada chasis). Los coches entran en el almacén y son distribuidos de acuerdo a un criterio que no es relevante en este momento. Los coches de una determinada línea no pueden adelantarse entre sí, es decir si se pretende sacar el tercer coche de una línea se debe secuenciar primero las unidades por delante de él. Tras analizar la situación descubre que la calidad de la secuencia va relacionada con un concepto que denominan “violación de restricciones”. Por lo visto hay una serie de restricciones de diferentes niveles de importancia cada una. Una restricción se puede representar del siguiente modo: “No más de dos Fort Juerga con Lavafaros de cada 6 coches”. Cómo evalúa el cumplimiento de restricciones no es objeto del presente problema. Se admite que un evaluador actuaría del siguiente modo: cada coche <i> al ser incorporado a una secuencia S viola unos puntos que calculará una función G(S*<i>). Y alguien ya tiene desarrollado el evaluador. Tras explorar diferentes alternativas decide que lo mejor es buscar en cada iteración del proceso (es decir cada vez que hay que sacar un coche) la mejor secuencia posible de 10 unidades y sacar el primer coche de dicha secuencia. En una brillante idea se le ocurre que la representación de la solución más adecuada, no es la secuencia de unidades a extraer sino la secuencia de las líneas desde las que se van a extraer las unidades. Así una solución (4,2,1,1,2,1,3,4) sacaría primero el primer coche de la línea 4 (que evidentemente sabemos cual es), luego el primer coche de la línea 2, luego el primero de la línea 1 seguido del segundo de la línea 1, posteriormente el segundo de la línea 2 seguido del tercero de la línea 1, etcétera. Modelos y Métodos de Investigación de Operaciones Página 163 de 190 Para sacar 10 coches tiene por tanto 4^10 combinaciones y por tanto desprecian (aunque no deberían) la posibilidad de hacer una enumeración completa de las soluciones. Se le pide que: a) Diseñe un algoritmo que genere una solución aleatoria. b) Diseñe un algoritmo heurístico que genere una solución que podamos considerar correcta. c) Diseñe un algoritmo de tipo Mejora Local. d) Diseñe un algoritmo de tipo genético. e) Modifique el algoritmo diseñado en b) teniendo en cuenta que en las líneas el número de unidades que puede haber puede ser muy bajo. Cada apartado debe constar de dos partes. En la primera hay que describir el algoritmo, en la segunda hay que ejecutar el algoritmo poniendo un ejemplo. Para diseñar el algoritmo hay que hacerlo de la manera más inteligible posible. Al ejecutar los algoritmos invéntese los datos que necesite. Si le hacen falta números aleatorios, aquí tiene una secuencia de números entre 0 y 99. 2 4 1 1 4 1 3 4 3 2 1 4 3 3 1 4 2 2 1 1 Resolución Sea i: el índice que recorre las 10 posiciones de la secuencia a generar Sea j: el índice que recorre las 4 líneas desde las que se pueden extraer unidades Sea k: el índice que recorre las unidades en cada una de las líneas. Sea rnd() una función que define un número aletario entre 0 y 1 Sea entero(x) una función que trunca un número aletario y se queda sólo con la parte entera. Sea xi la línea de la que extraer en la posición i Sea ajk el vector que establece la unidad en posición k del producto i a) Un algoritmo que genere una solución aleatoria podría tener la siguiente estructura. For i:=1 to 10 do begin 23 75 86 30 5 55 54 54 36 56 27 79 19 89 99 68 78 55 50 47 99 32 95 18 21 76 7 63 83 64 43 13 40 75 66 46 66 39 88 90 93 73 16 82 59 68 13 78 28 39 21 22 41 47 10 88 69 98 22 58 48 90 98 11 79 55 68 39 26 70 64 7 23 43 76 13 35 13 24 83 14 80 63 82 58 45 21 56 74 99 15 7 75 71 26 32 64 76 67 89 76 42 76 35 8 61 46 68 12 61 42 3 86 85 27 80 67 0 43 48 89 17 39 9 44 24 74 35 81 3 89 48 2 57 26 4 43 31 17 74 37 4 83 59 81 44 17 19 66 8 63 59 38 83 53 35 35 96 96 87 33 86 96 29 89 15 16 74 96 33 34 98 20 34 14 70 53 67 35 38 61 24 71 1 21 23 89 48 98 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 164 de 190 © JPGS2011 xi=entero(rnd()*4)+1; end Como ejemplo sean los números de dos cifras una secuencia aleatoria entre 0 y 99. Dividiendo esos números por 100 tenemos números entre 0 y 1 La secuencia de 10 números aleatorios es: 23 75 86 30 5 55 54 54 36 56 La secuencia de 10 líneas será: 1 4 4 2 1 3 3 3 2 3 b) Un algoritmo que genere una solución que podamos considerar correcta podría tener la siguiente estructura for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible dé un mejor valor de G(S*i) end Como ejemplo y dado que aquí no hay nada aleatorio, y dado que no tenemos valores para los productos en el almacén no es posible poner nada más que una secuencia de números del 1 al 4. Por ejemplo la anterior. La secuencia de 10 líneas será: 1 4 4 2 1 3 3 3 2 3 Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible sea el más antiguo de todos. end Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =(i mod 4) +1; end Este algoritmo daría como resultado 1,2,3,4,1,2,3,4,1,2 puesto La función mod es la función resto. Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =La línea con menor número de coches; end c) Un algoritmo de Mejora local exige definir un vecindario y un procedimiento de descenso. Un vecindario podría ser (poniendo un ejemplo diferente de los tradicionales) modificar el valor de uno de los elementos del vector solución. Por ejemplo en la solución anterior 1 4 4 2 1 3 3 3 2 3 posibles vecinos serían 2 4 4 2 1 3 3 3 2 3 Modelos y Métodos de Investigación de Operaciones Página 165 de 190 3 4 4 2 1 3 3 3 2 3 4 4 4 2 1 3 3 3 2 3 1 1 4 2 1 3 3 3 2 3 1 2 4 2 1 3 3 3 2 3 1 3 4 2 1 3 3 3 2 3 1 4 1 2 1 3 3 3 2 3 Denominemos a este método ModificarGen(i,j) que significa que en la posición i probamos el efecto de la extracción de un unidad de la fila j Y el mecanismo de descenso puede ser el mecanismo de descenso rápido. Es decir en el momento que se encuentre algo mejor se sustituye Una posible estructura del algoritmo sería: generarSolucionVecinoMasCercano; coste:=evaluarSolución(v); i:=1; while (i<=10) do begin j:=i; HayMejora:=false; while ((j<=4) and not(HayMejora)) do begin j:=j+1; aux:=x(i) ModificarGen(i,j); if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(i,aux); end; if j=4 then i:=i+1; if HayMejora then i:=1; end; // del while d) Un algoritmo genético podría tener la siguiente estructura generarPoblacionInicial; while not(hayQueParar) do begin seleccionarPadres; construirNuevaSolucion; actualizarPoblación; provocarMutaciones; end; Por tanto para definir el procedimiento hace falta (asumiendo que tenemos una función G que evalúa) Definir un tamaño de población inicial: Por ejemplo 10 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. Se define un procedimiento de cruce: en este caso se propone un OX con un punto de cruce, donde la sección del Padre y la Madre se incorporan íntegramente no haciendo falta reparación. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 166 de 190 © JPGS2011 Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye. Para provocar mutaciones cada 100 iteraciones se sustituyen los 5 peores miembros de la población por 5 soluciones aleatoriamente construidas. Un ejemplo para lo único representable (la función de cruce). Sean dos soluciones aleatorias construidas con los 10 primeros números de las filas segunda y tercera: 2 4 1 1 4 1 3 4 3 2 1 4 3 3 1 4 2 2 1 1 Se elige un número aleatorio (por ejemplo con el primero de la cuarta fila: 11 que dividido por 100 (para que esté entre 0 y 1) y multiplicado por 10 para elegir por donde cortar nos da 1,1 es decir 2. Cruzamos la primera y la segunda solución cortando en la segunda posición y da 2 4 3 3 1 4 2 2 1 1 e) Para modificar el el algoritmo diseñado en b) teniendo en cuenta que en las líneas el número de unidades que puede haber puede ser muy bajo. Se propone lo siguiente: for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible dé un mejor valor de G(S*i) comprobando siempre que haya un producto disponible en dicha línea end Modelos y Métodos de Investigación de Operaciones Página 167 de 190 17 CASOS 17.1 Asignación de Fechas y Aulas para Exámenes. Una Escuela de Ingeniería ha experimentado una multiplicación en el número de títulos, alumnos y aulas en los últimos años. Este crecimiento ha supuesto una modificación sustancial en algunos de los procesos. Entre ellos el de asignación de aulas y fechas para exámenes. Los diferentes problemas que se plantean por esta nueva circunstancia se pretenden resolver mediante una asignación automática al principio de curso. Algunos de los datos del problema son: Número de Alumnos Número de Asignaturas Capacidad Aulas para exámenes Núm ero Aulas 400-500 5 90 14 300-400 19 60 32 200-300 30 100-200 8 50-100 58 0-50 84 ¿Puede establecer un método automático de asignación? 17.2 La Ruta de Llanes En Arriondas (Asturias) tiene una de sus plantas envasadoras la Central Lechera “Carrete”. Esta central lechera, recoge leche de vaquerías situadas en distintas comarcas Asturianas y de las comunidades colindantes de la cornisa cantábrica española. El sistema de recogida de leche hace tiempo que fue diseñado, y aunque ha habido variaciones importantes en las características de la recogida, hace tiempo que no se rediseña todo el proceso, sino que se hacen pequeños ajustes. La dirección pretende comprobar si compensaría hacer un estudio global, y para ello les requieren que analicen el proceso de recogida en la comarca de Llanes. Algunos datos relevantes son los siguientes: 1) La capacidad de los camiones que gasta nuestra empresa es de 20.000 litros. 2) La leche se guarda en enfriadoras durante un máximo de 2 días. 3) Cada vaquería tiene una capacidad productiva distinta. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 168 de 190 © JPGS2011 4) Los costes de transporte se evalúan a razón de 50 pesetas el kilómetro realizado, aunque en realidad es un poco más caro ir cargado que de vacío. 5) La jornada laboral de cada transportista se considera de 40 horas semanales (con un margen “en negro” máximo de 15 horas). 6) Cada carga tiene un tiempo fijo de 15 minutos y una velocidad de carga de 200 litros por minuto. 7) Las velocidades de desplazamiento son de 60 kilómetros/hora por la N-634, 45 kilómetros/hora por la AS-114 y AS-115, y 35 kilómetros por hora en el resto de carreteras. 8) Por algunas carreteras la pendiente es tan acusada que no se puede descender con el camión cargado con más de 5000 litros, estás son: a) La AS-340 en sentido Riensena-Nueva b) La LLN14 Riensena-Palacio Meré en ese sentido c) La LLN-7 Palacio Meré-La Pereda en ese sentido. Las vaquerías con las que se tiene concierto están en los siguientes pueblos (se incorpora además la capacidad de su enfriadora medida en litros, y su producción también medida en litros): Nombre Pueblo Enfriadora Producción 1 Cangas de Onís 15.000 6000 2 Onís 10.000 7000 3 Riensena 10.000 4000 4 La Pereda 10.000 7000 5 Arenas de Cabrales 10.000 3000 6 Arangas 20.000 4000 7 Panes 15.000 6000 8 Noriega 10.000 6000 9 Colombres 10.000 3000 10 Cien 10000 7000 11 Carreña 10000 5000 12 Arrobio 10000 4000 13 Nava 10000 5000 14 Tazones 10000 4000 15 Tres Cares 10000 3000 Modelos y Métodos de Investigación de Operaciones Página 169 de 190 17.3 Sistema Eléctrico En un determinado sistema eléctrico se dispone de un número de centrales térmicas, nucleares e hidroeléctricas para afrontar una demanda que sigue en cada centro de transformación una función similar con respecto a cada hora del día. Esta relación se puede representar del siguiente modo: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 85 80 76 60 68 66 72 70 70 84 70 65 95 92 93 83 85 80 85 86 90 100 99 80 Donde la primera fila indica la hora del día considerada y la segunda el porcentaje sobre el consumo máximo diario previsto. La red eléctrica tiene la siguiente configuración: Donde todas las líneas tienen una capacidad de 500 MW excepto las que vienen reflejadas en la siguiente tabla: Línea B1 200 MW Línea F5 400 MW Línea E4 400 MW Línea A4 600 MW Existen 5 Centros de transformación de alta tensión con demandas máximas según la siguiente tabla: 1 2 3 4 5 Demanda Máxima 250MW 1000 MW 825 MW 1150 MW 700 MW El sistema descrito tiene 6 sistemas de generación: 3 son de tipo térmico y 2 de tipo hidráulico y uno de tipo nuclear. Los generadores térmicos y nucleares tienen que trabajar entre un máximo y un mínimo. A B C D E F 1 2 3 4 5 A B C D E F 1 2 3 4 5 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 170 de 190 © JPGS2011 Se define un coste horario por trabajar al mínimo, más un coste extra por cada MW sobre el mínimo. Poner en marcha cada generador tiene también un coste fijo. Los valores de dichos costes para las centrales térmicas vienen definidos en la tabla siguiente. Nivel Mínimo Nivel Máximo Coste Mínimo Coste Extra por MW Coste de Puesta en Marcha A 40 % max 1350 MW 4000 € 5 € 3000 € C 50% max 700 MW 5000 € 4.5 € 2000 € F 40% max 1050 MW 9000 € 5 € 1000 € Además se dispone de dos centrales Hidroeléctricas, B y E. Éstas pueden trabajar a un nivel de producción fijo con un coste horario, y un coste fijo de puesta en marcha. Una característica importante de estas centrales Hidroeléctricas es que el agua se puede subir otra vez al depósito desde un depósito inferior situado a los pies de la central. Por razones medio ambientales el depósito superior debe mantener siempre entre 10 y 20 metros de agua. Se supone que estamos en la estación seca, y no entra más agua en el depósito que la que ya hay. Nivel de Generación Coste por Hora Reducción del nivel de agua en el depósito por hora Coste de Puesta en Marcha Central B 450 MW 350 € 0,30 metros 2000 € Central E 400 MW 300 € 0,48 metros 2000 € Subir un metro de agua al depósito superior consume 3300 MW. Por motivos de servicio, en cualquier momento debiera ser posible alcanzar un incremento de demanda sobre la prevista de un 15%. Este incremento se podría conseguir aumentando los niveles de trabajo de las centrales térmicas o poniendo en marcha las centrales hidroeléctricas, o utilizando la energía que se invierte en subir el agua al depósito superior, aunque ello suponga disminuir los 10 metros de agua citados. La central nuclear tiene también unos costes máximos y unos mínimos, y sus costes extra por MW no son lineales y se representan por la siguiente curva: Modelos y Métodos de Investigación de Operaciones Página 171 de 190 Nivel Mínimo Nivel Máximo Coste Mínimo D 50 % max 1000 MW 4000 € Además los centros de transformación 1 y 5 pueden ser alimentados con más potencia comprando energía a una red eléctrica externa. Se debe calcular la forma más barata de alimentar a la red eléctrica. Calcular a partir de qué precios y en qué momentos del día es rentable comprar y vender energía eléctrica a las redes vecinas. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 172 de 190 © JPGS2011 17.4 Optimización en la Refinería Una empresa que posee dos refinerías compra tres tipos de petróleo (PETR1, PETR2, PETR3) de diferentes calidades y por tanto de diferentes precios por barril. Dado que los planes de producción se establecen con un mes de antelación es necesario trabajar con previsiones de precio por barril. El departamento de compra establece los siguientes tres escenarios con las probabilidades expresadas en la tabla 1 y los precios en euros por barril para los próximos meses (por obvia simplificación del caso no se establecen probabilidades distintas para diferentes periodos) PETR1 PETR2 PETR3 Escenario 1 (35%) 27 30 26 Escenario 2 (35%) 28 30 28 Escenario 3 (30%) 29 29 27 El petróleo se transforma a través de 4 procesos (Destilación, Reformado, Crackeado y Mezcla) para producir los productos que el consumidor normal compra: Aceite Lubricante, Gasóleo, Gasolina 95, Gasolina 98 y Keroseno. Destilación En la destilación se separa el petróleo en 6 fracciones (Nafta Ligera, Nafta Media, Nafta Pesada, Aceite Ligero, Aceite Pesado y Residuo). Las naftas ligeras, medias y pesadas tienen un octanaje medio de 95,85 y 75 respectivamente. Las proporciones de cada fracción son (incluyendo las pérdidas): Nafta Ligera Nafta Media Nafta Pesada Aceite Ligero Aceite Pesado Residuo PETR1 0.1 0.2 0.2 0.12 0.2 0.13 PETR2 0.15 0.25 0.18 0.08 0.19 0.12 PETR3 0.1 0.15 0.21 0.16 0.22 0.14 Reforma Las Naftas se pueden usar directamente para mezclarlas dando lugar a gasolinas de diferentes octanajes o pasar por el proceso de reforma. Este proceso genera una gasolina denominada reformada con un octanaje de 125. En el proceso de reforma se obtiene: 0.6 barriles de gasolina reformada de 1 barril de nafta ligera 0.52 barriles de gasolina reformada de 1 barril de nafta media Modelos y Métodos de Investigación de Operaciones Página 173 de 190 0.45 barriles de gasolina reformada de 1 barril de nafta pasada Craqueado Los aceites (ligero y pesado) pueden ser usados para mezclar (dando lugar a Gasóleo y Keroseno) o se pueden pasar a través de un proceso conocido como craqueado catalítico. Este proceso produce aceite craqueado y gasolina craqueada. Ésta tiene un octanaje de 110. 1 barril de aceite ligero da lugar a 0.68 barriles de aceite craqueado y 0.28 de gasolina craqueada. 1 barril de aceite pesado da lugar a 0.75 barriles de aceite craqueado y 0.18 de gasolina craqueada. La gasolina craqueada se utiliza para hacer gasolinas (95 y 98). El aceite craqueado se utiliza para hacer gasóleos (gasóleo y Keroseno). Actualmente se está investigando en un producto químico que modificaría las anteriores proporciones: 1 barril de aceite ligero daría lugar a 0.63 barriles de aceite craqueado y 0.32 de gasolina craqueada. 1 barril de aceite pesado daría lugar a 0.77 barriles de aceite craqueado y 0.2 de gasolina craqueada. Además, a partir de un barril de Residuo se puede obtener 0.6 barriles de Aceite Lubricante utilizando la capacidad del mismo sistema de craqueado. Mezclado Gasolinas Hay dos tipos de gasolinas (súper y normal), que se obtienen por mezcla de naftas y gasolinas (craqueada y reformada). El octanaje de la gasolina súper debe ser superior a 98, y el de la gasolina normal a 95. Se asume que el octanaje se obtiene por combinación lineal de los volúmenes mezclados. Keroseno Se estipula que la presión de vapor del Keroseno debe ser inferior a 1 Kg/cm 2 . Las presiones de vapor, en las mismas unidades, de los productos que pueden dar lugar al Keroseno son los siguientes: Aceite Ligero (1), Aceite Pesado (0.6), Aceite craqueado (1.5) y Residuo (0.05). Se puede asumir otra vez que la presión de vapor resultado es combinación lineal considerando volúmenes. Gasóleo Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 174 de 190 © JPGS2011 Para producir Gasóleo se utiliza aceite ligero, aceite craqueado, aceite pesado y residuo con una proporción 10:4:3:1. Restricciones de capacidad a) Disponibilidad diaria de los tres tipos de petróleo: 40.000, 60.000 y 40.000 barriles respectivamente. b) Capacidad de destilación: 40000 barriles diarios por refinería c) Capacidad de reformado: 9000 barriles diarios por refinería d) Capacidad de craqueado: 5000 barriles diarios por refinería e) La fabricación de Gasolina 98 debe ser al menos el 30% de la Gasolina 95. Precios de Venta: Los precios de venta de cada barril aportan los siguientes ingresos en Euros, descontados los gastos generales (de tal modo que los beneficios de la refinería se pueden calcular descontando estos ingresos de los costes de adquisición de los barriles). Demanda Beneficio Venta en refinería 1 Beneficio Venta en refinería 2 Aceite Lubricante 4000 27.5 € 28.5 € Gasolina 95 26000 43 € 50 € Gasolina 98 10000 47 € 45 € Keroseno 30000 39 € 35 € Gasóleo 30000 34 € 34 € Como se observa en la tabla los beneficios no son iguales para cualquier refinería debido a que no son plantas idénticas. Además en su construcción fueron diseñadas para que solo se pudiera trabajar con dos tipos de petróleo (por planta). La demanda de cada producto tiene una cierta elasticidad con el precio que podemos considerar que se expresa del siguiente modo: “Una variación de un 1% en el precio implica una variación de sentido contrario en las ventas de un 5%”. Esta regla se mantiene para variaciones de precio inferiores al 10%. Modelos y Métodos de Investigación de Operaciones Página 175 de 190 17.5 Red de Metro de Valencia Trabaja usted en una consultora que ha sido contratada por la empresa FGV para realizar un programa que permita calcular el tiempo que se tarda en llegar entre dos paradas cualesquiera de la red de Metro Valencia. Una vez desarrollada la herramienta les solicitan que hagan una exploración acerca de una nueva línea que se está planteando. Dicha línea sería una nueva línea de tranvía que se engarzaría con la actual en las paradas de Empalme y La Carrasca, tal y como se muestra en el plano adjunto. Dicha línea tendría un punto medio en la parada de Jesús, donde se cruzaría con las Líneas 1 y 3, y con la Línea 5 en la Parada de Manuel Candela. Los promotores de tan magno proyecto piensan que esta línea, además de aumentar la cantidad de población que puede tener contacto con la Red de Metro, aumentará la conectividad entre las distintas estaciones de la Red de Metro Valencia. Otra interesante cuestión es saber si realmente es necesario cerrar la línea circular del Tranvía, para aumentar la conectividad o sobraría con fragmentos de la misma (por ejemplo de La Carrasca a Jesús). A B C D E F G H J I A B C D E F G H J I Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 176 de 190 © JPGS2011 17.6 Rutas de Distribución Una empresa de fabricación de cartones (cajas fundamentalmente) radicada en Alzira debe servir entre 4 y 7 camiones diarios a más de una veintena de clientes. Están interesados en una herramienta que permita definir la carga de los camiones teniendo en cuenta que estos tienen una limitación de capacidad de 33 paletas cada uno. PUEBLOS Lote de Paletas Alborache 6 Alcàcer 2 Algemesí 2 Almoines 12 Benifaió 4 Benigànim 6 Carcaixent 2 Carlet 4 Villanueva de Castellón 6 Chiva 6 Denia 6 L’Alcúdia de Carlet 6 L’Olleria 12 Llombai 4 Ontinyent 12 Silla 4 Sueca 12 Tavernes de la Valldigna 4 Xàtiva 12 Se asume que en cargar un camión se tarda alrededor de 45 minutos, la descarga en cada empresa cliente cuesta alrededor de 30 minutos de media. Se asume que ningún conductor debe dedicar más de 8 horas diarias a conducir ni más de 12 horas en total. Cada kilómetro cuesta 30 céntimos de Euro. Modelos y Métodos de Investigación de Operaciones Página 177 de 190 17.7 Fabricación de Zapatillas Una empresa fabricante de zapatillas deportivas, localizada en Picasent, estima la siguiente demanda (en miles de pares) para los próximos 6 meses, con un catálogo inicial a la venta de 3 modelos. Abril May o Juni o Juli o Agost o Septiemb re Modelo 1 100 200 150 150 200 150 Modelo 2 150 100 150 100 250 100 Modelo 3 150 150 250 150 150 150 Se admite un error en la previsión de demanda de cada modelo de 3 miles de pares. Los elementos que se utilizan en la producción de estos 3 modelos de zapatillas son los siguientes: Cordones (C) ; Cremallera (Cr) ; Suela (tipos: S1, S2, S3) , Refuerzos (tipos: R1, R2), Cuerpo (tipos CO1, CO2, CO3) y adornos (A1, A2, A3, A4) Como se puede observar, entre los diferentes modelos de zapatillas a producir se da la particularidad que comparten componentes entre un modelo y otro. Las suelas tienen un periodo de aprovisionamiento de 4 semanas. Los refuerzos y el cuerpo un periodo de aprovisionamiento de 2 semanas, los adornos de 1 semana, y las cremalleras de un plazo de 8 semanas. Se dispone en almacén de 8000 de estas cremalleras. Se dispone también en almacén de suficientes componentes para cubrir la demanda de los próximos dos meses, de los diferentes componentes. Los pedidos se lanzarán en miles de unidades, a excepción de las cremalleras que se lanzaran en lotes de cinco mil unidades. Los costes de producción de cada par se evalúan en 7 € si se producen en horas normales, y 9 € si se produce en horas extras. El número de horas normales disponibles por día son 8. El número de días laborables por mes es variable cada mes, dependiendo del calendario laboral de la localidad de Picassent. Cada mes se puede trabajar un máximo de 40 horas extra. Un grupo de 3 personas es M3 S3 CO3 C A4 A3 A2 R1 M2 S2 CO2 Cr A3 A1 R1 M1 S1 CO1 C A2 A1 R2 M3 S3 CO3 C A4 A3 A2 R1 M2 S2 CO2 Cr A3 A1 R1 M2 S2 CO2 Cr A3 A1 R1 M1 S1 CO1 C A2 A1 R2 M1 S1 CO1 C A2 A1 R2 Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 178 de 190 © JPGS2011 capaz de fabricar 15 pares de zapatillas por hora, si dispone de suficiente material. El coste de almacenar un par de una semana para otra es de 0’025 € por par. Se dispone de 200 pares en stock en estos momentos, de cada uno de los modelos. Así, se pretende establecer el modelo que permitiera definir el plan de trabajo para los próximos meses, asegurando el mínimo coste para la empresa. Al ingeniero se le ha planteado un compromiso con los trabajadores de utilizar cada dos meses al menos un 15% de la capacidad en horas extra actual, por lo que debería plantearse como programar también esa circunstancia. Además es habitual que en el mes de Agosto, no se trabaje la mitad del mes, y que los trabajadores de la empresa cojan los 15 días restantes durante los meses de Junio, Julio, Agosto o Septiembre dependiendo de la disponibilidad de la empresa. Durante las vacaciones de de verano se debe considerar la contratación de trabajadores para sustituir a los trabajadores que están todo el año. Los costes de producción de cada par se evalúan en 8€ en horas normales no pudiendo producir estos trabajadores en horas extras. El ritmo de producción de estos trabajadores es de 18 pares de zapatillas por hora. Se podrá contratar uno o dos grupos. Se plantean diferentes alternativas al definir el objetivo principal. Así, una de ellas podría ser el minimizar el máximo stock entre periodos. Otra, minimizar las diferencias de producción entre un mes y el siguiente, para cualquier mes, a través de equilibrado de la producción utilizando horas extras, minimizar el stock en almacenes... Modelos y Métodos de Investigación de Operaciones Página 179 de 190 17.8 Las Farmacias de Alcudia, Benimodo y Carlet Está empezando una nueva carrera de consultor free-lance y por tanto acepta cualquier tipo de trabajo. Le ha llegado un trabajo por vía de un amigo, el único modo de que entren trabajos. El trabajo no parece estar muy definido. Hola, Me ha dado tu dirección Moisés de la Fuente. Soy Marina Amorós, farmacéutica de Carlet y estoy integrada con las farmacias de mi pueblo y de otros 2 cercanos, para hacer las guardias. En total, somos 11 farmacias de tres pueblos cercanos: - 5 de Carlet - 5 de L´Alcudia - 1 de Benimodo Entre las 11 farmacias nos turnamos los turnos de guardia (noche) alternativamente de forma que “cada pueblo no esté más de 1 noche sin tener una farmacia abierta, excepto cuando toca Benimodo que no queda más remedio que sean 2 noches”. Tenemos tres turnos: 1. Días laborales 2. Sábados 3. Domingos y festivos Incluso en la última reunión que tuvimos este mes pasado se planteó incluso hacer otro turno (el cuarto ¡!) que incluyera el 24 dic (Nochebuena), el 31 de dic y el 5 de Enero. Muchos estamos hartos de tanto turno porque hay semanas que nos coinciden 2 o 3 guardias, sobre todo en puentes y preferimos un sólo turno cada 11 días (es lo más habitual entre los pueblos que nos rodean). Parte de nuestros compañeros dicen que no es equitativo que siempre hay alguno que le tocan más domingos que otro, etc. Mi pregunta es si sabes alguna fórmula matemática para hacerlo más equitativo. Puesto manos a la obra usted le envía el siguiente mensaje: Hola Marina, más que tener dudas de los turnos, lo que me gustaría saber son las fechas que se consideran festivos en cada una de las localidades, porque supongo que no serán iguales. Un turno especial de Navidad no creo que sea práctico, tardaríais 11 años en darle la vuelta. Mi propuesta es plantear un sistema que permita establecer una secuencia donde se establezcan tantas restricciones como se quieran (siempre que sea matemáticamente posible). Pero no tendréis un ciclo de 11 días sino más bien, un calendario anual (o semestral o bianual) que intenta equilibrar las cargas. Se me ocurre investigar un modo de establecer el calendario respetando restricciones de no más de 1 guardia en 6 o 7 días, no más de un festivo en 15 días… Te adjunto una tabla en excel que puedes completar con los festivos que faltan. Como hay once columnas todo consistiría en sortear cada columna a cada persona. PD: Por cierto, ¿qué ocurre cuando un sábado coincide con festivo?, ¿qué manda? Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 180 de 190 © JPGS2011 La respuesta, que obvia los datos de las festividades, es la siguiente Buenos días, Ante todo, muchísimas gracias por el interés. Respondiendo a tu pregunta, cuando un sábado coincide con un festivo manda siempre el festivo, por tanto no hacemos refuerzos de sábado (cada pueblo tiene todos los sábados una farmacia abierta hasta las 5). Gracias de nuevo. El trabajo consiste en: a) Definir de modo estructurado el problema b) Diseñar un Modelo matemático que lo resuelva. c) Implementar el modelo en MPL, para resolverlo. d) Diseñar una heurística, o conjunto de ellas, que resuelvan satisfactoriamente el problema. Modelos y Métodos de Investigación de Operaciones Página 181 de 190 17.9 Planificación Agregada en una Planta de Motores. Una empresa de fabricación y montaje de motores sirve motores y componentes de los mismos a plantas de fabricación de coches así como a empresas de distribución de repuestos. Ambos tipos de clientes están distribuidos por todo el mundo. Al ser los clientes distintos los modos de preparación del producto y embarque del mismo pueden variar entre clientes. No sólo venden producto final sino también semielaborado. Y también compran semielaborado. Asimismo diferentes clientes y diferentes proveedores tienen necesidades y calendarios variables. En un mercado tan competitivo como el del automóvil las actualizaciones de los productos son frecuentes. Además de que el número de variantes a producir tiende a crecer para adecuarse o superar a la competencia. El número de productos a fabricar es siempre limitado y conocido, aunque este conjunto varía. Pero varía de un modo planificado. Asimismo Esto implica pruebas de productos y nuevas versiones y también implica la desaparición planificada de productos. El proceso de fabricación de un motor tiene dos etapas: a) Fabricación y b) Montaje. En la Fabricación un elemento en bruto es mecanizado, y en el montaje diferentes elementos mecanizados se ensamblan en una línea de montaje. Un motor se compone de las denominadas 5C’s (Bloque, Bielas, Levas, Culatas, Cigueñales) y otros componentes. De cada tipo de componente hay un cierto número de variantes, algunas se fabrican en la planta objeto de estudio y otros no. La línea de Montaje de una fábrica de Motores es un sistema altamente automatizado, bastante poco flexible en cuanto a capacidad, y costoso de puesta en marcha y mantenimiento. Dentro de la escasa Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 182 de 190 © JPGS2011 flexibilidad reconocida a la línea existe la posibilidad de pararla o hacerla funcionar a diferentes velocidades con costes diferentes para cada una de las opciones. Aunque el proceso de fabricación es diferente lo mismo ocurre, con diferente dimensión, en las líneas de mecanizado de las conocidas como 5C’s. La empresa planifica en semanas y cada semana tiene una serie de días hábiles (5 por lo general) y de inhábiles (2 por lo general) pero la empresa podría decidir parar un día la producción pues ahorraría costes de energía, o utilizar uno de los días inhábiles. La empresa utiliza en ocasiones las horas extras pero estas no se planifican puesto que se utilizan para responder a problemas puntuales. En este sentido el funcionamiento de la planta es atípico tanto al nivel de la gestión de la producción como en lo referente a la consideración del factor humano. Los modos de gestión de la capacidad son dos: Incrementar o reducir la velocidad de la línea (incorporando nuevos recursos a la misma), y parar/utilizar la línea en días laborales/días festivos. En efecto, a causa del nivel de automatización de la línea y de los costes que implica el hacer funcionar la maquinaria, se autoriza el paro total de la planta cuando sea necesario, ya que se sabe que el coste de mano de obra es muy bajo en comparación con el de la mantener en funcionamiento la maquinaria. En este caso, los operarios van a formación o se dedican a tareas de mantenimiento y se ahorran los gastos de hacer funcionar la línea. Así pues, consideraremos que los directivos pueden decidir que hay que trabajar unos días festivos por cualquier razón. Además si la línea no tiene capacidad de cumplir la demanda durante la semana normal, es decir entre el lunes y el viernes, el modelo deberá ser capaz de proponer la cantidad de días extras que se necesitan para evitar diferir (dentro de los límites impuestos por la empresa durante cada semana). Los inventarios no tienen un coste de mantenimiento conocido, aunque este es elevado dadas las características de los productos. Para mantener bajo control los inventarios la empresa prefiere establecer un stock mínimo y máximo (medido en días de stock) para el final del horizonte de planificación. Y dicho horizonte de planificación se situa siempre al final de un periodo de vacaciones relativamente prolongado (verano, pascua, navidad) de tal modo que no se tendrá más stock del deseado en ningún momento sin necesidad de asignarle un coste. Modelos y Métodos de Investigación de Operaciones Página 183 de 190 17.10 REFRESCOS EN FONT DEL RAFOL Una empresa que fabrica refrescos carbonatados tiene una fábrica con capacidad de envasar 70 hectólitros a la hora. La fábrica puede trabajar a 1,2,3 y 4 turnos de 80 horas semanales cada uno (deduciendo la parte proporcional de festivos no fin de semana). Es decir la capacidad productiva de una determinada semana se calcula según la siguiente fórmula (5 ) 40· 5 f K ÷ Siendo 40 el número de horas laborables por semana en un turno completo, K la capacidad de envasado medida en hectólitros por hora, y f el número de festivos en una semana (considerando sólo los festivos que reducen el número de días laborables). Están en las últimas semanas del año, y el departamento de finanzas se ha puesto a trabajar, solicitando presupuestos. Usted debe anticipar el plan de producción para poder aportar información al departamento de Recursos Humanos y al de Logística. Ventas le anticipa la demanda en hectólitros en forma de 4 escenarios posibles, con la demanda prevista en centenares hectólitros por semana (tabla 1). El departamento de RRHH le ha pedido un presupuesto para su gasto del año que viene. Un turno tiene un coste semanal de 6000 euros. Cada cambio de configuración del número de turnos, por ejemplo pasar en una semana de 2 turnos a 3 turnos, tiene un coste de 1000 euros por turno cambiado. El departamento de recursos humanos tiene cerrado ya el programa de trabajo de las primeras 5 semanas del año y debe cerrar las de la semana de 6 a 10. 03/ 01/ 2011 10/ 01/ 2011 17/ 01/ 2011 24/ 01/ 2011 31/ 01/ 2011 Tur nos 1 1 1 2 2 El departamento financiero le ha pedido un presupuesto para su gasto en almacenes subcontratados este año. El departamento de logística tiene un almacén propio con una capacidad de 8000 hectólitros. Si los productos se guardan en el almacén propio el coste de almacenar cada hectólitro se evalúa en alrededor de 0,25 € por semana. Dispone también de almacenes a los que puede subcontratar capacidad si los productos se guardan en almacén ajeno el coste de almacenar (que incluye el coste de transportar) se eleva a 1 € por semana. Al principio de año calcula que tendrá 5000 hectólitros de stock. Se le pide que : a) Di señe un model o mat emát i co par a est abl ecer el pr ogr ama ópt i mo t eni endo en cuent a l os 4 escenar i os. b) Def i na l os cost es en r ecur sos humanos y en al macenes en l os que i ncur r i r á. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 184 de 190 © JPGS2011 17.11 Central Pendiente Dominicana. Central Pendiente Dominicana CPD, es una floreciente cadena de supermercados. Actualmente cuenta con 14 tiendas de diferentes tamaños, ubicadas geográficamente en los puntos que se reflejan en la tabla 1. El consumo de cada una de las tiendas se estima en peso. Y la demanda debe ser satisfecha. Tiendas x y Demanda (€) Tienda1 10 40 1000 Tienda2 30 50 2000 Tienda3 20 50 1000 Tienda4 40 10 500 Tienda5 50 30 600 Tienda6 50 20 2000 Tienda7 40 40 700 Tienda8 50 50 800 Tienda9 50 30 1200 TiendaA 60 40 900 TiendaB 100 20 700 TiendaC 12 90 600 TiendaD 90 90 1000 Tabla 1. Ubicación y Demanda de cada Tienda CPD cuenta con 4 almacenes, ubicados en los puntos de la geografía que se indican en la tabla 2. Dichos almacenes están mayormente situados cerca de sus mayores puntos de consumo. Actualmente está considerando la posibilidad de abrir un nuevo centro logístico, más grande y alejado. Los datos básicos se representan en la siguiente tabla. Almacenes X y Capacidad(€) C Fijo C Variable por € Almacen1 10 20 5000 1000 1 Almacen2 14 30 5000 1000 1 Almacen3 23 60 5000 1000 1 Almacen4 50 50 5000 1000 1 ALMACEN5 200 200 20000 2000 0,1 Tabla 2. Ubicación, Capacidad y Coste de Cada almacén Usted está analizando la cadena de suministro de productos perecederos, y CPD cuenta con tres fábricas de envasado.Sus características están en la tabla 3. Fabricas Capacidad(€) C Fijo C Variable por € Modelos y Métodos de Investigación de Operaciones Página 185 de 190 Fábrica1 10 10 10000 500 5 Fábrica2 30 50 10000 700 2 Fábrica3 40 40 10000 1000 1 Tabla 3. Ubicación, Capacidad y Coste de Cada Fábrica Los centros de aprovisionamiento de los productos que vende están fundamentalmente en dos puntos de la geografía que se indican en la tabla 4. Abastecimiento X Y Proveedor1 0 0 Proveedor2 70 20 Tabla 3. Ubicación del centro de gravedad de los puntos de abastecimiento Los costes de transporte se calculan en pesos por kilómetro recorrido y m3 transportado. Los costes de almacenamiento y de procesamiento del producto se calculan teniendo en cuenta un coste fijo (relacionado con poner en marcha la instalación) y un coste variable medido en pesos por m3 movido. ¿para qué densidad de valor (€/m3) del producto es rentable irse al almacén grande único y alejado? Construya un modelo matemático coste del km 1 €/m3transportado/km coste de almacenaje 1 €/m3 almacenado al día Valor del m3 10 €/m3 coste de inventario 0,05 €/€ almacenado al día Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 186 de 190 © JPGS2011 ETAPA 1: Una empresa tiene 3 fábricas y 4 almacenes. La capacidad de cada fábrica es {10000;4000;4000} La demanda a servir a cada almacén es {2000;2000;2000;2000} Los costes de transportar desde cada fábrica a cada almacen son: coste transporte Almacen1 Almacen2 Almacen3 Almacen4 Fabrica 1 1 2 3 4 Fabrica 2 1 3 2 3 Fabrica 3 2 3 4 2 ¿Quién debe servir a quien para tener el mínimo coste? Utilice el solver para resolver. ¿Es mejorable la solución que le entrega? ¿Cómo afectan los costes de transporte a los costes totales? Modelos y Métodos de Investigación de Operaciones Página 187 de 190 ETAPA 2: Sobre el problema anterior. Cada fábrica tiene que pagar un coste fijo por ser utilizada. El coste de cada fábrica son {800;1000;1200} Utilice el solver para resolver. ¿Por qué cree que deben existir esos costes fijos? ETAPA 3: Sobre el problema anterior. Cada fábrica tiene que pagar un coste variable por cada unidad que utiliza. El coste unitario de producir en cada fábrica son {3;2;1} Utilice el solver para resolver. ¿Por qué cree que deben existir esos costes variables? ¿Cree que deben ser constantes o dependen según la cantidad? Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 188 de 190 © JPGS2011 ETAPA 4 Añadimos dos posibles proveedores, con sus costes de aprovisionar a cada fábrica respectivamente. Las fábricas sólo pueden fabricar si tienen materia prima suficiente. Grafíe como evolucionaría la red completa a medida que va subiendo el valor de euros por metro cúbico transportado. Modelos y Métodos de Investigación de Operaciones Página 189 de 190 18 BIBLIOGRAFÍA Bautista, J., Companys, R., Corominas, A. Introducción al BDP. 1992. Binmore, K. Teoría de Juegos. McGraw-Hill.1994 Binmore, K., 1994. Teoría de Juegos. McGraw-Hill. Bramel, J. D. Simchi-Levy. The Logic of Logistics. Springer. 1997 Chase, R.B. N.J. Aquilano, F.R. Jacobs. Administración de producción y operaciones. Irwin-McGraw-Hill. 2000 Chrétienne, P. Coffman, E.G., J.K. Lenstra, Z. Liu. Scheduling Theory and its Applications. Wiley and Sons. 1997 Companys, R., 2002. Programacion dinamica. CPDA-ETSEIB. Companys, R., 2003. Teoria de Grafs. cpda-etseib. Conway, R.W., W.L. Maxwell, L.W. Miller. Theory of Scheduling. Addison-Wesley. 1967 Cuatrecasas, Ll.. Organización de la Producción y Dirección de Operaciones. Dembo, R.S.. Scenario Optimization. Annals of Operations Research 30, 63-80. 1990 Denardo, E.V., 1982. Dynamic Programming. Models and Applications. Prentice Hall. Díaz, A., F. Glover, H. Ghaziri, J.L. González, M. Laguna, P. Moscato, F.T. Optimización Heurística y Redes Neuronales. 1996 Diaz, A., Glover, F., Ghaziri, H., Gonzales, J.L., Laguna, M., Moscato, F.T., 1996. Optimización Heurística y Redes Neuronales. McGriwHall. Ferreira, A. M. Morvan. Models for parallel algorithm designs: an introduction. Parallel computing in Optimization. Kluwer Academic Publishers, 1997. Ferreira, P, A.. Pardalos. Solving Combinatorial Problems in Parallel. Springer. 1996 Gendreau, M., 2003. An introduction to tabu search. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 37-54. Glover, F., Laguna, M., Marti, R., 2003. Scatter Search and Path relinking: advances and applications. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 1-35. Gross, D., Harris, C.M., 1998. Fundamentals of Queueing Theory. John Wiley and Sons. Gross, D., Shortle, J.F., Thomson, J.M., Harris, C.M., 2008. Fundamentals of Queueing Theory. Wiley. Hansen, P., Mladenovic, N., 2003. Variable Neighborhood Search. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 145-184. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 190 de 190 © JPGS2011 Henderson, D., Jacobson, S.H., Jonhson, A., 2003. The theory and practice of simulated annealing. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 287-319. Johnson, L.A., D.C. Montgomery. Operations Research in Production Planning, Scheduling and Inventory Control. John Wiley and Sons. 1974 Kauffman, A., 1972. Métodos y Modelos de la Investigación de Operaciones. CECSA. Kauffman, S., 2003. Investigaciones. Metatemas. Kauffmann A., Henry-Labordere, A.. Métodos y Modelos de la Investigación de Operaciones Tomo III. CECSA. 1976 Kauffmann, A.. Métodos y Modelos de la Investigación de Operaciones Tomo II. CECSA. 1972 Lourenço, H.R., Martin, O.C., Stützle, T., 2003. Iterated Local Search. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 321-353. Marti, R., 2003. Multistart Mehods. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 355-368. Osman, I.H., 1995. An Introduction to Metahuristics. In: Lawrence, M., Wilsdon, C. (Eds.), Operational Research Tutorial Papers. Stockton Press, Hampshire (UK), pp. 92-122. Perez, J., Mladenovic, N., Batista, B., Amo, I., 2006. Variable Neighbourhood Search. In: Alba, E., Mart+¡, R. (Eds.), Metaheuristic Procedures for Training Neutral Networks Springer US, pp. 71-86. Pidd, M., 1996. Tools for thinking. Wiley. Pinedo, M., Chao X.. Operations Scheduling. McGraw-Hill. 1999 Raiffa, J.F. Decision Analysis. Addison Wesley. 1970 Resende, M.G., Ribeiro, C.C., 2003. Greedy Randomized Adaptive Search Procedures. In: Glover, F., Kochenberger, G.A. (Eds.), Handbook of metaheuristics Kluwer International Series, pp. 219-249. Shapiro, J.F. Modelling the Supply Chain. Duxbury. 2001 White, D.J. Teoría de la Decisión. Alianza Universidad. 1972 Williams, H.P. Model Building in Mathematical Programming. Wiley. 1999 1 1.1 1.2 MODELOS .............................................................................................................................. 12 ¿Qué es un Modelo? ............................................................................................................. 12 ¿Para qué sirve un modelo? ................................................................................................. 13 Aprender / Entender. ........................................................................................................ 13 Implementar en un ordenador. .......................................................................................... 14 Toma de decisiones. ......................................................................................................... 14 1.2.1 1.2.2 1.2.3 1.3 1.4 El Problema, el Cliente y el Concepto de Solución. ............................................................. 14 Ciclo de Vida de la construcción de Modelos ...................................................................... 15 Definir el Problema ........................................................................................................... 15 Modelar y Construir la Solución ........................................................................................ 15 Utilizar la Solución. ........................................................................................................... 16 1.4.1 1.4.2 1.4.3 1.5 Generación de Soluciones Informáticas para la resolución de Problemas que se abordan mediante métodos matemático........................................................................................................... 16 1.6 Algunos principios para tener éxito en el modelado ........................................................... 17 Los Modelos han de ser simples, su análisis debe ser complejo........................................ 17 Ir paso a paso. .................................................................................................................. 17 Usar al máximo metáforas, analogías y similitudes ........................................................... 18 Los datos disponibles no deben conformar el modelo. ...................................................... 18 Principio Subyacente: Modelar es Explorar ....................................................................... 19 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 2 2.1 TIPOS DE MODELOS. LOS MODELOS DE PROGRAMACIÓN MATEMÁTICA. .................... 20 Clasificación de modelos según el efecto de su resolución ............................................... 20 Modelos Normativos ......................................................................................................... 20 Modelos Descriptivos. ....................................................................................................... 20 2.1.1 2.1.2 2.2 2.3 Modelos Matemáticos............................................................................................................ 21 Modelos de Programación Matemática ................................................................................ 21 ¿Por qué se llama Programación Matemática? ................................................................. 22 Una clasificación de Modelos de Programación Matemática. ............................................ 23 Los Componentes de un Modelo Matemático.................................................................... 25 2.3.1 2.3.2 2.3.3 2.4 2.5 Modelos de Optimización Combinatoria .............................................................................. 26 Otros Modos de Modelar. Otros Modos de Pensar. ............................................................. 27 ............5............................................................................................4................................ 37 Situaciones que pueden modelarse mediante Programación Lineal........1 4......3................................................................2....................... 37 La importancia de la Linealidad................................5...........................................................2 4.6.......... 34 Modelo Resoluble .................... .....................................................................................................................3 2........................ 35 Facilidad para entender el modelo ..........................................5..................Usando las matemáticas para pensar sobre Dirección de Operaciones............2 4..........5..................5 2............... 34 3....................... 45 Análisis de Sensibilidad ... 43 El Modelo Dual ...............................6 Análisis de resultados ..... 30 Teoría de Juegos.1 4...........................2 3................................................................. 31 Implementación de un Modelo de Programación Matemática (Validación) .. 40 La relación de las restricciones con la realidad.................................... 38 4........................................................................................1 3...............................................................................................................................................................................................................................6................................. 32 Modelo de sintaxis errónea.......... ....................... 29 Simulación ................................................. ................................................................................................................5...................6 Teoría de Grafos . 43 Interpretaciones económicas ......................................................... 35 Facilidad para detectar errores en el modelo.................1 3................4 3.................................................................................................. 37 Qué es la Programación Lineal? ................5.............. 2.....................................................................2......................3 4...........................3 4 4.2 3..........5....2 PROGRAMACIÓN MATEMÁTICA ................................. con las otras restricciones y con el propio 4.....................1 3...................................1 2..............................5 Las restricciones .................................................................................................................................... 31 La construcción de un Modelo de Programación Matemática....................3 3.................................................5..........3 Características de un buen modelo de Programación Matemática........................ 37 Definición de Objetivos ...... ......... ......................3...................2............................. 29 Dinámica de Sistemas ............................................................................... 28 Teoría de Colas ................ 46 4........................ 40 Tipos básicos de Restricciones ....................2 2..... 35 Facilidad para encontrar la solución ............... 35 3.... 32 Modelo incompatible ....... 40 4...................................................................................................................................................3 Página 4 de 190 © JPGS2011 ..6................1 4.............................................. 27 Programación Dinámica..........................................................................1 4.....3...........4 2...................................... 30 3 3.........................2 modo de resolver..............2.................... 38 Programación Lineal y Programación Multiobjetivo .............. 33 Modelos no acotados ......4 MODELOS DE PROGRAMACIÓN LINEAL.... ......................6........................................................2.....................2. 51 Funciones no continuas........... 60 Problemas de combinatoria ....................................................................................2............................................................................................................................2...........2....1 6....... 60 Problemas No-lineales ............................................................. 53 a x j j j   1   a j x j  b : ........ 54 a x j j j 5......1 6..3 5.......................................... 48 Objetivos no Lineales fácilmente linealizables .... ................4 5................5 5......................................Modelos y Métodos de Investigación de Operaciones 4..................................................................................................................................... 46 5 5............. 50 Objetivos Maximizar el Máximo (o Minimizar el Mínimo)..................3 5.......................... 60 Problemas con condiciones lógicas ............... 52 j a x j j j  b    1 :..........................................................2........................................................................4 6......................................................2 MODELOS DE PROGRAMACIÓN ENTERA .. ..... 52  b    1 :.......................2 El uso de variables discretas para representar relaciones condicionales.....................................................1 5.........3...............3 Otras condiciones aplicadas a Modelos de Programación Lineal ....................1 5.........................1........................................ .............. 57 6 6................................................... 52 Relación Lógica: Relación Lógica Relación Lógica Relación Lógica Relación Lógica Relación Lógica 5.... 54  b    1 :...... ......... 51 5.......2................. 60 Problemas con inputs (u outputs) discretos .............................................................. 61 6. 60 Diferentes áreas de aplicación de la Programación Entera.....................2......2 5....2 5...4 Más Relaciones Lógicas y su representación... 61 Restricciones disyuntivas.................................................................................................2.........................1 Página 5 de 190 .. 53 j a x j j j  b    1 :........................................1......................... 50 Objetivos de Ratio .................................................................................................................................................1 LINEALIZANDO LO NO LINEAL .................................................................. 60 Introducción.......... 61 6.............................................2 6.........7   1   a j x j  b ....................... 54 Conjuntos especiales de variables ordenadas ............................................2............................. 49 Objetivo “Minimizar el Máximo” o “Maximizar el Mínimo” ............. 49 Objetivo “Minimizar un valor absoluto”...3 5.............2...........................4 5.1........................4 Modelos Estables ...........................6 5........................3 6......................1........ ..........1 6............ 69 6..........3.................... 67 Simplificación de un modelo de Programación Entera .............................................4............................ 70 Programación Separable...............2 7........ 76 Página 6 de 190 © JPGS2011 ...........6........1 9.....................................................................2 6...........................................6.....................................................................................................................................................1 7...................................................................4............................................................................................... 74 9 9.........................................................2 6............................................ 73 8 8............................................ 76 Resolución de problemas de programación matemática mediante el uso de paquetes ya disponibles ............................................3 6.................... 62 Limitar el número de variables en una solución ..4............. 70 Óptimos locales y globales .........................4 6...................... 62 Extensiones discretas de capacidad .....76 Introducción....................4.4 Regiones No-Convexas ......................2 PROCEDIMIENTOS DE RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN MATEMÁTICA............................................... 62 Tipos Especiales de Modelos de Programación Entera ....6...................................... 66 6.............1 6.................................................. 74 Introducción......................................... 71 Cómo convertir un modelo no separable en un modelo separable .....................3.......................................4..............2.......................................................... 76 9.. 69 7 7............ 67 Simplificar una restricción entera con otra restricción ...........................................................................................................3 PROGRAMACIÓN NO LINEAL .............................................................................3 6........... 68 Restricciones discontinuas.................5 6........................................................................................................ 64 El Problema del viajante de comercio ............................................................................. 6....4 6.......................................................3 6................................................................................... 63 Problemas de cubrimiento ....Usando las matemáticas para pensar sobre Dirección de Operaciones............6 Buenas y malas formulaciones de un modelo de PE.............................5 6. 74 Formulación de Problema Estocástico.3.................. 67 Más Restricciones y Más Ajustadas .......................... 62 Decisiones Secuencialmente Dependientes....................................3..................5 6................1 8........................................................ 63 El problema de la mochila ..2 6............................................ 65 El problema de asignación cuadrática .7 Información económica y sensibilidad en los modelos de PE ....2 PROGRAMACIÓN ESTOCÁSTICA ................................................ 63 Problemas de empaquetado .................................................................................1 Algoritmos y paquetes ...................................................... ...1 9...................2 Página 7 de 190 ........................................1 11......... ........... 83 Ramificación y acotación ................ 80 El uso de paquetes para la resolución de modelos de Programación Lineal ..................................... .................. Permutaciones............................................................... 88 Complejidad en la Optimización Combinatoria..............................4 Algoritmos básicos................... 86 Métodos del plano cortante ....................................5..............................3 9................................. 92 Según su aplicación.............. ................. 95 Procedimientos de Resolución Aleatorios....... 90 P y NP ...................................................1 10......................3 10............................................................... LA BÚSQUEDA RÁPIDA DE SOLUCIONES...............................2. 82 9.................... Combinaciones.... .......3 El uso de la Hoja de Cálculo Excel.................1 11............ 92 Según su clasificación formal............................1 10..........................2........... 87 10 10.................................................................................................................................. 82 El algoritmo Simplex ........3 10.......................3 9...... 80 Sistemas de Apoyo en la Decisión y Sistemas Expertos ...............................................................................4..................... 96 ¿Para qué sirven? ...........4.................................... ............................ 95 Introducción................................................................................................. 92 Problemas de Optimización Combinatoria ......................2.............4 Procedimientos de Resolución de Programación Lineal................................................................4..............................................2 OPTIMIZACIÓN COMBINATORIA.......................................... 87 9.......................6 Procedimientos de Resolución en Programación 0-1..... INTRODUCCIÓN ...........................................2 9............... 88 Introducción ......... 94 11 11................................. 83 9.................. 94 10...5.................2...............2..3 10........2 9....... 90 Variaciones (con y sin) Repetición................. 94 Según las soluciones que se buscan......................................................Modelos y Métodos de Investigación de Operaciones 9................. 90 Optimización Combinatoria................................... 83 Enumeración implícita.............................................................................. 78 El uso de Lenguajes de Modelado ................................................... ...................... ..........3..................................................2 10.......1 9.............................................5 Evaluación de Procedimientos...........................................2 9...5 Procedimientos de Resolución en Programación Lineal Entera .........2........................................ 91 10.......................................2 OPTIMIZACIÓN COMBINATORIA............................. ............................4...................................2 10.................................... 96 ¿Pueden funcionar? ................................................ 82 Los Métodos del Punto Interior ........................4.1 10...........5.2 9......................................................... 96 11........................................2...................... .....2 14...........3 Un procedimiento de generación aleatoria de soluciones............ 107 Descenso Rápido. 104 Generación de nodos (explosión) ........4 14 14.1..............................3...............................................1 PROCEDIMIENTOS DE MEJORA LOCAL ....................................................3................................... 98 Procedimientos Constructivos .................................2.........................................................4 12............................................... 107 Mejora Iterativa Aleatorizada....1 12......................2 Metaheurísticas de Búsqueda de Entornos ....................2 12..1 PROCEDIMIENTOS METAHEURÍSTICOS ............3 13............................ 109 Scatter Search y Algoritmos Meméticos .......................1.......................2.. 11....... 98 Concepto de Heurística ...................... Procedimiento....5 12..............1 11........................3 13.......... 99 11......... Procedimiento......................................................6 12.........................................................1 12................ ..........................2..................... 107 13.......................................3........2.................................3...............1 13.........................Usando las matemáticas para pensar sobre Dirección de Operaciones....................................................................3.......3................... 106 Intercambio de 2 elementos ....................................1........................ 101 Algoritmo de Enumeración Completa .. Procedimiento ......................................................................................................................................................................................................................................................... ................................1......................................................................1.......... 106 Vecindario ............ ... 106 Insertar .......................................... ........102 Conceptos previos: Nodo ..3...............3 12............. 115 © JPGS2011 Página 8 de 190 .....................3.................... 108 Algoritmos Genéticos ................................................................................................................4 Otras técnicas de Enumeración basadas en la exploración por nodos...........2 13...........1 13................... ...3 11..................................................... 105 13 13............ 103 Funciones de evaluación .................... 101 Estructura de un algoritmo de exploración completa basado en exploración de nodos................................ 108 Procedimientos de población ....................................... 98 Algoritmos Heurísticos......................................................................... 107 Mejora Iterativa Simple.. 101 Concepto de Algoritmo Enumerativo.. 104 12................................................................................... 106 13......................... 104 Eliminación (o cierre) de Nodos...............2 13.....................................................3 ALGORITMOS ENUMERATIVOS ........2 12 12...................................................................... 106 2-opt ...............................................................................................2 Algoritmos de Mejora basados en Vecindario ............2 12..1 14..................... 107 Nomenclatura.........................2............................. 102 Estructura general de un procedimiento de exploración completa basado en nodos.................... 114 14...................... 103 Selección del Nodo a explotar ....................... ....................................................... 116 Metaheurísticas basadas en el reconocimiento de patrones................12 15........................................................................................................... 135 Operación Brisca ....................... 115 ILS y VNS .................13 15........................... ...........................2 15 15.....................................................1 ALGUNOS EJERCICIOS DE OPTIMIZACIÓN COMBINATORIA ............ ..................................................................................................................................2 15...... 117 14..........2 Página 9 de 190 .....................................4 15....................... ..............................4 14............................... 120 Plan de Producción ................ 124 Plan de Producción de Zapatillas ...................................3 GRASP ................................................................................................... 142 16 16....2 14...................................................................2.........................................3..... 119 Problema de Corte .............. 116 Tabu search.................................................................... 131 Gestión de Stocks ..................9 15............................................................................. 119 Centralita Telefónica ................ ............................................................................................................................................ 135 Jorge y Nuria...............................2..................... 120 Localización ..........................................................................................................................................3.........2............ .................... 120 Varios Turnos ......................................1............................................................................................................. 146 Definición de la estructura de la solución.......................2.............................................. 130 Problema de Distribución ...................1 14....................................3 14...........................14 ALGUNOS EJERCICIOS DE PROGRAMACION MATEMÁTICA .........5 15.... 146 16....................................................................11 15........ 117 Redes Neuronales ................................. 116 Recocido Simulado ...................... 119 ¿Cuánto gana la Empresa? ........... 123 Vinos “DON PEPÓN” ...........1 15..............................................................1.........................................................................................Modelos y Métodos de Investigación de Operaciones 14..................7 15................................................ 132 Equilibrado de Líneas............................................................................8 15. 117 Algoritmo de Colonia de Hormigas .................6 15............................................................................................................................................1 14.........................................3 15.......10 15..... 146 Descripción del Problema....1 16............... 139 Carga de Aviones............................. 146 Problema del FlowShop de 3 máquinas..................... ....1....... 146 Un procedimiento heurístico ...... 146 Un procedimiento enumerativo de resolución...................................... ............ 147 Un procedimiento de mejora local ........................................................................... 151 Descripción del Problema.................................................... 150 Un algoritmo genético ........................................................................................7 16....................................1.................................................. 167 Asignación de Fechas y Aulas para Exámenes.... 151 Definición de la estructura de la solución..4 16......................................... 149 Un procedimiento de generación aleatoria de soluciones........................................ .......................................7 16........................ ................................................ 148 Problema del viajante de comercio.............................................8 16...... 148 Descripción del Problema. ..................................... 151 Definición del modo de evaluar la solución.................1 17......8 16...............................................4 16................. 169 Página 10 de 190 © JPGS2011 ..3...3 16....................................................... .... .................2................ 152 Un procedimiento de mejora local......................3...............................1...............3 16................. 150 16............ 16.......................2.....................................................2..........4 16. 153 16........5 16................................3..................................................................................7 Corte de Piezas rectangulares.......Usando las matemáticas para pensar sobre Dirección de Operaciones............................................................5 16......................................................................6 16................................................. 147 Un algoritmo genético ..8 16..1........3....2 Definición del modo de evaluar la solución........2...............1......................................3............................... 153 Un algoritmo genético ....................................3.. 152 Un procedimiento heurístico .........................................3 Problema de Secuenciación JIT .......1 16.... 149 Un procedimiento enumerativo de resolución.....................................................................................................................................2 16....... ....................3 16... 146 Un procedimiento de generación aleatoria de soluciones..2.............................................3..................6 16...........................3 CASOS ..2.............. 167 Sistema Eléctrico .......................................................................2............... 154 Quinielas..................................4 16.......... .................7 16......... 149 Un procedimiento heurístico ...............3.............................1................................................................ ............................................5 16...................... 149 Definición del modo de evaluar la solución.............. 148 Definición de la estructura de la solución.......2 16......................... 160 Secuenciando en la Línea de Montaje.........................................................1 16......6 16......................................................... 162 17 17........................................................... 151 Un procedimiento enumerativo de resolución...............5 16..........................................................................................2................................. 151 Un procedimiento de generación aleatoria de soluciones.. ........ 149 Un procedimiento de mejora local ................................................................. 167 La Ruta de Llanes ........................ 156 SUDOKU .............2 17..................................... .....................6 16............. ............................................. 183 Central Pendiente Dominicana........................................................................................... 177 Las Farmacias de Alcudia.................................................. 181 REFRESCOS EN FONT DEL RAFOL ...............................9 17................. 172 Red de Metro de Valencia ... Benimodo y Carlet .4 17.......................................................................................8 17.........................11 Optimización en la Refinería............................................5 17.......... 184 18 BIBLIOGRAFÍA......10 17....................... 175 Rutas de Distribución ............................... 189 Página 11 de 190 ............................ 179 Planificación Agregada en una Planta de Motores.......6 17............................... ..............................................................................................................................................................................7 17............................................Modelos y Métodos de Investigación de Operaciones 17.......... 176 Fabricación de Zapatillas ..................................... Son su esfuerzo y son su resultado. pues siempre habrá matices que podrían haber sido representados de otra manera. En este caso la realidad representada se limita a ser la que quiere ver. Los modelos son externos. al construir modelos. manejar controlar o cambiar el que dirige el modelo. tras uno (o varios) intentos de modelado. cambiar. al representar externa y explícitamente parte de la realidad. las hipótesis y las intuiciones. Los modelos son representaciones (no son la realidad).1 MODELOS ¿Qué es un Modelo? Se atribuye a Ackoff una de las definiciones más simples de modelo: “Un modelo es una representación de la realidad” Esta definición es llamativa por su simplicidad pero no aclara el porqué de los modelos. permiten fundamentalmente entender. Es uno de los caminos más adecuados para que el modelo no se pueda utilizar. Pidd (1996) propone la siguiente definición mucho más completa: “Un modelo es una representación explícita y externa de parte de la realidad como la ven las personas que desean usar el modelo para entender. Entonces el modelador es otro. 1 1. Así el hombre crea modelos y tergiversa la realidad hasta que esta se adapta. los pensamientos.Usando las matemáticas para pensar sobre Dirección de Operaciones. en un proceso de metonimia o sinécdoque. los datos. En muchas ocasiones una empresa solicita un modelo a un consultor externo para poderlo utilizar internamente. Los modelos. Los modelos los realizan los modeladores. Y deben ser modelos explícitamente no se pretende hacer creer que los modelos son la realidad. Afortunadamente la realidad es siempre más compleja que cualquier modelo por sofisticado que este sea. Los modelos son explícitos se construyen manejan y modifican como tales. Si a un pintor le dijeran el color con el que ha de pintar una puesta de sol. gestionar y controlar dicha parte de la realidad” De esta definición se pueden extraer muchas reflexiones interesantes sobre los Modelos y su uso en Investigación de Operaciones. puesto que el mejor entendimiento del problema provoca cambios radicales en la percepción de la realidad. En ocasiones este esfuerzo es más que suficiente para reconocer que no hay tal modelo sino un conjunto de prejuicios. El modelador discrimina que aspectos son relevantes y cuales no. Página 12 de 190 © JPGS2011 . cambiar de herramienta de modelado. Una etapa bastante habitual en el ciclo de vida de un modelo exige. En muchas ocasiones. no sería su puesta de sol sino la del observador impertinente. una teoría mental no es modelo hasta que no tiene una representación externa respecto del modelador. En esa presentación externa radica una de las grandes ventajas de los modelos: ponen negro sobre blanco. el modelador ha de atender comentarios que le obligan a incorporar este u otro aspecto de la realidad. Desgraciadamente el ser humano tiende a confundir el modelo con la realidad. en función del objetivo que pretende alcanzar. Los modelos representan parte de la realidad. aplicación de los modelos. 1. permitirá asesorar sobre la oportunidad de cambios en la realidad modelada.1 Aprender / Entender Implementar en un ordenador Tomar decisiones Aprender / Entender. Asimismo es común que la generación de modelo haga aparecer datos “reales y contradictorios” entre diferentes elementos de la realidad. pero no percibida. La gestión financiera de una empresa es uno de los modos más extendidos de uso de un modelo (la contabilidad) sin una percepción clara del modelo utilizado. los objetivos perseguidos inicialmente se hayan alcanzado sin hacer ningún tipo de experimento. Incluso la implementación informática es en ocasiones inadecuada porque no se conocía suficientemente bien la realidad (o lo que es peor.2. Por último el modelo. por ejemplo. Una vez construido el modelo. Dichos cambios serán más adecuados cuantos más aspectos de la realidad se hayan podido modelar. el modelo). el caso de los “simuladores de vuelo” utilizados para el entrenamiento de los futuros pilotos. que una vez finalizado el modelo. En primer lugar hay que destacar que la experiencia demuestra que el principal beneficio en la generación de un modelo es el entendimiento que el modelador adquiere del comportamiento de la realidad. Es. Además el modelo. se puede utilizar su ejecución para conocer como el sistema actúa y reacciona.Modelos y Métodos de Investigación de Operaciones La inteligencia de la realidad a través del modelo.2 ¿Para qué sirve un modelo? En atención a lo anterior se pueden definir tres ámbitos de utilidad de los modelos en la Investigación de Operaciones:    1. De tal modo que el responsable del error pueda reconocer sus equivocaciones sin que nadie tenga que “decírselo a la cara” (lo dice el ordenador) Página 13 de 190 . como representación externa y explícita. “Modelar como proceso puede tener más valor que el modelo en sí mismo” Es habitual que para desarrollar un modelo se tenga que acceder a información a la que nunca se le habría prestado atención. Pero también el uso de las técnicas MRP en la gestión de materiales responden a la implementación informática de modelos en función de los cuales se toman decisiones. puede permitirnos conocer errores y fundamentalmente mostrarlos. al anticipar resultados permite establecer referencias en función de las cuales medir o controlar el rendimiento de un sistema. Puede ocurrir. La gestión de la realidad a través de los modelos es una herramienta de continua. y de hecho ocurre con frecuencia. los gestores de ésta podrán probar las ventajas de sus opiniones sobre el modelo.2 Implementar en un ordenador. 1. El cliente tiene una “nebulosa” sobre un problema que nosotros ayudamos a precipitar con la construcción del problema. 1. Del mismo modo la utilidad de los modelos de Programación de Producción viene justificada. Si se desea gestionar la información que genera una empresa. La automatización de procesos exige el modelado previo. y de este modo elegir la que más se ajuste a la solución.Usando las matemáticas para pensar sobre Dirección de Operaciones. Si el modelo representa la realidad. y sólo ésta última puede ayudar a resolver el problema. dichos datos son analizables de tal modo que generan unos datos conocidos como variables de salida. dentro de este epígrafe. mayor será la cantidad de empresas a las que se las podrá aplicar el mismo software.2. Esos datos por lo general son inútiles salvo que se transformen en información. En general el cliente no conoce suficientemente bien su problema. podemos destacar la utilidad de los modelos como base de discusión. o implementar un sistema de gestión de recursos humanos es necesario realizar un modelo de dicha empresa que comprenda de la manera más eficiente posible toda la información vinculada. en gran medida. Solución Información Datos ProcediProcedimiento miento Datos Información Problema Solución Información Problema Página 14 de 190 © JPGS2011 . generamos información que podrá ser capturada en forma de datos.3 Toma de decisiones. antes de tomarlos.3 El Problema. A partir de la descripción del problema. centrando de este modo la discusión hacia aspectos realizables y rentables. Los modelos construidos permiten mediante su resolución ayudar a la toma de decisiones generando soluciones óptimas dado un objetivo establecido. Cuanto más general sea el modelo. Es por ello que muchos problemas de organización industrial no se resuelven sino que se disuelven. Asimismo pueden ser utilizados para evaluar el impacto de tomar decisiones. 1. el Cliente y el Concepto de Solución.2. Si lo conociera no nos solicitaría ayuda para resolverlo. es la capacidad de éstos de ser implementados y resueltos mediante sistemas informáticos que puedan automatizar el proceso de toma de decisión. Por último. Entender el problema: Hay que estructurar el problema para entenderlo. 2.2 Modelar y Construir la Solución 3. Esta fase incluye entender el problema y acordar con el cliente los resultados a obtener. Un modelo perfecto que no se utilice es un modelo perfectamente inútil. Definir el Problema. Esta fase incluye definir el tipo de técnica a utilizar. que básicamente se da cuando el problema desaparece. Acordar con el cliente los resultados a obtener.4 Ciclo de Vida de la construcción de Modelos No existe un método para construir un modelo perfecto de modo directo. No significa necesariamente que el cliente deba definir el resultado concreto del trabajo. generar el modelo (implementarlo informáticamente si es el caso) y por último validarlo. pero da por perdido todo el trabajo anterior. Esto incluye el análisis de datos disponibles y resultados requeridos. 2. Página 15 de 190 .4. 1. Definir el tipo de técnica: La decisión del tipo de técnica que mejor se ajusta al problema puede ser revocada en cualquier instante. Pero es interesante conocer si pretende una respuesta del tipo sí o no o una hoja Excel.1 Definir el Problema 1. Una solución es también el programa que generará información a partir de los datos disponibles (generalmente se le denomina solución informática) Y por último está lo que el cliente considera que es la solución a su problema. Utilizar la Solución. y mantener un concreto sistema de actualización son los dos elementos básicos de esta fase. La mejor comprensión de la realidad puede llevar (lleva) a cambiar el tipo (o tipos) de técnica a utilizar para alcanzar el objetivo propuesto. Una solución es un conjunto de variables que han adquirido un determinado valor. 4. 1. Cualquiera de las etapas citadas exige replantearse siempre la vuelta al principio del proceso. además de dar forma física al modelo. Cualquier herramienta es buena. Que implica abordar escalonadamente los diferentes aspectos de la realidad que se pretenden modelar. Ser capaz de implementar el modelo de tal manera que el cliente lo utilice. Y en general también ocurre que el primer problema planteado no era el problema real. 3. 1.Modelos y Métodos de Investigación de Operaciones Así pues existen tres significados para la palabra solución en nuestro entorno. Generar el modelo: Esta etapa incluye estimar los parámetros para modelar o calcular resultados. En cualquier caso se puede decir que en la definición de cualquier modelo hay tres etapas o hitos básicos que se concretan en: 1. Modelar y Construir la Solución. En este punto es de destacar la aplicación del principio “Ir paso a paso”.4. En ocasiones con esta etapa el problema a resolver queda resuelto. Si somos capaces de entender el problema seguro que somos capaces de generar una hoja de cálculo donde representar una posible solución. Definir la Estructura de la Solución b. Fundamentalmente esta fase exige comprobar que se comporta como se pretendía que se comportara. En general el cliente no es capaz de definir su problema. Actualizar el modelo: Es evidente que si la realidad es cambiante el modelo debe adaptarse a las nuevas circunstancias de manera continua si se pretende que siga teniendo utilidad. Validar el modelo: Decidir si el modelo vale para algo. a. 2) Preproceso de Datos.3 Utilizar la Solución. 6. a. 1) Análisis del Problema. calculada a mano.5 Generación de Soluciones Informáticas para la resolución de Problemas que se abordan mediante métodos matemático. Y que lo que creemos que es peor es realmente peor. En general. si los datos no han sido previamente utilizados serán probablemente erróneos. 6) Selección de la Herramienta o Tecnología de resolución adecuada. Analizar los datos disponibles nos permite tener una visión detallada del problema. Diseñar e implementar un Representador de una Solución c. 3) Generar resultados a mano. 1. Diseño de Estructura de Datos de Entrada Página 16 de 190 © JPGS2011 .4. 7. A continuación se ofrece una estructura útil para ayudar a plantear herramientas que resuelven problemas reales de clientes reales.Usando las matemáticas para pensar sobre Dirección de Operaciones. 5. 1. si se puede usar y si el cliente lo encontrará aceptable. Implementar el modelo: Trabajar con el cliente para poder extraer los máximos beneficios del trabajo realizado. 5) Generar un modelo de programación matemática (preferiblemente lineal). Diseño del Método de Evaluación de Resultados (definir cómo se va a presentar que un resultado es mejor que otro) d. Implementar un Evaluador de Solución 4) Comprobar que los resultados son inteligibles por parte del cliente. 7) Definir el Procedimiento de Resolución 8) Diseño de Procedimientos de Resolución para clientes no-expertos. se olvide que el objeto a pintar era el bosque.6. Página 17 de 190 . al intentar dibujar las hojas en los árboles. Metafóricamente hablando intentar construir un modelo completo desde el principio. Desde base de datos Desde ficheros de texto Desde pantalla Generar Algoritmos para generar soluciones     Generación aleatoria de Soluciones Heurísticas Voraces Diseño de Métodos de Enumeración Diseño de Metaheurísticas 1. La ciencia avanza paso a paso.1 Los Modelos han de ser simples. 1.6 Algunos principios para tener éxito en el modelado Aunque como se verá posteriormente existen múltiples tipos de modelos (y por tanto de procesos de modelado) se pueden extraer algunos principios generales útiles en cualquier caso:      1. los modelos. Al modelar se puede tener la tendencia de trasladar toda la complejidad de la realidad al modelo. Antes de comenzar el proceso de modelado se debería responder a la pregunta: “¿para qué quiero el modelo?” de un modo concreto. Los datos disponibles no deben conformar el modelo. su análisis debe ser complejo Ir paso a paso Usar metáforas.6. Esto. Definir los Procedimientos de Lectura de Datos    c. puede llevar a que. Los Modelos han de ser simples. también.Modelos y Métodos de Investigación de Operaciones b. analogías y similitudes.2 Ir paso a paso. Modelar es explorar. De este modo se puede garantizar que para hacer un simulador de coches. no es útil para quien lo debe utilizar por dos motivos: un modelo de este tipo es difícil de construir y también es difícil de utilizar. si pretenden estar dentro de ella. Es habitual observar que se pretende construir un modelo considerando todos los aspectos simultáneamente. no se pierde tiempo modelando el funcionamiento del turbo cuando lo que se pretende es hacer una herramienta para comprender el funcionamiento del volante. aunque suele agradar al que “mira” el modelo. su análisis debe ser complejo. Cualquier plano de metro de cualquier ciudad no representa cada línea y cada estación tal cual es sino que une mediante líneas. que en casi ningún caso pueden superponerse sobre un plano detallado y proporcional de la ciudad. que permita su reproducción en otras secciones. Se pueden distinguir tres conjuntos básicos de datos necesarios para crear y validar un modelo: Datos que aportan información preliminar y contextual. Hay que destacar la importancia de que los datos del segundo y el tercer tipo sean distintos. e incluso modelarla desde otros puntos de vista. que representan estaciones. debiera definirse la estructura de datos necesarios. Datos que se recogen para definir el modelo. el modelo debe requerir datos.Usando las matemáticas para pensar sobre Dirección de Operaciones. e ir mejorando etapa a etapa la exactitud del mismo. Permitirán generar el modelo. También se puede realizar al principio un modelo muy general. El punto anterior se pretenden ilustrar con este ejemplo: Si al hacer un modelo de secuenciación para líneas de montaje en sistemas Justo-a-Tiempo se cae en la cuenta de que el problema matemático es básicamente el problema de repartir escaños de una manera proporcional. y así sucesivamente. no los datos conformar el modelo. 1. Empezar generando pequeños modelos de una parte reducida y determinada del proceso para aumentar la capacidad. Así pues la estrategia recomendable es evitar tener todos los aspectos en cuenta desde el principio. Un corolario de este principio exige “Dividir para Vencer”.4 Los datos disponibles no deben conformar el modelo. porque en caso contrario el modelo no se habrá realmente validado. el abandonar de modo explícito la realidad puede simplificar el problema o representarlo de un modo más sencillo. se habrá conseguido resolver un problema actual (secuenciación JIT) con herramientas desarrolladas desde el siglo XVIII. El analista debe desarrollar las líneas básicas sobre el modelo y una vez hecho esto. es interesante abordarla. Además. Si hubiera tiempo lo lógico sería que a la luz de estos resultados preliminares se redefiniera el modelo y por tanto los datos necesarios. 1. Datos que permiten evaluar la bondad del modelo. La representación exacta de la realidad incrementaría la dificultad en la lectura de dichos planos.6. los puntos. El proceso de modelado puede comenzar aislando una pequeña parte y realizando un modelo detallado. Página 18 de 190 © JPGS2011 . Estos datos nos permitirán parametrizar el modelo. Todas las propiedades analizadas para el segundo problema. pueden ser adaptadas para el primero más nuevo.3 Usar al máximo metáforas. analogías y similitudes Más que quedar restringido por la realidad tal y como se percibe a primera vista.6. El planteamiento debe ser el contrario. Un fallo común a la hora de plantear un modelo es retrasar el comienzo del modelado hasta que se disponga de los datos. 1. La mayor parte de las empresas guardan esta información en sistemas informáticos que se usan para introducir órdenes y enviar facturas. no lo que el cliente quiere. por ejemplo: los sistemas sólo recogen lo que se vende.Modelos y Métodos de Investigación de Operaciones Una última recomendación respecto a los datos es evitar aquellos que ya están recogidos. sin embargo hay diferentes motivos por los que esto no se debe hacer así. se podría pensar que el proceso de modelar es un proceso lineal. Un ejemplo lo ilustrará claramente: Para desarrollar un modelo para la programación de producción puede ser necesario desarrollar submodelos de demandas de los clientes para los productos fabricados. cambios de dirección o cambios de perspectiva. es que se ha errado el problema. El modo obvio de recoger la información de la demanda es acudir a estos sistemas. Sin embargo. pues se obliga al cliente a comprar lo que existe.5 Principio Subyacente: Modelar es Explorar Dado que un modelo es el resultado de intentar representar parte de la realidad para tomar decisiones.6. Y en especial la realidad desconocida. incluso es bastante habitual que haya cambios de herramientas. Modelar es explorar la realidad. implementar o entender. Página 19 de 190 . la experiencia muestra que en el proceso de modelar hay muchas vueltas atrás. Por ellos siempre aplica el siguiente corolario de la ley de Murphy: Si se consigue que el modelo funcione a la primera. Por tanto muchas veces refleja lo que hay en stock. Entre los modelos descriptivos se pueden citar los modelos de simulación. Aunque ello no les quita ni un ápice de formalidad. Simulación. Los modelos descriptivos que engloban al resto (Previsión. Es evidente que el trabajo en el primer caso se debe centrar en el proceso de modelado. Data Mining. Por ello en los puntos siguientes se hará una presentación de algunos de estos modos. En ocasiones la estructura del modelo impide el uso de algún método de optimización conocido.1 TIPOS DE MODELOS. mientras que en el segundo grupo el esfuerzo se hace en la definición del método heurístico de resolución. mientras que otros no necesariamente su estructura es de tipo matemático. 2.1 Modelos Normativos Los modelos normativos exigen el planteamiento de un modelo matemático (función objetivo y restricciones). Por poner un ejemplo los modelos IDEF-0 son altamente formales y estándar. Clasificación de modelos según el efecto de su resolución Shapiro(2001) clasifica los modelos según el efecto de su resultado en Normativos o Descriptivos. ni el único modo normativo de hacerlo. Son normativos los modelos matemáticos (a su vez estos se pueden clasificar en modelos de optimización y modelos de resolución mediante heurísticas).…). 2 2. Dinámica de Sistemas.1. 2. En estos apuntes se despliega uno de los tipos de modelos normativos. la Programación Matemática. si bien no garantizan óptimos. la teoría de colas e incluso las técnicas de previsión entre otras. Los modelos descriptivos abarcan todas aquellas técnicas de modelado que no comportan la definición de estructuras matemáticas que definen una solución como la deseable para ser implementada. Algunos de los modelos descriptivos llevan aparejada una carga matemática importante. La Programación Matemática no es el único modo de modelar matemáticamente.1. LOS MODELOS DE PROGRAMACIÓN MATEMÁTICA. permiten encontrar soluciones en espacios cortos de tiempo. y aunque tienen aspecto de grafo no necesariamente debieran ser incluidos entre los que se denominan Modelos Matemáticos.Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 20 de 190 © JPGS2011 . Los modelos cuya estructura se ajusta a algunos de los patrones clásicos para los que es factible la optimización (programación lineal por ejemplo) forman el subconjunto de modelos de optimización.2 Modelos Descriptivos. es por ello que se plantean los procedimientos heurísticos de resolución que. Aunque hay excepciones los modelos lineales son mucho más difíciles de manejar que los modelos no lineales. es un “subconjunto” de la más general teoría de conjuntos. Si todos los operadores de un modelo son lineales el modelo es lineal. Los modelos pueden ser determinista o estocástico. mientras que los modelos dinámicos sí. Así por ejemplo la teoría de grafos. El lenguaje matemático no se limita a la expresión de números y operadores aritméticos que los relacionan. es posible.Modelos y Métodos de Investigación de Operaciones 2. expresando parámetros. Un modelo determinista se comporta siempre igual para un conjunto de parámetros de entrada. que se estén perdiendo aspectos relevantes del problema. Un modelo estático no tiene en cuenta el tiempo.3 Modelos de Programación Matemática La característica común que comparten todos los modos de modelar matemáticamente es que representan la realidad mediante variables y parámetros (y algunos otros artificios como funciones o conjuntos). 2. En general. En general los modelos no lineales pueden ser linealizados. pero entonces. Un modelo determinista es aquel en que cada conjunto de variables en un estado está definido por los parámetros del modelo y por los estados anteriores. Los modelos pueden ser lineales o no lineales. Página 21 de 190 . De este modo la realidad queda cuantificada. si al menos uno es no lineal el modelo es no-lineal. A continuación se describen algunas que se consideran relevantes. las restricciones se deben respetar y las funciones objetivo optimizar. Los modelos pueden ser estáticos o dinámicos. Los modelos matemáticos se pueden clasificar de múltiples maneras. Los modelos dinámicos se suelen representar con ecuaciones en diferencias o ecuaciones diferenciales.2 Modelos Matemáticos Los modelos matemáticos son modelos formales que utilizan el lenguaje de las matemáticas para describir un sistema. Estas son combinación de variables y parámetros en forma de restricciones y/o funciones objetivo. Los modelos de Programación Matemática se distinguen por que representan la realidad mediante funciones. Este tipo de modelos matemáticos pertenecen al grupo de los modelos normativos (qué indican el camino a seguir) frente a la categoría de los descriptivos (que describen la situación actual o futura). En un modelo estocástico las variables de estado se representan por distribuciones de probabilidad. variables. Entre ellos están la Programación Dinámica o la Teoría de Grafos. ampliamente utilizada en aplicaciones prácticas. y por tanto el modelo es capaz de recoger aleatoriedad o incertidumbre. relaciones. Se podría decir pues que se lo que se conoce como Programación Matemática fue originariamente un modo de resolver problemas de Programación mediante métodos matemáticos. Dicho libro recoge trabajos que sus autores dicen que son ampliaciones o reducción de trabajos publicados entre 1947 y 1949. El propio Dantzig . the Leningrad University Press printed my booklet called The Mathematical Method of Production Planning and Organization which was devoted to the formulation of the basic economic problems. Later. que es un procedimiento eficaz de resolución del problema de programación lineal. Dantzig se concentra en los modelos donde las relaciones son lineales pues tienen unas propiedades interesantes.1 ¿Por qué se llama Programación Matemática? Tres nombres de tres científicos ilustres van asociados al origen del extraño nombre de “Programación Matemática”: Koopmans. 2. New York (1951) ). moreover. que vivía en la Unión Soviética enfoca cómo combinar la capacidad productiva de una fábrica para maximizar la producción. 1 1 Al finalizar el primer tercio del siglo XX. premio Nobel de Economía en 1975. In essence. y el capítulo XIV de título "A model of transportation" donde planteó el problema de "programar el transporte de barcos" también desde una óptica de optimización matemática. y de repente en la página 30 los problemas de programación con modelos lineales se convierten en "problemas de programación lineal”.Usando las matemáticas para pensar sobre Dirección de Operaciones. and the first discussion of its economic sense. Los tres parecen haber diseñado métodos de Planificación y Programación de Operaciones (producción y transporte) utilizando modelos matemáticos." Página 22 de 190 © JPGS2011 . (Wiley. The work remained unknown for many years to Western scholars.3. En ese capítulo se distingue la palabra programming que hace referencia a la programación y Mathematical que hace referencia al modelo. a sketch of the solution method. Kantorovich escribe: "In 1939. Según una historia paralela. Tjalling Koopmans. George Dantzing. Kantorovich. Para ello utiliza un método de análisis que posteriormente se llamó Programación Lineal. Unos años antes había planteado el problema pero de modo teórico según él mismo indica. sugiere que inicialmente su método se utilizó para calcular las dietas óptimas. Porque ya en 1947 Dantzig había diseñado el algoritmo del Simplex. But their contributions remained unknown to me until the middle of the 50s. entre otras que no hay óptimos locales. Aparentemente el nombre de Programación Lineal fue sugerido por Koopmans en 1948 en una reunión que tuvieron Koopmans y Dantzig en RAND Corporation. El capítulo III "Analysis of production as an efficient combination of activities" donde expone un "problema de producción" de manera matemática. et al. found these results and. their mathematical form. it contained the main ideas of the theories and algorithms of linear programming. La nota de entrada del capítulo nos recuerda que está "republicando un trabajo de 1949". El propio Dantzig escribe el capítulo II del citado libro de título: "The programming of interdependent activities: Mathematical Model" que indica que es una revisión de un artículo de 1949. En el libro que él edita. Koopmans. escribe dos capítulos relevantes. ¿Y Kantorovich? En su autobiografía para el Premio Nobel. se enfrenta al problema de planificación desde una óptica de Optimización Matemática. Dantzig y Kantorovich . in their own way. De hecho en los artículos indica que estaba influenciado por una corta entrevista que tuvo con Dantzig. Kantorovich. el término programación lineal habría surgido porque "programación" era a lo que se dedicaba el departamento en la USAF para el que trabajaba Dantzig. Aunque entonces no tenía nombre. En el año 1951 Koopmans (que fue premiado junto con Kantorovich con el Nobel) edita un libro de título "Activity Analysis of Production and Allocation". tenían la interesante propiedad de no tener óptimos locales… por lo que la Programación Lineal se convirtió pronto en un lugar común de encuentro de modeladores y solucionadores.Número de Objetivos (Ninguno. la dualidad y las formas compactas.) la formulación y resolución general de los problemas de Programación Lineal fue realizada en el proyecto SCOOP. problemas de transporte..3.Certidumbre de los Parámetros (Ciertos e Inciertos) . Binarias) .2. Uno o más de Uno) .. Discretas -Enteras-. 2. algunos conceptos como precios-sombra o costes reducidos.Número de Restricciones (Ninguna. XPRESS. Una clasificación de los modelos de programación matemática podría tener en cuenta las siguientes características: .Características de las Variables (Reales.Estructura objetivos y restricciones (lineal o no lineal) . aunque computacionalmente ineficiente. permite establecer un objetivo y restricciones lineales. lanzado en 1947 por el ejército del aire de los Estados Unidos de Norteamérica. mediante el propio método. tiene la ventaja docente de ser metódico y que permite explicar. Ésta. siendo un avance significativo de los últimos años el desarrollo de paquetes que facilitan la introducción del modelo y la integración de éste con los Sistemas de Información de la empresa. Actualmente es posible encontrar en el mercado. En menos de 10 años la Programación Lineal experimento un fuerte desarrollo con trabajos que abordaron.3. QSB. Los fundamentos matemáticos de los modelos lineales se encuentran en la teoría de las desigualdades lineales desarrollada en el siglo XIX como se puede leer en (Poler 2001). entre otros temas..). en su forma más básica. La mayor parte de estos paquetes utilizan (o han utilizado) el denominado método Simplex. definición de dietas. Dicho método. LINDO. incluyendo aplicaciones gratuitas en internet.Modelos y Métodos de Investigación de Operaciones Los modelos de programación cuyas variables tenían relaciones lineales. 2. Aunque se encuentran precedentes en distintos campos (teoría de juegos. aplicaciones comerciales para la resolución eficiente de problemas de Programación Lineal (CPLEX. que mediante combinación lineal de parámetros ciertos. En realidad se pretende fijar un marco que sirva de referencia en el contexto de estos apuntes. Más de Cero) El objeto de esta descripción no es establecer una perfecta clasificación de todos los modelos de programación matemática.2 Una clasificación de Modelos de Programación Matemática. dando lugar al algoritmo denominado Simplex expuesto inicialmente por Dantzig en 1947.1 Programación Lineal Entre los tipos de modelos de uso más generalizado en Programación Matemática se encuentra la denominada Programación Lineal. consiste en un conjunto de variables reales. Página 23 de 190 .. la degeneración. 2. por el imposible fraccionamiento de determinados recursos. mochila y rutas. (Williams. Hay que destacar la existencia de algunos tipos especiales de problemas con variables bivalentes. Página 24 de 190 © JPGS2011 . Hasta finales de la década de los 80 del siglo XX no surgen como alternativa válida los denominados métodos del punto interior. El menor coste computacional de este tipo de algoritmos hace que su implantación en los paquetes comerciales sea creciente. 1999) 2. 1976).2 Programación Lineal Entera Si a alguna de las variables de un problema lineal se le impone la condición de integridad el problema pasa a ser de Programación Lineal Entera (Mixta si todas no son variables enteras). Uno de los procedimientos más efectivos para la resolución de este tipo de problemas se fundamenta en el concepto de ramificación y cota.2. conduciendo necesariamente al óptimo. Una variante especial de los problemas de Programación Lineal Entera lo constituyen aquellos donde algunas variables son bivalentes. que se abordan mediante métodos específicos de resolución. el coste computacional en algunos problemas es. que puede ser resuelta de modo óptimo. asignación.3 Programación Estocástica Si a los problemas de Programación Matemática (en general) se les incorpora la incertidumbre en los parámetros. Curiosamente el trabajo que se desarrolla en resolución de Programación NoLineal está colaborando en mejorar la eficiencia de la Programación Lineal. Algunos de estos problemas son los de cubrimiento. aunque con un coste computacional elevado. Otro procedimiento para la resolución de estos problemas se basa en los métodos de planos cortantes. óptimos en algunos casos y más eficientes por haber sido desarrollados ex profeso. entre otros motivos. excesivo. La condición de integridad puede venir impuesta. 1999). El uso de este tipo de variables tiene su origen en la representación de aquellas decisiones que sólo admiten dos valores. la realidad es que un gran número de problemas reales puedan ser modelados con esa consideración (Williams. La pretensión de resolver estos problemas de modo eficiente ha dado lugar a métodos como el de enumeración implícita o técnicas más generales de enumeración como las descritas en (Kauffmann y Henry-Labordere.Usando las matemáticas para pensar sobre Dirección de Operaciones. Desgraciadamente aunque la lógica de este procedimiento es eficaz. esta incertidumbre se puede abordar mediante la denominada Programación Estocástica. Por último parece necesario destacar que aunque para el observador no experimentado la exigencia de linealidad puede parecer excesivamente restrictiva. 2. aunque este método levantó grandes expectativas por ahora no han fructificado de modo eficiente. Una variante de la misma especialmente interesante es la Programación Lineal Estocástica. aún hoy en día. La ventaja de los Programación Lineal frente a la Programación No-Lineal es que para esta no se conocen modelos generales de resolución eficientes. partición.3.3. pero también aquellos problemas que exigen restricciones de tipo lógico. Variables: Valores que se calculan. en general. por poner un ejemplo los algoritmos del punto interior fueron desarrollados a partir de conceptos NoLineales y se han revelado eficientes en los problemas de Programación Lineal. Estos constituyen un posible conjunto de valores para los parámetros. se obtienen modelos de Programación No-Lineal. 1991).4 Programación No-Lineal Si a los modelos de Programación Lineal se les elimina el requerimiento de que la función objetivo o las restricciones sean lineales. en la falta de eficacia en la obtención de óptimos mediante el uso de los procedimientos actualmente existentes para la resolución de problemas no-lineales en general. 2.3. El motivo de la aparente obsesión por la linealidad se basa.2. para los que el cálculo del óptimo tiene su origen en el desarrollo del cálculo matemático del siglo XVIII. o parte de él.3 Los Componentes de un Modelo Matemático Los modelos matemáticos tienen dos componentes básicos:   Datos: Valores conocidos y constantes. De este modo la decisión a tomar no será óptima. En general se puede admitir que la resolución de grandes problemas de optimización en programación No-Lineal aún hoy no es eficiente. Sin embargo el esfuerzo realizado no es infructuoso. a modelar. eligiendo como decisión definitiva la más buena. Cada uno de estos escenarios pueden tener una probabilidad asociada aunque no necesariamente. Otro modo de abordar la estocasticidad en los parámetros es obtener el óptimo para cada escenario y comparar el valor que esta decisión tendría para el resto de escenarios. Este modo de plantear y resolver el problema tiene un elevado coste computacional pero se puede abordado mediante descomposiciones y computación en paralelo con índice de paralelización elevado.Modelos y Métodos de Investigación de Operaciones Uno de los mecanismos para abordar la incertidumbre en los datos es el uso de los denominados escenarios. Es conocido que uno de los principales avances en la resolución de estos problemas es el conocido teorema de optimalidad de Kuhn y Tucker que establece las condiciones necesarias de optimalidad en problemas restringidos. Una variante de la programación No-Lineal la constituyen aquellos problemas sin restricciones. (Dembo. aunque no cómo llegar a ellas. La eliminación del requerimiento de linealidad se suele fundamentar en la estructura no lineal del objeto. Página 25 de 190 . para ninguno de los escenarios aunque sí para el conjunto de ellos. o la menos mala o cualquier otro mecanismo que se considere oportuno.3. 2. fundamentalmente. Existen diferentes modos de formular mediante un problema de Programación Lineal un Problema Estocástico aunque básicamente consiste en obtener una decisión para el instante actual teniendo en cuenta los escenarios futuros. Sin embargo muchas de las circunstancias aparentemente no lineales pueden ser linealizadas sin pérdida de su significado. 4 Modelos de Optimización Combinatoria La Optimización Combinatoria es una rama de la Investigación Operativa que consiste en encontrar la solución óptima a un problema en que cada solución está asociada a un determinado valor (el valor de la solución). En el caso de un problema de optimización global. En su formulación básica los modelos matemáticos tienen una función objetivo y una o más restricciones. De hecho.Usando las matemáticas para pensar sobre Dirección de Operaciones. y se ocupa. Numerosos autores relacionan la Programación Multi-Objetivo con la Teoría de la Decisión que se aborda más adelante. el x* buscado es el que minimiza f para todo el espacio xRn. existen diferentes métodos de modelado y posterior resolución que se pueden aplicar en estos tipos de problemas. Mediante la combinación lineal de los mismos se generan:   Función Objetivo que debe minimizarse o maximizarse Restricciones que establece límites al espacio de soluciones.3.3. El término Combinatoria hace a la rama de la matemática que estudia colecciones finitas de objetos que satisfacen unos criterios especificados. como se ha comentado. Sin embargo existen excepciones como:    2. Esto sin embargo no implica que no se puedan abordar los problemas con múltiples funciones objetivo. Optimización sin restricciones Los problemas de optimización sin restricciones pretenden minimizar (o maximizar) una función real f(x) donde x es un vector de n variables reales. 2. Es decir se buscan un x* tal que f(x*) f(x) para todos los x cercanos a x*.1 Múltiples Objetivos Objetivos No existentes No existencia de restricciones Múltiples objetivos Un modelo de Programación Matemática exige una única función objetivo que tiene que ser maximizada o minimizada. Se pretende definir unos valores a dichas variables de tal modo que se obtiene la mejor valoración de la función objetivo mientras se cumplen todas las restricciones. en particular. Página 26 de 190 © JPGS2011 . del "recuento" de los objetos de dichas colecciones (combinatoria enumerativa) y del problema de determinar si cierto objeto "óptimo" existe (combinatoria extremal). Tanto la función objetivo como las restricciones se expresan matemáticamente mediante el uso de variables o incógnitas. de Colas y de Juegos. A continuación se revisan algunas técnicas diferentes en el fondo o en la forma.  2. No se consideran.5. 1990). De hecho aporta una ayuda eficaz para modelar y resolver determinados problemas de carácter combinatorio que aparecen en los más diversos dominios(Companys. En principio cualquier algoritmo constructivo o de búsqueda podría encontrar la solución optima.Modelos y Métodos de Investigación de Operaciones El término Optimización hace referencia a este segundo aspecto de la búsqueda del mejor valor. En ocasiones hay problemas que su versión “aplicada” no presenta las características del worst-case. o de grafos. La teoría de redes. o aplicaciones concretas como modelos de Inventario (Axsäter.1 Teoría de Grafos Según (Kauffman. La búsqueda ( o la definición de la existencia) de un óptimo para tipos específicos de problemas ha dado lugar a una cantidad considerable de algoritmos que son capaces de resolver casos específicos en tiempo polinomial. (Raiffa. modos de modelar como la Previsión (Companys. era para el autor. incluye las Teorías de Redes. 1994). pero no necesariamente tiene porqué garantizarla. Otros Modos de Modelar. 1970) o Teoría de Juegos (Binmore. En aquel momento. incluye un modo de representar y soporte matemático para resolver. El modo de representar es intuitivo en su forma más simple. Los problemas de optimización combinatoria tratan de encontrar la mejor solución de entre un conjunto de ítems discreto y por tanto finito. En muchos de esos problemas la búsqueda exhaustiva no es factible y por la estructura de los problemas tanto no es posible. 2000) o de Reemplazo (Figuera y Figuera. la Programación Dinámica. Otros Modos de Pensar. la Simulación. la Teoría de Decisión (White.5 Algoritmos de aproximación que son capaces de dar soluciones muy cerca del óptimo. la rama de la teoría de conjuntos con más futuro. En el punto anterior se ha planteado una visión general de la Programación Matemática entendida en un sentido restrictivo. 1979) 2. de Página 27 de 190 . En aquellos casos en que el problema parece resistirse a ser resuelto se suele abordar el problema de diferentes maneras:   Algoritmos que funcionan bien generalmente para tamaños pequeños de problemas. que no es exhaustiva ni las agrupaciones consideradas son necesariamente disjuntas. aunque son también importantes. La optimización combinatoria actúa en el campo de los problemas de optimización en los que el conjunto de soluciones factibles es discreto (o reducible a discreto). por su relación con la realidad física. 1972) la Teoría de Redes es una rama de la teoría de conjuntos basada en los trabajos de Köning. En algunos casos se tiende la tendencia a asumir que la OC es la programación lineal entera con variables binarias. 1972). 2003). La lista. 2002).Usando las matemáticas para pensar sobre Dirección de Operaciones. El fundamento de este procedimiento se encuentra en el principio de optimalidad que Bellman enunció del siguiente modo: “Una política es óptima si en un periodo dado. de camino mínimo. es un poco más complicado (aunque posible) hacer la traducción a la inversa. las decisiones que queden por tomar constituyen una política óptima teniendo en cuenta los resultados precedentes” La Programación Dinámica es un método de optimización de los sistemas o de su representación matemática. de flujo máximo o de permutación óptima. a través de su libro del mismo título para la resolución de problemas de carácter secuencial (inicialmente económicos pero también físicos y matemáticos). Es relativamente sencillo traducir un modelo de red a un modelo de Programación Matemática. el de Programación Dinámica no lo mejora. A un conjunto determinado de vértices y arcos se le denomina “red”... 1982). árbol.5. Cuando el nombre Programación Matemática había adquirido cierto auge Bellman planteó en la década de los 50 (del siglo XX) la herramienta denominada Programación Dinámica. El método de resolución denominado Programación Dinámica consiste en buscar las subpolíticas óptimas que comprendan cada vez más fases unitivas (Denardo. A partir de estos conceptos se desarrollan otros como camino. determinados tipos de problemas.. Diseño de Rutas. Algunos de los principales modelos que de este modo se plantean son: los problemas de arbol mínimo. En líneas generales se puede decir que los componentes básicos de la denominada Teoría de Grafos son los vértices (o nodos o puntos) y los arcos que los unen. En ciertos problemas los cálculos se vuelven mucho más simples cuando se hace la optimización en un cierto sentido privilegiado o a partir de cierta fase(Companys. El poder reducir un problema real a un problema clásico de grafos implica la posibilidad de conocer métodos eficaces de resolución. debe tomarla el modelador teniendo en cuenta la necesidad de transmitir el modelo (donde la teoría de grafos es claramente superior). etc. Página 28 de 190 © JPGS2011 . hasta encontrar la. La decisión sobre qué modo de modelar se debe utilizar. políticas óptimas.2 Programación Dinámica Si antes se destacaba que el nombre de Programación Matemática no era muy representativo de la propia técnica. la Gestion de Inventarios. El soporte matemático es especial para cada tipo de problema. 1972). sobre la que se opera por fases o secuencias. 2. la disponibilidad de herramientas y la realidad concreta a modelar. corte. permite resolverlo de modo más simple que al utilizar la Programación Matemática convencional. para muchos de ellos (siempre dependiendo del tamaño y la complejidad). (Kauffman. Secuenciación y Temporización. Algunos de los problemas de Gestión Industrial que se pueden abordar con estos métodos son la programación de Proyectos. cualesquiera que sean las decisiones precedentes. que suelen ser complejos problemas de combinatoria. o las. La teoría de colas es un método de modelado que describe el comportamiento de las mismas. 1972). Cuando el futuro es aleatorio (parámetros estocásticos) la optimización de la esperanza matemática del valor total sólo puede llevarse a cabo en un sentido. Esta tiene su relación directa con el Enfoque de Sistemas visto en el apartado dedicado a los Fundamentos Organizativos de la Organización de Empresas.) 2. 2008). Los desarrollos en teoría de colas han ido extendiendo sus soluciones tanto para diferentes tipos de entradas como para redes de colas. 1992) 2. Un excelente resumen de la situación actual de la teoría de colas se puede encontrar en (Gross. (Kauffman. En (Pidd. 1996) se sugiere que el precursor de esta idea es Tustin que en 1953 publicó un trabajo titulado “El mecanismo de los sistemas económicos”.3 Teoría de Colas Se admite como inevitable la existencia de colas en los sistemas en que las entradas y/o el servicio se producen a intervalos irregulares.Modelos y Métodos de Investigación de Operaciones Las variables utilizadas pueden ser discretas o continuas..5. por el cual se utilizan cotas en un esquema de Programación Dinámica.5. Si al concepto de Programación Dinámica se le une la consideración de los métodos de Ramificación y Corte.. Página 29 de 190 . Sin embargo más útiles en múltiples ocasiones son las redes de colas con tiempos de los procesos no necesariamente exponenciales. Mostró también el valor que tienen los modelos explícitos que combinan procesos de negocio y estructura organizacional. procesadores compartidos. Uno de los resultados más conocidos de la teoría de colas es la denominada fórmula de Little que relaciona la longitud de la cola con el tiempo de espera y el ritmo de entrada al sistema. and Corominas. La primera aplicación práctica de la que se tiene constancia. y con la que se inicia la investigación en este campo es el trabajo de Erlang a principios del siglo XX. limitando el número de vértices que se pueden almacenar (Bautista. Los resultados más habituales de la teoría de colas se refieren a sistemas de una etapa con entradas y salidas siguiendo distribuciones exponenciales. Thomson.4 Dinámica de Sistemas Se atribuye a Forrester el inicio del desarrollo de la denominada Dinámica de Sistemas. mediante la cual se puede llegar a comprender como la estructura de un sistema humano y sus políticas de control operan. remontándose desde el futuro hacia el pasado. aparece el concepto de Programación Dinámica Acotada. and Harris. Companys. Además los parámetros pueden ser deterministas o estocásticos. Es de destacar el especial interés que la teoría de colas tiene en el diseño de elementos estructurales de la denominada Nueva Economía (servidores web. Forrester desarrolló un conjunto de herramientas y una aproximación a la simulación que se ha llegado a conocer como dinámica de sistemas. Shortle. De hecho. Pero no sólo la simulación de eventos discretos está disponible (aunque es con mucho la más utilizada en el terreno práctico) sino que la simulación basada en agentes y o la simulación mediante Dinámica de Sistemas tiene su importante utilidad al modelar otros conceptos. que requiere un esfuerzo conceptual que aparentemente la simulación no requiere. Hay que destacar. La consideración de esta circunstancia aporta interesantes resultados incluso sin el uso de herramientas informáticas.5. en contra de esta opinión que la simulación bien aplicada exige un importante esfuerzo para garantizar la validez de resultados. aunque la teoría ya había preocupado en diferentes formas a Kepler. 2. en algunos casos.6 Teoría de Juegos Algunos problemas de toma de decisión se plantean bajo la forma de un juego. e incluso de información. Pascal. Esta aplicación creciente ha supuesto. sino que resuelve problemas que la teoría de colas analítica no es actualmente capaz de abordar(Gross and Harris. al hacer una simulación hay que hacer frente a los mismos problemas que hay que afrontar cuando se hace experimentación convencional (incluyendo diseño experimental y análisis estadístico). 1972) Para (Kauffman.Usando las matemáticas para pensar sobre Dirección de Operaciones. donde se trata de tomar una o varias decisiones. así como sus crecientes capacidades gráficas hace que esta última esté experimentando una aplicación creciente en el modelado de flujos de materiales. De este modo el uso de la simulación no reduce el esfuerzo a realizar. 1972) la teoría de juegos se desarrolla a partir de los trabajos de Borel en 1921 y Von Neumann en 1924. Huyghens. 2. La aproximación básica suministra una manera de observar sistemas humanos. Otro modo de utilizar la dinámica de sistemas es realizando simulaciones mediante ordenador. Las herramientas de la Dinámica de Sistemas pueden utilizarse de diferentes maneras. (Kauffmann. frente a uno o varios decisores cuyas reacciones a las decisiones tomadas se conocen poco o nada. investigaron dos planteamientos distintos: el estratégico o no cooperativo y el cooperativo. La teoría de juegos trata de establecer como debiera comportarse racionalmente un individuo ante la ignorancia del comportamiento del adversario cuando se conocen las reglas de la competencia aceptadas por los participantes. 1998). la Dinámica de Sistemas se puede utilizar para mejorar el diseño de un sistema. Por último. Fermat y Bernouilli entre otros. Von Neumann y Morguestern en su primera obra sobre Teoría de Juegos. dado que la simulación es comparable al análisis por experimentos. La complejidad del primer Página 30 de 190 © JPGS2011 . haciendo especial hincapié en la importancia de algunos aspectos estructurales como el control por retroalimentación. que permitan entender mejor el funcionamiento de otro sistema.5. el abandono de las herramientas analíticas. evaluando mediante simulación su comportamiento. El incremento de la capacidad de cálculo de los ordenadores.5 Simulación Asociada en ocasiones a la teoría de colas y heredera de la dinámica de sistemas se encuentra otra herramienta de los métodos cuantitativos como es la simulación. es por ello que se ha preferido denominarlas de control. Representar los conjuntos de datos mediante Símbolos con subíndices. (Binmore. permitirá comenzar la conceptualización del problema. o incluso se establecen parámetros que luego se comprobará que son variables. se puede decir que las variables en la función objetivo no son las decisiones que se toman. Lo habitual es que surjan nuevos datos. y otros se incorporarán en fases siguientes. 1994) Nash afrontó dos de las barreras que Von Neumann y Morgenstern se habían autoimpuesto. Es importante destacar que en la metodología que se explica a continuación el camino es de continuas idas y vueltas.Modelos y Métodos de Investigación de Operaciones problema planteado hizo que se limitaran a los juegos estrictamente competitivos o de suma nula. simplemente con representarlo ya es suficiente. Variables de Control De la etapa anterior se han definido las variables que configurarán la función objetivo. 1994) Actualmente la teoría de juegos. Así lo normal es que una vez terminada una fase haya que volver a una etapa anterior y de este modo volver a comenzar. de gran utilidad en el análisis la toma de decisiones con la presencia de otros decisores. donde los dos jugadores (sólo dos) tienen intereses diametralmente opuestos. conjuntos y con ellos índices.1 PROGRAMACIÓN MATEMÁTICA La construcción de un Modelo de Programación Matemática. Sobre los juegos no cooperativos estableció la idea del equilibrio que aparece cuando la elección estratégica de cada jugador es la respuesta óptima a las elecciones estratégicas de los otros jugadores. aunque algunos autores opinan lo contrario. No es importante en una primera fase establecer el objetivo de modo lineal. sino los efectos de dichas decisiones. Muchos de los que se definen en esta fase no son estrictamente necesarios. 3 3. con lo que no es necesario restringirse a los juegos de suma cero. En general. Dichas variables deben ser explícitamente representadas. La segunda parte (el juego cooperativo) aún fue más complejo y por tanto se limitaron a clasificar los modelos de formación de coaliciones. parámetros índices y Página 31 de 190 . y por tanto de Índices Conocer los tipos de datos de los que se dispone permite establecer. Establecer la función objetivo en forma de lenguaje natural (Maximizar el beneficio esperado o minimizar el ratio de aprovechamiento) permite empezar a definir variables que se pueden denominar de control. Respecto a los problemas cooperativos Nash rompió con la idea de que los problemas de negociación son indeterminados y ofreció argumentos para determinarlos. Generalmente en esta fase aparecen nuevos índices. Restricciones. Objetivo. Parámetros. El modo más habitual de generar restricciones es expresarlas verbalmente y cuantificarlas posteriormente. y es. En cualquier caso su modo de trabajo puede ser. (Binmore. Conjuntos de Datos. lleva aparejado un aparato matemático cada vez más complicado. 3. Validación La validación del modelo exige su formulación y su resolución.1 Modelo de sintaxis errónea. Todos los índices de todas las variables utilizadas deben estar en la expresión de la restricción. variables y restricciones. parámetros. ya sea en forma del rango en el que aplica la restricción (el para todo i). Variables de Decisión. variables. Utilizar los paquetes de resolución para detectar problemas es lo más razonable en tiempo. La validación suele exigir recomenzar el proceso de validación desde el principio. Ya sea en forma de sumatorios. Modelo Completo La construcción del modelo completo (funciones objetivo más restricciones) dará generalmente nuevos índices. generalmente dará una mejor comprensión del problema. Ahora bien su introducción en un formato que permita resolverlo adecuadamente nos informará de nuevos errores. que lleva Antes de prestar demasiada atención a la solución obtenida tras resolver un modelo que se haya construido. y por último que el modelo sea resoluble y sus soluciones sea coherentes. Asumiendo que no hay errores de tipo sintáctico (generalmente los paquetes informáticos los detectan) existen tres salidas que en general se recorrerán sucesivamente: que el modelo sea incompatible.2 Implementación de un Modelo de Programación Matemática (Validación) Un modelo matemático sobre el papel es en general consistente. El error más típico es que la función objetivo no sea una fórmula sino un conjunto de fórmulas. Una manera de detectarlo es comprobar que ningún índice en las variables de la función objetivo se queda sin su sumatorio correspondiente. Otro error típico se da en las restricciones. Un modo de utilizarlos eficientemente es pedirles que escriban el modelo en formato . que el modelo sea resoluble pero sus soluciones no sean coherentes con el problema. 3. Por último convendría recordar que el buen modelo. Si se alcanza este punto.lp Página 32 de 190 © JPGS2011 . La importancia de esta etapa exige un apartado entero (el siguiente). cerrando de este modo el círculo de esta metodología. que el modelo no esté acotado y que el modelo sea resoluble. se debe comprobar que se ha modelado lo que se pretendía. En principio tras fijar las restricciones evidentes se observará que las variables de decisión y las de control no están conectadas.Usando las matemáticas para pensar sobre Dirección de Operaciones. Las conexiones darán lugar a nuevas restricciones. el modelo está listo para ser utilizado. Dichas variables deben ser también reflejadas. su resolución y el análisis de los resultados. Aún llegado este punto caben dos situaciones.2. En general al plantear la función objetivo no se está plasmando las decisiones que en realidad se quieren tomar. Por ejemplo. Hasta encontrar aquella (o aquellas) que al anularlas permiten que la solución exista. las siguientes restricciones harían el modelo irresoluble: x1  x 2  1 x1  x 2  2 En la práctica esta situación no será tan evidente. En pocas Página 33 de 190 . aunque en la mayor parte de casos es debido a que se ha formulado mal el problema. En algunos casos la indicará. aunque no es lo habitual. por lo tanto no necesariamente la restricción anulada es la que está mal.Modelos y Métodos de Investigación de Operaciones De este modo es posible visualizar si lo que hemos escrito en formato compacto se parece a lo que pretendíamos obtener en modo desarrollado. Hay que tener en cuenta que en general las restricciones son incompatibles a pares. El programa intentará resolver hasta que detecte la incompatibilidad.2. En pocas ocasiones la incompatibilidad será debida a que el problema real no tiene solución. 3. Podría ser otra restricción que use las mismas variables.2 Modelo incompatible Un modelo no tiene solución si existen restricciones contradictorias. Un modo lógico de buscar las restricciones que generan la incompatibilidad es ir anulándolas. aunque la inversa no es siempre cierta. Mientras que en un modelo incompatible el problema es la existencia de demasiadas restricciones.4 Modelo Resoluble Cuando un modelo no es incompatible y es acotado se conoce como un modelo resoluble. podría ser que el modelo fuera demasiado restrictivo (aunque no llegue a ser incompatible) o demasiado laxo (aunque no llegue a ser no acotado) En muchos casos.2. Es interesante. el modelo debiera soportarla. De la exposición anterior se desprende de modo natural que el proceso modelado-validación debe ir repitiéndose hasta converger en un modelo que represente de modo suficientemente acertado la realidad. 3. si puede ayudar a reconocer el error de formulación. introduciéndola como restricciones de igualdad. Hay que destacar el valor de la optimización en la validación del modelo. La solución obtenida en este caso. las incompatibilidades se producen por triangulación de restricciones (en pocas ocasiones pero ocurre). Otro mecanismo para encontrar las incompatibilidades es generar una solución obvia (o real). el esfuerzo (aunque sin solución) ya está siendo eficaz. Si no lo hicieran las restricciones violadas serán las incompatibles. en un problema no acotado faltan restricciones. Una que da buenos resultados es modificar de manera sistemática los costes en la función objetivo (o las limitaciones en las restricciones) para comprobar que se puede modificar la solución modificando los coeficientes. cuando se trata de un modelo nuevo. y cada modelador tiene su estructura de trabajo. probar con diferentes objetivos. alguna restricción debe ser utilizada completamente. por tanto. Y este proceso es muy útil para entender la propia realidad modelada. Para comprobar que los resultados son lógicos existen múltiples maneras. y por tanto. Por eso muchas herramientas resuelven inicialmente el dual. este análisis ya está conduciendo hacia un mejor entendimiento del problema. Si no lo fuera el modelo sería erróneo. Cuando se trata de maximizar (o minimizar) alguna cantidad.3 Modelos no acotados Se dice que un problema no está acotado si su función objetivo se optimiza cuando alguna variable tiende a infinito. El sentido común es el mejor aliado en este caso. se pueden ir comprobando todas. 3. Página 34 de 190 © JPGS2011 . Cuando se obtenga la solución óptima de un modelo resoluble lo primero que hay que hacer es comprobar que ésta es lógica. ocasiones. Los modelos no acotados tienen un “dual” incompatible. Si el resultado es lógico deberíamos compararlo con un resultado real. Generalmente restricciones físicas obvias que han sido olvidadas o relaciones entre variables no consideradas. porque dan relevancia a diferentes restricciones y.Usando las matemáticas para pensar sobre Dirección de Operaciones. Al obligarla.2. Incluso.m. si todo el mundo las utiliza igual.d. y por tanto sería interesante construir modelos que sean resueltos de modo rápido. este tiempo compensa el que posteriormente habría que invertir en la interpretación de la solución. requieren un tiempo más largo de resolución. o elementos con distinto nombre y el mismo significado. En general se admite que las letras de la h a la l (minúscula) se refieren a índices. Página 35 de 190 .    3.3 Características de un buen modelo de Programación Matemática Tres son los objetivos básicos que se deben pretender al construir modelos de programación matemática. de tal modo que los resultados se puedan. Este objetivo se contrapone en la práctica al primero de los enunciados.Modelos y Métodos de Investigación de Operaciones 3. interpretar más fácilmente. posteriormente.q suelen utilizarse como parámetros.3.2 Facilidad para detectar errores en el modelo Este objetivo está claramente unido al anterior. Aunque no existe ninguna norma escrita. aunque los modelos menos compactos.3. Sin embargo construir este tipo de modelos conduce habitualmente a soluciones difíciles de evaluar y más aún de interpretar. esto es.n. 3. Los errores podrían ser de dos tipos: de tecleo (números erróneos o defectos ortográficas) y de formulación. Muchos de estos programas tiene procedimientos que detectan errores además de otras funciones relacionadas. Es útil también utilizar acrónimos para designar las variables y las restricciones.c. 3. el uso de este estilo simplifica el trabajo que supone entender un modelo.b. Existe también unas normas de estilo que. Para evitar los problemas de tecleo es útil utilizar programas de generación de matrices o lenguajes de modelado. elementos con el mismo nombre y significado distinto. En otros es un ejercicio que debe realizar el modelador.3. En cualquier caso es imprescindible que no existan homónimos ni sinónimos. o las letras griegas suelen hacer referencia a variables binarias.3 Facilidad para encontrar la solución Los modelos de Programación Lineal utilizan una gran cantidad de tiempo de computación.z son variables mientras que a.1 Que sea un modelo fácil de entender Que sea un modelo cuyos errores sean fáciles de detectar Que sea un modelo de fácil resolución Facilidad para entender el modelo A menudo es posible construir un modelo compacto y realista donde diferentes variables aparezcan de modo implícito y no de modo explícito. no siendo obligatorias permiten entender mejor el modelo.p. que las letras x.y. En algunos casos es posible reducir el tamaño del modelo mediante procedimientos instalados en el propio editor de modelos. 3. si las restricciones de capacidad se miden en toneladas.1 y 10.3. se puede considerar como espacio de soluciones el espacio que marcan estas variables y sus restricciones.1 Uso de Cotas Es posible alcanzar reducciones sustanciales en el tiempo de computación teniendo en cuenta las cotas globales (GUB) citadas en el capítulo siguiente.Usando las matemáticas para pensar sobre Dirección de Operaciones. se puede reducir sustancialmente el número de variables utilizando la denominada formulación modal.3. 3. Es decir.3. Si un conjunto de restricciones se ve afectada por un reducido número de variables. Página 36 de 190 © JPGS2011 . 3. 3. sólo serían de interés algunos puntos (los vértices).2 Unidades de medida Cuando se modela una situación práctica es importante prestar atención a las unidades en las cuales se miden las cantidades. Y. Algunos paquetes comerciales tienen procedimientos para “escalar” automáticamente los coeficientes antes de resolver y después “desescalar” también de modo automático. Si existe una gran disparidad en los coeficientes de un modelo de Programación Lineal se incrementa sustancialmente el tiempo de computación. Unidades de Medida apropiadas y uso de formulación modal.3.3. de este espacio. Evidentemente esta reducción será efectiva dependiendo de si el paquete lleva o no incorporadas rutinas que traten estas cotas.3 Formulación Modal En problemas de Programación Lineal grandes. A continuación se presentan tres métodos que permiten reducir el coste de computación: Uso de Cotas. Idealmente las unidades se deberían plantear de tal manera que los coeficientes no nulos estén entre 0. los beneficios no se deberían dar en pesetas por kilo. e x1 ó x13. Algunos de los problemas clásicos de Programación Lineal son:  Blending (Mezcla). comprobar que el modelo se ajusta suficientemente a la realidad.2 La importancia de la Linealidad. Se considera que una función es lineal si es una combinación lineal de las variables consideradas. Los modelos de Programación Lineal son más fáciles de resolver puesto que en el espacio de soluciones factibles siempre será posible encontrar una solución en un vértice. Esto quiere decir que no pueden aparecer expresiones del tipo x1  x2 . La programación lineal. reduciendo de este modo el espacio de posibles soluciones óptimas a un número finito de las mismas.a. Quizá el problema más Página 37 de 190 . Para muchos problemas prácticos esta es una consideración que impide el uso de la Programación Lineal (aunque modos de reconvertir modelos de Programación no-Lineal en modelos de Programación Lineal) La principal razón por la que los modelos de Programación Lineal son preferibles es porque son mucho más fáciles de resolver. Los modelos de Programación Lineal exigen que tanto las expresiones de las restricciones como de los objetivos se hagan de modo lineal.Modelos y Métodos de Investigación de Operaciones 4 4. j ·xi  b j xi  0 La región de factibilidad es un poliedro y al menos una solución óptima es un vértice del citado poliedro. sujetas a restricciones lineales. 4. Este tipo de problemas consideran las decisiones relativas a la mejor generación de uno o varios productos resultado de una mezcla.1 MODELOS DE PROGRAMACIÓN LINEAL Qué es la Programación Lineal? El problema básico de Programación Lineal consiste en minimizar una función objetivo lineal de variables lineales continuas. Desde luego en cada ocasión hay que comprobar que es posible resolver mediante Programación Lineal. es decir. a i i. Una expresión estándar de un problema de Programación Lineal es: min  ci xi i s.3 Situaciones que pueden modelarse mediante Programación Lineal. 4. tienen una amplia variedad de aplicaciones. pese a sus restricciones evidentes por las características de las variables y las funciones. Si se pretende minimizar costes es importante fijar restricciones adecuadas. En cualquiera de estos casos la Programación Matemática es interesante y debe ser utilizada. Pero también podría ocurrir que no se quisiera optimizar nada o que se quieran “optimizar” diferentes objetivos de modo simultáneo.  Decisión de Inversiones. diferentes funciones objetivo conducirán a diferentes soluciones. Si se pretende maximizar beneficios hay que tener en cuenta que estos se pueden obtener a lo largo del tiempo. Incorporar el concepto de tiempo en la evaluación del beneficio se puede hacer de múltiples maneras entre las que destaca el Valor Actual Neto. La principal ventaja de estos objetivos es que los diferentes factores se ven reducidos a una unidad común: la monetaria. Maximizar rentabilidad.  Product Mix (Catálogo de Productos). Página 38 de 190 © JPGS2011 . pero también en la industria de elaborados alimenticios o en la industria petrolera tiene aplicaciones. generalmente se pretenden maximizar beneficios o minimizar costes. Algunos de los objetivos que se pueden definir son: Maximizar beneficio.4. puesto que en ocasiones minimizar costes supone no hacer nada. Minimizar el número de empleados. En su versión más básica pretende establecer la proporción de productos a fabricar dados unos recursos limitados y unos beneficios esperados. Otro de los problemas clásicos consiste en seleccionar la mejor cartera de inversiones minimizando riesgos o maximizando beneficios dado un conjunto de limitaciones en los recursos.1 Programación Lineal y Programación Multiobjetivo El caso de los Objetivos Simples es el caso más sencillo. teniendo en cuenta costes de transporte y/o de almacén. Maximizar la satisfacción del cliente y Maximizar la probabilidad de sobrevivir. Si diferentes funciones objetivo dan lugar a la misma solución es conveniente analizar la estructura del modelo puesto que puede aportar un mejor entendimiento del problema. los centros que deben producir. además de beneficios esperados y limitaciones en los recursos disponibles.Usando las matemáticas para pensar sobre Dirección de Operaciones. antiguo se refiere a la generación de dietas. en una red de suministro. teniendo estos objetivos direcciones conflictivas. Consiste en definir. Minimizar costes. la cantidad a producir y el destino de esta producción. También hay que distinguir de manera adecuada los costes fijos y los costes variables. Maximizar el número de empleados.  Problema del Transporte. 4. 4.4 Definición de Objetivos Dado un conjunto de restricciones. Podrían definirse muchos otros objetivos. Un modo de abordar este tipo de problemas es optimizar la suma ponderada de los valores de cada objetivo. Al sumar diferentes objetivos. Una variante relajada de la programación multinivel es la técnica denominada Goal Programming donde para cada objetivo se establece un valor suficiente (o valor meta). en la que los objetivos se ordenan por importancia y se van tratando de optimizar uno detrás de otro. Los pesos deben ser relativos (o valores monetarios o similares) y deben tener en cuenta el rango de acción de cada variable. Este concepto permite la existencia de múltiples soluciones óptimas. El concepto escalar de optimalidad no es aplicable en la Programación Multi-Objetivo. Página 39 de 190 . aunque sea ponderados. Una primera aproximación consistirá en resolver el problema tantas veces como objetivos tenga el resultado. se está introduciendo un cierto grado de arbitrariedad por lo que será necesario comprobar que el resultado se ajusta a nuestros requerimientos. En este caso se puede utilizar la solución para un objetivo como la solución inicial. y cada uno de los objetivos pasa al conjunto de restricciones pasando a formar parte de las restricciones. Una solución no-dominada es aquella que al compararse con cualquier otra solución factible tiene al menos uno de los objetivos mejor. puesto que conceptualmente pertenece a ella con la característica de la existencia de más de un objetivo (lo que por otro lado es más habitual en la realidad que el caso de un solo objetivo) La optimización Multi-Objetivo tiene sus raíces en los trabajos sobre economía de Edgeworth y Pareto realizados a finales del siglo XIX. Uno de los pesos que se pueden utilizar inicialmente son los precios-sombra2 que en cada resolución dan las restricciones. Para algunos autores esto no es posible salvo que se encuentre un factor común como podría ser el coste monetario. se fija también una penalización para el caso de que no se alcance dicho valor meta. Por último es posible abordar el problema Multi-Objetivo encontrando las superficies que forman los puntos no dominados. dando lugar al concepto de solución no dominada u óptimo de Pareto (recibe también otros nombres).Modelos y Métodos de Investigación de Operaciones Se ha decidido incorporar la Programación Multi-Objetivo como parte de la Programación Matemática. 2 El concepto de precio-sombra aparece al realizar la denominada interpretación económica de las soluciones. De este modo. Otro modo interesante de abordar estos problemas es la denominada Programación Multinivel. al igual que en los casos anteriores el problema pasa a tener un solo objetivo. fijando en cada caso como restricción que el valor de las funciones objetivos “más” importantes ha de ser igual al óptimo encontrado. para un modelo en que todos los objetivos menos uno se han convertido en restricciones. aunque esto no es siempre posible. utilizando en cada ocasión un objetivo distinto. siendo el decisor el que selecciona su opción. La comparación de los diferentes resultados puede dar una idea de qué solución es mejor. que es minimizar las penalizaciones ligadas a no alcanzar las metas fijadas. lo único que se pretende es encontrar una solución válida.5 4.5.2 La relación de las restricciones con la realidad. En programación multiperiodo. También si un producto se descompone la suma de las cantidades descompuestas es igual a la cantidad original ( o con un factor de rendimiento). También se podrían clasificar las restricciones en función de su comportamiento en el resto del modelo. y tienen la formulación de una combinación lineal de variables limitada por un determinado valor. Dichas relaciones se representan mediante restricciones en la programación matemática.  Disponibilidad de Materia Prima. Página 40 de 190 © JPGS2011 . 4.  Relaciones de tipo lógico.  Restricciones de Continuidad o Balance de Materiales. Las anteriores restricciones forman parte de las relaciones concretas entre las variables de los problemas.Usando las matemáticas para pensar sobre Dirección de Operaciones.  Estipulaciones de Calidad. se pueden establecer restricciones en función de características de calidad de la mezcla y las materias primas. “si consumes más de 40kw hay que activar un segundo generador” 4. Son también restricciones de continuidad las que conectan los diferentes arcos que entran o salen de un nodo (por ejemplo en problemas de distribución de energía).1 Las restricciones Tipos básicos de Restricciones Las restricciones son expresiones de relaciones entre variables. Se limita la producción de un producto en función de la venta estimada. En ocasiones las restricciones tienen forma de expresión lógica.  Limitaciones en la demanda del mercado.  Restricciones de capacidad. con las otras restricciones y con el propio modo de resolver. Las restricciones se pueden clasificar en función de la realidad que pretenden representar. Según su relación con la realidad que pretenden representar se pueden encontrar las siguientes:. los productos que quedan al final de un periodo son las que hay al principio del siguiente. Por último en ocasiones no existe ningún objetivo real. Al hacer mezcla de productos. En otras ocasiones el objetivo a perseguir no es optimizable (por ejemplo el objetivo “sobrevivir”) El uso de los modelos matemáticos nos puede permitir encontrar soluciones factibles (que cumplen las restricciones si éstas existen). Se limita la producción de un conjunto de productos debido a la limitación de alguno de los recursos utilizados en su fabricación. o en función de su relación con el resto del modelo matemático.5. Se limita la producción de un conjunto de productos según la cantidad de materia prima disponible. Modelos y Métodos de Investigación de Operaciones      Restricciones Duras y Blandas Restricciones Conflictivas Restricciones Redundantes Cotas Simples y Generalizadas. Restricciones de Rango. Restricciones Duras y Blandas Una restricción del tipo: a j j xj  b elimina, evidentemente, cualquier solución para la que la suma sobre j exceda el valor de b. Esto puede ser considerado como poco realista en algunas ocasiones. Por ejemplo, si b son las horas disponibles quizá, si interesara, habría que contratar algunas horas extras. En este caso la restricción se denomina blanda. Son duras aquellas restricciones que no se pueden violar de algún modo. Un mecanismo para modelar las restricciones blandas podría ser: a x j j j u  b donde u es una variable que aparecería en la función objetivo con un coste c·u. De este modo en caso de ser necesario la restricción sería violada aunque penalizando la función objetivo. A la variable u se le puede incorporar un límite de tal manera que no exceda un cierto valor. Si la restricción blanda es una desigualdades mayor o igual se puede aplicar el mismo esquema. a j j xj  b Si la restricción es una igualdad la restricción debe sustituirse por: a j j xj u v  b tanto u como v se verán penalizados en la función objetivo y en la solución uno de los dos valores debe ser cero. Restricciones conflictivas En ocasiones ocurre que un problema incorpora un conjunto de restricciones que no siempre pueden satisfacer al máximo cada una de las restricciones. En este caso los objetivos serían también conflictivos. Página 41 de 190 Usando las matemáticas para pensar sobre Dirección de Operaciones. El tipo de modelo a que da lugar esta situación es de los que se llaman modelos de “coordinación de objetivos”. Cada restricción es, en este caso un objetivo, que debe cumplirse tanto como sea posible. Por ejemplo, si se pretendiera imponer el siguiente conjunto de restricciones: a j ij x j  bi i Y se deseara admitir que no todas se cumplen, se podría modelar del siguiente modo a j ij x j  u i  v i  bi i El objetivo sería asegurar que cada restricción se cumple lo máximo posible. Este objetivo se puede modelar, entre otros modos de estas dos maneras a) Minimizar la suma de todas las desviaciones Min u i i  vi b) Minimizar la máxima desviación Min z s.a. z  ui  0 z - vi  0 i i Sea cual sea el método elegido podría a su vez ser ponderado si alguna de las restricciones parece más importante. Restricciones redundantes En el caso en que se tenga una restricción del tipo a j j xj  b y la evaluación a j j x j sea en cualquier caso inferior a b, se puede decir que la restricción es redundante, o que su precio sombra es nulo, es decir no tiene influencia sobre la función objetivo. Una restricción redundante puede ser eliminada sin afectar al óptimo. Generalmente no es posible eliminar las restricciones redundantes a priori. Además, si el modelo se va a usar de modo continuado, la restricción no se puede eliminar por si nuevos valores de los coeficientes convierten a la restricción en relevante. Hay que tener en cuenta que en la Programación Entera la redundancia no es tan fácil de considerar como en la Programación Lineal, más aún en ocasiones las restricciones redundantes facilitan la búsqueda del óptimo. Página 42 de 190 © JPGS2011 Modelos y Métodos de Investigación de Operaciones Cotas Simples y Generalizadas Las cotas simples se pueden manejar de manera mucho más eficiente definiéndolas como tales. El motivo, que ya se ha indicado anteriormente es la existencia de una versión revisada del Simplex que maneja de manera especial estas cotas y reduciendo el tiempo total de computación. Las cotas simples tienen las siguientes formulaciones x U o xL Las otras cotas que algunos paquetes de resolución consideran son las denominadas Cotas Generalizadas (GUB) x Restricciones de Rango i U En ocasiones las restricciones adquieren este formato: b2   a j x j  b1 j Estas restricciones (en realidad son dos) pueden expresarse como tales, pero existe un modo más compacto y que está disponible en muchos paquetes comerciales. Consiste en definir únicamente la restricción a x j j  b1 con un rango de (b1-b2) Otro modo de expresarlas consiste en transformar las restricciones en otras de este tipo:  a x   u  b j j 1 u  b1  b2 siendo estas restricciones más fáciles de manejar por la mayor parte de paquetes y, por tanto, el tiempo de computación para obtener la solución se verá reducido. 4.6 4.6.1 Análisis de resultados Interpretaciones económicas Para avanzar en esta sección es conveniente plantear un problema de mezcla de productos que sirva como ejemplo. Una empresa fabrica 5 tipos de productos utilizando fundamentalmente 2 tipos de recursos (3 tornos y 2 fresas) Tras deducir el coste de la materia prima cada producto aporta el beneficio expresado en la tabla 2. En la misma tabla se representa los tiempos de operación necesarios para hacer cada producto en cada máquina. Página 43 de 190 como los rangos en los que se deben mover las variables para no cambiar de solución básica. El modelo del programa es: [Max] 550 x1 +600 x2 + 350x3 + 400x4 + 200x5 Sujeto a: Tornos Fresas Montaje La solución del problema es x1=12. Pero además existe información de interés que puede salir del modelo.2. En general cualquier paquete informático incorpora un análisis de sensibilidad más que suficiente para conocer tanto los costes reducidos y los precios sombra.4.x3=x4=x5=0 Con valor de la función objetivo de 10920 euros Ejemplo 1 De la observación de los resultados se conoce que tanto la restricción de tornos como la de Montaje están al límite. Precios sombra Página 44 de 190 © JPGS2011 .x2=7. 12 10 550 Pr 2 20 8 600 Pr 3 16 350 Pr 4 25 400 Pr 5 15 200 Al acabar el proceso de fabricación es necesario proceder al montaje final de cada producto que exige 20 horas de operario. mientras que fresas tiene aún capacidad. Pr 1 Torno Fresa Beneficio unitario La semana tiene 6 días de 16 horas. También pueden obtenerse de la resolución del dual que se explica en un punto posterior.5 para que fueran rentable 12x1 +20x2 10x1 +8x2 20x1 +20x2 +16x3 +20x3 +20x4 +20x5 +25x4 +15x5 288 192 384 fabricarlos (coste reducido)? b) Cuánto vale una hora extra de cada recurso (precio-sombra) Estos resultados pueden obtenerse del análisis del simplex si este método ha sido utilizado como el de resolución. La empresa dispone de 8 operarios trabajando en cada uno de los dos turnos. a) ¿Cuánto debieran incrementar su precio los productos 3.Usando las matemáticas para pensar sobre Dirección de Operaciones. Estos límites (rangos) se establecen en la siguiente sección. y combinarlas linealmente con el término independiente de cada restricción para generar la función objetivo.2 El Modelo Dual El modelo dual se genera al convertir los objetivos en restricciones y las restricciones en objetivos. De este modo el anterior problema queda. Estas variaciones son siempre marginales y tienen un cierto límite (incorporar 10000 horas de montaje sería absurdo). concretamente del coste de la oportunidad perdida. mientras que sería nulo si aumentáramos las horas de fresa. Básicamente se trata de crear tantas variables como restricciones se encuentran.Modelos y Métodos de Investigación de Operaciones El “precio sombra” es el precio máximo que se debería pagar por una unidad extra de un determinado recurso.75 Ejemplo 2 Esto significa que si aumentáramos en una unidad el número de horas disponibles de torno el incremento en el beneficio de la empresa sería de 6. Los “precios sombra” de varias restricciones no pueden utilizarse simultáneamente pues las variaciones en los términos independientes de varias restricciones simultánemente.6. Al mismo tiempo los coeficientes de la función objetivo pasan a ser los términos independientes de las restricciones. Otra manera de observar los costes reducidos es como el dinero que se dejaría de ganar si se obliga al sistema a producir al menos un producto del tipo en cuestión. También este incremento en precio tiene un límite por encima del cual no se van a establecer más variaciones. Los precios sombra son un claro ejemplo de costes de oportunidad. Costes reducidos Los “costes reducidos” son el valor que habría que subir el precio (o la contribución marginal) de cada producto para que la variable que lo representa no fuera nula. 4. [Min] 288y1+192y2+384y3 sujeto a: 12y1 +10y2 20y1 +8y2 16y2 25y1 15y1 +20y3 +20y3 +20y3 +20y3 +1y3 550 600 350 400 200 Al resolver el modelo dual se obtiene la siguiente solución para las variables: y1=6. Este concepto es el denominado Precio Sombra.25 €.25 y2=0 y3=23. cuya matriz tecnológica es la transpuesta de la original. no suponen la suma de los precios sombra en la función objetivo. Página 45 de 190 . Así en el modelo de ejemplo lo que importa es que se fabrican productos de tipo 1 y tipo 2 de tal manera que utilizan a plena capacidad los recursos torno y mano de obra. Esto se da en una gran proporción de casos en los que no se puede cambiar la política de una empresa debido a pequeñas variaciones en los datos de entrada.3 Análisis de Sensibilidad Al resolver un modelo lo importante generalmente no es conocer los valores solución de cada una de las variables. para saber si hay que invertir un mayor esfuerzo en conocer exactamente el dato. Si un modelo es estable ligeras variaciones de los coeficientes no variarán esta política. Rangos en las restricciones En el apartado anterior se han descrito los “precios sombra” como útiles para predecir el efecto de pequeños cambios en el valor de la restricción. La misma aplicación en análisis de sensibilidad que los rangos en las restricciones pueden tener los rangos en los objetivos. es útil conocer éste.Usando las matemáticas para pensar sobre Dirección de Operaciones. Además de que aquí no solo variará la “política” de la solución sino tampoco la cantidad exacta. En ocasiones los valores de las restricciones (y otros coeficientes) no son estrictamente conocidos. 4. suponer que se va a poder violar la restricción: a a Página 46 de 190 j j xj  b Para ello resulta de interés que se pueda establecer como: xj u  b © JPGS2011 . Cuando los rangos son amplios se puede asumir que un modelo es estable. De algún modo este tipo de situación puede ser modelado “relajando” algunas restricciones. Las soluciones estables son aquellas en las que pequeñas variaciones de los coeficientes no alteran la solución final. 4. Se ha indicado también que estos cambios son así interpretables dentro de un determinado rango. es decir. Rangos en el objetivo A menudo es útil conocer los efectos de cambios en los coeficientes de la función objetivo en la solución óptima (para ello se han definido los costes reducidos). Conocer los rangos en los que se puede mover una restricción sin alterar gravemente la solución. o la función objetivo sino la política a la que conduce el modelo. Análogamente a las restricciones se pueden definir rangos de variación donde no existirán variaciones en la estructura de la solución. sirve para realizar análisis de sensibilidad.6.6. pero se la solución no variara (conceptualmente) con variaciones en los coeficientes dentro del rango.4 Modelos Estables En muchas ocasiones es más interesante encontrar soluciones estables que soluciones óptimas. sino únicamente las cantidades concretas. Modelos y Métodos de Investigación de Operaciones Y un sumando en la función objetivo que penalice el uso de u. Página 47 de 190 Usando las matemáticas para pensar sobre Dirección de Operaciones. 5 LINEALIZANDO LO NO LINEAL Cuando se trata de un modelo lineal los beneficios (o costes) son proporcionales a la cantidad vendida o fabricada, el uso de un recurso limitado depende linealmente de la cantidad fabricada y el uso total de un recurso por parte de un conjunto de actividades es la suma de consumos parciales. Todas estas expresiones configuran un modelo lineal. Sin embargo en realidad se dan, en ocasiones, circunstancias no lineales. Es fácil encontrar ejemplos sencillos de expresiones que, siendo aparentemente lineales, en el fondo no lo son, como por ejemplo el objetivo de minimizar el valor absoluto de una diferencia. También es habitual encontrar relaciones entre variables cuya aproximación es difícilmente aproximable a un caso lineal. Así por ejemplo los beneficios asociados a la venta de un producto pueden depender de la cantidad vendida. Un modo bastante acertado de representar esta relación entre el precio de venta y la cantidad pedida es la denominada elasticidad de precios (la inelasticidad supone que un incremento en el precio supone incremento en los beneficios). El grado de elasticidad de un producto es: Ex  porcentaje de cambio en la cantidad x demandada porcentaje de cambio en el precio De este modo, y asumiendo Ex constante en un rango: p( x)  x k 1 Ex donde k es el precio sobre el cual la demanda es unitaria. Por tanto los beneficios esperados para una venta de x son: p ( x)  x  k  x (1 1 Ex ) Ejemplo 3 Página 48 de 190 © JPGS2011 Modelos y Métodos de Investigación de Operaciones El anterior es un ejemplo de relación no lineal que conduciría a un objetivo no lineal. Existen también ejemplos de restricciones no lineales. Por ejemplo en la mezcla de componentes cuyas características mezcladas no tengan un comportamiento lineal. O cuando se vean afectadas por un producto de variables (por ejemplo, mantener la presión de un gas por debajo de ciertos niveles, pudiendo alterar volumen y temperatura). Más habituales aún son las restricciones de tipo lógico, que por su propia estructura no son lineales. Los modelos de programación no-lineal son mucho más complejos de resolver que sus análogos lineales, además en muchos paquetes aunque se encuentra una solución ésta no es necesariamente óptima. Sin embargo es posible convertir relaciones no lineales en aproximaciones lineales. Y ese es el objeto de este capítulo. 5.1 Objetivos no Lineales fácilmente linealizables En los siguientes apartados se relacionan algunos de los objetivos que más comúnmente se encuentran en la construcción de modelos pero que no son lineales en su definición. Dichos objetivos son:    5.1.1 Minimizar un valor absoluto. Minimizar el máximo. Minimizar un ratio. Objetivo “Minimizar un valor absoluto”. Esta situación se da cuando se pretende minimizar una cierta discrepancia entre dos valores.  Min tercera variable que: x y La función absoluto no es una función lineal, para convertirla en lineal es necesario establecer una Min sujeto a: z z x y z yx Página 49 de 190 1.1.Usando las matemáticas para pensar sobre Dirección de Operaciones. 5. Y por tanto debe ser linealizada. Sin embargo los objetivos maximizar el máximo y minimizar el mínimo no se pueden representar de modo lineal.2 Objetivo “Minimizar el Máximo” o “Maximizar el Mínimo” En ocasiones el objetivo que se persigue se representa de la siguiente manera: Min  Max  a j xij i j La función máximo no es una función lineal. Max a j j j xj j b x j Es posible transformar la función objetivo de forma que se convierta en un objetivo lineal. Para ello hay que establecer una transformación de variables como la que se representa a continuación: wj  x j  t donde t 1  bj x j j Con esta transformación el objetivo pasa a ser lineal. con la siguiente expresión: Página 50 de 190 © JPGS2011 . Dichos siguientes objetivos no-lineales pueden ser representados genéricamente del siguiente modo. sino según Programación Entera ( y se presentan en un apartado posterior) 5. El objetivo minimizar el máximo se puede convertir en un objetivo lineal introduciendo una variable z que lo representa. Por ejemplo maximizar la relación beneficios/inversión.3 Objetivos de Ratio En ocasiones aparecen objetivos de ratio. La nueva formulación es: Min sujeto a: z a j j xij  z  0 i Las nuevas restricciones garantizan que z será mayor o igual que cualquiera de los valores a j k xij i Evidentemente el objetivo Max  Min i a j j x ij se puede representar también de un modo similar. Pero eso exige el uso de restricciones de tipo lógico que se analizarán más adelante. 5. =1 abrir en Valencia. Estas indican la decisión a tomar. b w j j j 1 Y además hay que convertir las restricciones originales que utilizan las variables x que han sido transformadas d j j xj  e  en nuevas restricciones que usan la variable wj d j j w j  et  0  Hay que destacar que esta transformación es válida si b x j j j es siempre del mismo signo y no nula. =2 abrir en Alicante) Página 51 de 190 .Modelos y Métodos de Investigación de Operaciones Max a w j j j Para garantizar la transformación hay que incorporar la siguiente restricción.1.. 5.4 Objetivos Maximizar el Máximo (o Minimizar el Mínimo) Si el objetivo fuera del tipo Max Sujeto a Max  a ij x j i j restricciones lineales convencionales Este tipo de situación se puede modelar del siguiente modo Max z Sujeto a ( a j 1j x j  z  0)  ( a j 2jxj  z  0)  .. El uso de variables enteras en el proceso de modelado puede servir a diferentes propósitos como se ha indicado anteriormente.2 El uso de variables discretas para representar relaciones condicionales. Pueden representar cantidades indivisibles y también variables de decisión. Suelen ser variables de tipo binario 0-1 (=1 abrir centro y =0 no abrir) Aunque nada impide que adopten más valores (=0 no abrir. Sea la restricción: a j j xj  b Supóngase que se desea que =1 represente que la restricción se cumple.2. j También se pueden utilizar estas variables indicadoras para conocer si una restricción es violada o no. 5. y que el coste fijo no se paga si la cantidad fabricada es 0. en este apartado se pretende establecer. mediante una variable  si x es mayor que 0 o es nulo (=1 o =0 respectivamente). la utilidad de las variables enteras para establecer relaciones entre restricciones basadas en condiciones.Usando las matemáticas para pensar sobre Dirección de Operaciones. 5.2 Relación Lógica:  1  ajxj  b. Sin embargo. La suposición de que la producción de un determinado artículo supone un coste fijo C1 además de un coste variable C2 que depende de la cantidad.2. De este modo CT  C1    C 2  x Esto se podría lograr estableciendo la restricción x  M  0 donde M es una cota superior conocida de x. 5.1 Funciones no continuas. esto se puede expresar como:  1  ajxj  b j Se puede mostrar que el modo de representar ésta condición mediante una desigualdad lineal es: a j j x j  M  M  b Donde M es tal que a x j j j  b  M en cualquier circunstancia.3 Relación Lógica a x j j j  b    1: Podría interesar representar la siguiente condición Página 52 de 190 © JPGS2011 .2. C  C2 x CT   1 0 x0 x0 Sería interesante conocer. 4 Relación Lógica a x j j j  b    1: Podría interesar representar la siguiente condición a x j j j  b  1 Esta condición se representa del siguiente modo: a x j j j  ( m   )  b   Donde m es una cota inferior de a x j j j  b y  es la tolerancia a partir de la cual consideramos que a x j j j b 5.2. esto se puede expresar como:  1  ajxj  b j Se puede mostrar que el modo de representar ésta condición mediante una desigualdad lineal es: a x j j j  m  m  b Donde m es una cota inferior de a x j j j b Página 53 de 190 .2.5 Relación Lógica  1  ajxj  b: j Sea ahora la restricción: a x j j j b Supóngase que se desea que =1 represente que la restricción se cumple. 5.Modelos y Métodos de Investigación de Operaciones a x j j j  b  1 Esta condición se representa del siguiente modo: a x j j j  m·  b Donde m es una cota inferior de a x j j j b. podría interesar representar la siguiente condición a x j j j  b  1 Esta condición se representa del siguiente modo: a x j j j  (M   )  b   Donde M es de nuevo una cota superior de considera que a x j j j  b y  es la tolerancia a partir de la cual se a x j j j b 5.7 Relación Lógica a x j j j  b  1 : Asimismo. Para poder abordar este apartado es necesario establecer una cierta notación del Algebra Booleana básica: ‘’ significa o (o inclusivo.2.6 Relación Lógica a x j j j  b  1 : Podría interesar representar la siguiente condición a x j j j  b  1 Esta condición se representa del sigiente modo: a x j j j  M ·  b b Donde M es de nuevo una cota superior de a x j j j 5.. B. Página 54 de 190 © JPGS2011 .2.Usando las matemáticas para pensar sobre Dirección de Operaciones. x>0.3 Más Relaciones Lógicas y su representación. A. etc.R. o ambos) ‘  ’ significa y ‘ ¬ ‘ significa NO ‘’ significa implica ‘’ significa si y solo si Estos elementos se denominan operadores y unen proposiciones como P.. =1.Q. 5. La expresión buscada es:  x  b    x  1   y  y  1  x  b    x  1    1   y  y  1 Usando : Página 55 de 190 .} sirve para representar cualquier combinación posible (lo que es especialmente interesante). Así por ejemplo si Xi es la proposición i=1. se puede decir que: X 1  X 2 es equivalent e a  1   2  1 X 1  X 2 es equivalent e a  1  1. ‘’ y ‘’. lo cual evita el uso de excesivos paréntesis. Asumiremos que los símbolos por orden de importancia son ‘ ¬ ‘ .Modelos y Métodos de Investigación de Operaciones El par de operadores { ¬ . ‘’ .  2  1 X 1 es equivalent e a 1 . 1  1 ó  1  0 X 1  X 2 es equivalent e a  1   2  0 X 1  X 2 es equivalent e a  1   2  0 Suponga que se quiere garantizar que si x=1 entonces y=0. Siendo x y z variables enteras. Así por ejemplo: (PQ)R se puede escribir como PQR P(QR) se puede escribir como PQR ¬ ¬ P es lo mismo que P PQ es lo mismo que ¬ PQ PQR es lo mismo que (PQ)(PR) PQR es lo mismo que (PQ)(PR) PQR es lo mismo que (PR)(QR) PQR es lo mismo que (PR)(QR) ¬ (PQ) es lo mismo que ¬ P ¬ Q ¬ (PQ) es lo mismo que ¬P  ¬Q Mediante estas reglas básicas es posible construir casi cualquier expresión y reducirla a otra que utilice distintos operadores. siendo ambas variables binarias x+y≤1 Ejemplo 4 Ejemplo 2 Suponga que se quiere garantizar que si x≤b y x≥1 entonces y=z+1.  x  b     1  x  1     1   1     1     1   y  z  1   1   y  z  1  1 Se puede afirmar que la expresión es equivalente a:     1 x  M  b 1 xM  0 y  z  m  m  1 y  z  M  M 1 Donde m es una cota inferior de y-z-1 y M es una cota superior de y-z+1 Ejemplo 5 En un caso de programación de producción.Usando las matemáticas para pensar sobre Dirección de Operaciones. si cualquiera de los productos A o B se fabrican. D. Esta condición se puede representar como (X A  X B )  (X C  X D  X E ) Sea i=1  se fabrica el producto i Sea  una variable auxiliar tal que A B 1 1 Esta expresión se puede indicar como  A   B  2  0 Además  1  C  D  E 1 Lo que se puede expresar como  C D E  0 Así pues el ejemplo se puede representar como el par de restricciones  A   B  2  0      C   D   E  0 Página 56 de 190 © JPGS2011 . E. entonces hay que fabricar C. están implementadas en múltiples paquetes porque facilitan la resolución. Estas variables se denominan SOS1.Modelos y Métodos de Investigación de Operaciones Ejemplo 6 En ocasiones se admite como útil el uso de polinomios de variables indicadoras. Estas expresiones pueden ser siempre sustituidas por expresiones lineales.10  sería del tipo Página 57 de 190 . Estas son conjuntos de variables en que sólo una de entre todas puede adoptar un valor no nulo. El modelado de una función como x  0.4 Conjuntos especiales de variables ordenadas Existen dos tipos de restricciones cuya presencia en problemas reales es habitual y que. además. por ejemplo  1   2  0 es equivalent e a  1   2  1  1   2  1 es equivalent e a  1   2  2 De modo más general si el término variable 1  2 ha de aparecer siempre podrá ser sustituido por una  3   1   2 que tiene la siguiente condición  3  1  ( 1  1   2  1) lo cual se puede expresar mediante  1   3  0 2 3  0 1   2   3  1 Es incluso posible linealizar términos en los que se multiplica el valor de una variable 0-1 con una variable real ( x   ) Sea y  ( x   )   0  y  0   1 y  x lo que es equivalente a y  M  0 -x  y 0 x  y  M  M 5.6 3 x  8 x  6. así.4 2 x  y   x  4 x  4. 0) (5.Usando las matemáticas para pensar sobre Dirección de Operaciones. Usando por tanto más variables aunque menos restricciones (concretamente una) 0  1  2  3  4  1 Y allí donde se encuentra xA y xB los cambiaremos por: x A  2 2  4 3  5 4 x B  51  5 2  3 3 Donde los coeficientes son las coordenadas x e y de cada uno de los puntos.  2 . Sea el siguiente conjunto de restricciones: x A  xB  7 3·x A  x B  15 xB  5 (0.0) 4 xA La representación gráfica del espacio de soluciones de este modelo es: Esta situación se puede modelar representando exclusivamente los vértices. Este tipo de formulación puede ahorrar gran cantidad de tiempo en la resolución del problema.5) 1 2 (2. 3 . Página 58 de 190 © JPGS2011 .3) 3 xB 0 (0. x  4 2  6 3  10 4 y  8 2  10 3  22 4 1   2   3   4  1 siendo ( 1 .5) (4.  4 )un conjunto SOS2 Otro ejemplo de uso de estas variables es la denominada formulación modal. En ellos sólo dos variables pueden tener valor no-nulo y además deben ser consecutivas. Asociadas a estas existen los conjuntos de variables denominadas SOS2. citada en un apartado anterior. C . y por tanto reduce el coste computacional. utilizando las variables  1 .Modelos y Métodos de Investigación de Operaciones Supóngase que la región de factibilidad de una variable es la siguiente OABCDEFG región noconvexa D A B C E F G Esta región se puede representar de la siguiente manera.  E .  B .  D .  2 y 3  1  1  ( x2  3)  ( x1  x 2  4)  2  1  (  x1  x 2  0)  (3x1  x2  8)  3  1  ( x 2  1)  ( x1  5) lo que equivale a imponer las siguientes restricciones: x2   1  4 x1  x 2  5 1  9  x1  x 2  4 2  4 3x1  x 2  7 2  15 x 2  3 3  4 x1  5 1   2   3  1 Existe una formulación alternativa para una región no-convexa y conectada. Esta sería la siguiente x1   B  2C  4 D  3 E  5 F  5G  0 x 2  3 A  3b  2C  4 D   E   F  0  A   B  C   D   E   F  1 Siendo en este caso el conjunto ( A .  F ) del tipo SOS2 El uso de estos dos tipos de variables SOS1 y SOS2 es considerado explícitamente por algunos motores de resolución y facilita enormemente el proceso de ramificación y corte. Página 59 de 190 . 6. 6. En realidad en estos casos es especialmente relevante la PE sólo si los valores resultado son de un dígito. Los tiempos de computación para resolver un problema de Programación Entera son mucho más largos que para un problema de Programación Lineal de similares características. Página 60 de 190 © JPGS2011 .2. simplemente introduciendo nuevas variables como se verá en un apartado posterior. 6 6.2 Problemas con condiciones lógicas Suele ocurrir que en algunas de las restricciones que se deseen imponer son de tipo lógico.3 Problemas de combinatoria Muchos de los problemas prácticos de Investigación Operativa tienen como característica básica la existencia de un extremadamente largo número de soluciones posibles. por ello en los últimos apartados del presente capítulo se abordará el problema de reducir el tamaño de los modelos. 6.33 unidades.2 Diferentes áreas de aplicación de la Programación Entera En el presente apartado se tratan diferentes áreas donde la programación entera resulta de interés.2.Usando las matemáticas para pensar sobre Dirección de Operaciones. hay que destacar la problemática de la resolución de estos modelos. Antes de abordar la linealización mediante programación entera. Tales valores se utilizan para modelar decisiones “si o no”. Existe un peligro evidente de invertir gran cantidad de recursos en modelar. “si se abre fábrica en Valencia. En otros casos basta resolver como si fuera Programación Lineal y posteriormente redondear. Por tanto la solución debe ser entera. 6. Dichas soluciones aparecen a partir de diferentes métodos de ordenar actividades y/o asignar recursos. Como se verá en los siguientes apartados. usando este tipo de variables y manteniendo la linealidad. En la mayor parte estos los valores que pueden adoptar las variables enteras son 0-1. no se debe abrir en Madrid” Este tipo de condiciones lógicas pueden ser modeladas mediante Programación Entera. sólo para descubrir al final que el problema no era resoluble en un tiempo razonable.1 Problemas con inputs (u outputs) discretos Este es el caso más obvio: si fabricamos aviones o coches no es posible fabricar 2.1 MODELOS DE PROGRAMACIÓN ENTERA Introducción Una gran cantidad de problemas reales se puede modelar utilizando variables enteras y restricciones lineales.2. es posible establecer relaciones lógicas entre restricciones.   N  1 Ejemplo: Sea una restricción R1  R2  R3 Si Ri es del tipo a j 1j ij x j  bi entonces el caso se representa como: a j x j  M 1  M  b1 x j  M  2  M  b2 x j  M  3  M  b3 a j 2j a j 3j Página 61 de 190 . y cada trabajo exige sólo un recurso. Algunos problemas de Reparto no requieren PE..3 Otras condiciones aplicadas a Modelos de Programación Lineal La mayor parte de los modelos de PEM aparecen desde Programación Lineal en la que hay que aplicar unas restricciones extraordinarias.... 6.1 Restricciones disyuntivas Supongamos que en un problema de Programación Lineal pretendemos que no todas las restricciones actúen simultáneamente R1  R2  R3  ..2. Para ello se han mostrado diferentes técnicas en el capítulo anterior. Los problemas de tipo combinatorio se pueden clasificar a su vez en problemas de “Secuencia” o de “Reparto”. aunque la mayoría sí..N) donde  i  1 si se ha de cumplir Ri.. 6. En este apartado se observan las más comunes de estas restricciones.  R N Introduciremos un conjunto de variables  i (i=1. donde existen tantos trabajos como recursos.4 Problemas No-lineales Como ya se ha comentado en el capítulo anterior los problemas No-Lineales se pueden atacar mediante modelos de PE. Estos últimos se clasifican a su vez en problemas de asignación..Modelos y Métodos de Investigación de Operaciones Este tipo de problemas se denominan “Combinatorios”. 6.  i  1  Ri Y el conjunto  i debe cumplir  1   2  . y los problemas de transporte donde cada trabajo requiere varios recursos.3. y se pretende que una vez cerrada ya no se vuelva a abrir  t  0  ( t 1  0)  ( t  2  0)  . Para hacer esto se necesita la PE.3 Regiones No-Convexas Limitar el número de variables en una solución Esta es otra aplicación de restricciones disyuntivas.5 Extensiones discretas de capacidad A menudo no es realista suponer que determinadas restricciones no pueden ser violadas.2 n 1   n  0 6. Página 62 de 190 © JPGS2011 .3..Usando las matemáticas para pensar sobre Dirección de Operaciones. Así por ejemplo una máquina podría aumentar su número de horas disponibles sin más que duplicar (o triplicar) el número de turnos que trabaja.4 i k que reducirá a k el número de variables no-nulas Decisiones Secuencialmente Dependientes A menudo ocurre que se pretende que una decisión se prolongue en el tiempo. Como ya se ha comentado en cualquier problema de Programación Lineal no habrá más variables no-nulas que restricciones.  ( n  0) se puede representar como  2 1   2  2 2   3 0 0 .3.3. Para ello se incorporan nuevas variables  i tales que: xi  0   i  1 lo que equivale a introducir la restricción x i  M i  0 En este caso se introducirá la siguiente condición  6. . Con evidentemente un coste asociado. 1   2   3  1 6.3. Por ejemplo si t representa si una instalación está abierta o cerrada... Sin embargo es posible que nos interese reducir este número de variables no nulas.2 6...  bn n  0 y en la función objetivo se añade co 0  c1 1  .. comparativamente..  c n n el conjunto de variables (  0 ...  n ) es de tipo SOS1 y fijándole una cota de 1 no es siquiera necesario establecer condiciones de integralidad.2. teniendo cada clase un coste el problema es cubrir todos los miembros de S utilizando miembros de T” Página 63 de 190 ...4.. El mejor modo de resolverlo es programación dinámica..m) y dada una clase T de subconjuntos de S.  1 . La importancia de estos problemas radica en el hecho de que los problemas complejos se suelen poder reducir a combinaciones de éstos..4 Tipos Especiales de Modelos de Programación Entera En estos apartados se presentan algunos problemas clásicos de Programación Entera.. 6. y no ramificación y corte que explora de manera demasiado amplia. El problema de la mochila es. 6.  c n j x j  bj Donde bi es variable y tiene un coste asociado de ci (independiente para cada bi) con Esta situación se puede modelar del siguiente modo en la restricción a j x j  bo 0  b1 1  . 6...Modelos y Métodos de Investigación de Operaciones Supongamos que la restricción citada se puede expresar como a 0  c o  c1  . fácil de resolver.a a  i i b El problema de la mochila se da pocas veces de modo independiente (selección de proyectos o decisión de inversión).2 Problemas de cubrimiento Estos problemas derivan de un tipo de problema abstracto que puede ser enunciado del siguiente modo: “Dado un conjunto S de objetos que podemos numerar S=(1..4.1 El problema de la mochila Un problema de PE con una única restricción se denomina “Problema de Mochila” y toma la forma Max  c i i s.. 4.3.6)) o con ((1..(5.5)) Para modelarlo sea: 1 si el i . Y si además se permite que los demás coeficientes de la matriz puedan valer 0 y 1 (propiedad 3) tenemos lo que se denomina un problema de cubrimiento generalizado.3.. 6.2).ésimo elemento de T es selecciona do i   0 en caso contrario ci  el coste de usar el i .(5.5)).2.m) y dada una clase T de subconjuntos de S.4.2).. Sea S=(1.4).(5..6).(3. teniendo cada subconjunto un valor asociado.2.(1. P1 El problema es de minimización y las restricciones son 1 P2 Todos los coeficientes RHS son 1 P3 Todos los demás coeficientes de la matriz son 0 o 1 Si se relaja la propiedad 2 (se obliga a que algunos elementos de S sean cubiertos en un mayor número de ocasiones) se tiene un tipo de problema de cubrimiento ponderado.4.(3. Se produciría cubrimiento con ((1.a 1   2 1 1 1 2  5 1 2  4 5 1 3  5 1 3 4 1 Este problema de cubrimiento tiene 3 propiedades básicas.2).6) sea T=((1.ésimo elemento de T El modelo resulta Min  ci  i i s.4.5.(4. se trata de relacionar miembros de T que maximicen el valor pero que no se superpongan” Con el conjunto S y la clase T del ejemplo anterior el problema queda (incorporando un valor vi a cada miembro de T) Página 64 de 190 © JPGS2011 . que se pueden enunciar así: “Dado un conjunto S de objetos que podemos enumerar S=(1.Usando las matemáticas para pensar sobre Dirección de Operaciones.3 Problemas de empaquetado Otro tipo clásico de problemas son los de empaquetado.3.4).(1.6).6). Existen muchas situaciones reales asociadas a este problema de rutas. evidentemente. La variable ui representa el orden en el que el punto i será visitado.4. siendo u1=1. e incluso se da en otras situaciones como por ejemplo en la reducción de costes de cambio de partida. El problema consiste en establecer un circuito que recorra todos los destinos pasando una solo vez por cada uno de ellos. u i  u j  n ij  n  1 Esto incorpora n·(n-1) restricciones al problema. Para eliminar esta circunstancia se puede añadir el siguiente conjunto de restricciones. Página 65 de 190 .a 1   2 1 1 1 2  5 1 2  4  5 1 3  5 1 3  4 1 Las mismas generalizaciones de los problemas de cubrimiento se pueden aplicar en los problemas de empaquetado dando lugar al problema de empaquetado ponderado y al problema de empaquetado generalizado.a c  ij i.4 El Problema del viajante de comercio Éste problema es un problema muy habitual y de simple formulación aunque de resolución muy complicada en circunstancias reales. que requieren de las variables ui. no es una solución satisfactoria. Su formulación evidente es la siguiente Min s. j ij  i ij  1 j  1 i  j ij En una situación cualquiera (con 6 ciudades) la solución óptima podría ser: 2 1 3 5 4 6 lo que.Modelos y Métodos de Investigación de Operaciones Max  vi  i i s. con diferentes variantes. 6. . cuando las dimensiones no son pequeñas por ello lo habitual es plantear mecanismos de resolución especiales. Consistiría en incorporar la restricción  12   23   31  2 Esto eliminaría la solución planteada anteriormente de entre las posibles.2. se asigna un coste cijkl si al mismo tiempo que iS se asigna a jT se asigna a kS a lT. En cualquier caso hay que destacar el elevadísimo coste computacional de la resolución de este problema mediante PEM.... Si el número de restricciones incorporado es excesivo (lo que puede ocurrir) existe un procedimiento alternativo para resolver el problema de las sub-ciclos. El problema consiste en: “Dado un conjunto S con n elementos y un conjunto T con el mismo número de elementos. j . n j  1. el problema de asignación cuadrática es un problema de PE y generalmente muy difícil de resolver.  i 1 ij La diferencia con el problema de asignación normal radica en la función objetivo..Usando las matemáticas para pensar sobre Dirección de Operaciones.. j   0 en caso contrario Las restricciones son las siguientes n  j 1 n ij 1 1 i  1. n c i .l k i ijkl  ij  kl 4 Este problema se puede abordar como un problema de PE clásico con n variables binarias.2. el problema consiste en asignar exactamente un elemento de S a T y viceversa” Para ello se define 1 si i  S se asigna a j  T  i..5 El problema de asignación cuadrática Esta es una generalización del problema de asignación descrita en un capítulo anterior. Aunque el problema de asignación es un problema de Programación Lineal fácil de resolver.4. En ella las variables se multiplican. para valorar la asignación combinada.. En definitiva éste es un modo de buscar el óptimo mediante el sucesivo refinamiento del modelo. 6. También existen procedimientos específicos de resolución. Página 66 de 190 © JPGS2011 . Es decir. aunque el método es el contrario. Min s. 6. generalmente. 6. es decir. El número de restricciones afecta.Modelos y Métodos de Investigación de Operaciones 6. facilita la resolución. si el paquete puede trabajar con ellos.6.a 5 1  7 2  10 3  3 4   5  1  3 2  5 3   4   5  2 . La mayor parte de estos procedimientos parten del análisis concreto de cada problema. La primera y más importante de las razones es que la resolución de un modelo de PE es mucho más complicada que uno de Programación Lineal de parecidas dimensiones. El número de variables no es un buen indicador para saber si un modelo está bien o mal construido. De hecho en ocasiones es interesante introducir nuevas variables siempre que faciliten el proceso de resolución. un mayor número de restricciones facilita el proceso de resolución.1 Más Restricciones y Más Ajustadas En Programación Lineal es habitual pretender reducir el número de restricciones como un modo de facilitar la resolución. El motivo es que aumenta la posibilidad de que el óptimo del modelo de Programación Lineal asociado sea a su vez entero. El uso de los conjuntos ordenados de variables. Además nuevas consideraciones se convierten en importantes en el momento que el problema tiene variables enteras.5 Buenas y malas formulaciones de un modelo de PE La mayor parte de las consideraciones realizadas en apartados anteriores para la Programación Lineal sirven para la PE. En PE el efecto deseado es el mismo. en un sentido contrario que a los modelos de Programación Lineal.2 1  6 2  3 3  2 4  2 5  0   2  2 3  2 4  2 5  1  i  0.6 Simplificación de un modelo de Programación Entera En este apartado se proponen cuatro procedimientos que permiten mejorar el tiempo de resolución de modelos de PE.1 De la tercera restricción se puede sacar la siguiente relación: 2 3  1   2  2 4  2 5  1   3  12   3  1 Página 67 de 190 . haciendo que el óptimo del problema de Programación Lineal esté muy cerca del óptimo del PE. Mediante el análisis directo de diferentes restricciones es posible encontrar restricciones combinadas que reducen el ámbito de variación de diferentes variables. A efectos de la resolución la restricción  1  2 2  2 es equivalente y mucho más adecuada porque los enteros más próximos están en ella considerados El procedimiento consiste en encontrar para cada restricción a1 1  a 2 2  .  bn n  bo que no reduzca el espacio de enteros posibles pero sí el del problema de Programación Lineal asociado. para encontrar relaciones. Página 68 de 190 © JPGS2011 .. más o menos evidentes.  a n n  a o Una restricción b1 1  b2 2  . realmente el cálculo de las restricciones citadas a menudo consume excesivos recursos. que reducen el número de variables al asignarles valores.Usando las matemáticas para pensar sobre Dirección de Operaciones. 6..2 Simplificar una restricción entera con otra restricción Dada la restricción entera 4 1  6 2  9 Donde  1 y  2 son variables enteras.6. De la segunda restricción. y realizando operaciones parecidas: 6 2  2 1  3  2 4  2 5  1 Y nuevamente de la restricción tercera:   2  16   2  1  4   5  0 De donde  4  0  4  0 5  0  1  0 y la función objetivo es 0 Básicamente se puede admitir que el método consiste en analizar la configuración del problema... Aunque es un método muy efectivo. 3 Restricciones discontinuas En ocasiones hay que restringir una variable continua a segmentos o puntos. El único modo de conocer tanto la información económica prevista como de hacer un análisis de sensibilidad adecuado consistiría en resolver una y otra vez el mismo modelo cambiando coeficientes.6.Modelos y Métodos de Investigación de Operaciones 6. de las restricciones o de los coeficientes. necesariamente que no tengan precio sombra. Las restricciones no completamente utilizadas no implican. Página 69 de 190 . puesto que es posible que una ligera ampliación introduzca (o saque) de la región de factibilidad un punto que cumpla las condiciones de integralidad y mejore la función objetivo. pero también existe un procedimiento alternativo para representarla x  a  y1  b  y 2  c   2  1  y1  y 2   2  1 donde  1 y  2 son variables binarias y y1 y y2 son variables continuas (y no negativas) Un caso común pero especial es: x  0 ó x  a (a  0) En este caso x  a  y1  M  y 2   y1  y 2  1 6. por ejemplo x0 ó axb ó xc Esta circunstancia puede ser representada por un conjunto de restricciones disyuntivas.7 Información económica y sensibilidad en los modelos de PE Por las propias restricciones de los modelos de PE no es posible extraer de la resolución (o del dual) información estricta sobre los precios sombra o los costes reducidos. x2  0 Ejemplo 8 Página 70 de 190 © JPGS2011 . : x1  x 2  4 2x 1  x 2  5 .a. además en muchos paquetes aunque se encuentra una solución ésta no es necesariamente óptima.Usando las matemáticas para pensar sobre Dirección de Operaciones. y estos apuntes no pretenden ni de lejos reflejarla. x2  0 Ejemplo 7 Un modelo de Programación Matemática No-Convexo Min . Definición de un modelo de PM convexo: Se dice que un modelo de Programación Matemática es convexo si implica la minimización de una función convexa sobre una región convexa. 7 PROGRAMACIÓN NO LINEAL Los modelos de programación no-lineal son mucho más complejos de resolver que sus análogos lineales.a. 7.4 x13  3x1  6 x 2 s. Pero sí que hay que entender determinados conceptos que ayudan a comprender la complejidad del problema. Mucha investigación se dedica a este problema.x 1  4 x2  2 x1 .x 1  4 x2  2 x1 . Para poder tomar la decisión acerca de qué método de resolución es más apropiado es importante conocer si el problema es convexo o no-convexo. Un modelo de Programación Matemática Convexo: Min x12  4 x1  2 x 2 s. : x1  x2  4 2x 1  x2  5 . Definición de región convexa: Se dice que una región del espacio es convexa si el segmento que une dos puntos cualesquiera de la región está íntegramente en la región. Definición de función convexa: Se dice que una función es convexa si el conjunto de los puntos (x.1 Óptimos locales y globales El problema más grave de la denominada Programación No Lineal es la dificultad de garantizar que un óptimo local (es decir un punto que es objetivamente mejor que todos sus vecinos) sea el óptimo global.y) donde yf(x) forma un región convexa. Para ello es necesario recordar tres definiciones. Sin embargo es posible convertir relaciones no lineales en aproximaciones lineales. x3 x1  x 2 La importancia de que una función sea separable para la programación matemática radica en el hecho de que una vez separada la mayor parte de las funciones se pueden aproximar a funciones definidas por tramos que sean lineales. es lo que convierte estos problemas en muy difíciles de resolver.2 Programación Separable Se dice que una función es separable si puede ser expresada como la suma de funciones de una variable única. En este caso La función 2 Página 71 de 190 . la función resultante se puede aproximar a una función por tramos lineal. Sin embargo encontrar un óptimo global en un problema no-convexo requiere algoritmos más sofisticados. Por ejemplo. A partir de la segunda restricción del ejemplo es evidente que no es posible que x1 sea mayor que 2. Una vez las variables han sido separadas. Para convertir en lineal la siguiente función objetivo del Ejemplo 7: x12  4 x1  2 x2 solo es necesario convertir la función x1 .5. La no convexidad conduce a una situación en la que aparecen óptimos locales lejos del óptimo global. No importa donde esté la no linealidad. 7. aunque la función objetivo no lo es. la función x13  se puede denominar separable mientras que 1  log( x3 ) x2 x1  x 2  no es función separable. Si el problema es convexo cualquier óptimo que se encuentre es óptimo global. Por ejemplo el uso de la programación separable que se explica en la siguiente sección. A partir de aquí será posible encontrar un óptimo global para una función convexa.Modelos y Métodos de Investigación de Operaciones En el segundo de los ejemplos la región de factibilidad es convexa. Aunque puede parecer que la clase de funciones separables es muy restrictiva. por lo que es modelo no es convexo. La posibilidad de que óptimos locales aparezcan como óptimos propiamente dichos. cuando el modelo es no-convexo. o al menos un óptimo local si es no-convexa. en realidad es posible convertir en separables muchas funciones objetivo aparentemente no separables. pues el procedimiento es el mismo tanto se es en la función objetivo como si es en las restricciones. Si la función fuera no-convexa sería necesario añadir una restricción que tuviera en cuenta que “como máximo 2 i adyacentes pueden ser no nulos” Esta restricción sólo se puede modelar mediante Programación Entera. Existe un modo más eficiente de convertir una función no-lineal en una función lineal. En cualquier caso la separación de variables para generar problemas no convexos conduce con demasiada frecuencia a óptimos locales.5  x  y  3x  2  2.25 4  0 s. 2.2 x  2. y  x12 puede ser sustituida por: x  0. lo que da lugar a diferentes óptimos locales y.  2 . algunos de ellos es óptimo global.x1  4x2  2 . con suerte.Usando las matemáticas para pensar sobre Dirección de Operaciones.x1  -y   2  2 3  2.5 x1  01  1 2  23  2. como se vió en un apartado anterior.a.1 x  0.5 4  0   2  4 3  6. Lo destacable es que existen implementaciones que la consideran de manera eficiente.25  x5  0 . 1 .5 4 y  01  1 2  43  6.5 3 y   1  3 2  2. Este modo alternativo conduce a la siguiente formulación del Ejemplo 7 x1   1   2  0. x 2 .25 3 Página 72 de 190 © JPGS2011 .  3 .2.5 Esta representación es equivalente a: x  0. x 1 .  4  0 Ejemplo 9 Dado que la función es convexa no es necesario añadir ninguna restricción más. : x1  x 2  4 1   2   3   4  1 y. Para resolver este problema a menudo es posible resolver el mismo modelo mediante diferentes estrategias.25 4 1   2  3   4  1 Por tanto el modelo del ejemplo 1 es el siguiente: Min y  4 x1  2 x 2 2x 1  x 2  5 . Hay que destacar que u2 es un variable libre. Otro método de separación es el uso de logaritmos. Y donde la función logaritmo puede ser linealizada. 7. Aunque este modo obliga a la aparición de un gran número de variables y restricciones auxiliares. este sistema es más difícil de modelar y requiere necesariamente del uso de programación entera. es posible convertir casi cualquier función de dos o más variables en una función separable.Modelos y Métodos de Investigación de Operaciones “ si  i  0   j  1 j  i   j  0 j  i ” Aunque en tiempo de computación es más eficiente. Una de las funciones no separables más comunes es el producto de dos o más variables. donde los términos pueden ser linealizados de modo aproximado como se explica en el apartado anterior. Si observamos en nuestra función la expresión: x1  x2 ésta puede ser sustituida por u1  u2 donde 2 2 1 ( x1  x 2 ) 2 1 u 2  ( x1  x 2 ) 2 u1  que es una función separable. Sin embargo. Un tercer modo de separación es el uso de funciones lineales definidas por tramos de más de una dimensión. es decir. Y en cualquier caso el problema de óptimos locales permanece. puede adoptar valores negativos.3 Cómo convertir un modelo no separable en un modelo separable Considerar la no-linealidad sólo si el modelo es separable puede parecer demasiado restrictivo. Página 73 de 190 . La anterior función x1·x2 puede ser representada por: y donde log( y )  log(x1 )  log( x2 ) que es una restricción que puede tener variables separadas. la capacidad de emprender acciones correctivas después de que la situación incierta ocurra. puesto que en muchas ocasiones las decisiones se toman de modo recurrente. Sin embargo. A Te es la matriz tecnológica sin incertidumbre es la matriz tecnológica con incertidumbre para las variables que corresponden a la decisión a tomar. Ésta es. We es la matriz tecnológica con incertidumbre para las variables que corresponden al futuro. 8 8. Hay que destacar también la propiedad de no-anticipación que se exige a la programación estocástica.1 PROGRAMACIÓN ESTOCÁSTICA Introducción Hasta este momento todas las formulaciones que se han presentado de Programación Matemática asumen que los datos son conocidos. Y cuando ese futuro sea presente se tomará una nueva decisión. El anterior es un ejemplo de recursividad.2 Formulación de Problema Estocástico Una posible formulación del Problema Lineal Estocástico es la siguiente: min c T x  s. En ocasiones por errores de medida. Por ejemplo el departamento de compras de una empresa toma la decisión de adquirir cierta cantidad de materia prima atendiendo a una demanda conocida para el presente pero estimada para el futuro. Ax  b Te x  We y e  he x0 ye  0 p d e T e e ye Donde c T x es el coste de la decisión inmediata T d e ye es el coste de la mejor decisión en el escenario e. 8. Este tipo de problemas se dan con mucha frecuencia. Se puede definir esta como la imposibilidad de vincular la decisión en el primer periodo no depende de lo que de hecho ocurra en el segundo periodo. pero más generalmente porque son datos sobre circunstancias que se darán en el futuro. básicamente. Página 74 de 190 © JPGS2011 .Usando las matemáticas para pensar sobre Dirección de Operaciones.a. en muchos problemas reales los datos no pueden ser conocidos con exactitud. La decisión de hoy para hoy no puede ser modificada mañana. y simplemente no pueden ser conocidos con anticipación. que crece con el número de escenarios. Pero además la propia generación de los escenarios y la definición de probabilidades a los mismos pe es un tema de gran complejidad. aunque la complejidad anteriormente aludida es una limitación evidente en su uso. Una de las principales ventajas de la programación estocástica es que las soluciones que obtiene para los periodos congelados (x) son estables ante los diferentes escenarios. pero también se pueden utilizar paquetes estandar. Página 75 de 190 .Modelos y Métodos de Investigación de Operaciones Los problemas estocásticos son especialmente complicados debido a su tamaño. Existen paquetes informáticos específicamente dedicados a la resolución de problemas con escenarios. Un algoritmo puede ser programado como un conjunto de rutinas de ordenador para resolver problemas que tienen que estar expresados en un tipo particular de formato. Aunque en la práctica es posible que sea más rentable diseñar el propio procedimiento de resolución. 9. Un algoritmo es un conjunto finito y ordenado de operaciones cuya aplicación permite resolver un problema. Algoritmos del Punto Interior En cualquier caso otros hacen un uso cruzado de los diferentes métodos. Pero existen en el mercado.1 Algoritmos y paquetes Algoritmo es una palabra de origen árabe. dando por supuesto que el modelo en sí mismo podría ser resuelto. Así la estrategia que parece más adecuada para problemas de muy grandes dimensiones es utilizar algoritmos genéricos que Página 76 de 190 © JPGS2011 . En el presente apartado se pretenden mostrar cómo se resuelven problemas de programación matemática. 9 PROCEDIMIENTOS DE RESOLUCIÓN DE MODELOS DE PROGRAMACIÓN MATEMÁTICA. Cuando los algoritmos resuelven problemas suficientemente generales se suelen agrupar en paquetes que posteriormente se comercializan. Cuatro son los tipos de algoritmos que se pueden encontrar generalmente en un paquete comercial: Una versión revisada del Simplex Una extensión del Simplex para modelos separables Un algoritmo de Ramificación y Corte para modelos de Programación Entera. concretamente. Estos paquetes comerciales contienen habitualmente algoritmos para resolver modelos de Programación Lineal y de Programación Entera Mixta. disponibles para su adquisición.1 Introducción Hasta el momento se han planteado procedimientos de Modelado. procedimientos generales de resolución capaces de resolver en tiempos adecuados problemas cada vez más complicados. Al-jwarizmi era el apodo de un matemático cordobés de nombre Mohamed ibn Musa. Por ello se abordan en la fase final del capítulo métodos para diseñar procedimientos de resolución para los problemas que ya han sido modelados 9.2 Resolución de problemas de programación matemática mediante el uso de paquetes ya disponibles 9.2.Usando las matemáticas para pensar sobre Dirección de Operaciones. Existe una versión modificada del Simplex que permite trabajar con estas variables acotadas. Soluciones iniciales. Aunque en la formulación convencional de los problemas de Programación Lineal. Página 77 de 190 . si se desean utilizar: Reducción.. Esta herramienta es especialmente útil cuando se quiere probar el efecto de pequeños cambios en los valores del modelo. Soluciones iniciales La mayor parte de los paquetes permiten que el usuario aporte una solución inicial. Restricciones de Cotas Generalizadas Son bastante habituales las restricciones del tipo: x1  x 2  . Cotas de variables En algunas ocasiones el valor de las variables está acotada del siguiente modo: x U ó x  L Donde U y L son constantes. Análisis de sensibilidad Cuando se halla la solución óptima a menudo nos interesa investigar como afectarían cambios en los coeficientes de la función objetivo y las restricciones. que se puede obtener de todos los paquetes comerciales es de una gran importancia. puesto que reducen considerablemente el coste computacional. Cotas de Variables. Esta información. De este modo se reduce el tamaño y por tanto el tiempo de resolución.. Análisis de Sensibilidad. Además suelen contener unas características que los hacen muy interesantes.. en el uso de los modelos.  x n  M Este tipo de restricciones corresponden con una fila de unos en la matriz de restricciones y se suelen denominar Cotas Superiores Generalizadas GUB (Generalized Upper Bound) del subconjunto. es más eficiente considerar U o L simplemente como una cota. Si existen muchas restricciones de este tipo para conjuntos disjuntos es útil representarlos como GUB’s. esta restricción sería asociada a una fila de la matriz de restricciones. Si está suficientemente cerca del óptimo el tiempo de resolución se verá sustancialmente reducido. Reducción Algunos paquetes tienen procedimientos para detectar y eliminar redundancias en los modelos.Modelos y Métodos de Investigación de Operaciones rápidamente nos conduzcan al entorno del óptimo y finalizar la exploración del espacio de soluciones con un Simplex que Una de las mayores ventajas del uso de “paquetes” comerciales es que son muy flexibles en su uso. En la fila 1 se ha puesto los nombres de las variables. Una disposición de las celdas. meramente orientativa. 9.2. Dicha herramienta (que en ocasiones hay que instalar a través de Herramientas/Opciones) se denomina Solver.2 El uso de la Hoja de Cálculo Excel La hoja de cálculo Excel dispone entre sus herramientas una dedicada a la resolución de problemas de Programación Matemática.Usando las matemáticas para pensar sobre Dirección de Operaciones. pues el solver es versátil en ese aspecto. Página 78 de 190 © JPGS2011 ..B3:F3) ésta celda se ha copiado en las celdas de la columna G inferiores. podría ser la siguiente: En la celda G3 se ha introducido la fórmula =SUMAPRODUCTO($B2:$F2. Para ilustrar su uso. Las filas 4 a 6 se dedican a las restricciones. La fila 3 se dedica a los coeficientes de la función objetivo. se procede a plantear el modelo del apartado 3.6. Para poder usar el solver hay que acceder a través de Herramientas/Solver. bastante intuitivo por otro lado. En la columna H se colocan los límites de las restricciones. en la fila 2 aparecerán los valores de éstas. Accediendo al menú de opciones se pueden modificar parámetros tales como el método de resolución usado. Al acabar la resolución del problema el Solver pregunta qué tipo de informes se desean.Modelos y Métodos de Investigación de Operaciones Para que el ejemplo sea más ilustrativo se ha incorporado una restricción de integridad. o el tiempo máximo permitido. Dichos informes incluyen respuestas. sensibilidad (precios-sombra y costesreducidos) y análisis de límites (rangos) Página 79 de 190 . Y por tanto es posible acceder a ellos. CPLEX es el software clásico. de un cierto nivel de “tuneado”. Gusek o LPSolveIDE. El uso de paquetes de modelado aporta las siguientes ventajas: a) Un modo de entrada de datos más natural b) Corregir y verificar es mucho más fácil c) Modificar se hace más fácilmente Página 80 de 190 © JPGS2011 . en algunos segundos. Sin embargo Gurobi en el 2009 saltó a la arena. En cualquier caso además del soft de optimización. Parámetros como los gaps admisibles. Llevan años mejorando sus algoritmos y los últimos pasos que dio (concretamente CPLEX 12) parecían haber dejado completamente atrás a sus competidores. Se admite habitualmente que el mayor problema para aplicar de modo exitoso los modelos de programación matemática no son los modelos ni los tiempos de resolución. para ser eficientes. En el terreno del software comercial dos son los paquetes relevantes: CPLEX y Gurobi. y extraerlos de manera natural también. la realidad es que existen muchas alternativas que son mucho más eficientes que cualquier implementación individual. Por otro lado. En cualquier caso pueden resolver problemas con decenas de miles de variables.3 El uso de Lenguajes de Modelado El uso de paquetes para la resolución de modelos de Programación Lineal Aunque. uno podría programarse sus propios algoritmos para la resolución de problemas de Programación Lineal.Usando las matemáticas para pensar sobre Dirección de Operaciones. 9. la reducción previa. Muy lejos de estos dos software se encuentran las aplicaciones de software libre como GLPK LPSolve. con un solucionador que es capaz de dejar atrás a CPLEX. tanto enteras como binarias. para poder introducir datos en formato natural. el uso de software para la resolución de programación lineal cuando los programas son de un cierto tamaño (unos miles de variables) pueden requerir. en principio. Se pueden encontrar en el mercado diferentes paquetes que ayuden al usuario a estructurar e introducir un problema en un paquete en forma de modelo. exigen unos minutos hasta dar con una combinación adecuada. o MPL. El lenguaje de escritura más utilizado es MathProg que es implementado en diferentes herramientas como. generalmente hace falta tener un soft de interface. Algunas son de pago (AMPL y MPL de Maximal Software por ejemplo) y otras son gratuitas como .2. sino la interface con el usuario: la entrada y la salida de datos.Este tipo de programas se denominan “generadores de matrices” por su origen.3 9. las reglas de pivote. aunque en realidad son lenguajes de alto nivel para la programación matemática. 8.6 citado anteriormente. Además el servidor tiene Página 81 de 190 .com.400.20. Además de un fichero solución convencional se puede conectar a Excel o Access. j= (torno.384). Por otro lado el MPL tiene funcionalidades como al corrección ortográfica y sintáctica de los modelos.6. excel. 9. SUBJECT TO restr[j] : SUM(i : prodhoras*x)<=rechoras. MAX SUM( i : benef*x).15. así como herramientas que permiten analizar los modelos desde un punto de vista estructural. y múltiples ejemplos. Y por tanto el sistema puede dar y recibir información a/de paquetes convencionales.fresa. La utilidad del MPL se aprecia rápidamente sin más que analizar cómo se introduciría el problema del apartado 3. VARIABLES x[i].0. Además MPL incluye muchas otras funcionalidades como que Los datos pueden imputarse directamente. 9.0.montaje).1. Una versión MPL de prueba para estudiantes puede descargarse de la web www. prodhoras[j.0.Modelos y Métodos de Investigación de Operaciones d) La repetición de la ejecución se puede automatizar.200).20.2 El proyecto NEOS También es relevante citar del denominado proyecto NEOS. 10. DATA benef[i] := (550. INDEX i= 1.3. Existiendo también en dicha web un muy buen manual en castellano. O que Si hay sumatorios largos se pueden calcular por separado como macros. rechoras[j] := (288.1 Brevísima Introducción al MPL El MPL es uno de los programas existentes en el mercado que facilita la introducción de modelos matemáticos en sistemas de resolución de problemas de programación matemática. 20.600.1.. o a través de ficheros de texto.5.192.3. Este se traduce en una web donde los mejores optimizadores están disponibles para ser utilizados remotamente.25.20.20. access y otros medios.350.20). END Es evidente la relación entre este modo de introducir el modelo y el propio modelo.i] :=(12.maximal-usa. Usando las matemáticas para pensar sobre Dirección de Operaciones. interesantes resúmenes sobre la programación matemática. http://www-neos.mcs.anl.gov/neos/ es la dirección web donde toda esta mina de información esta disponible. 9.3.2 Sistemas de Apoyo en la Decisión y Sistemas Expertos En ocasiones, al diseñar software para aplicaciones específicas, se incorporan algoritmos de programación matemática que sirven de soporte a la toma de decisión. Generalmente este software desarrollará otras múltiples funciones además de resolver el modelo, como acceder a bases de datos e interactuar con el gestor o persona que toma la decisión. Si tales sistemas incorporan algoritmos que resuelvan los problemas más habituales y establecidos, el gestor podrá concentrarse en la toma de decisión real. Para diseñar dichos algoritmos es conveniente construir modelos y diseñar métodos de resolución de Programación Matemática. A medida que los sistemas de apoyo a la toma de decisión se vuelven más sofisticados incorporan procedimientos que plantean “opciones” y no sólo representan datos. La definición de tales “opciones” no es más que encontrar soluciones a los problemas que se plantean y modelan. Otro concepto relacionado es el denominado “sistema experto”. Estos sistemas aceptan, en teoría, definiciones informales de los problemas, que se formalizan a medida que el usuario le ayuda, a través del interfase diseñado al efecto, seleccionando entre diferentes alternativas. Esta información que añade el usuario se complementa con información histórica recogida de resoluciones anteriores. 9.4 Procedimientos de Resolución de Programación Lineal Se proponen en este apartado los principios en los que se basan el método de resolución conocido como Simples. Este método se utiliza desde su desarrollo a mediados de los 50. En la década de los 80 se desarrollaron nuevos métodos como los de Punto Interior o el Método de los Elipsoides, que no se tratarán en estos apuntes. 9.4.1 El algoritmo Simplex No es objeto de este apartado establecer concretamente como funciona el algoritmo del Simplex. Sin embargo sí es necesario destacar los principios básicos de funcionamiento. Dado un problema de Programación Lineal, éste se debe expresar de forma estándar (maximización y desigualdades menor-igual o minimización y desigualdades mayor-igual) Max z   c i x i sujeto a a Ax  b ij x j  bi Las restricciones se pueden expresar mediante notación matricial de modo: Página 82 de 190 © JPGS2011 Modelos y Métodos de Investigación de Operaciones Se obtiene una solución básica al problema Ax=b haciendo n-m variables iguales a 0 (para convertir el problema en linealmente independiente y determinado). A las variables definidas como nulas se les denomina variables no-básicas, y a las demás, variables básicas. Si existe solución para el problema planteado con las n-m variables no básicas definidas, entonces a esa solución se le denomina solución básica factible. Las soluciones básicas factibles generan los vértices de un poliedro convexo. En uno de estos vértices se encuentra el óptimo si este existe. Se dice que dos vértices son adyacentes si sus conjuntos de variables básicas tienen m-1 variables básicas en común. El algoritmo simplex consiste, básicamente, en desplazarse de un vértice a otro adyacente (empezando por uno cualquiera) hasta que cualquier movimiento “empeore” la función objetivo. El algoritmo simplex clásico, ha sido revisado, en diferentes ocasiones. De él han salido procedimientos, denominados simplex revisados, en los que se hace un especial hincapié en la estructura matricial y por tanto en el cálculo matricial, reduciendo notablemente el coste computacional. 9.4.2 Los Métodos del Punto Interior Los métodos del punto interior se basan en que el progreso de las soluciones se realizan en el interior de la región factible, y no a través de los vértices de la misma como hace el método Simplex. La estrategia del algoritmo del punto interior es implementar, en el espacio original de la región de factibilidad, transformaciones a media que avanza el algoritmo. Una vez conocida la región de factibilidad y un punto inicial e interior al mismo, se debe definir un modo de progreso en una dirección que permita reducir el valor de la función objetivo, y que el nuevo punto siga siendo factible e interior. Este proceso se debe repetir hasta que no pueda haber una mayor reducción en el valor de la función objetivo. Así pues las preguntas que hay que conocer como responder son tres: ¿Cómo encontrar un punto factible e interior?, ¿Cómo definir el camino de evolución? y ¿Cómo se sabe que se ha alcanzando el óptimo? 9.5 9.5.1 Procedimientos de Resolución en Programación Lineal Entera Ramificación y acotación En la práctica la mayor parte de los problemas de PE se resuelven utilizando la técnica conocida como ramificación y corte (branch and bound). Este procedimiento se basa en la división de problemas en subproblemas (ramificación) mientras el óptimo no sea una solución factible entera. Página 83 de 190 Usando las matemáticas para pensar sobre Dirección de Operaciones. La Ramificación y Poda es un método general de búsqueda. Empieza considerando el problema raíz (el problema original con la región factible completa sin las restricciones de integridad). Si se cumplen dichas restricciones el procedimiento ha terminado.Si no se cumplen, la región de factibilidad se divide en o más regiones.Se resuelve cada uno de los subproblemas, si uno de ellos satisface las restricciones de integridad el problema ha sido resuelto pero no se puede garantizar su optimalidad. Si no satisface dichas restricciones, su valor se puede tomar como una cota. Si el valor de dicha cota es peor que el mejor resultado obtenido hasta el momento no hará falta seguir explorando este problema. Este procedimiento se resuelve de modo iterativo para cada uno de los subproblemas generados. Concretamente en Programación Entera El método consiste en relajar el problema de PE convirtiéndolo en Programación Lineal , resolver mediante el simplex este problema de Programación Lineal, si las variables de la solución óptima satisfacen la condición de integralidad, hemos obtenido el óptimo. SI dicha condición no se satisface el valor de la función objetivo aporta una cota superior del óptimo. Hay que volver a ramificar y volverlo a intentar. Max s.a z  7x 1  3 x 2  4 x3 3x 1  2 x 2  x3  5 2 x 2  3 x3  9 7x 1  2 x 2 x1 , x3  Z  x2  0 8 La solución del problema relajado es ( x1 , x 2 , x3 )  (1.1428,0,3) z  14.2857 Este valor es una cota máxima del problema, aunque no es un valor solución porque x1  Z  La ramificación consiste en generar un par de nuevos subproblemas, mediante la adición respectiva de nuevas restricciones. Subproblema2 = Problema1 + Subproblema3 = Problema1 + ( x1  1) ( x1  2) La relajación del subproblema2 da lugar a la siguiente solución y función objetivo ( x1 , x 2 , x3 )  (1,1.5,2.667)  z 2  14.1667 Dado que x 2  Z , volvemos a obtener una cota máxima más ajustada aunque la solución no es factible. Página 84 de 190 © JPGS2011 1667 ( x3  2) ( x3  3) ( x1  2) Subproblema 3 No factible Subproblema 4 ( x1 . y además se puede garantizar su optimalidad porque la cota superior del subproblema 4 es 9. x2 . x2 .667) z 2  14. ( x1 .1. 2) z 4  9. Se crearán pues dos nuevos subproblemas Subproblema4 = Subproblema2 + ( x3  2) Subproblema5 = Subproblema2 + ( x 3  3) La relajación del suproblema 4 da la siguiente solución.0. se puede optar básicamente por dos estrategias en la selección del siguiente nodo a ramificar: a) b) c) d) Elegir la rama más profunda Elegir la rama con mejor cota Elegir el primero de los nodos aún no explotados (FIFO) Elegir el último nodo abierto y no explotado (LIFO) Aunque aparentemente la opción b llevaría más rápidamente a la solución.5.1428. ( x1 .3) z5  14 En la resolución mediante métodos de ramificación y acotación. x3 )  (0.1. Página 85 de 190 . x3 )  (1. x 2 .714. inferior al 14 ya obtenido. x2 .3) z  14.2857 ( x1  1) Subproblema 2 ( x1 .5.42.2. x2 . x 2 .2) z 4  9.42857 Subproblema 5 ( x1 .42857 La relajación del subproblema 5 da la siguiente solución.0. x3 )  (1.0. x3 )  (1. x3.Modelos y Métodos de Investigación de Operaciones La relajación del subproblema3 no tiene solución. por lo que no se profundizará más en esa rama. x3 )  (1. lo cierto es que depende de cada problema la selección de una alternativa u otra.714.3) z 5  14 La solución del subproblema 5 da valores enteros de x1. Gráficamente se puede representar del siguiente modo: Problema 1 ( x1 . x3 )  (0.5.1. es posible aplicarlo en otros entornos conservando la misma configuración (Por ejemplo para la resolución de problemas de Optimización Combinatoria) 9. Por otro lado. En la enumeración implícita se aplica el hecho de que cada variables es binaria para simplificar las componentes a ramificar y acotar del proceso de ramificación y acotación y para determinar eficazmente cuando un nodo no debe ser explorado. Desgraciadamente no hay ningún modo efectivo de saber si para un nodo no existe ninguna integración factible.5. podar ramas sin necesidad de explorarlas profundamente. Max 3 1   2   3   4  2 5   6 2 sujeto a :  1   2  2 3   4 1   2   3  1  3  5 3 5  6  2 Página 86 de 190 © JPGS2011 . Cada rama del árbol especificará para una determinada variables si vale xi=0 ó xi=1. Ésta. Si esta integración es factible entonces esta es la mejor solución a que se puede llegar a través del nodo en el que nos encontramos. Si no fuera factible el valor de la función objetivo obtenido definiría una cota superior (o inferior) del nodo.Usando las matemáticas para pensar sobre Dirección de Operaciones. Todas las variables a las que se las asigna un valor se denominan variables fijas y las demás variables libres. daría una solución candidato que permitiría.2 Enumeración implícita El método de enumeración implícita se usa frecuentemente para resolver PE 0-1. Otra técnica interesante en la aplicación de la ramificación y corte es la del cálculo inicial de una solución que permita fijar la cota superior (en algunos textos anglófonos se denomina incumbent). Para cualquier nodo (un conjunto de variables fijas con sus valores asignados) se denomina integración del nodo a cualquier especificación de las variables libres. obtenida mediante algún procedimiento heurístico. Un modo de integrar de modo eficiente un nodo es asignando a las variables libres los valores que permiten maximizar (o minimizar) la función objetivo. El árbol que se usa en el método de la enumeración implícita es similar a los árboles que se utilizan para resolver Pe convencional. aunque en este apartado se ha explicado la técnica de ramificación y acotación para un problema de PE. en ocasiones. se planteará una nueva restricción (plano de corte) que se añadirá al problema y que pretenden “relajar” las aristas que dan soluciones no enteras.Modelos y Métodos de Investigación de Operaciones 1  1 1110001 NO 7 1  0 011001 SI 4  2 1 111001 NO 7 2  0 101001 NO 5 3  1 111001 NO 7 3  0 110001 SI 6 4  1 111101 NO 6 4  0 111001 NO 7 5 1 111011 NO 5 5  0 111001 NO 7 6 1 111000 SI 7 6  0 111001 NO 7 9.3 Métodos del plano cortante Los métodos del plano cortante se utilizan para resolver problemas de PE.6 Procedimientos de Resolución en Programación 0-1 Cuando el número de variables binarias es muy alto. 9. El nuevo problema se vuelve a resolver como Programación Lineal y el proceso anterior se repite hasta que la solución es entera. Si no es así. Página 87 de 190 . en realidad no es un procedimiento muy exitoso para problemas grandes.5. Aunque el número de cortes necesarios para garantizar la optimalidad se ha demostrado que es finito. probablemente compense diseñar procedimientos específicos como los explicados en el capítulo de Optimización Combinatoria que sucede a éste. el problema ha sido resuelto. Si la solución resultante del problema es entera. El método consiste en relajar los problemas de PE a problemas de Programación Lineal. Esto es. Estos suelen tener forma de herramienta software que interpreta datos en el ámbito de un problema. Específicamente dentro del área de la Gestión de la Producción y las Operaciones. recomponiendo finalmente la solución. pero su aproximación al óptimo es probablemente suficiente. a partir de los datos del problema y el conocimiento que del mismo se tiene. y explorando el espacio de búsqueda eficientemente. muchos de los problemas que se plantean tienen estructuras especialmente difíciles para garantizar la optimalidad en la resolución. Las estrategias de aprendizaje pasan por tomar decisiones. La mayor parte de los procesos de resolución de problemas en optimización combinatoria no garantizan el óptimo ni siquiera en el contexto de modelo. era habitual desarrollar procedimientos heurísticos (es decir que hallaban soluciones) muy rápidamente. que no necesariamente es el problema real.1 Introducción Como se ha comentado anteriormente el Ingeniero de Organización Industrial diseña y mejora artefactos lógicos. Los Página 88 de 190 © JPGS2011 . y esta solución general es modificada gradualmente de un modo progresivo. y los transforma entregando como resultados datos que pueden ser ejecutados. INTRODUCCIÓN 10. c) Estrategias de "divide y vencerás" En esta estrategia se opta primero por dividir el problema en fragmentos a los que se le aplica cualquier otra estrategia. explorando el espacio de soluciones (usualmente grande) para estas instancias. pero que pueden fallar en el intento.Usando las matemáticas para pensar sobre Dirección de Operaciones. d) Estrategias de aprendizaje. los algoritmos de optimización combinatoria resuelven instancias de problemas que se creen difíciles en general. Son aproximaciones que pretenden acercarse lo más posible al óptimo. Los métodos habitualmente utilizados para resolver problemas son del tipo heurístico o metaheurístico. son capaces de generar soluciones al problema. 10 OPTIMIZACIÓN COMBINATORIA. Una de ellas permite pueden clasificar los métodos de resolución en 4 grandes grupos: a) Algoritmos constructivos: Construyen la solución desde una solución incompleta. Los algoritmos de optimización combinatoria logran esto reduciendo el tamaño efectivo del espacio. b) Algoritmos de mejora Comienzan con una solución factible y completa al problema. En los inicios de la Investigación Operativa. y considera las últimas dos estrategias las dentro del proceso general de resolución. Entre las herramientas disponibles para generar dichas soluciones. en función de datos conocidos por el resultado de resoluciones anteriores o en la misma resolución. más que entre los procedimientos de resolución en Optimización Combinatoria. La clasificación que se utiliza aquí extiende el concepto de heurística tanto para los métodos constructivos como para los de mejora. Los métodos de resolución se pueden clasificar de muchas maneras. y dada las limitaciones de cálculo automático que entonces se tenía. En primer lugar son capaces de generar soluciones lo que generalmente es mejor que no tener solución alguna. Se puede realizar una clasificación simplificada de los procedimientos metaheurísticos indicando que hay tres grandes grupos. por ejemplo en resolución de ecuaciones booleanas Muchos de los procedimientos denominados metaheurísticos se fundamentan generalmente en la capacidad del mundo natural de encontrar buenas soluciones y se intenta reproducir esta capacidad. Son procedimientos genéricos que pueden ser fácilmente adaptados para resolver La mayoría de las metaheurísticas tienen como objetivo los problemas de optimización combinatoria. En realidad los fenómenos naturales en los que dicen basarse todas las metaheurísticas tienen en común su capacidad de explorar convenientemente el adyacente posible (Kauffman. Laguna. se pueden aplicar a cualquier problema que se pueda reformular en términos heurísticos. En general la búsqueda local corre el riesgo evidente de quedar atrapada en un óptimo local y la mayor parte de los algoritmos basados en óptimos locales pretenden evitar este problema. La búsqueda local es la base de la mayor parte de los métodos heurísticos. las denominadas técnicas metaheurísticas. Gonzales. y aprovechando su capacidad de cálculo han surgido en las últimas décadas. exige un conocimiento del problema que puede conducir a mejoras de otro tipo. 1996). los Sistemas de Hormigas y GRASP (Diaz. Empezando por una determinada solución (en ocasiones generada aleatoriamente) la búsqueda local se mueve hacia un vecino que es mejor que la actual solución de acuerdo con la función objetivo. las Redes Neuronales. surgiendo de este modo algoritmos como el Recocido Simulado. Pese a no garantizar la optimalidad. Ghaziri.Modelos y Métodos de Investigación de Operaciones procedimientos eran específicos para cada problema y en general su eficiencia era escasa cuando se intentaban utilizar en otros ámbitos. 2003) para abandonar óptimos locales. En segundo lugar se puede decir que alcanzar el óptimo de un modelo que tampoco es exactamente el problema real no es esencialmente grave. Con la existencia de ordenadores cada vez más potentes. El tercer grupo lo conforman aquellos que pretenden específicamente aprender de soluciones previas. Estos apuntes se estructuran en dos partes. pero por supuesto. Se acompañan los apuntes con resoluciones aproximadas a 3 problemas según serían requeridos en examen. El segundo grupo lo conforman los que parten de un conjunto de soluciones (población) para intentar obtener una mejor por combinación y evolución de las anteriores. Glover. El primer grupo lo forman los que dada una solución intentan mejorarla (búsqueda local). Página 89 de 190 . los Algoritmos Genéticos. una dedicada a la introducción a la Optimización Combinatoria y otra a los procedimientos de resolución. son básicos por varios motivos. Por último ser capaz de diseñar una buena heurística. and Moscato. los métodos heurísticos de resolución (incluyendo entre ellos los procesos de mejora local y los algoritmos metaheurísticos). habitualmente grande. Combinaciones. An  r n! (n  r )! Página 90 de 190 © JPGS2011 . Se presenta a continuación una aproximación a los problemas de optimización combinatoria mediante una tentativa de clasificación de los mismos. Permutaciones. En la primera parte se pretende. 10. pues estos permiten establecer la dimensión de alguno de los problemas aquí tratados. en primer lugar. 10. La optimización combinatoria es una rama de la optimización de las matemáticas aplicadas fuertemente relacionada con la investigación operativa.2. establecer qué es la Optimización Combinatoria y dar una idea general sobre la complejidad de establecer soluciones óptimas en dichos entornos.2 Variaciones (con y sin) Repetición. Los problemas de combinatoria se pueden definir como la “Selección de un subconjunto de entre un conjunto de elementos con permitiendo (o no) la repetición y siendo (o no) relevante el orden de los mismo”.. la teoría algorítmica y la teoría de la complejidad computacional.Usando las matemáticas para pensar sobre Dirección de Operaciones. Los algoritmos de optimización combinatoria resuelven problemas que se creen difíciles en general. Es relevante recordar algunos conceptos de combinatoria. donde ninguno se puede repetir. espacio de soluciones del citado problema. Los buenos algoritmos de optimización combinatoria lo logran por la vía de reducir el tamaño efectivo del espacio a buscar y explorando de modo eficiente dicho espacio. Si el subconjunto seleccionado es todo el conjunto original el problema tratado es de permutaciones.1 Optimización Combinatoria Un problema de optimización combinatoria es un problema de optimización en el cual el espacio de soluciones posibles es discreto.2. Si el orden no importa el problema es de Combinación.2 Complejidad en la Optimización Combinatoria. por la vía de explorar el. En la segunda parte se abordan los procedimientos de resolución de problemas de optimización combinatoria clasificados en 3 grandes grupos: a) Procedimientos de Resolución Aleatorios b) Procedimientos Enumerativos c) Procedimientos Heurísticos (se incluyen en estos los Metaheurísticos 10. A continuación se recuerdan algunas fórmulas básicas que permiten calcular el número de alternativas posibles a determinadas estructuras Variaciones sin Repetición: Número de modos de seleccionar y ordenar r elementos de un conjunto de n. Se presenta finalmente una aproximación a los criterios que permiten seleccionar algoritmos en función de los requerimientos solicitados. n! Permutación con Repetición: Número de modos de ordenar un conjunto de n elementos donde hay m1 elementos de tipo 1. n r Permutación sin Repetición: Número de modos en el que se puede ordenar un conjunto de n elementos distintos entre sí. n! m1!·m2!·····mS ! Combinaciones sin Repetición: Número de modos de seleccionar r elementos de un conjunto de n. r Objetos distintos y no ordenados en n casillas distintas y no ordenadas n r r r Objetos idénticos en n casillas distintas y ordenadas Cn  r 1   n  r  1! r !·(n  1)! r r Objetos distintos y ordenados en n casillas distintas y ordenadas Cn  r 1   n  r  1! (n  1)! Todas estas relaciones (junto con otras muchas y –lo que es más importante. 10. Página 91 de 190 . m2 elementos de tipo 2…mS elementos de tipo S. Tiempo son los pasos que requiere el problema para ser resuelto y el espacio suele referirse a la cantidad de memoria que utiliza.el modo de llegar a ellas).3 P y NP Teoría de la Complejidad La teoría de la complejidad computacional es la rama de la teoría de computación que estudia los recursos. se pueden encontrar en (Kauffmann. Cn  r n! r !·(n  r )! Combinaciones con Repetición: Número de modos de seleccionar r elementos de un conjunto de n. Este coste se suele medir en terminos de parámetros abstractos como el tiempo y el espacio. Cn  r 1  r  n  r  1! r !·(n  1)! Por su interés se destacan algunas otras relaciones que permiten calcular de cuantos modos se pueden introducir elementos (iguales o distintos-ordenados y no ordenados) en casillas (iguales o distintas – ordenadas y no ordenadas). permitiendo la repetición en la selección.Modelos y Métodos de Investigación de Operaciones Variaciones con Repetición: Número de modos de seleccionar y ordenar r elementos de un conjunto de n. Cuando se indica que los elementos están ordenados hace referencia a que interesa el orden. o coste.2. no a que estén previamente ordenados. de computación requerido para resolver un problema dado. 1971). donde ninguno se puede repetir. 1 Según su aplicación. Otros recursos que se pueden considerar es el número de procesadores en paralelo que se necesitan para resolver un problema en paralelo.1 Secuenciación Los problemas de secuenciación son. La intención inicial al redactar el apartado era establecer una clasificación. La principal propiedad de los problemas de esta clase es que sus soluciones pueden ser chequeadas de modo eficiente en tiempo polinomial. P y NP La clase de complejidad P es el conjunto de problemas de decisión que pueden ser resueltos por una máquina determinista en tiempo polinomial.Usando las matemáticas para pensar sobre Dirección de Operaciones.3 Algoritmos básicos. 10. 10. Esta clase corresponden a la idea intuitiva de los problemas que se puede resolver de modo efectivo en los peores casos. tanto por la extensión de su aplicación. La teoría de la complejidad no es la teoría de la “comptuabilidad” que tiene que ver con la capacidad de resolver un problema. o la existencia de algoritmos eficientes para su resolución. Así. la clase teórica a la que pertenecen o las soluciones que se pretenden conseguir.4. como por su facilidad de planteamiento.4. 10. la aplicación más clásica en optimización combinatoria. La clase de complejidad NP es el conjunto de problemas de decisión que pueden resolverse por una máquina no determinista en tiempo polinomial. pero esto parece casi imposible. Página 92 de 190 © JPGS2011 . Esta clase contiene una gran cantidad de problemas que se pretenden resolver. independientemente de los recursos requeridos.1. se ha optado por enumerar (sin ánimo de ser exhaustivos ni exclusivos) diferentes tipos de problemas en función de diferentes aspectos como por ejemplo: su aplicación.4 Problemas de Optimización Combinatoria En este apartado se describen algunos problemas clásicos de optimización combinatoria.      Ordenar Buscar el Mayor (o menor) Intercambiar Sumar Voltear 10. Se han dejado aparte clasificaciones que considerarían aspectos como su dureza en terminos de complejidad. Aún así el número de problemas diferentes que se puede plantear son muchos. habida cuenta de que se pueden encontrar muchos tipos de clasificaciones en función de diferentes criterios para cada tipo de problema. En este caso hay que considerar el tiempo paralizable y el no paralelizable. junto con los de rutas. Permite considerar aspectos como la duración. incorporar ventanas temporales de entrega o recepción. Los problemas de Trim son una variante de estos problemas en los que de un rollo (de papel o de acero) se trocean otros rollos de anchos y longitudes diferentes).1. hacerlo en una o varias ocasiones por cada tramo… 10. El problema clásico denominado del viajante de comercio (TSP) supone visitar una y sólo una vez un conjunto de puntos. limitar la capacidad de los camiones o la disponibilidad de tiempo. Los problemas de empaquetado son similares siendo los contrarios. obligar o prohibir determinados tramos. cartón o tela) o incluso tridimensionales como en el corte de mármol. También se pueden considerar variantes como que las piezas a obtener tengan una forma regular. 10. El problema radica en este caso en establecer los modos en los que los diferentes rollos se van haciendo para minimizar no sólo la materia prima desperdiciada sino también las preparaciones de máquina a realizar. o realizar cortes completos. o irregular (por ejemplo retales de tela). Además el uso de múltiples recursos diferentes y limitados forma parte también de las posibilidades Si además de definir la secuencia (o incluso asignar la máquina) se tuviera que definir la cantidad a producir se entraría en los problemas que unen la lotificación con la Secuenciación (ELSSP).3 Corte y Empaquetado Los problemas de corte son los ligados a reducir el consumo de materia prima que se vende o consume troceada. bidimensionales (placas de vidrio.4.1. Pueden ser unidimensionales (vigas). A este problema se le pueden añadir variantes como incluir varios viajantes.1. repartos de guardias.4. la importancia del cliente… Los problemas de secuenciación de una máquina se extienden teniendo en cuenta máquinas en paralelo y/o máquinas en serie (taller de flujo) y de ahí al taller general. 10. es un clásico problema de secuenciación. pretende establecer el orden en el que un conjunto de productos (pertenecientes a varias familias en diferentes cantidades) deben circular por una línea de montaje.4. La secuenciación con mezcla de modelos en una línea de montaje. teniendo en cuenta limitaciones en los recursos. fecha de entrega. O restricciones que obligan a mantener determinadas direcciones de corte.Modelos y Métodos de Investigación de Operaciones Definir el orden en el que se deben ejecutar las tareas de un proyecto para minimizar su duración. ya sea de entrega de recepción o de ambos. son algunos fácilmente Página 93 de 190 .4 Horarios Los problemas de horarios son un problema clásico de optimización de combinatoria que tiene en la gestión docente (aunque evidentemente no es exclusiva de ella) una gran cantidad de aplicaciones: el diseño de horarios de clase. calendarios de exámenes. La secuenciación en una máquina hace referencia al orden en que un conjunto de trabajos deben pasar por una máquina.2 Rutas Los problemas de rutas tratan de establecer el circuito a recorrer para dar un determinado servicio. pretenden ubicar en la mínima superficie (o el mínimo volumen) posible un conjunto de partes que son inicialmente diferentes. Otra extensión habitual es considerar tiempos de preparación de máquinas.          El problema de la mochila (uni o multidimensional) De máximo (o minimo) flujo Problemas de Asignación Cuadrática Graph Partitioning Problem Bipartite Drawing Problem Cubrimiento. 10. 10.Usando las matemáticas para pensar sobre Dirección de Operaciones. Al comparar los algoritmos se puede realizar tanto en el tiempo de resolución que emplean como en el resultado que obtienen. Página 94 de 190 © JPGS2011 .Por último es posible que se tenga interés en localizar todas las soluciones óptimas o incluso todas las soluciones factibles.3 Según las soluciones que se buscan.5 Evaluación de Procedimientos. En el caso de comparar los resultados estos se pueden comparar contra el óptimo.2 Según su clasificación formal. El equilibrado de líneas es un problema muy conocido. el comportamiento en el peor de los casos o el número de éxitos (número de veces que se obtiene el óptimo o el mejor resultado). sólo se tiene interés en encontrar una solución factible (e incluso en algunos casos únicamente se pretende saber si existe una solución).4.1. y del coste (tanto en tiempo como en memoria que requieren) para alanzar dichos resultados.5 Asignación Los problemas en los que se asignan recursos a tareas o tareas a agrupaciones son otra clase habitual de problemas. De camino más corto (o más largo) El problema de coloreado de grafos Linear Ordering Problem 10. o contra el resultado de otros algoritmos.4. Estos criterios se denominan: Eficiencia. Lo que se mide puede ser el comportamiento promedio. Los algoritmos se pueden medir en función de su capacidad de alcanzar buenos resultados. reconocibles. En otros casos el objetivo es que la solución factible encontrada sea suficientemente buena o incluso que sea óptima (es decir que no haya ninguna solución mejor). En la industria se pueden encontrar fácilmente cuando se trata de repartir cargas de trabajo desiguales entre operarios con calendarios laborales. 10. Robustez y Bondad. contra una cota del óptimo. Partición y Empaquetado. pero los problemas de asignación de frecuencias o de generación de equipos multidisciplinares equilibrados no son menos habituales.4. En algunos problemas. pueden ser eficaces. b) Algoritmos de mejora Comienzan con una solución factible y completa al problema. (Foulds 1983) clasifica los métodos de resolución en 4 grandes grupos: a) Algoritmos constructivos: Construyen la solución desde una solución incompleta.Modelos y Métodos de Investigación de Operaciones 11 OPTIMIZACIÓN COMBINATORIA. pues aunque son ineficientes en el proceso de búsqueda. Así se clasifican en estos apuntes los métodos según los siguientes cuatro tipos: a) Generación de soluciones por métodos heurísticos constructivos b) Generación de soluciones por métodos enumerativos c) Generación de Soluciones por Métodos Heurísticos de Mejora Local. Esto es. Los métodos habitualmente utilizados para resolver problemas son del tipo heurístico o metaheurístico. muchos de estos métodos son básicos por varios motivos. Las estrategias de aprendizaje pasan por tomar decisiones mensuales robre el modo de resolver. Pese a su no-optimalidad. y más relevante para comprobar que se ha entendido bien el problema. pero que pueden fallar en el intento. y esta solución general es modificada gradualmente de un modo progresivo. en función de datos conocidos por el resultado de resoluciones anteriores o en la misma resolución. La mayor parte de los procesos de resolución de problemas en optimización combinatoria no garantizan el óptimo ni siquiera en el contexto de modelo. LA BÚSQUEDA RÁPIDA DE SOLUCIONES 11. d) Estrategias de aprendizaje. más que entre los procedimientos de resolución en Optimización Combinatoria. recomponiendo finalmente la solución. tanto para calibrar métodos cómo. Son aproximaciones y inacciones que pretenden acercarse lo más posible al óptimo. En Página 95 de 190 .1 Introducción. y las últimas dos estrategias las considera dentro del proceso general de resolución. Además se incorpora la generación de soluciones por métodos aleatorios. son capaces de generar soluciones al problema. En primer lugar son capaces de generar soluciones lo que generalmente es mejor que no tener solución alguna. Sin embargo la clasificación que se va a utilizar en estos apuntes extiende el concepto de heurística tanto para los constructivos como para los de mejora. d) Generación de Soluciones por Métodos Heurísticos de Población. c) Estrategias de "divide y vencerás"La esta estrategia se opta primero por dividir el problema en fragmentos a los que se le aplica cualquier otra estrategia. que no necesariamente es el problema real. a partir de los datos del problema y el conocimiento que del mismo se tiene. 2 ¿Pueden funcionar? En principio esto dependería de cada problema. 12 tareas. con tiempos aleatorios de ejecución entre 2 y 20. segundo lugar se puede decir que alcanzar el optimo de un modelo que tampoco es exactamente el problema real no es esencialmente grave.2.Usando las matemáticas para pensar sobre Dirección de Operaciones. exige un conocimiento del problema que puede conducir mejoras de otro tipo. Página 96 de 190 © JPGS2011 . 11. 11. Además debiera permitir generar soluciones factibles (o al menos evaluables) de modo rápido.2. de un modo ni eficiente ni robusto resultados aceptables. en primer lugar. Además las soluciones obtenidas aleatoriamente pueden servir de base para otros procedimientos más elaborados (mejora local o algoritmos genéticos). Dos son los motivos por los que se recomienda comenzar el análisis de cualquier problema con el desarrollo de procedimientos de resolución aleatorios: a) Para comparar contra procedimientos más elaborados. pero en ese caso. Tras 1000 iteraciones en una ocasión se ha obtenido un resultado igual a 164. Se ha ejecutado un algoritmo aleatorio 1000 veces y se ha obtenido la siguiente gráfica de resultados. la repetición suficiente podría llegar a dar. Como ejemplo se ha evaluado un problema de Flow-Shop de 3 máquinas. pero se puede generalizar diciendo que los resultados aleatorios tienen una baja probabilidad de ser buenos. Por último ser capaz de diseñar una buena heurística. ser fácil de hacer. Se ha repetido el experimento con 10000 iteraciones obteniendo los siguientes resultados. siendo el óptimo 163 (aunque eso no es conocido a priori). b) Para tener rápido un procedimiento que dé soluciones y comprobar que se está abordando el problema adecuado.2 Procedimientos de Resolución Aleatorios. 11.1 ¿Para qué sirven? Diseñar un procedimiento de resolución aleatorio debiera. Sin embargo. a partir de una solución aleatoria. El histograma resultado ha sido el siguiente: Es decir. Página 97 de 190 . se obtiene el óptimo en el 50% de las ocasiones. en dos ocasiones (de entre 10000) se ha alcanzado el óptimo. y además el tiempo de ejecución no es despreciable.Modelos y Métodos de Investigación de Operaciones Es decir. y sólo en 10 ocasiones el error cometido sobre el óptimo ha sido menor que el 2. el óptimo se alcanzó en casi el 50% de las ejecuciones y el peor resultado obtenido estaba a 13% del óptimo. En problemas más grandes la dispersión crece. Para comprobarlo se han utilizado las 1000 soluciones aleatorias generadas en la primera experiencia y a cada una de ellas se le ha aplicado un algoritmo de mejora iterativa con un vecindario definido según un intercambio de 2 (común para todos los problemas de permutación). con un algoritmo de mejora iterativa sencillo. y en el mismo problema. en la misma cantidad de tiempo que se tarda en generar aproximadamente 100 soluciones aleatorias.5%. Procedure intercambiar(v[i+1]. En métodos matemáticos.n-i) intercambiar(v[i+1]. v[i+1]:=v[i+j].v[i+j]) begin aux:=v[i+1]. y la probabilidad de obtener una mala solución debe ser baja. Líneas de Montaje…). Sea v un vector con n elementos a permutar i:=0. (Rutas. Intercambiar es un procedimiento que intercambia los valores de v en las posiciones señaladas.. 11. utilizando algún mecanismo más o menos sencillo.3 Algoritmos Heurísticos.1 Concepto de Heurística Un algoritmo heurístico es un procedimiento que permite encontrar una solución y que suelen diseñarse de modo específico para cada problema.3. heurística suele hacer referencia a un procedimiento que busca una solución aunque no garantiza encontrar la mejor solución.Usando las matemáticas para pensar sobre Dirección de Operaciones.v[i+j]) i:=i+1 end. Un buen algoritmo heurístico debe ser eficiente. Estas parten de una solución cualquiera (no necesariamente aleatoria) y avanzan buscando en el vecindario más próximo. v[i+j]:=aux. produciendo mejoras hasta que alcanzan un punto donde ningún elemento en el vecindario es mejor que la solución de la que ya se dispone. aunque son fundamentales.En muchas ocasiones el objeto de la decisión es evidente. pues permiten iniciar los procesos tanto de modelado como incluso de resolución. Página 98 de 190 © JPGS2011 . Esto es: debe requerir un esfuerzo computacional realista.2. bueno y robusto. while i<n-1 do begin j:=random(1. es decir aquellas que en cada paso añaden un elemento más a una solución que no ha sido completamente construida. end.3 Un procedimiento de generación aleatoria de soluciones En este apartado se presenta un sencillo procedimiento que permite generar soluciones aleatorias para problemas en los que el vector solución es una permutación de n elementos. Secuenciación. 11. 11. El otro tipo principal de heurísticas son las de búsqueda de entornos o de mejora local. Con el anterior ejemplo se ha pretendido mostrar que las heurísticas aleatorias no funcionan de modo eficiente. En Inteligencia Artificial se suele denominar función heurística a aquella que dirige la búsqueda (o construcción) de una solución. su resultado debe estar suficientemente cerca del óptimo. Un tipo especial de heurísticas son las constructivas. pero no necesariamente es así. Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. Los algoritmos de tipo voraz alternativas.3.2 Procedimientos Constructivos Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. Estas son heurísticas que si alcanzan un punto de no retorno (o no suficientemente buenos) retroceden en el proceso de reconstrucción. (Por ejemplo eliminar subsecuencias antes de empezar por ser demasiado caras) d) Heurística de Paso Múltiple: Se repite el cálculo cambiando las reglas de decisión o incluso tomando decisiones de modo estocástico. Secuenciación. para analizar caminos abandonados. Aunque cada heurística constructiva es diferente. En muchas ocasiones el objeto de la decisión es evidente. Página 99 de 190 . En muchos casos es importante que la regla de prioridad tenga en cuenta criterios de desempate. (Rutas. y no hay ningún límite en su diseño.Modelos y Métodos de Investigación de Operaciones Las heurísticas también pueden ser de tipo voraz (en inglés greedy) estas heurísticas eligen siempre las soluciones mejores de modo local para generar el resultado. Los valores pueden calcularse de una vez para el resto del cálculo o variar dinámicamente tras cada decisión dando lugar a las Reglas Estáticas o a las Dinámicas. Líneas de Montaje…). suelen ser muy rápidos pues no consideran    Métodos Constructivos  Voraces  Heurísticas con BackTracking Heurísticas No Constructivas  Exploración de Entornos Métodos Combinados 11. c) Técnicas de Reducción Previa: El análisis previo del problema puede llevar a tomar decisiones que afecten a la estructura de la solución antes de comenzar el proceso de resolución. La alternativa a las heurísticas greedy son las Heurísticas con BackTracking. pero no necesariamente es así. pero también es posible diseñar heurísticas que funcionen hacia atrás o incluso en las dos direcciones simultáneamente. pero no necesariamente es así. En general se suele trabajar hacia adelante. b) Dirección de Construcción: En ocasiones es posible identificar una dirección de construcción. algunas de las alternativas que permiten plantear heurísticas son las siguientes: a) Reglas de Prioridad: Se asignan valores a los objetos que se van a seleccionar en el proceso de construcción y se utilizan para elegir la siguiente opción. Algúnas heurísticas greedy son óptimas (como ejemplo el algoritmo de Johnson para un flow-shop de 2 máquinas). cada decisión se almacena de tal modo que si se puede demostrar que una decisión fue incorrecta se restablezca la solución en ese punto.1 Miopía de las Heurísticas Constructivas Uno de los principales problemas de las heurísticas constructivas es la denominada “miopía”. pero no necesariamente es así. Ésta consiste en el mal comportamiento de algunas heurísticas. Estructura General y Alternativas de Diseño Las Heurísticas constructivas se pueden utilizar siempre que el problema se puede resolver mediante decisiones sucesivas. (Rutas.3.3 Procedimientos de enumeración incompletos. Como se ha dicho la Optimización Combinatoria es una rama de la Optimización de las matemáticas aplicadas en el cual el espacio de soluciones posibles es discreto. Líneas de Montaje…).Usando las matemáticas para pensar sobre Dirección de Operaciones. 11. Las técnicas de enumeración pueden ser utilizadas para diseñar procedimientos constructivos que sean más rápidos aunque menos eficaces reduciendo el número de nodos a explorar o limitando el tiempo de ejecución. Conceptualmente un algoritmo de bracktracking es equivalente a una búsqueda en profundidad en un algoritmo enumerativo.4 Heurísticas Constructivas.3.2. 11. Dotar de profundidad a la regla de decisión es que en cada etapa de decisión se tenga en cuenta. aunque esta posibilidad está restringida a tamaños muy pequeños de problema.2. Página 100 de 190 © JPGS2011 . Secuenciación. En muchas ocasiones el objeto de la decisión es evidente. aunque buenas según el criterio de selección. donde cada decisión equivale a un nodo en el árbol. Es decir. Dos son los modos de solución a este problema: dotar de profundidad a la regla de prioridad o diseñar heurísticas con backtracking. perjudican la solución final.2 Heurísticas con BackTracking Las heurísticas con backtracking buscan una solución probando una de entre varias alternativas. el óptimo se podría alcanzar mediante la enumeración de todas las soluciones. Se consideran heurísticas voraces aquellas que avanzan sin posibilidad de deshacer las decisiones tomadas. en la medida de lo posible como afectará en las siguientes etapas de decisión la decisión actual. Es decir dotar de capacidad a las heurísticas de volver atrás en las decisiones (y tomar nuevas decisiones) si la situación no es la deseable. La regla de prioridad en este caso evaluaría no sólo el efecto de la decisión a tomar sino también las decisiones que se tomarían como consecuencia de la que se tome. Dotar a las heurísticas de técnicas de backtracking.3. 11.3.2. 11.2. e) Heurísticas MultiStart: Repetir la heurística pero comenzando cada vez por un elemento diferente. según el cual las decisiones tomadas en cada etapa. 1) <= valor( i . Según si buscan una solución exacta o se conforman con una buena solución los procedimientos son exactos o heurísticos. por la vía de explorar el espacio de soluciones en su totalidad.shtml. Así por ejemplo no es lo mismo hacer enumeración completa para soluciones que se representan como un vector de n dimensiones donde los valores pueden ser 0 o 1. Por último los algoritmos pueden utilizar la Fuerza Bruta analizando una por una todas las soluciones.1) >= S(i)): i = i . el óptimo.1: Loop j=N Do While (valor(j .1)): j = j .1 Concepto de Algoritmo Enumerativo.org/do_you_know/AllPerm. A la vista de las anteriores magnitudes es evidente que los métodos de enumeración completa no son prácticos en la mayor parte de situaciones normales. Un algoritmo Enumerativo o Completa exacto es aquel que garantiza la obtención de la mejor solución posible.1) i=i+1 j=j-1 Loop Next c Página 101 de 190 . A continuación se presenta un algoritmo de enumeración completa para problemas de permutación basado en una propuesta de Dijkstra citado en http://www.cut-the-knot. todas las soluciones óptimas o todas las factibles.001.1) con S(j .600.1: Loop Intercambia S( i . En el problema citado para ejemplificar la búsqueda aletoria (el Flow-Shop con 12 tareas) el número de alternativas posibles es de 479. También se pueden clasificar según si buscan una solución óptima.1) con S(j . o una solución cuya estructura sea una combinación de n elementos tomados de r en r. Si en generar y evaluar cada solución se tardará una milésima de segundo el problema requeriría más de 5 días de computación si se pudiera hacer de un modo ordenado y sistemático (de un modo aleatorio sería sencillamente imposible). Sin embargo son una buena estructura para comenzar la búsqueda de soluciones. que para una solución que se representa como una permutación de valores. 12. Los procedimientos de Enumeración Completa se pueden clasificar en ciegos o guiados según la forma de dirigir la exploración. For c = 1 To M i=N-1 Do While (S(i . o pueden tener algún tipo de inteligencia que permita podar aquellas ramas del árbol de exploración que no van a ser útiles.Modelos y Métodos de Investigación de Operaciones 12 ALGORITMOS ENUMERATIVOS 12.2 Algoritmo de Enumeración Completa Los algoritmos de enumeración completa son diferentes en función de la estructura de la solución.1) i=i+1 j=N Do While (i < j) Intercambia S( i . se podan. Página 102 de 190 © JPGS2011 . 12. El que se expresa a continuación enumera combinaciones (r. por lo que ya se sabe de la solución. Cada nodo hace referencia a una solución parcial (o relajada) del problema.Usando las matemáticas para pensar sobre Dirección de Operaciones. se generan descendientes a cada nodo se completa un poco más la solución.3. Cada nodo. es descendiente de algún nodo padre. se seleccionan y se explotan.Óscar Alfredo Palmas Velasco 12. al que completa parcialmente la solución que aquel traía de sus antecedentes. Dicha solución parcial puede ser valorada. excepto el nodo final.3 Estructura de un algoritmo de exploración completa basado en exploración de nodos.1 Conceptos previos: Nodo Se puede plantear que los procedimientos de exploración siguiendo un sistema arborescente de nodos que se se evaluan. El algoritmo propuesto anteriormente enumera de modo lexicográfico a partir de una solución inicial expresada en el vector S. añadiéndole un subconjunto de opciones que permiten definir un poco más la información.n) de la página 231 de Matemáticas discreta Escrito por Richard Johnsonbaugh. o por lo que las futuras incorporaciones a la solución incorporarán. Por la vía de la explosión. evaluación. ComprobarSiSeHaAlcanzadoUnaSoluciónMejor. que información incorpora a la solución del nodo padre.2 Estructura general de un procedimiento de exploración completa basado en nodos.Modelos y Métodos de Investigación de Operaciones 12. Algunos de los parámetros que permiten crear los diferentes criterios son: Página 103 de 190 . Teniendo en cuenta la existencia de estos dos componentes se pueden definir diferentes modos de evaluar la calidad de cada nodo (que servirá posteriormente para compararlo entre ellos). d) Los criterios por los cuales se cierran nodos 12. como tal. Mientras haya algún nodo abierto el proceso se repetirá con las siguientes 3 fases: seleccionar el siguiente nodo a explotar. tiene el nodo. Por el otro la información asociada a la parte de la solución que no se ha definido. Además cada vez que se genere una solución completa hay que comprobar si mejora la mejor solución disponible hasta este momento GenerarNodoOriginal.sea g(n) y sea h(n) la evaluación de la solución que quedaría por definir. Una estructura superior al nodo la constituye la lista de nodos. Dicha lista almacenará todos los nodos abiertos (podría almacenar todos los nodos). //del while A continuación se desarrollan las funciones básicas que hacen falta para el uso de esta estructura que son: a) La función de evaluación de cada nodo.3. GenerarUnaSolucionInicial. si está explotado o no).3. b) El modo de seleccionar el nodo a explotar. c) El modo de explotar el nodo seleccionado. End. Por una lado la parte de la solución que ya está completamente detallada. se compone de una parte ligada la solución parcial conocida . sea f(n). Según lo dicho la función de evaluación del nodo. explotar el nodo seleccionado (que incluye evaluar los nuevos nodos y cerrar el nodo ya explotado) y una última fase que cierra aquellos nodos que no se tengan. La estructura propuesta parte de la estructura básica nodo que mantiene toda la información relativa a los nodos (como mínimo: cual es el nodo padre.3 Funciones de evaluación La función de evaluación considera dos paquetes de información que suministra la solución parcial que. // incluye EvaluarNuevosNodos. mantener abiertos. ExplotarNodoSeleccionado. Si el componente de la función de evaluación del nodo ligado a la parte no definida de la solución se conoce de modo exacto se definirá como h*(n). Si el componente de la función de evaluación del nodo ligado a la fase ya definida de la solución se conoce de modo exacto se definirá como g*(n). // esto es opcional While haya_nodos_abiertos do begin SeleccionarNodoExplotar. CerrarNodosNoÚtiles. o no se quieran. 12.6 Eliminación (o cierre) de Nodos. d) La rapidez en la que se encuentran buenas soluciones completas. por ello se suele añadir un procedimiento que elimine aquellos nodos que no se quieran mantener abiertos. c) La rapidez en la que se encuentran soluciones completas. Aunque sí hay algunos criterios que se deben observar. Cada criterio tiene sus ventajas e inconvenientes ligadas a: b) La facilidad de búsqueda del nodo.Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 104 de 190 © JPGS2011 . y no debe conducir a la generación de una cantidad excesiva de nodos en cada explosión. En los problemas en que la solución es una permutación de valores un modo habitual de explotar nodos es añadir un nuevo valor a la solución parcialmente construida. se puede asumir que w(n)=1 para todo n. y salvo que se tenga una razón fundada. Es importante destacar que.3. De modo general se puede definir f(n)=(2-w(n))g(n)+w(n)h(n).3. g(n) y h(n) serán muy costosos de calcular. en ocasiones. Este hecho requiere una evaluación especial dado que el número de ocasiones en que haya que hacer el cálculo puede ser considerable. h) Primero el de mejor esperanza 12. En general.4 Selección del Nodo a explotar De entre los nodos abiertos hay que elegir cual es el nodo a explotar. No todos los nodos abiertos son igualmente necesarios. No es posible proponer un mecanismo general.5 Generación de nodos (explosión) Cada problema tiene un mecanismo de generación de nodos (una vez seleccionado el mismo) diferente.3. Los criterios más habituales son: a) Selección aleatoria b) Primero el más antiguo (FIFO) c) Primero el más moderno (LIFO) d) Primero el más profundo (búsqueda en profundidad) e) Primero el menos profundo (Búsqueda en Anchura) f) Primero el de menor coste (g(n)) g) Primero el de mejor cota (f(n)). 12. En primer lugar debe generar todas las opciones posibles a partir del nodo explotado. donde w(n) es un coeficiente que pondera la importancia de g y h en función del nodo en el que se encuentre la exploración. Las técnicas Beam Search avanzan por niveles y no permiten que haya más de M nodos abiertos simultáneamente. En algunos casos la cota de los nodos abiertos es ya peor que la mejor de las soluciones obtenidas.4 Otras técnicas de Enumeración basadas en la exploración por nodos. aunque la exploración se hace también por niveles.Modelos y Métodos de Investigación de Operaciones Algunos de los nodos abiertos serán manifiestamente incompatibles y por ello deben ser cerrados. soluciones. guardándola si es mejor que ella y en cualquier caso cerrándolas. Página 105 de 190 . Algunos nodos estarán dominados por otros nodos ya creados. Otros nodos serán estructuralmente iguales que otros nodos ya creados (abiertos o no). Este método permite tener buenas soluciones sin necesidad de acabar el procedimiento que garantizaría el óptimo. a partir de cada nodo abierto. En ese caso hay que elegir el conjunto de nodos a mantener y cerrar el resto. es posible que por problemas de memoria no se pueda tener abierta más de una cierta cantidad de nodos. podría interesar buscar esos nodos para cerrar el nodo idéntico. Es posible que haya nodos que conduzcan de manera unívoca a la generación de una solución completa. Las técnicas de Enumeración Implícita analizan que nodos no se deben abrir puesto que se puede deducir de su estructura los resultados que puede obtener. en ese caso se debe cerrar el nodo. Las técnicas Laser generan. 12. mediante heurísticas rápidas. Los procedimientos de enumeración completa analizan todos y cada uno de los nodos que se abren. comparándola con la mejor solución disponible hasta el momento. Por último. Otros nodos podrían tener alguna característica que les impidiera conducir a un óptimos en cuyo caso pueden también ser cerrados. En ese caso hay que crearla y valorarla. En ese caso no tiene sentido seguir explotando ese nodo y conviene que sea cerrado. Página 106 de 190 © JPGS2011 . Un intercambio de los elementos 3 y 6 proporcionaría la siguiente solución ABFDECGH 13. Este tipo de vecindario ha demostrado su superioridad. Ejempo: Sea ABCDEFGH la solución original considerada.2 2-opt Son vecinos de una determinada solución todas aquellas soluciones mediante el siguiente movimiento: Tras seleccionar dos elementos de una solución invertir el tramo que hay entre los mismos. El proceso de búsqueda examina todas las opciones dentro del vecindario actual y selecciona (generalmente) la mejor opción para moverse hacia él y recomenzar el proceso 13. Lo mismo ocurre con los vecinos encontrados mediante el proceso Insertar.3 Insertar Son vecinos de una solución mediante el proceso de inserción aquellos en los que se coge un elemento y se inserta entre otros dos elementos.1. frente al del intercambio simple. Ejempo: Sea ABCDEFGH la solución original considerada. en dicho vecindario. Además todos los vecinos según el proceso de intercambio son vecinos en segundo nivel del vecindario 2-opt.1 Intercambio de 2 elementos Son vecinos de una determinada solución todas aquellas soluciones alcanzables mediante el intercambio de de dos elementos de la solución.1. Ejempo: Sea ABCDEFGH la solución original considerada.1. 13 PROCEDIMIENTOS DE MEJORA LOCAL Son procedimientos basados en analizar el vecindario de una determinada solución. 13. Un 2-opt de los elementos 3 y 6 proporcionaría la siguiente solución ABFEDCGH 13.Usando las matemáticas para pensar sobre Dirección de Operaciones. A continuación se describen los tres tipos de vecindario más habituales. para averiguar si existe. Insertar 3 en 6 proporcionaría la siguiente solución ABDEFCGH. una solución con mejor valor de función objetivo. La mejor solución en un vecindario es un óptimo con respecto a su vecindario. Los vecinos así conseguidos son vecinos en segundo nivel del vecindario 2-opt.1 Vecindario La definición de vecindario es el conjunto de soluciones que pueden ser alcanzados desde la solución actual con una operación simple. en general. Cualquier punto que requiera dos operaciones no es vecindario. 1 Seleccionar x' perteneciente N(x) tal que c(x')<c(x) y es el menor coste en el vecindario c(x')=min(N(x)) 2.2 Algoritmos de Mejora basados en Vecindario 13. Paso 1) Inicialización 1.3 Ir a paso 2.4 Mejora Iterativa Aleatorizada.3 Ir a paso 2. 13.2 Definir mejor_coste:=c(x) Paso 2) Selección 2.2 Si no hay tal x' entonces STOP Paso 3) Actualizar 3.2.2 Si no hay tal x' entonces STOP Paso 3) Actualizar 3.2. Procedimiento wp: real positivo menor que 1.2 mejor_coste:=c(x) 3. Página 107 de 190 .3 Descenso Rápido.2 mejor_coste:=c(x) 3.2.1 Nomenclatura x: solución actual x': solución en el vecindario c(x) = valor de la función objetivo para x N(x): vecindario de x random: función 13.2.2 en caso contrario Seleccionar x' perteneciente N(x) tal que c(x')<c(x) Paso 3) Actualizar 3.1 Seleccionar una solución inicial x 1.2 Definir mejor_coste:=c(x) Paso 2) Selección (y acabar si no hay mejora) 2.Modelos y Métodos de Investigación de Operaciones 13.2 Definir mejor_coste:=c(x) Paso 2) Selección (y acabar si no hay mejora) 2.1 Seleccionar una solución inicial x 1.3 Mientras no se produzca la condición de terminación ir a paso 2.1 Si random<wp seleccionar x' perteneciente N(x) de modo aleatorio 2. Procedimiento Paso 1) Inicialización 1.2 mejor_coste:=c(x) 3.1 x:=x' 3.1 Seleccionar x' perteneciente N(x) tal que c(x')<c(x) 2.1 x:=x' 3. Procedimiento Paso 1) Inicialización 1. 13.2 Mejora Iterativa Simple.1 Seleccionar una solución inicial x 1.1 x:=x' 3. A medida que se especializan pierden la generalidad y exigen más conocimiento del problema específico. Las metaheurísticas deberían ser generales y simples. las metaheurísticas requieren algún tipo de representación que por tanto es dependiente de cada problema. Página 108 de 190 © JPGS2011 .1 Procedimientos de población Según (Osman. a la que pertenecen los algortimos genéticos. 14 PROCEDIMIENTOS METAHEURÍSTICOS Los procedimientos metaheurísticos son un marco de referencia de alto nivel que se especializa para resolver problemas de optimización. En la segunda etapa puede ser usado cualquier procedimiento de búsqueda local que generan vecindarios a partir de una solución única. Además de los parámetros que definen cada algoritmo específico. 1995) las metaheurísticas de población. Los métodos de búsqueda por individuos pueden operar sobre cada individuo de la generación actual. Es también una estrategia que guía otras heurísticas en la búsqueda de mejores soluciones factibles. Entre las metaheurísticas más conocidas se puede destacar:          Algoritmos Genéticos Scatter Search Algoritmos Meméticos Algoritmos de Hormigas Redes Neuronales GRASP. Esta generación pasa a una segunda etapa (búsqueda por generación de movimientos) o a una tercera (búsqueda por generación de soluciones). Variable Neiborhood Search 14. presentan todo o parte del siguiente esquema de la Ilustración 1: Estructura genérica de las Metaheurísticas (Osman. 1995) En este esquema se puede observar que todos los procedimientos empiezan obteniendo una generación inicial (que algunas veces pueden estar constituidas por un solo individuo).Usando las matemáticas para pensar sobre Dirección de Operaciones. Recocido Simulado Búsqueda Tabú Iterated Local Search. 1 Algoritmos Genéticos Los Algoritmos Genéticos fueron introducidos por Holland en 1975 para imitar algunos de los mecanismos que se observan en la evolución de las especies. 1995) Al final de la segunda etapa puede finalizar la búsqueda en la población actual e ir a la etapa cuatro o reinicializada volviendo a la etapa primera si la búsqueda evolutiva no se incluye. Página 109 de 190 . No suele ser complejo utilizar algoritmos heurísticos que en lugar de funciones lineales utilicen no linealidades. especialmente cuando existen factores no cuantificables que no han podido ser reflejados en el modelo pero deben ser tenidos en cuenta. 14. o la población actual pasa por la etapa tercera.1. Basándose en las principales características de la reproducción sexual. Habitualmente las heurísticas proponen un conjunto de soluciones. sin necesidad de conocer el tipo de problema a resolver. ampliando de esta forma las posibilidades de elección del decisor. En esta tercera etapa se realiza una búsqueda basada en la generación de nuevas soluciones. Una ventaja importante que presentan las heurísticas frente a las técnicas que buscan soluciones exactas es que.Modelos y Métodos de Investigación de Operaciones Generación de la Población Inicial Búsqueda en el espacio de soluciones Población para la generación actual Búsqueda mediante generación de movimientos Búsqueda local Generación temporal de la población Búsqueda mediante generación de soluciones Búsqueda evolutiva Población para la siguiente generación Fin de la búsqueda Ilustración 1: Estructura genérica de las Metaheurísticas (Osman. Las líneas punteadas indican opciones que pueden ser utilizadas o no. Holland creó un algoritmo que genera nuevas soluciones a partir de la unión de soluciones progenitoras utilizando operadores similares a los de la reproducción. Al final de esta etapa se puede volver a la segunda o repetir otro ciclo de búsqueda evolutiva. permiten una mayor flexibilidad para el manejo de las características del problema. por lo general. podría decirse que el uso de estas técnicas supone la posibilidad de resolver.1. Requieren el diseño de tres operadores (generalmente de tipo probabilístico) que actuan sobre objetos denominados “strings”. 1975] Es una Metaheurística que permite a partir de una población inicial de soluciones. 14. Fin Página 110 de 190 © JPGS2011 . reproduciéndose.1 Estructura General de un Algoritmo Genético. En resumen. Estos procesos pueden tener cada uno formas variadas. de forma práctica. Hasta alcanzar un criterio de parada Generación de la Población Inicial Selección de progenitores Aplicación de los operadores genéticos Actualizar la población No ¿Se cumple la condición de parada? Si Mostrar la mejor solución de la población final.1. Mutación: Alteración espóntanea de los elementos de un “string”. problemas de gran complejidad que resultaban intratables mediante técnicas exactas y permite definir con detalle el metabolismo del sistema. que se aplican a problemas de optimización (especialemente a los problemas de combinatoria). Generación de la Población Inicial Repetir Elegir dos (o más) padres de entre la población. La premisa que subyace a este tipo de enfoques es. Si se considera conveniente provocar mutaciones..    Reproducción: Selección de “strings” para poder proceder a la reproducción. Cruce: Combinación de dos o más strings para que intercambien valores. obtener soluciones potencialmente mejores mediante el cruce de varias de las soluciones originales. e incluso se permite el avance en paralelo de Algortimos Genéticos con el mismo propósito. Los algoritmos genéticos son una clase de algoritmos inspirados en los mecanismos de la genética.Usando las matemáticas para pensar sobre Dirección de Operaciones. “Procedimiento basado en la analogía con la evolución de los seres vivos. Decidir si la nueva solución pasa a formar parte de la población. Construir una solución nueva a partir de la estructura de los padres elegidos. que se puede encontrar soluciones aproximadas a problemas de gran complejidad computacional mediante un procedimiento de evolución simulada matemáticamente en un ordenador “ [Holland. 5 Definición de Métodos para la selección de dos (o más) padres de la Población Inicial. Otro modo de representar soluciones útil para los algoritmos genéticos es utilizar un vector unidimensional de elementos independientes.2 Representación de las soluciones (representación cromosómica). Se asignan probabilidades a los padres en función de su fitness Página 111 de 190 .1.Modelos y Métodos de Investigación de Operaciones 14.     Fitness(x)= Valor función objetivo Fitness(x)= Valor función objetivo normalizada Fitness(x)= Valor función objetivo normalizada –Penalización por infactibilidad Otros … 14. Una pregunta interesante al diseñar un algoritmo genético es si debe mantenerse constante a lo largo del proceso. El número de padres seleccionados es generalmente dos (aunque puede ser mayor si el procedimiento de cruce lo permite). En el caso del FlowShop Híbrido un buen modo de representar es un vector que representa la secuencia de operaciones y otro vector las máquinas donde cada producto va destinado.1. El modo de selección de los padres se suele realizar mediante el uso de la denominada ruleta. (Por ejemplo un vector para el Problema TSP). pues se va a utilizar muchas veces.1.1.1. Cuando el problema es más complejo (por ejemplo un problema de Flow Shop Híbrido) puede exigir N Vectores con codificación combinada. Inicialmente en los Algoritmos Genéticos se representaba la solución mediante vectores de carácter binario.1.4 Definición de Métodos para la Generación de la Población inicial Procedimientos   Generación Aleatoria Heurísticas conocidas El tamaño de la Población es especialmente relevante.1. Los operadores eran muy sencillos pero muchas de las soluciones obtenidas eran infactibles que posteriormente había que reparar.3 Definición de la Medida de Evaluación de cada Solución (Fitness) El procedimiento de evaluación de una solución es especialmente importante en un algoritmo genético. 14. 14. También se pueden utilizar vectores n-dimensionales cuyo problema fundamental es el de definir métodos de cruce eficientes (Ej: Vector Bidimensional para la Programación de Producción en Máquinas en Paralelo) Por último existen vectores con codificación implícita como por ejemplo para la codificación del balance de líneas en los que una correcta codificación es una exigencia para obtener resultados razonables.1. Un tamaño demasiado grande genera dispersión de resultados Un tamaño demasiado pequeño genera una excesivamente rápida convergencia de soluciones. Un tamaño demasiado grande genera dispersión de resultados Un tamaño demasiado pequeño genera una excesivamente rápida convergencia de soluciones. El problema de la primera aproximación es que la convergencia a una buena solución puede ser lenta. fitness(A) = 3 fitness(B) = 1 fitness(C) = 2 1/6 = 17% A B C 3/6 = 50% 2/6 = 33% 14. Por otro lado el tamaño de la Población es especialmente relevante. los más sencillos son los desarrollados para representaciones binarias como el one-point crossover que intercambia a partir de una posición determinada la cadena binaria que representa el individuo de cada padre. Existen infinidad de operadores de cruce. El cruce o intercambio de características entre las soluciones elegidas produce un fenómeno de convergencia puesto que hace que los individuos de la población cada vez se parezca mas entre sí. Este concepto se ha refinado con el two-point crossover que intercambia la parte del individuo que hay entre dos posiciones definidas de manera aleatoria.1.1. Página 112 de 190 © JPGS2011 . El problema de la segunda aproximación es que tiene una tendencia inicial que será dificilmente superada.7 Generación Soluciones Iniciales Para generar las soluciones iniciales se puede optar por generarlos de manera aleatoria o utilizando heurísticas conocidas que generan buenas soluciones de partida.1.Usando las matemáticas para pensar sobre Dirección de Operaciones. Otra cuestión a resolver es si debe mantenerse constante dicho tamaño a lo largo del Proceso.6 Operaciones de Recombinación o Cruce de los individuos seleccionados.1. 1-3-5-2-4-6-8-7 2-4-6-8-1-3-5-7 _-_-5-2-4-_-_-_ Se completa con cromosomas del segundo padre dentro de la zona intercambiada _-_-5-2-4-3-_-7 6-8-5-2-4-3-1-7 14. Los huecos que queden se rellenan con el orden en el que aparecen los valores no incorporados del “progenitor b”.10 Actualizar Población El argumento fundamental de los algoritmos genéticos no es que obtienen buenos resultados a partir de la exploración ligada a una población inicial. 14. Este operador En primer lugar se calculan dos números aleatorios entre 1 y el número de elementos del vector. sino que la población evoluciona a medida que se obtienen soluciones mejores.1. En ella se asigna una probabilidad a cada padre proporcional a su fitness de tal modo que la suma de probabilidades sea la unidad. En muchas ocasiones el resultado así obtenido no es una solución factible. En estos casos hay que proceder a realizar una operación de “reparación” en la que se genera factibilidad al resultado obtenido. El modo de selección de los padres se suele realizar mediante el uso de la denominada ruleta. Este concepto se ha refinado con el “cruce de dos puntos” que intercambia la parte del individuo que hay entre dos posiciones definidas de manera aleatoria. El operador obtiene del vector “progenitor a” los elementos contenidos entre el primer número y el segundo número. 14.9 Cruce El cruce o intercambio de características entre las soluciones elegidas produce un fenómeno de convergencia puesto que hace que los individuos de la población cada vez se parezca mas entre sí.1. Generalmente son operaciones en las que el vector obtenido es afectado por alguna operación de búsqueda de vecindario como la inserción o el intercambio de dos elementos.1.1.1.1.1.Modelos y Métodos de Investigación de Operaciones 14. Dicha evolución se consigue por la vía de sustituir (de uno en uno o en paquetes) elementos de la población anterior por soluciones obtenidas durante la ejecución del algoritmo. Existen infinidad de operadores de cruce.1.8 Selección de “Padres” El número de padres seleccionados es generalmente dos (aunque puede ser mayor si el procedimiento de cruce lo permite). 14.11 Monitorización de Convergencia y Mutación Cada cierto tiempo es interesante realizar operaciones de mutación. Posición a posición de entre las aún no asignadas se copian los elementos del “progenitor b” si no están incluidos en el fragmento de vector copiado del padre. para garantizar que la población no converja demasiado rápidamente. los más sencillos son los desarrollados para representaciones binarias como el one-point crossover que intercambia a partir de una posición determinada la cadena binaria que representa el individuo de cada padre. Página 113 de 190 . Scatter Search proporciona un marco flexible que permite el desarrollo de diferentes implementaciones con distintos grados de complejidad. Aunque fue originalmente introducido en los años setenta. ya sea para mejorar la población.3 0 10 20 30 40 G e n e ra t i o n s 50 60 70 80 Puede ser interesante aplicar cada cierto tiempo pequeñas mutaciones a las soluciones obtenidas. Explicado de una manera muy básica utiliza el operador de cruce de los algoritmos genéticos.1 1 0. combinación y actualización de la población de referencia Comienza con una colección de puntos de referencia (obtenidos mediante la aplicación de otrso procedimientos).6 0. tales como el uso de estrategias sistemáticas en lugar de aleatorias o la posibilidad de combinar más de dos elementos.5 0. recientemente es cuando ha sido probado en numerosos problemas difíciles con gran éxito (Glover. Inversión. Página 114 de 190 © JPGS2011 . Los tipos básicos de mutación recuerdan a los vecindarios definidos en otro lugar de estos apuntes (2-opt. 1. selección de la población de referencia. Pertenece a la familia de los llamados Algoritmos Evolutivos. Se parece a los algoritmos genéticos excepto que en la búsqueda “scatter” la combinación de elementos de la población es una combinación lineal que es posteriormente adaptada para convertirse en una solución. Los algoritmos meméticos también pertenecen a los algoritmos basados en poblaciones. El método consta de las siguientes etapas: Generación de la Diversidad.Usando las matemáticas para pensar sobre Dirección de Operaciones.3 B e s t F it n e s s M e a n F i tn e s s 1. La monitorización de la convergencia permite lanzar procedimientos de mutación si es necesario Un modo de monitorizar la convergencia es contabilizar para toda la población si se repiten los mismos valores en las posiciones. 14. 2003).2 1.9 F it n e s s 0. and Marti. selección de un subconjunto para la combinación. y aunque presenta similitudes con los Algoritmos Genéticos.8 0. Inserción) pero también podría ser la introducción selectiva de elementos “ajenos” a la evolución de la solución. pero al obtener un “hijo” le aplica métodos de mejora local.1. ya sea para evitar la excesiva convergencia en la población. Método de Mejora sobre la población anterior.7 0. Laguna.4 0.2 Scatter Search y Algoritmos Meméticos La Scatter Search o búsqueda dispersa es un método metaheurístico de población para resolver problemas de optimización. difiere de éstos en principios fundamentales. Esta es la lógica básica del procediminto denominado Greedy Randomized Adaptive Search Procedure-GRASP.(Resende et al. se elije aleatoriamente de entre los 3 vecinos más cercanos. sustituyendo el criterio de selección del siguiente elemento a incorporar a la selección por un criterio estocástico. De este modo.Modelos y Métodos de Investigación de Operaciones 14. 2003). La generación de los puntos de inicio es la parte voraz. Página 115 de 190 . el vecino más cercano. Esta es la lógica básica del procedimiento denominado Greedy Randomized Adaptive Search Procedure-GRASP.(Resende and Ribeiro. o de entre aquellos vecinos que sólo estén un 10% más lejos que el más cercano de los vecinos.1 GRASP Probablemente el modo más sencillo para evitar los óptimos locales es empezar por puntos diferentes cada vez el camino de descenso(Marti. Este algoritmo de muy fácil implementación. El modo más sencillo para evitar los óptimos locales es empezar por puntos diferentes cada vez el camino de descenso(Marti. por ejemplo.2 Metaheurísticas de Búsqueda de Entornos 14. alcanzando un óptimo local. La definición de la situación inicial puede ser más o menos aleatoria. aleatoria y adaptativa del proceso mientras que la búsqueda local es el componente search. Este algoritmo de muy fácil implementación. Es una metaheurística que empieza la resolución del problema en diferentes puntos del espacio de soluciones y una vez “reempieza” utiliza un procedimiento heurístico para completar o mejorar la solución.2. en lugar de elegir. puede ser también paralelizado o integrado con otras metaheurísticas. aleatoria y adaptativa del proceso mientras que la búsqueda local es el componente search. en el problema TSP. puede ser también paralelizado o integrado con otras metaheurísticas. 2003). El método de resolución puede ser una heurística específica del problema u otra metaheurística de búsqueda local. GRASP es el acrónimo de Greedy Randomized Adaptive Search Procedures. Otro modo de concebir las estructuras GRASP es mediante el uso de heurísticas constructivas randomizadas. La generación de los puntos de inicio es la parte voraz. Dicha estructura utilizaría un algoritmo heurístico constructivo voraz. 2003). 2003)... x: solución actual c(x) = valor de la función objetivo para x N(x): vecindario de x Paso 1) Inicialización 1. x:=x' 2.2. Utilizan técnicas de optimización no determinista: no buscan la mejor solución en el entorno de la solución actual sino que generan aleatoriamente una solución cercana y la aceptan como la mejor si tiene menor coste.de soluciones ya encontradas previamente. cada vez más lejanos vecindarios de la solución. La búsqueda tabú.1 Seleccionar una solución inicial x 1. en los que Página 116 de 190 © JPGS2011 . pero para espacios de solución extenso puede llevar a un procedimiento no eficiente. explorando sistemáticamente o aleatoriamente. esta probabilidad de aceptación irá disminuyendo con el número de iteraciones y está relacionada con el empeoramiento del coste..3 Recocido Simulado Los algoritmos de Recocido Simulado (Simulated Annealing) fueron introducidos por Cerny y Kirkpatrick a principio de la década de los 80 del siglo XX para la optimización de problemas combinatorios con mínimos locales. El método salta de la solución actual a una mejor sí y sólo sí encuentra una mejor solución. Otro método metaheurístico que pretende dotar de "inteligencia" a los algoritmos de búsqueda local es denominado de Búsqueda Tabú (Gendreau.2 ILS y VNS La idea de reiniciar la búsqueda de nuevo es interesante. Específicamente se puede citar la Búsqueda de Vecindario Variable (Variable Neihborhood SearchVNS).2. 2003). 14.. La VNS se comporta como un método de descenso hacia mínimos locales. cuya idea fundamental es la búsqueda de mejores soluciones cambiando de vecindario cuando el que se está considerando no va a dar mejores resultados (Hansen et al.. 2006).3 Actualizar T de acuerdo a la planificación de Recocido Simulado. 14. 2003). En el proceso de búsqueda de soluciones permite movimientos que no mejoran con una probabilidad que decrece a lo largo del tiempo.4 Tabu search.2 Definir mejor_coste:=c(x) 1. 2003) El recocido simulado está basado en un cómo funciona el proceso físico de recocido. Por ello la Iterated Local Search (Lourenço et al.(Henderson et al. (Perez et al. El ratio de dicho decrecimiento queda determinado por el programa de enfriamiento que casi siempre es un parámetro usado como ratio de decrecimiento exponencial.1 Elegir un x' perteneciente N(x) 2. se caracteriza porque utiliza una estrategia basada en el uso de estructuras de memoria para escapar de los óptimos locales.. 14.3 Determinar la T inicial Paso 2) Mientras no se produzca la condición de terminación 2.Usando las matemáticas para pensar sobre Dirección de Operaciones. o en caso contrario con una cierta probabilidad p.2 Si x' es aceptable dependiendo del criterio de Recocido Simulado. a diferencia de otros algoritmos basados en técnicas aleatorias de búsqueda en vecindario.2. 2003) lo que pretende es comenzar la búsqueda de nuevo no “por cualquier lado” si no por puntos del espacio que son modificaciones –no demasiado fuertes. Al contrario que sucede en la búsqueda local. Al igual que en la búsqueda local. Particularmente su habilidad para encontrar el camino más corte de modo colectivo. Hay muchas variaciones. basandose en que se prohíbe al sistema deshacer algunos de los últimos movimientos realizados. la búsqueda tabú selecciona de modo agresivo el mejor de los movimientos posibles en cada paso. 14. de tal modo que a un nuevo juego de datos le correspondería una nueva salida. while not(hayQueTerminar) do begin V:=conjuntoDeVecinosNoProhibidos(x). 14. Las redes neuronales tienen una gran utilidad en sistemas de predicción. Mediante un histórico de datos (y de salidas) se establecen las relaciones entre los datos y las salidas (entrenamiento).3. x’:=elegirMejorVecino(V). para permitir la búsqueda por entornos que de otro modo no se explorarían. Los elementos simples de procesamiento de una red neuronal artificial también se denominan neuronas y el peso de sus conexiones. En su versión más simple un procedimiento de búsqueda tabú es como sigue: x: solución actual c(x) = valor de la función objetivo para x N(x): vecindario de x x:=determinarSoluciónInicial. La búsqueda tabú es una metaheurística que resuelve problemas de optimización. 14. end. x:=x’. Página 117 de 190 . que se pueden incluir en especificaciones más complejas. Esta metaheurística resuelve problemas de optimización.x’). Utiliza el concepto de vecindario para probar soluciones. pesos sinápticos. son sistemas de procesamiento de la información cuya estructura y funcionamiento emulan a las redes neuronales biológicas. de manera que sea posible escapar de los óptimos locales y continuar estratégicamente la búsqueda de mejores soluciones. basándose en una gestión de memoria multinivel y exploración.3 Metaheurísticas basadas en el reconocimiento de patrones. actualizarListaDeMovimientosProhibidos(x.1 Redes Neuronales Las redes neuronales artificiales.3.2 Algoritmo de Colonia de Hormigas Un procedimiento heurístico de búsqueda basado en el comportamiento de las colonias de hormigas.Modelos y Métodos de Investigación de Operaciones se puede caer al "moverse" de una solución a otra por el espacio de soluciones. se permiten movimientos a soluciones del entorno aunque se produzca un empeoramiento de la función objetivo. como por ejemplo los niveles de aspiración. Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 118 de 190 © JPGS2011 . Las hormigas tienen memoria que afecta al proceso de construcción del camino de modo que aquel camino que es de menor camino es el que tiene más probabilidad de ser elegido. En los algoritmos ACO se guarda memoria de las conexiones más habituales entre dos elementos consecutivos. pasa por el recurso A donde está 10 minutos y luego por el proceso B donde está 15 minutos. La demanda de cada producto es de P=100 unidades/semana y de Q=50 unidades/semana. Para fabricar el componente 1 del producto P hace falta materia prima por valor de 20€/unidad.1 ¿Cuánto gana la Empresa? Una empresa fabrica 2 productos P y Q.5 metros. El componente 2 utiliza Materia Prima por valor de 20€/unidad.Modelos y Métodos de Investigación de Operaciones 15 ALGUNOS EJERCICIOS DE PROGRAMACION MATEMÁTICA 15. Defina un modelo que genere un plan de corte con el mínimo resto posible. Los dos productos requieren de una misma pieza central. El mes tiene 20 días de 8 horas. P se vende a 90 € y Q a 100 €. d) Establecer un objetivo que pretenda e) ¿Cómo incorporar limitaciones en la disponibilidad de materia prima? f) ¿Cómo incorporar un número indefinido de productos al modelo? 15. Página 119 de 190 . Un día cualquiera recibe pedidos que acumulan los siguientes cortes: 5 barras de 3 metros. lo ensambla el recurso D en 15 minutos cada unidad. la Materia Prima de la cual vale a 20€ la unidad. Para fabricar la pieza central hacen falta 15 minutos del recurso B y 5 minutos del recurso C.2 Problema de Corte Una empresa tiene barras metálicas de 12. Los gastos totales son 3600€/semana a) ¿Cuál es el mejor plan de producción para la empresa? ¿Qué beneficio le aporta? b) ¿Cuál es el valor de una hora más de cada recurso productivo? c) Establecer un objetivo que pretenda maximizar el ratio beneficio entre horas totales de trabajo. Finalmente es ensamblado por el recurso D en 5 minutos. 5 barras de 6. 15 minutos del recurso A y 10 minutos del recurso C.5 metros. 3 barras de 5 metros. 4 barras de 4 metros. Al ensamblar la pieza central con el componente 1 utilizamos otro componente 3 que se compra al precio de 5€/unidad. El producto Q sigue un procedimiento similar. Resolución: El problema puede ser implementado en una hoja de cálculo con la siguiente estructura. Para ello utiliza 2 tipos de máquinas (Mecanizado y Acabado). a) ¿Cuántas unidades debe fabricar? b) Si variara el precio con la cantidad puesta en el mercado según una recta con los siguientes puntos extremos: si vende a 100 el mercado demanda 500.7 y 8 horas al día. Defina cuántos contratos de cada tipo ha de hacer para cada hora de una jornada.700).40). Tiene 3 máquinas de Mecanizado y 2 de Acabado.30.800. Cada tipo de contrato tiene un coste diferente. Cada centenar de producto A requiere 2 horas de Mecanizado y 2 horas de Acabado. El precio de venta de cada unidad es de 50.3 Centralita Telefónica Una empresa tiene una centralita telefónica que debe atender durante 17 horas al día. Y si vende a 50 el mercado demanda 3000. Cada centenar de producto B requiere 3 horas de Mecanizado y 2 horas de Acabado.500.4 Varios Turnos Una fábrica puede trabajar a 3 turnos. Cada centenar de producto C requiere 2 horas de Mecanizado y 1 horas de Acabado.Usando las matemáticas para pensar sobre Dirección de Operaciones. Puede contratar trabajadores a una ETT por 4. 15. ¿Qué precio debe imponer? 15. con costes fijos por turno de (1000.6. Las capacidades productivas son también diferentes (100. La demanda de operadores para las diferentes horas es variable. 15.200) y costes variables diferentes en cada turno por unidad (20. Página 120 de 190 © JPGS2011 .5 Plan de Producción Sea una empresa que fabrica 3 tipos de productos.5. Relajar la restricción de mano de obra con escenario=1. Suponer que se puede alquilar una máquina más de mecanizado con un coste fijo semanal de 300€ y variable de 2€ por hora utilizada 10.Modelos y Métodos de Investigación de Operaciones Además para poner en marcha cada máquina hay que utilizar mano de obra. Plantear el problema para el beneficio promedio esperado. 7. 4. Plantear el problema para Maximizar el mínimo beneficio con Programación Lineal. Plantear el problema para maximizar el uso de la mano de obra.. 8. 2. Plantear el dual del problema original. Suponer que en el escenario 1 existe una relación entre el precio y la cantidad vendida. Imponer un consumo mínimo de 320 horas de mano de obra con el menor número de desigualdades posible.. Maximizar el beneficio por hora trabajada con Programación Lineal. (Resultado: Beneficio=5578) Indices i=1. el beneficio promedio y el mínimo beneficio. de la que disponemos 4 unidades por turno.2 tipos de máquinas e=1. 6.3 tipos de productos j=1. Plantear el problema para el beneficio promedio esperado. 3. e=1 e=2 30% 70% Valor A 50 40 Valor B 50 60 Valor C 40 30 Las demandas están limitadas en 5000 unidades de producto A y 4000 unidades de producto B y 5000 unidades de producto C. 5. de tal modo que el producto entre la cantidad vendida y la raíz cuadrada del precio de venta es constante e igual a 63. Prob. Resolución 2. Los costes de personal semanales se evalúan en 3000 € . 9. El coste de la hora extra son 5€. No se hacen horas extra en fin de semana.. Se plantean dos escenarios de precios por centenar de unidades con probabilidades respectivas del 30% y del 70%.2 escenarios Página 121 de 190 . La semana laboral tiene 120 horas. Suponer que se puede alquilar una máquina más de mecanizado con un coste fijo semanal de 300€ y variable de 2€ por unidad fabricada. 1. 3) vi.7) nj = número de máquinas de tipo j (3. Plantear el problema para Maximizar el mínimo beneficio manteniendo Programación Lineal 3 La expresión del objetivo en formato no Lineal: max min  vi .60)) di = demanda para el producto i en centenares de unidades: (20.e X i  0 i 1 e  1.50. Datos fi.1)) pe = probabilidad del escenario e (0’3.60.(40.40) Variables Xi : Cantidad de producto a fabricar. v i .j= tiempo de producción de i en j ((2.e La expresión del objetivo en formato no Lineal: max  p v e 1 i 1 2 i i 1 ·X i  m ·X i Para plantear este objetivo es necesario hacer una transformación introduciendo las variables wi y t.Usando las matemáticas para pensar sobre Dirección de Operaciones.30.2 y el resto de restricciones 4..3 X i  di con Xi  0 3.40).2).2  m ·X i  120·4 i  1.2).e MAX  p v e 1 i 1 Xi sujeto a : 3 f i 1 3 i 1 i. j ·X i  120·n j i j  1...e = precio de venta del producto i en escenario e : ((50.0.(2. MAX Z sujeto a : 3 Z . donde Xi=wi·t El modelo queda de este modo: Página 122 de 190 © JPGS2011 . Maximizar el beneficio por hora trabajada 2 3 e i .(3.2) mi = horas de personal necesarias para fabricar i (4.e ·X i e i 1 Para plantear este objetivo de modo lineal es necesario crear una nueva variable Z que representará dicho valor mínimo. El modelo queda 2 3 e i .5. Plantear el problema para maximizar el uso de la mano de obra. Página 123 de 190 . Relajar la restricción de mano de obra con escenario=1. y unidas mediante carreteras de diferente longitud grafo conexo). El coste de la hora extra son 5€. Los 3 objetivos no pueden ser considerados simultáneamente 6.2  m ·w i  480·t  0 i  1. 3 MAX v i 1 3 i .6 Localización Dado un conjunto de ciudades.3 X i  di con Xi  0 7.2  m ·X i  u  480 i  1. Imponer un consumo mínimo de 320 horas de mano de obra con el menor número de desigualdades posibles.e MAX  p v e 1 i 1 wi sujeto a : 3 f i 1 3 i 1 i.  m ·X i i i  u  480 u  120 15. j ·X i  120·n j i j  1.Modelos y Métodos de Investigación de Operaciones 2 3 e i .. No se hacen horas extra en fin de semana.... Asumiendo que desde una ciudad se puede servir a otras si la distancia no es superior a un cierto valor.1 X i  5·u sujeto a : f i 1 3 i 1 i. j ·wi  120·n j ·t  0 i j  1..3 wi  d i ·t  0 con wi  0 5. con un beneficio asociado de servirlas y un coste de implantar un centro de servicio en cada una de ellas. el beneficio promedio y el mínimo beneficio. 2 Maximizar el uso de mano de obra se puede representar así:  m ·X i i 1 i Los otros dos objetivos han sido planteados en los apartados 1 y 2. También la puede utilizar para venderla como zumo de uva.9 € por litro.6 hectólitros de alcohol etílico y 2. Sea Z los hectolitros de zumo e Y los hectolitros de alcohol etílico.2 hectólitros de alcohol etílico y 2 hectólitros de poso. Los precios de compra actuales de cada tipo de uva son 60 € los 100 kilos de tipo 1. Rosado y Blanco). Sean X1 y X2 las toneladas de uva de cada tipo que se compran. El zumo de uva se produce con un mínimo de un 70% en volumen de uva. El vino Tinto debe tener un porcentaje máximo de 15% de uva de tipo 2. el vino Rosado se vende a 0. y el vino blanco a 0. y por cada tonelada de uva de tipo 2 se generan 1. y 50€ los 100 kilos de uva de tipo 2. Mientras que el alcohol etílico obtenido de la uva se vende a 1. Por cada tonelada de uva de tipo 1 se generan 1.8 € por litro. El vino Rosado debe tener un porcentaje máximo de 35% de uva de tipo 2 y un porcentaje mínimo de 40% de uva de tipo 1. tras un proceso de mezcla directamente dando lugar a tres tipos de vinos (Tinto.80 litros de cualquiera de los líquidos finales.5 € por litro. V2 y V3 los hectolitros de cada tipo de vino que se venden.7 Vinos “DON PEPÓN” “DON PEPÓN” es la marca comercial de una empresa dedicada a la elaboración de vinos.? c) Cómo obtener máxima rentabilidad? d) Cómo imponer que se debe implantar en A o en B? e) Cómo imponer que se debe implantar en A y en B? f) Cómo imponer que si implantas en A debes hacerlo en B? g) Cómo imponer que si implantas en A no debes hacerlo en B? h) Cómo imponer que si implantas en A y en B debes hacerlo en C? 15.Usando las matemáticas para pensar sobre Dirección de Operaciones. Aunque no se debe incorporar más de un 15% de poso de uva de tipo 1. Página 124 de 190 © JPGS2011 .2 € por litro. o más de un 30% de poso de uva de tipo 2. El litro de zumo de uva está a 0. Cada kilo de uva comprado da lugar a 0. Asimismo se generan El precio en el mercado mayorista del vino tinto “Don Pepón” es de 1 € el litro. La uva la utiliza para fermentarla. El vino Blanco debe tener un porcentaje máximo de 15% de uva de tipo 1. Cuando llega la época de la vendimia debe decidir que cantidad de 2 tipos básicos de uvas debe comprar. zumos y licores. Sean V1. a) Cómo cubrir todas las ciudades a mínimo coste? b) Cómo obtener el máximo beneficio con coste limitado.4 hectólitros de poso mediante la fermentación acelerada. el resto es agua. Y por último la puede fermentar de un modo acelerado y tras destilarla obtener alcohol etílico y un poso que se utiliza también para el zumo de uva. al menos un 30% debe ser Vino Rosado. y al menos un 20% debe ser Vino Blanco. e) Suponga que algunas limitaciones del mercado imponen que al menos un 20% del Vino total producido debe ser Vino Tinto. para ello se utilizará el agua que resulta de la fermentación y nada de agua externa. f) La empresa ha decidido hacer zumo 100% natural. c) Incorpora la restricción de que la capacidad de fermentación máxima de vino es de 5000 hectolitros. se podrían alquilar unas cubas de fermentación con un coste fijo de 100€ y un coste variable por hectolitro de 10€. g) Con la capacidad propia anterior. h) Cómo incorporaría la condición de que o bien se compra uva de tipo 1 o se compra uva de tipo 2. Sobre el modelo realizado hasta la pregunta e) se resuelve mediante la excel con la siguiente tabla Posteriormente se realiza un análisis de sensibilidad con los siguientes resultados para las variables. d) Por restricciones financieras no es posible adquirir más 600. b) Fija las restricciones del modelo anterior. Como incorporar esta condición.Modelos y Métodos de Investigación de Operaciones a) Fija una función objetivo para un modelo que pretenda maximizar beneficios. pero no las dos simultáneamente. Página 125 de 190 .000 € de uva en esta temporada. ¿Cuál es el precio mínimo que habría que ponerle al Vino Rosado para que fuera la opción prioritaria? j) ¿Qué precio debiera tener el alcohol etílico para que lo tuviéramos en cuenta en nuestras opciones de producción? k) ¿Cuánto debiera pagar como máximo por una capacidad de fermentación de un hectolitro de vino más? l) ¿Cuántos litros de agua está añadiendo al zumo? Atendiendo a la pregunta f.Usando las matemáticas para pensar sobre Dirección de Operaciones. ¿en qué cree que cambiarán los resultados cuando el zumo sea 100% natural? Solución a) La función objetivo 100·VT + 90·VR + 80·VB + 50·Z +120·Y – 600·X1 – 500·X2 Página 126 de 190 © JPGS2011 . Y el mismo análisis da los siguientes resultados para las restricciones: i) A partir de los datos anteriores se observa que la solución tiende a generar tanto vino tinto como sea posible. 2) El vino que fermentamos depende de la uva que dedicamos a ello VT = 8·(X1VT+X2VT) (R.7) 0.6) 0.40·VR ≤ 8 X1VR (R.3) VR = 8·(X1VR+X2VR) (R.35·VR ≥ 8 X2VR (R.8) 0.Modelos y Métodos de Investigación de Operaciones b) Hacen falta la siguientes variables: X1VT Cantidad de uva 1 en toneladas dedicada a hacer vino tinto X2VT Cantidad de uva 2 en toneladas dedicada a hacer vino tinto X1VR Cantidad de uva 1 en toneladas dedicada a hacer vino rosado X2VR Cantidad de uva 2 en toneladas dedicada a hacer vino rosado X1VB Cantidad de uva 1 en toneladas dedicada a hacer vino blanco X2VB Cantidad de uva 2 en toneladas dedicada a hacer vino blanco X1Z Cantidad de uva 1 en toneladas dedicada a hacer zumo X2Z Cantidad de uva 2 en toneladas dedicada a hacer zumo X1FA Cantidad de uva 1 en toneladas dedicada a fermentar de modo acelerado X2FA Cantidad de uva 2 en toneladas dedicada a fermentar de modo acelerado P1 Poso obtenido de uva 1 tras la Fermentación acelerada en hectolitros P2 Poso obtenido de uva 2 tras la Fermentación acelerada en hectolitros P1Z Poso obtenido de uva 1 en hectolitros que se dedica al zumo P2Z Poso obtenido de uva 2 en hectolitros que se dedica al zumo Restricciones La uva de tipo 1 que compramos es la que utilizamos (idem para 2) X1=X1VT+X1VR+X1VB+X1Z+X1FA (R.15·VT ≥ 8 X2VT (R.15·VB ≥ 8 X1VT (R.1) X2=X2VT+X2VR+X2VB+X2Z+X2FA (R.5) Calidades del vino: 0.4) VB = 8·(X1VB+X2VB) (R.9) El alcohol etílico que se fabrica es: Página 127 de 190 . 13b) g) Función objetivo: 100·VT + 90·VR + 80·VB + 50·Z +120·Y – 600·X1 – 500·X2 – 100·δ -10·u todas las restricciones igual y además: VT + VR + VB – u ≤ 5000 u-M·δ ≤ 0 h) X1-M·δ1 ≤ 0 X2-M·δ2 ≤ 0 δ1 + δ2 ≤ 1 Página 128 de 190 © JPGS2011 . una variable A que es el agua obtenida de la fermentación Z = 4·X1FA + 3.18) d) La restricción financiera se expresa del siguiente modo: 600 X1+500 X2 ≤ 600000 (R.2·X2FA + 8(X1Z+X2Z) + P1Z + P2Z (R.6·X1FA + 1.21) 0.2·X2FA (R.10) El mismo proceso genera poso: P1 = 2.11) P2 = 2·X2FA (R.7·Z ≤ 8(X1Z+X2Z) + P1Z + P2Z (R.16) P2Z ≤ P2 (R.14) 0.4·X1FA (R.3(VT+VR+VB) ≤ VR (R.22) f) Se puede incorporar en la restricción R.19) e) Las restricciones que impone el mercado respecto a las cantidades de vino se representan del siguiente modo: 0.20) 0.12) El zumo se obtiene de la uva y del poso que dedicamos a zumo (más el agua que añadimos) Z ≥ 8(X1Z+X2Z) + P1Z + P2Z (R.15) P1Z ≤ P1 (R.17) c) La limitación de capacidad se expresa del siguiente modo VT + VR + VB ≤ 5000 (R. Y = 1.2(VT+VR+VB) ≤ VT (R.15Z ≥ P1Z (R.13 un sumando relativo al agua y sustituir la relación de desigualdad por una igualdad.13) 0.Usando las matemáticas para pensar sobre Dirección de Operaciones.2(VT+VR+VB) ≤ VB (R. que el resultado será que Don Pepón abandonará el mercado de los zumos. Teniendo en cuenta que el zumo tiene un margen de variabilidad escaso en el precio. Página 129 de 190 . se puede admitir casi sin hacer más pruebas. k) ¿Cuánto debiera pagar como máximo por una capacidad de fermentación de un hectolitro de vino más? 13.5 € por cada hectolitro de fermentación. y sin embargo el alcohol etílico requiere un gran incremento de precio para ser rentable.Modelos y Métodos de Investigación de Operaciones i) A partir de los datos anteriores se observa que la solución tiende a generar tanto vino tinto como sea posible. l) ¿Cuántos litros de agua está añadiendo al zumo? Atendiendo a la pregunta f. j) ¿Qué precio debiera tener el alcohol etílico para que lo tuviéramos en cuenta en nuestras opciones de producción? Al menos 321 € por hectolitro.15 € por hectolitro. ¿en qué cree que cambiarán los resultados cuando el zumo sea 100% natural? 1697 hectolitros de agua. lo que reducirá la rentabilidad del zumo. salvo que suba sustancialmente el precio de éstos. Actualmente no se produce ningún litro por fermentación acelerada. ¿Cuál es el precio mínimo que habría que ponerle al Vino Rosado para que fuera la opción prioritaria? 97. luego la generación de zumo 100% natural obligará a vender Alcohol Etílico. 15. h) ¿Cómo incorporaría diferentes tipos de zapatillas en el modelo. Página 130 de 190 © JPGS2011 .Usando las matemáticas para pensar sobre Dirección de Operaciones. Se dispone de 200 pares en stock en estos momentos. y 9 € si se produce en horas extras.8 Plan de Producción de Zapatillas Una empresa fabricante de zapatillas deportivas estima la siguiente demanda (en centenares de pares) para los próximos 6 meses. Cada mes se puede trabajar un máximo de 40 horas Durante cada hora de producción es posible fabricar 25 pares de zapatillas. El coste de almacenar un par de un mes para otro es de 0’1 € por par. b) Suponga que tiene un compromiso con los trabajadores de utilizar cada dos meses al menos un 25% de la capacidad en horas extra actual. k) Sobre el modelo original ¿podría incorporar una lista de materiales del producto a fabricar. si fabrica de tipo A paga una penalización dependiente de A. j) Como limitaría los tipos de producto a fabricar en cada periodo de tiempo. El número de días laborables por mes son 20. El número de horas normales disponibles por día son 8. f) ¿Cómo modelaría que se pretende minimizar la máxima desviación entre la producción y la demanda? g) ¿Cómo haría periodos de duración variable? Por ejemplo la consideración de meses de diferente cantidad de días. para establecer sus planes de compra? Suponga un plazo de entrega de un mes para cada componente. c) ¿Cómo limitar la capacidad del almacén? d) Suponga que el objetivo sea minimizar el máximo stock entre periodos. e) Suponga que el objetivo es minimizar las diferencias de producción entre un mes y el siguiente: para cualquier mes. para poder hacer un plan conjunto? i) Suponiendo e) ¿Cómo incorporaría un precio fijo a fabricar de un tipo o de otro en cada periodo de tiempo? Básicamente es como un coste de cambio de partida. a) Establecer el modelo que permite definir el plan de trabajo para los próximos meses a mínimo coste. Mes 1 Cantidad 30 Mes 2 40 Mes 3 55 Mes 4 30 Mes 5 60 Mes 6 35 Los costes de producción de cada par se evalúan en 7 € si se producen en horas normales. l) Plantear el dual del problema original. y unos costes de funcionamiento Fijos y Variables. Con unos costes de construcción. La empresa se plantea la política de mínimo coste para el nuevo año. o triplicar su capacidad a diferentes costes. siempre que no se sobrepasaran los costes totales óptimos más que en un 20%? d) Cómo incorporaría la posibilidad de servir directamente a las zonas de clientes desde las destilerías? e) De los 3 centros de distribución del modelo original sólo pueden quedar 2. l) La capacidad de la destilería 2 puede ser superada con un coste adicional por unidad vendida. y unos costes fijos (F) anuales y otros relativos al volumen (V) que se mueve. crecen proporcionalmente a la raíz cuadrada del volumen movido. Cada centro de distribución tiene una capacidad limitada tanto superior (S) como inferiormente (I) . k) Sobre el problema original se pretende que la capacidad de la destilería primera pueda duplicar. Se conocen los costes de servir a cada zona de clientes desde cada destilería a través de cada centro de distribución. m) Los costes variables de trasiego en cada centro de distribución. para ampliar su capacidad en un 40%. f) Se plantea hacer una inversión en el primer centro de distribución. Modele el problema. Modele el problema. Modele la situación. a través de 3 centros de distribución que se aprovisionan de 2 destilerías.9 Problema de Distribución Una empresa de fabricación y distribución distribuye a 5 zonas de clientes. a) Cómo modelaría el problema? b) Cómo incorporaría la consideración de diferentes productos en el mismo sistema logístico? c) Cómo definiría un modelo que pretendiera minimizar la diferencia de uso de capacidad entre las dos destilerías. Modele la situación. ¿Cómo plantear el problema para saber si será rentable y a quien afectará el cambio? j) Sobre el problema original se pretende maximizar el ratio de costes variables sobre fijos. propiedad también de la misma empresa. Cada destilería tiene una capacidad (C ) de producción limitada. lo que podría implicar cerrar algunos de los centros de distribución. para ampliar su capacidad en un 40%. para ampliar su capacidad en un 40%. amortizables en 5 años. Página 131 de 190 . ¿Cómo evaluaría las ventajas de invertir o no invertir? g) Se va a hacer una inversión en algún centro de distribución. ¿Cómo evaluaría las ventajas de invertir o no invertir? i) Se plantea abrir un nuevo centro de distribución. ¿Cómo evaluaría en cual de ellos compensa invertir? h) Se plantea hacer una inversión en el primer centro de distribución.Modelos y Métodos de Investigación de Operaciones 15. Cada zona de clientes tiene una demanda (D) que debe ser abastecida. 10 Gestión de Stocks Trabaja usted en una empresa cuya actividad básica es la compra-venta de material electrónico. energía. aduanas y demás gastos asociados. El plazo de entrega desde que se lanza el pedido es de 4 semanas.Usando las matemáticas para pensar sobre Dirección de Operaciones. El saldo negativo del flujo de caja (diferencia entre cobros y pagos) tiene un coste financiero (CF). etcétera) decide que no puede aplicar métodos de punto de pedido o de aprovisionamiento periódico. como cualquier empresa seria. usted paga un precio de compra (PC) por el producto (que es variable para los distintos periodos de tiempo) y el proveedor se hace cargo de todo el transporte. El dato viene en unidades monetarias por unidad de producto almacenado y por periodo de previsión. que decida cuánto y cuándo comprar. esto es. aunque su variabilidad es conocida con un margen de error pequeño. Los costes de almacenamiento físico (H) son conocidos aunque varían según el periodo. usted pretende plantear un modelo matemático y posteriormente resolver con herramientas de las que existen en la red. El precio de venta es conocido y variable por periodo(PV). Ha quedado usted encargado de ello. por no asistir a la reunión donde se trató el tema. precios variables. 15. sino porque usted es el más capacitado para sacarlo adelante. Esta previsión incluye los gastos como nóminas. La empresa suele cobrar 3 semanas después de haber producido la venta. Además no es posible sobrepasar el saldo negativo en más de una cierta cantidad límite (LN). Para desarrollar un sistema informático. Página 132 de 190 © JPGS2011 . tiene una previsión de pagos (PP). La empresa ha decidido implantar un sistema de gestión de stocks informatizado. beneficios. La empresa compra y vende un solo producto3 de un proveedor taiwanés. entre otros motivos. La demanda (D) de nuestro producto varía con los periodos. Tras analizar los productos con los que trabaja (demandas variables. costes de almacenamiento variables. del mismo modo que el saldo positivo lleva asociado un coste de oportunidad (CO). La empresa. Sus compañeros insisten en que el marrón no le cayó por no estar presente. alquileres pero excluye los gastos de adquisición de materiales (porque de esto se encarga su programa informático) 3 Evidentemente esto es una simplificación para empezar. Y al cliente se le paga 4 semanas después de haber recibido el producto. que es variable según los periodos. El tipo de entrega es en bodegas del cliente. asimismo será agradecido el uso de los parámetros ya indicados en negrita. Para conocer el flujo de caja nos fijamos en lo que cobra y lo que paga. que distingue el cobro del ingreso. Si requiere incorporar variables y/o parámetros no dude en hacerlo. Los periodos de previsión que usted considera son semanas. Se considerará que explique cada restricción. Para saber cuanto dinero gana una empresa nos fijamos en lo que ingresa y lo que gasta. Y el horizonte de planificación es de 26 semanas. Variables x: cantidad vendida en el periodo t y: cantidad comprada en el periodo t z: cantidad en inventario al final del periodo t f: flujo de caja en el periodo t w: flujo de caja negativo 4 Hay que recordar que en contabilidad se aplica el concepto del devengo.Modelos y Métodos de Investigación de Operaciones Como es evidente el objetivo de la empresa es ganar la máxima cantidad de dinero posible4. parámetros y variables que va a utilizar. Se considerará que indique y explique los índices. a) (2 puntos) Plantee el modelo matemático. Respuesta a) Índices t: Índice temporal Parámetros PV: Precio de Venta en el periodo t PC: Precio de Compra en el periodo t H: Coste de almacenar una unidad en el periodo t CF: Precio pagado en el periodo t por una unidad monetaria dispuesta de la línea de crédito que financia el flujo de caja. Página 133 de 190 . y los gastos de los pagos. Se agradecerá que utilice mayúsculas para los parámetros y minúsculas para las variables. CO: Coste de oportunidad en el periodo t de una unidad monetaria D: Demanda prevista en el periodo t PP: Pagos Previstos LN: Límite de la línea de crédito. 26 i=1..26 [r1.t 8 yi . y por tanto no es una variable sino un parametro c) (1 punto) Suponga que si en un periodo se produce compra de alguno de los productos hay que pagar un coste fijo (SU) por transporte.t i.26 t=1..4] [r2.t zi .6] wt   f t vt  f t wt  LN Todas las variables excepto f t son reales positivos o nulos Cuando una variable tenga indice negativo se asume que el valor correspondiente es resultado de una iteracion anterior.t   PCi .Usando las matemáticas para pensar sobre Dirección de Operaciones.t 8   PVi .26 t=1... Modele la situación Página 134 de 190 © JPGS2011 .t   H i .2] [r2.. Se incorpora un nuevo índice i a todos los parámetros y variables que tengan que ver con los productos.t zi .26 i=1.P t=1.P t=1.t 1  yi ..t yi .. y por tanto no es una variable sino un parametro b) (1 punto) ¿Cómo se modifica el modelo si hubiera más de un producto que se recibe del mismo proveedor? Construya el modelo.t i . Sean P los productos que se compran del mismo proveedor..1] [r1.26 t=1.3] [r2....t   CFt wt   COt vt i.26 t=1.t t=1.t  zi .6] t=1...26 i=1.t 3 xi .t  4  xi .P t=1.4] [r1..3] Todas las variables excepto f t son reales positivos o nulos Cuando una variable tenga indice negativo se asume que el valor correspondiente es resultado de una programacion anterior anterior.5] [r2.2] [r1.t xi .26 [r1.26 t=1.t  Di .t t t sujeto a xi .26 [r2.t 3  PPt i .t ft  ft 1   PCi . v: flujo de caja positivo Max  PV x   PC y   H z   CF w   CO v t t t t t t t t t t t t t t t sujeto a xt  Dt zt  zt 1  yt  4  xt ft  ft 1  PCt 8 yt 8  PVt 3 xt 3  PPt wt   f t vt  f t wt  LN t=1..1] [r2.26 t=1.t i . Max  PV i.5] [r1. 1000[  Di si la cantidad a comprar es mayor que 1000  Modele la situación. e) Cómo obligar a que dos tareas determinadas estén juntas 15.12 Jorge y Nuria Jorge y Nuria se quieren casar. aunque ahora ya suman alrededor de 250 invitados. Establecer una asignación que utilice el mínimo número de estaciones. Página 135 de 190 . Inicialmente Jorge y Nuria querían una boda íntima. Dicho reparto de invitados es una de las actividades más tediosas de las que se encontrarán: El tío tal no se puede sentar con su concuñado porque se llevan a muerte. respetando la linealidad del modelo. Entre otros quebraderos de cabeza que les harán perder unas cuantas horas de aquí al día de la boda. Ella de blanco por la alegría y él de negro. b) Como conseguir además el mínimo desequilibrio de carga entre estaciones. que le comprará a él en lugar de a usted. c) Dado el número de estaciones.500[  PCi   i Ci si la cantidad a comprar esta en [500. d) Cómo obligar a que dos tareas determinadas estén separadas.t) por unidad diferida por periodo. Modele la situación 15. no es el menor la tarea de asignar los invitados a las mesas. dos invitados excusan en el último momento su asistencia.. Sus estimaciones indican que de aceptar el trato este distribuidor se hará con el 10% de su demanda habitual estimada. Sus condiciones son: f1) que el precio por el que el distribuidor compra ha de ser un 25% inferior a nuestro precio de venta habitual y f2) los plazos de pago son de 9 semanas desde que el distribuidor adquiere el producto. de tal modo que los precios de compra por unidad son los siguientes:  Ai si la cantidad a comprar es menor que 100  B si la cantidad a comprar esta en [100.. El ingreso que se producirá será acorde al precio de venta en la semana en que el cliente quería adquirir el producto. Si no aceptase la oferta sabe que perderá un 5% de las ventas. f) (2 puntos) Un gran distribuidor le ofrece un contrato de compra garantizada para el próximo año de (CGt) unidades de uno de los productos en cada uno de los periodos.Modelos y Métodos de Investigación de Operaciones d) (2 puntos) Suponga que puede diferir demanda de un periodo a otro con un coste suplementario (Ki. como todos. conseguir la asignación de mínimo tiempo de ciclo. cada una con una duración y un conjunto de precedencias. e) (2 punto) Suponga que hay descuentos por cantidad para cada producto.11 Equilibrado de Líneas Se tiene un conjunto de tareas. a) Dado un tiempo de ciclo. Cada una de ellas tiene una capacidad diferente (entre 8 y 12 comensales cada una). Plantee un modelo que persiga maximizar la suma de afinidades en las mesas. b) Plantee una restricción que evite que dos cuñados que se llevan mal se sienten en la misma mesa. Estas agrupaciones mínimas son grupitos de invitados que no se pueden separar. por razones más o menos obvias. parejas. gran experto en diseño de modelos e implementaciones informáticas. Página 136 de 190 © JPGS2011 . que les va a echar una mano. Será interesante en este apartado incorporar una variable binaria que indique si cada par de agrupaciones mínimas está en una misma mesa. matrimonios. etcétera. Para ello considera que uno de los conjuntos de datos (en el modelo debe constituir uno de los índices) a considerar son las agrupaciones mínimas (individuos. modificar. la afinidad entre dos agrupaciones mínimas se suma si pertenecen a la misma mesa. Suponga que entre cada agrupación mínima de invitados existe una relación de afinidad (que los novios valorarán numéricamente). a) Plantee un modelo donde se pretenda minimizar el número de mesas a utilizar. Otro de los conjuntos de datos a considerar son las mesas. c) Suponga que el número de mesas máximo viene fijado por la capacidad del salón. imprimir las listas. usted.Usando las matemáticas para pensar sobre Dirección de Operaciones. d) En el caso anterior ¿cómo penalizaría que una agrupación mínima se quedara aislada en una mesa sin conocidos? Resolución a) Plantee un modelo donde se pretenda minimizar el número de mesas a utilizar. Tienen un amigo. Es decir. construyendo una aplicación que permitirá hacer y rehacer. tríos y otras agrupaciones de invitados). Es decir. Sean i y j las agrupaciones correspondientes a los cuñados que se llevan mal  i . k   j . Plantee un modelo que persiga maximizar la suma de afinidades en las mesas. Suponga que entre cada agrupación mínima de invitados existe una relación de afinidad (que los novios valorarán numéricamente).Modelos y Métodos de Investigación de Operaciones Indices i : Indice que recorren las agrupaciones minimas.1 Indica si la mesa k se utiliza [MIN]  k i .k k sujeto a N i i  M k · k k i  k i.1 Indica si la agrupacion i se sienta en la mesa k  k  0.k  0. Parametros N i : Numero de individuos en la agrupacion i M k : Capacidad de sillas en la mesa k Variables  i . k  1 k c) Suponga que el número de mesas máximo viene fijado por la capacidad del salón.k 1 En realidad la segunda restricción no es necesaria pero no está de más para ponerlo b) Plantee una restricción que evite que dos cuñados que se llevan mal se sienten en la misma mesa. k : Indice que recorre las mesas disponibles. la afinidad entre dos agrupaciones mínimas se suma si pertenecen a la misma mesa. Será interesante en este apartado incorporar una variable binaria que indique si cada par de agrupaciones mínimas está en una misma mesa. Página 137 de 190 . j  i . j · i . j . k : Indice que recorre las mesas disponibles.  i es una nueva variable que valdra 1 si en la mesa donde se sienta i no hay nadie conocido Se asumen que los coeficientes de afinidad solo pueden ser positivos Si C j .Usando las matemáticas para pensar sobre Dirección de Operaciones.1 Indica con un 1 si la agrupacion i y la j comparten la mesa k [MAX]  Ci .j.k   j .k  0.k  i .k  0. k  0 k k i N i i i. j i.k  M k · k  k i . k =0 debemos penalizar a la agrupacion i ( i =1) Esto se hace del siguiente modo C j .1 Indica si la mesa k se utiliza  i. j : Indices que recorren las agrupaciones minimas. jk i. j . Parametros N i : Numero de individuos en la agrupacion i M k : Capacidad de sillas en la mesa k MMax: Numero de mesas maximo Ci.k 1  k k  MMax d) En el caso anterior ¿cómo penalizaría que una agrupación mínima se quedara aislada en una mesa sin conocidos? Sea i la agrupacion que no queremos dejar aislada. k  2· i .1 Indica si la agrupacion i se sienta en la mesa k  k  0.j. - P  i i Con P un factor de penalizacion Página 138 de 190 © JPGS2011 .k i.k sujeto a  i . Indices i. j .j : Indice de afinidad entre agrupaciones Variables  i .k    0 En la funcion objetivo se ha de incorporar un sumando que penalice la funcion objetivo. Últimamente está un poco harto del trabajo. h) Desde c) Suponga que pretende dotar de una cierta calidad al sistema.13 Operación Brisca Usted trabaja en una multinacional del sector audiovisual y últimamente le están pidiendo que haga recopilatorios de canciones de “cantantes de ayer y siempre”. Diseñe el modelo entero incorporando lo que considere conveniente. contrario 0 en caso Página 139 de 190 . Para ello parte de los siguientes índices. una cinta de audio para la venta en gasolineras (con dos caras de igual capacidad Ca) .Modelos y Métodos de Investigación de Operaciones 15. c) Si fijamos un número mínimo de canciones de cada época ¿cómo incorporaría esta restricción? d) Como minimizaría la diferencia entre el máximo y el mínimo número de canciones de cada época que ha puesto? e) Desde c) Suponga que le piden que diseñe. g) Desde c) Por razones sentimentales le indican que la canción 4 de la época 2 y la canción 3 de la época 5 entran las dos o no entra ninguna. Básicamente el problema consiste en definir un conjunto de canciones que quepan en el CD. pero que las buenas canciones valen más dinero. Estos recopilatorios se graban en CD’s para vender a través de Teletiendas. Está pensando en hacer un pequeño software basado en programación lineal que haga automáticamente las recopilaciones. utilizando al máximo el espacio disponible y que las diferentes épocas del autor estén reflejadas. además. con las mismas canciones. Para ello puntúa las diferentes canciones y pretende que la calidad del CD sea lo máxima posible.1}Variable binaria que vale 1 si la canción j de la época i se incorpora en el soporte. Sean éstas la canción 3 de la época 1 y la canción 8 de la época 3. f) Desde c) Determinadas canciones no pueden entrar simultáneamente en el mismo CD por razones de copyright. j de de la la Variables del Xi. en el que su criterio artístico (su famoso “oído musical”) no sale demasiado bien parado. Modele la nueva función objetivo i) Desde h) La productora le comenta que lo de la calidad está muy bien. Plantee el objetivo lineal (así como las restricciones asociadas) que permiten maximizar el ratio calidad/precio. datos y variables: Índices i: Recorre las épocas del C: autor j: Recorre las canciones di.j {0.j de cada época Datos Capacidad soporte Duración canción época i a) Defina la función objetivo b) Defina la restricción de que las canciones seleccionadas deben caber en el soporte. j  Z  0 i. j . j ·X i . j ·X i . j .k d i . j i . d i. j b) Defina la restricción de que las canciones seleccionadas deben caber en el soporte. Definimos Xi. j .k i . j .k como una variable binaria que indica que la canción i de la época j va en la cara k max s. j  N e) Desde c) Suponga que le piden que diseñe.j.1 i . j ·X i . j ·X i . j ·X i . j  0  j X d X i. j ·X  C j  j i. j i . 2 d j k X X j i .k d j . j ·X i . k C  Ca  Ca d j i . con las mismas canciones. una cinta de audio para la venta en gasolineras (con dos caras de igual capacidad Ca) . Diseñe el modelo entero incorporando lo que considere conveniente. j  N j siendo Nj el número mínimo de canciones para cada época d) Como minimizaría la diferencia entre el máximo y el mínimo número de canciones de cada época que ha puesto? Se define una variable M que será el máximo.k 1 i. Habría que cambiar las variables para que indiquen en que cara va cada canción. j i. j  j i. además. min s . Resolución a) Defina la función objetivo maximizar d i. j Nj Página 140 de 190 © JPGS2011 . j . j C c) Si fijamos un número mínimo de canciones de cada época ¿cómo incorporaría esta restricción? X i. j .Usando las matemáticas para pensar sobre Dirección de Operaciones.a i . y una variable Ñ que será el mínimo entonces.a Y  Y  Z  j X i. Sean éstas la canción 3 de la época 1 y la canción 8 de la época 3.j que indica el precio de la canción (i. j ·wi .j). j ·X i .j max imizar a i. X1. Definimos el parámetro bi. Modele la nueva función objetivo Definimos el parámetro ai.j) La nueva función objetivo es: a maximizar i. j b i. j i . j  N j ·t  0 Página 141 de 190 .3+X3. j b i. j i . pero que las buenas canciones valen más dinero. j i . j i) Desde h) La productora le comenta que lo de la calidad está muy bien. La nueva función objetivo es: maximizar a i. j j w i.Modelos y Métodos de Investigación de Operaciones f) Desde c) Determinadas canciones no pueden entrar simultáneamente en el mismo CD por razones de copyright. j · i .81 g) Desde c) Por razones sentimentales le indican que la canción 4 de la época 2 y la canción 3 de la época 5 entran las dos o no entra ninguna.3=0 h) Desde c) Suponga que pretende dotar de una cierta calidad al sistema. j Para linealizar se define la variable wi. j i . j 1  C ·t  0 d j w i. Plantee el objetivo lineal (así como las restricciones asociadas) que permiten maximizar el ratio calidad/precio. j ·X i .4-X5. j w i . j · i. j ·X i . Para ello puntúa las diferentes canciones y pretende que la calidad del CD sea lo máxima posible.j que indica la calidad de la canción (i. X2. 15. Dichas capacidades no se pueden sobrepasar Capacidad en Peso (Tm) Delantero Central Trasero 12 16 10 Capacidad en Volumen (m3) 6000 9000 5000 Además y a efectos de estabilidad en vuelo del avión. Central y Trasero) con diferentes capacidades en peso y en volumen cada uno de ellos.14 Carga de Aviones. (1 punto) c) Defina las restricciones que considere necesarias para establecer la limitación de demanda. es necesario que el porcentaje de peso ocupado sobre el total sea el mismo en cada compartimiento (1 punto) (1 punto) a) Defina la función objetivo b) Defina las restricciones que considere necesarias para establecer la limitación de capacidad en peso y volumétrica. El avión se divide en 3 compartimentos (Delantero. Está intentando cargar un BAING 717 con una carga de 4 productos distintos. Es usted el responsable de carga de una empresa de transporte de mercancías por avión. (1 punto) d) Defina las restricciones que considere necesarias para establecer las consideraciones de equilibrio de la carga. Página 142 de 190 © JPGS2011 .Usando las matemáticas para pensar sobre Dirección de Operaciones. Cada uno de ellos con las siguientes características: Volumen Carga C1 C2 C3 C4 Peso (Tm) 18 20 10 16 (m3/tm) 500 600 550 400 Beneficio (€/Tm) 300 450 350 275 El proceso de asignación de cargas es como sigue. (paracaídas y demás).67 Gradiente reducido -25 0 0 0 0 0 0 0 0 0 Coeficiente Aumento Disminución objetivo permisible permisible 300 25 1E+30 450 118.Modelos y Métodos de Investigación de Operaciones El modelo anterior se ha resuelto utilizando el solver de Excel y se ha obtenido el siguiente análisis de sensibilidad Nombre Cantidad cargada de 1 Cantidad Cargada de 2 delante Cantidad Cargada de 3 delante Cantidad Cargada de 4 delante Cantidad Cargada de 2 en el centro Cantidad Cargada de 3 en el centro Cantidad Cargada de 4 en el centro Cantidad Cargada de 2 detrás Cantidad Cargada de 3 detrás Cantidad Cargada de 4 detrás Restricciones Celda Nombre Limitación de Demanda de 1 Limitación de Demanda de 2 Limitación de Demanda de 3 Limitación de Demanda de 4 Limitación de Peso delante Limitación de peso central Limitación de peso trasero Limitación volumen delante Limitación volumen central Limitación volumen trasero Valor Igual 0 20 5. (ya sabe los beneficios son los beneficios) la carga en peso de la parte delantera ? (1 punto) f) ¿Cuál es el precio que debiera pagar el propietario de la carga de tipo 1 para que consideráramos su producto como posible mercancía en nuestro avión. sin pérdida de beneficios? (1 punto) g) Hay algunos elementos prescindibles en la carga muerta del avión que ocupan volumen aunque no pesan nada.33 0 0.89285696 350 28.88 1 1E+30 4.5 0 0 0.1249999 0 275 0 51.75 0 350 0 1E+30 275 100 0 450 89. Modele la situación (1 punto) i) Defina el modelo que incorpore todas las restricciones citadas y además el objetivo sea maximizar el ratio beneficio total/volumen ocupado.66 12 16 10 6000 9000 5000 Precio Sombra 0 75 0 0 237.06249965 0 350 0 1E+30 275 100 0 450 0 50.50602392 (1 punto) e) ¿Cuál sería el beneficio de aumentar un poco aún a costa de seguridad.5 0. deshacerse de ellos? (1 punto) h) Un cliente le indica que si transporta carga de tipo 2 debe también transportar al menos un 25% de la carga de tipo 1.67 1E+30 3.33 3.33 12.21 1E+30 0 1E+30 0 200 500 200 500 550 500 Valor Igual 0 6 0 6 13 0 3 1 5.5 Restricción lado derecho 18 20 10 16 12 16 10 6000 9000 5000 Aumento Disminución permisible permisible 1E+30 18 3.5 0. (1 punto) j) ¿Cómo permitiría un desequilibrio de un 10% en el ratio de peso entre las distintas bodegas del avión? Página 143 de 190 . su jefe le pregunta por el beneficio que supondría por unidad de volumen. Usando las matemáticas para pensar sobre Dirección de Operaciones. Resolución Índices i : Recorre los productos a transportar. (1..P) j : Recorre las bodegas del avión. (1..Q) Parámetros Sea Bi el beneficio de transportar una unidad (en peso) de carga de tipo i Sea CPj la capacidad en peso de la bodega j Sea CVj la capacidad en volumen de la bodega j Sea Di la demanda de transporte de producto i Variables Sea Xi,j la cantidad a transportar (en peso) de carga de tipo i en la bodega j. a) Defina la función objetivo B X i i, j i, j b) Defina las restricciones que considere necesarias para establecer la limitación de capacidad en peso y volumétrica. X i i i i, j  CPj i, j j=1..Q j=1..Q V X  CV j c) Defina las restricciones que considere necesarias para establecer la limitación de demanda. X i, j i, j  Di i=1..P d) Defina las restricciones que considere necesarias para establecer las consideraciones de equilibrio de la carga. CP  X i ,2  CP2  X i ,1 1 i i CP  X i ,3  CP3  X i ,1 1 i i e) ¿Cuál sería el beneficio de aumentar un poco aún a costa de seguridad, (ya sabe los beneficios son los beneficios) la carga en peso de la parte delantera ? Página 144 de 190 © JPGS2011 Modelos y Métodos de Investigación de Operaciones En realidad aunque el precio sombra es elevado (237,5) el aumento permisible es 0, lo que significa que no es posible aumentar la carga sin cambiar la estructura de la solución, y por tanto no se puede decir nada a priori sobre los beneficios. f) ¿Cuál es el precio que debiera pagar el propietario de la carga de tipo 1 para que consideráramos su producto como posible mercancía en nuestro avión, sin pérdida de beneficios? 325 €. g) Hay algunos elementos prescindibles en la carga muerta del avión que ocupan volumen aunque no pesan nada, (paracaídas y demás), su jefe le pregunta por el beneficio que supondría por unidad de volumen, deshacerse de ellos? 0,5 €. h) Un cliente le indica que si transporta carga de tipo 2 debe también transportar al menos un 25% de la carga de tipo 1. Modele la situación. X j 2, j  0    1   X 1, j  0, 25 D1 j X j 2, j  20  0  4,5  0 X j 1, j i) Defina el modelo que incorpore todas las restricciones citadas y además el objetivo sea maximizar el ratio beneficio total/volumen ocupado. max B X V X i i, j i i, j i, j i, j  max  Bi wi , j i, j i, j sujeto a : V w i i, j 1 w i i i i, j  CPj t  0 i, j V w w j i, j  CV j t  0  Di t  0 CP  wi ,2  CP2  wi ,1 1 i i CP  wi ,3  CP3  wi ,1 1 i i j) ¿Cómo permitiría un desequilibrio de un 10% en el ratio de peso entre las distintas bodegas del avión? X i i,k X  1,1 i i, j CPk CPj j,k Página 145 de 190 Usando las matemáticas para pensar sobre Dirección de Operaciones. 16 ALGUNOS EJERCICIOS DE OPTIMIZACIÓN COMBINATORIA 16.1 Problema del FlowShop de 3 máquinas. 16.1.1 Descripción del Problema Sea un taller de flujo compuesto por M máquinas donde se deben secuenciar N productos, que para su elaboración pasarán de manera consecutiva por cada una de las M máquinas, con unos tiempos de ejecución de cada producto i en cada máquina de p(i,j) respectivamente. Se trata de definir la secuencia que minimice el tiempo de flujo máximo (Cmax) que se define como el lapso de tiempo mínimo que transcurrirá desde que el primer producto se empieza a producir en la primera máquina hasta que el último se acaba de producir en la última máquina. 16.1.2 Definición de la estructura de la solución. Una solución es la permutación que indica el orden en que se deben ejecutar los trabajos. Una solución se puede representar por un vector v[i] que define de modo ordenado la secuencia de trabajo 16.1.3 Definición del modo de evaluar la solución. Dada una solución v(i), se trataría de calcular cuando acaba de producirse el producto en posición n, es decir v(n) Maq[1]:=0;Maq[2]:=0;Maq[3]:=0; for i=1 to n do begin Maq[1]:=Maq[1]+p[v[i],1]; Maq[2]:=Max(Maq[1],Maq[2])+p[v[i],2]; Maq[3]:=Max(Maq[2],Maq[3])+p[v[i],3]; end; Cmax=Maq[3]; 16.1.4 Un procedimiento de generación aleatoria de soluciones. Sea v un vector con los n elementos a permutar i:=0; While i<n-1 do begin j:=random(1..n-i) intercambiar(v[i+1];v[i+j]) i:=i+1 end; // del while 16.1.5 Un procedimiento enumerativo de resolución. Página 146 de 190 © JPGS2011 3]. Elegir un nodo (por ejemplo según menor f(n)) Explotar el nodo (añadir un producto de los no secuenciados a la secuencia).1]+p[i. Eliminar los nodos para los cuales el valor de f(n) es mayor que la mejor solución ya obtenida.1.6 Un procedimiento heurístico Se puede establecer un procedimiento heurístico por la vía de generar una lista ordenada según un determinado criterio y secuenciar según dicho criterio.7 Un procedimiento de mejora local Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario. definir el modo en que se va a seleccionar el nodo a explotar.j) Ordenar los productos según prod decrecientes Asignar a v la anterior ordenación. 16. Si el número de elementos a añadir es 0.Modelos y Métodos de Investigación de Operaciones Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo. Guardar en su caso. definir el primero de los nodos y definir el modo de eliminar los nodos. Ordenar los productos según prod crecientes Asignar a v la anterior ordenación. • • • • Definir f(n) – f(n)=g(n)+h(n) – g(n)=el momento en el que acaba el último producto de la secuencia ya generada en la última máquina – h(n)=la suma de las operaciones en la última máquina de los productos no secuenciados. Evaluar f(n) para las nuevos nodos. El primer nodo es la secuencia vacía. Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. generarUnaSoluciónInicial. Sea v un vector con los n elementos a permutar Calcular para cada producto prod[i]:=p[i.3} (2j-1)*p(i. generarElNodoInicial.2]+p[i. evaluar el nodo y comparar contra la mejor solución obtenida. definir el modo de explosión. Mientras haya nodos abiertos. Definir el modo de selección del nodo a explotar – Por ejemplo el de menor f(n) Definir el modo de explotar nodos – Añadir un producto aún no secuenciado a la secuencia. Sea v un vector con los n elementos a permutar Calcular para cada producto prod(i)=sum{j=1..1. Página 147 de 190 . 16. // del while 16. El vecindario seleccionado es el de intercambiar dos elementos de la permutación. Sea un conjunto de puntos de un plano a una cierta distancia unos de otros.1 Descripción del Problema. Se trata de unir todos los puntos mediante un circuito que sólo visite cada nodo en una ocasión minimizando el recorrido Página 148 de 190 © JPGS2011 . end. Por tanto para definir el procedimiento hace falta: Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. while not(hayQueParar) do begin seleccionarPadres. if HayMejora then i:=1. construirNuevaSolucion. actualizarPoblación. Si no es mejor se calcula una mutación mediante un intercambio de dos elementos y se incorpora a la población eliminando una solución cualquiera elegida al azar.Usando las matemáticas para pensar sobre Dirección de Operaciones. La solución inicial se genera aleatoriamente.1. i:=1. end. while ((j<=n) and not(HayMejora)) do begin j:=j+1.2. if evaluarSolucion(v)<=coste then HayMejora:=true else deshacerIntercambio(v[i]. 16. coste:=evaluarSolución(v). if j=n then i:=i+1. intercambiar(v[i]. Se define un procedimiento de cruce (por ejemplo OX con dos puntos de cruce). Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye.2 Problema del viajante de comercio. 16.v[j]). while (i<=n-1) do begin j:=i.v[j]). Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. HayMejora:=false. El proceso de mejora local seleccionado es Mejora Iterativa Simple. generarSolucionAleatoria. provocarMutaciones.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial. end. Si el número de elementos que quedan por añadir es 0.2. Guardar en su caso. Elegir un nodo Explotar el nodo.v[seleccion]] then seleccion:=j. definir el primero de los nodos y definir el modo de eliminar los nodos. // del for intercambiar[v[i+1]. La solución se puede representar mediante una permutación de los puntos a visitar. 16.6 Un procedimiento heurístico Un procedimiento heurístico de construcción sería el del vecino más próximo.3 Definición del modo de evaluar la solución.2.v[i+1]]. Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo.v[1]]. End coste=coste+distancia[v[n]. Definir el modo de selección del nodo a explotar – Por ejemplo el de mayor profundidad(mayor número de ciudades incorporadas) en caso de empate utilizar el menor valor de f(n) Definir el modo de explotar nodos – Añadir todos los puntos aún no visitado a la secuencia.2. Página 149 de 190 . Evaluar f(n) para los nuevos nodos. // del while 16. generarUnaSoluciónInicial. El primer nodo contiene un punto cualquier al azar al azar. evaluar el nodo y comparar contra la mejor solución obtenida. While i<n-1 do begin j:=random(1. generarElNodoInicial. Eliminar los nodos para los cuales el valor de f(n) es mayor que la mejor solución ya obtenida.2 Definición de la estructura de la solución. definir el modo en que se va a seleccionar el nodo a explotar.v[j]]< distancia[v[i]. • • • • Definir f(n) – f(n)=g(n)+h(n) – g(n)= es la suma de las distancias entre los puntos ya asignados – h(n)=el número de nodos por asignar multiplicado por el menor valor de la matriz distancia más el menor valor en la columna del primer elemento de la secuencia.2.n-i) intercambiar(v[i+1]. definir el modo de explosión.4 Un procedimiento de generación aleatoria de soluciones. coste:=0 For i:=1 to n-1 do begin coste=coste+distancia[v[i]. 16. Sea v un vector con todos los nodos a visitar i:=1 while i<=n-1 do begin seleccion=i+1.5 Un procedimiento enumerativo de resolución. for j:=i+2 to n do begin if distancia[v[i]. Sea v un vector con los n elementos a permutar i:=0.2.v[seleccion]].Modelos y Métodos de Investigación de Operaciones 16. end.v[i+j]) i:=i+1 end.. 16. Mientras haya nodos abiertos. while ((j<=n) and not(HayMejora)) do begin j:=j+1. end. El proceso de mejora local seleccionado es Mejora Iterativa Simple. aunque este procedimiento sólo produciría mejoras en caso de matrices asimétricas.Usando las matemáticas para pensar sobre Dirección de Operaciones. Además se podría comenzar el tour por el último nodo. end. end. //del while Este procedimiento podría ser mejorado si se repitiera N veces y en cada ocasión se hiciera empezar el ciclo por un nodo diferente y se guardara el mejor resultado. if j=n then i:=i+1. if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(j. actualizarPoblación. provocarMutaciones.j). mutaciónInversa(i.7 Un procedimiento de mejora local Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario.i). end. HayMejora:=false. La solución inicial se genera mediante la HeuristicaVecino más Cercano. if HayMejora then i:=1.2. Se selecciona un modo de selección de padres en función de una ruleta donde: fitness(v)=1/Evaluación(v) Se define un procedimiento de cruce (por ejemplo OX). construirNuevaSolucion. El vecindario seleccionado es el de provocar un 2-opt (o mutación inversa). // del while 16. while not(hayQueParar) do begin seleccionarPadres. 16. i:=1.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial. while (i<=n-1) do begin j:=i.2. Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. Página 150 de 190 © JPGS2011 . Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. coste:=evaluarSolución(v). generarSolucionVecinoMasCercano. 3 Definición del modo de evaluar la solución. r[i]=U[i]/T T es el número total de unidades a producir. end. De cada uno de los modelos hay que fabricar una cantidad U[i] determinada. provocarMutaciones.3. r[i] es el ratio de producción de i. end. v[k]:=I.3. Cada 20 iteraciones se elige al azar un elemento de la población y se le hace una mutación inversa de modo aleatorio. 16.3 Problema de Secuenciación JIT 16. for i:=1 to P do begin for h:=1 to U[i] do begin k:=k+1. de tal manera que la cantidad de cada tipo es al final igual a la demandada U[i]. Se pretende.Modelos y Métodos de Investigación de Operaciones Se define un procedimiento de actualización: De cada 100 iteraciones se guardan las 18 mejores.2 Definición de la estructura de la solución. 16.k] es la producción acumulada hasta k del producto de tipo i.3. de la que idealmente habría que haber fabricado. actualizarPoblación. dos soluciones se calculan aleatoriamente y se incorporan a la población. que la producción salga de modo tan equilibrado como sea posible. 16. end. El criterio más habitual para medir la calidad de una solución es intentando evaluar la distancia que separa la producción acumulada en un determinado instante de la secuencia.  Y i i. while not(hayQueParar) do begin seleccionarPadres. para garantizar la regularidad. k:=0. Una solución es una concatenación de los diferentes tipos de productos. que es básica en los sistemas Just-In-Time. generarPoblacionInicial.1 Descripción del Problema Sea una línea de montaje donde se ensamblan 3 modelos de un determinado producto. construirNuevaSolucion.3.k  ri k  2 Donde Y[i. h:=0. T:=k. 16. es decir la suma de U[i] para todo i. Página 151 de 190 .4 Un procedimiento de generación aleatoria de soluciones. generarUnaSoluciónInicial. evaluar el nodo y comparar contra la mejor solución obtenida. El primer nodo está vacío.3.Usando las matemáticas para pensar sobre Dirección de Operaciones. Mientras haya nodos abiertos. While h<T-1 do begin j:=random(1. Si el número de elementos que quedan por añadir es 0.5 Un procedimiento enumerativo de resolución. Evaluar f(n) para los nuevos nodos. Elegir un nodo Explotar el nodo. – h(n)=0.v[h+j]) h:=h+1 end. Página 152 de 190 © JPGS2011 . // del while 16.6 Un procedimiento heurístico La modificación del valor de  permitirá obtener diferentes secuencias con el mismo procedimiento. Eliminar aquellos nodos donde la cantidad de productos ya secuenciados de cada tipo sea idéntico a otro con mejor valoración. Eliminar los nodos. 16.T-h) intercambiar(v[h+1]. generarElNodoInicial. definir el primero de los nodos y definir el modo de eliminar los nodos. Definir el modo de selección del nodo a explotar – Por ejemplo el de menor profundidad(menor número de unidades ya incorporados) en caso de empate utilizar el menor valor de f(n) Definir el modo de explotar nodos – Añadir un producto (todos los productos) de los que no se han fabricado toda la secuencia.. Guardar en su caso. definir el modo en que se va a seleccionar el nodo a explotar.3. • • • • • Definir f(n) – f(n)=g(n)+h(n) – g(n)= es la valoración de la función hasta el punto de creación. Un procedimiento enumerativo basado en ramificación y poda requiere definir la función de evaluación de cada nodo. definir el modo de explosión. Por tanto para definir el procedimiento hace falta: Definir un tamaño de población inicial: 20 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones.j). end. Si no es mejor se calcula una mutación mediante un intercambio de dos elementos y se incorpora a la población eliminando una solución cualquiera elegida al azar. if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(j.3. if HayMejora then i:=1.i).Modelos y Métodos de Investigación de Operaciones 16. // del while 16. Seleccionar un proceso de búsqueda local y seleccionar el modo de generación de una solución inicial. end.3. while ((j<=n) and not(HayMejora)) do begin j:=j+1. actualizarPoblación.8 Un algoritmo genético La estructura de un algoritmo genético es: generarPoblacionInicial. La solución inicial se genera aleatoriamente. HayMejora:=false. while (i<=n-1) do begin j:=i. while not(hayQueParar) do begin seleccionarPadres. donde la sección del Padre y la Madre se incorporan íntegramente y se repara (aquellos productos que se producen de más frente a los que se producen de menos) aleatoriamente quitando algún producto de los que hay de más para poner alguno de los que hay de menos (ambos seleccionados aleatoriamente). Página 153 de 190 . El vecindario seleccionado es el de provocar una inserción de un elemento elegido al azar en una posición elegida al azar. construirNuevaSolucion. generarSolucionVecinoMasCercano. Se define un procedimiento de cruce: en este caso se propone un OX con un punto de cruce. Definir un procedimiento de mejora local exige: Seleccionar una definición de vecindario. El proceso de mejora local seleccionado es Descenso Rápido. Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. coste:=evaluarSolución(v). end. i:=1. Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye.7 Un procedimiento de mejora local. if j=n then i:=i+1. mutaciónInversa(i. provocarMutaciones. En una empresa de fabricación de piezas metálicas. yi . 16. Indices i. si  0 Sin que sirva de precedente se incorpora un ejemplo numérico) Página 154 de 190 © JPGS2011 .1 que indica si un producto i esta mas a arriba que otro j  i  0. j : Recorre los cortes Parametros DX .1 que indica si un producto i esta mas a la izquierda que otro j i .1 . yi : Posicion (x.b).y) de la esquina superior izquierda de la placa i ri . j . bi : Dimensiones x e y de cada corte i Variables xi . i . j  1   xi  ai  x j  i .Usando las matemáticas para pensar sobre Dirección de Operaciones. a) Construya el Modelo que define el problema de corte. j  0. tienen una sierra automática capaz de hacer cualquier tipo de corte rectangular. xi . j   j .1 que indica si la orientacion del producto es la natural o la perpendicular t  maximo de todos los valores ri w  maximo de todos los valores si Modelo [MAX]  DX  t  DY   DY  w DX  w·t Sujeto a ri  xi  bi  i  ai 1   i  si  yi  ai  i  bi 1   i  t  ri w  si ri  DX si  DY i i i i i  j i  j i i  i . si : Posicion (x. j   j . j  1   yi  bi  y j   i . Se trata de diseñar un programa de corte para cada plancha que minimice los restos de cada plancha.4 Corte de Piezas rectangulares. j . j  0. ri .y) de la esquina inferior derecha de la placa i  i .i  1 i  j  i .  i  0.i   i . DY : Dimensiones X e Y de la Placa Origen ai . La explosión de la lista de materiales de la empresa a partir de los pedidos en firme genera un conjunto de N piezas rectangulares de dimensiones (a. La citada empresa compra planchas rectangulares de dimensiones DX y DY. b) Sobre el resultado anterior.M0).2) . luego N en su posición natural en la esquina más arriba y más a la izquierda posible.N0.M0. que representa que primero se ubica la pieza Q en posición perpendicular a la definida. Pieza P: (2. ¿Cuál es la solución de ejecutar una 2-permutación del primer elemento con el tercero? (N0.P1.Q1.P1. Pieza N: (2.N0. Pieza Q: (4.Q0) Página 155 de 190 .2) .M0.P1.P1.P1) d) ¿Cuál es la solución resultado de ejecutar un crossover (operador de los algoritmos genéticos) entre la solución (M0.Q0.1) . Luego el Producto P en posición perpendicular.N0.Modelos y Métodos de Investigación de Operaciones DX=5 DY=8 Pieza M: (4.N0.5) Una posible solución gráfica al problema sería La solución anterior se puede definir del siguiente modo: (Q1.Q1) y (M1. ¿Cuál es el resultado de ejecutar una inserción del 4 elemento en la segunda posición? (Q1. y el producto M en posición natural.N0) fijando las posiciones 2 y 3 (M1.P1) c) Sobre el resultado anterior. g) Un análisis estadístico previo parece indicar que el ingreso esperado no crece linealmente con las apuestas jugadas sino en una curva en S con los siguientes puntos (en escala logarítmica). se ha lanzado por el terreno legal más cómodo para hacer dinero sin dar ni golpe: las apuestas.2 la variable que indica que apuesta por la victoria del equipo foráneo en el partido i. e) Establezca una restricción que limite el número total de apuestas a 2000.X la variable que indica que apuesta por el empate en el partido i. (2 puntos) (1 punto) (1 punto) (2 puntos) d) Modele una limitación superior de 5 dobles y 2 triples. f) Incorpore una función objetivo que maximice la probabilidad de acertar.5 Quinielas Después de mucho pensar ha llegado a la elemental conclusión de que trabajando y ahorrando nadie se hace rico. aunque no necesariamente a la inversa.04 Página 156 de 190 © JPGS2011 .Usando las matemáticas para pensar sobre Dirección de Operaciones.52 log(Beneficio Esperado) 0. Log(número de apuestas) 0 Log(coste de las apuestas) -0. (1 punto) a) Modele una restricción (o juego de ellas) que asegure que apuesta en todos los partidos. Así pues. porque le permitirán hacer uso de su conocimiento exhaustivo del mundo del fútbol (tantas horas invertidas en leer el Marca más pronto o más tarde iban a dar sus frutos). Sea i. (1 punto) b) Modele una restricción (o juego de ellas) que mostrará que no quiere apostar por menos de 4 unos ni por más de 7 unos. (1 punto) c) Modele que si le pone un 1 a un determinado partido A. 16. Establezca un objetivo lineal que pretenda maximizar el ratio beneficio esperado frente a coste de las apuestas. y así tantas horas invertidas en Métodos Cuantitativos también serán útiles. Quiere hacer un modelo matemático que rellene una columna en la quiniela con un número limitado de apuestas (todavía no es rico). maximizando la probabilidad de acertar con unas limitaciones que irá incorporando. Concretamente las Quinielas. Sea i. Sea i. Pero su manera de ganar dinero será científica. le debe poner un 2 a un determinado partido B.1 la variable que indica que apuesta por la victoria del equipo de casa en el partido i. C representa un 2.85 (1 punto) h) Una determinada combinación se puede representar mediante una secuencia de 14 letras donde A representa un 1.48 2. Es decir gana el de casa.30 5.X es la probabilidad de que en el partido i empaten y Pi. evidentemente Pi.48 3.48 1.00 3. El resultado puede ser 1.2=1). con el corte en las posiciones 5 y 9? Notas de apoyo. X o 2.48 6. Y además. árbitros y previsiones climatológicas. Y además que la probabilidad de acertar la quiniela es la multiplicación de probabilidades. B representa una X.00 4. Y sea otra posible solución al mismo problema EDABBAEGAABCFF.48 4. Pi.48 5.16 0.68 0. empatan o gana el de fuera. Como sabe la Quiniela es un juego donde se deben acertar el máximo número de resultados de 14 partidos de fútbol (por el momento prescindiremos del 15).1+ Pi. F representa X2 y G representa 1X2.78 5.X+ Pi. usted establece una probabilidad de que en cada uno de los partidos se produzca uno de los resultados ( Pi. enfermerías.1 es la probabilidad de que en el partido i gane el equipo visitante. Tenga en cuenta para el punto f) que en cada partido la probabilidad de acertar es la suma de las probabilidades de los signos jugados. D representa 1X.48 5. Sea una posible solución al problema planteado ADEABCEFFBEBFB. Tras su estudio de la excelente prensa deportiva y el análisis de vídeos.30 1.Modelos y Métodos de Investigación de Operaciones 1 2 3 4 5 6 6. E representa 12. si Xi es la probabilidad de acertar el partido i MAX  X i es equivalente a MAX  log  X i  i Además la función logaritmo se puede aproximar por este conjunto de puntos: X log(X) Página 157 de 190 .1 es la probabilidad de que en el partido i gane el equipo de casa. ¿Qué combinación obtendría aplicando el operador genético de Order Crossover (OX) o Cruce. Recuerde que log(A*B)=log (A)*log(B) y log(A/B)=log (A) – log (B) Log(1)=0 .01 0.  i . si para un partido jugamos un doble entonces el número de apuestas se multiplica por 2. log(2)= 0.2  1 b) Modele una restricción (o juego de ellas) que mostrará que no quiere apostar por menos de 4 unos ni por más de 7 unos. aunque no necesariamente a la inversa.1   i .2  1  B . X   i .  i i .1 7 4  i i . y si jugamos un triple se multiplica por 3.52 0 El número de apuestas jugadas es la multiplicación para todos los partidos del número de columnas jugadas en cada partido.1  1   B.1 c) Modele que si le pone un 1 a un determinado partido A.Usando las matemáticas para pensar sobre Dirección de Operaciones.48 Resolución a) Modele una restricción (o juego de ellas) que asegure que apuesta en todos los partidos. ) que indicarán si es simple doble o triple. Definimos 3 variables binarias para cada partido (.2 yi   i  2 i  3i 1   i   i  i  i i 2 5  i i Página 158 de 190 © JPGS2011 . Si el partido se juega a simple el número de apuestas se multiplica por 1.1 0.1   i .  A. Así. le debe poner un 2 a un determinado partido B.30 . 0. yi  i .1 d) Modele una limitación superior de 5 dobles y 2 triples. . log(3)=0.3 1 -2 -1 -0.2   A. X   i . j j Sea Vi una variable equivalente a log(Xi) MAX  X i es equivalente a MAX  log  X i  i MAX  Vi i X i  0.i  0.Modelos y Métodos de Investigación de Operaciones e) Establezca una restricción que limite el número total de apuestas a 2000.i  4.i  3.12.1   i . X   i . Definimos 3 variables binarias para cada partido (. 33.i  2. Sea Xi la probabilidad de acertar un determinado partido X i   Pi . .i  1 g) Un análisis estadístico previo parece indicar que el ingreso esperado no crece linealmente con las apuestas jugadas sino en una curva en S en escala logarítmica. 011.i 1.i  4. ) que indicarán si es simple doble o triple.i  2. sea C el logaritmo del coste de las apuestas y sea B el logaritmo del Beneficio esperado Página 159 de 190 .i  0. yi   i . Establezca un objetivo lineal que pretenda maximizar el ratio beneficio esperado frente al coste de las apuestas.i  0.523.i Vi  21.  BENEFICIO   BENEFICIO  MAX    MAX log    COSTE   COSTE   MAX log(Beneficio)-log(Coste) Sea A el logaritmo del número de apuestas.2 yi   i  2 i  3i 1   i   i  i numerodeapuestas  2numdobles *3numtriples  2000 log 2  i  log 3 i  log 2000 i i f) Incorpore una función objetivo que maximice la probabilidad de acertar. j i . Sea una posible solución al problema planteado ADEABCEFFBEBFB. 484  3. aunque posteriormente aparecieron también el Antiguo Egipto y otros lugares. 487  6. 78 7  5. Los cuadrados latinos son matrices de NxN celdas en las que N elementos se deben Página 160 de 190 © JPGS2011 . Max  B  C  B  0. 485  4. E representa 12. Los cuadrados latinos sin embargo son más recientes.30 2  3  3 4  4.168 A  log 2  i  log 3 i i i yi   i . F representa X2 y G representa 1X2.2 yi   i  2 i  3i 1   i   i  i h) Una determinada combinación se puede representar mediante una secuencia de 14 letras donde A representa un 1. 48 6  5.6 SUDOKU Durante este corto verano del 2005 ha triunfado como pasatiempo el denominado SUDOKU. ¿Qué combinación obtendría aplicando el operador genético de Order Crossover (OX) o Cruce. 48 2  1. 521  0. A ese valor se le denomina constante mágica.Usando las matemáticas para pensar sobre Dirección de Operaciones.858 C  0. con el corte en las posiciones 5 y 9? ADEABCEFFBEBFB EDABBAEGAABCFF EDABBCEFFABCFF 16. C representa un 2. Los cuadrados mágicos se remontan al 2800 AC en China. X   i . 485  5. La mayor parte de los periódicos nacionales e internacionales llevaban diariamente uno (o más) SUDOKU’s. 041  0. B representa una X. D representa 1X.1   i . 483  2. 30 6  5. Pocos de estos bañistas sabían que el SUDOKU es un clásico problema matemático heredero del “cuadrado mágico” y del “cuadrado latino”. Y sea otra posible solución al mismo problema EDABBAEGAABCFF. que enganchaban (o del que se decían enganchados) cientos de bañistas en cualquiera de las playas de esta nuestra comunidad. hubo que esperar 4600 años a que Euler los describiera. Consiste en definir los valores de una matriz NxN de tal manera que ninguna de las celdas repita el valor y la suma de los valores en cada fila y en cada columna (así como los de las dos diagonales principales) valgan lo mismo. se repita el mismo elemento dos veces (son especialmente útiles en el diseño de experimentos). Dado que no todos los bañistas disponen de CPLEX. d) (2 puntos) Plantear un modelo matemático cuya solución sea una solución del SUDOKU. en ninguna fila y en ninguna columna. Por su configuración el Sudoku es también un problema de coloreado de grafos. g) (1 punto) ¿Qué información debiera tener en cuenta para que el descarte de opciones al abrir cada nuevo nodo sea lo más rápido posible? Proponga un modo de almacenar dicha información Página 161 de 190 . y de este modo se pretende que haya una y sólo una solución al problema. de su columna y de su cuadrado. que está unido con todos los nodos de su línea. y elimina el nodo si al explotarlo no hay ninguna posibilidad. sólo restricciones). e) (1 punto) Proponga un método para seleccionar el siguiente nodo a explotar. Defina el objetivo del nuevo modelo. plantear un procedimiento de ramificación y corte que permita obtener una solución. nos interesa especialmente aquel que tiene los valores pequeños tan cerca de la celda superior izquierda como sea posible. b) (2 puntos) Plantear un modelo matemático para el problema de un cuadrado latino de 4x4. El procedimiento debe ser lo más eficaz posible. El Sudoku es un cuadrado latino de 9x9 donde se deben rellenar las celdas con los dígitos del 1 al 9 y no sólo se prohíben las repeticiones en filas y columnas. donde cada celda es un nodo. f) (1 punto) Proponga un método para explotar un nodo. Ramifica en cada nodo teniendo en cuenta los valores que puede asignar a cada celda. Además se asignan algunos valores en algunas celdas.Modelos y Métodos de Investigación de Operaciones asignar a cada celda. (Nuevamente este modelo no tendrá objetivo. (Atención : Este es un problema sin objetivo) c) (1 punto) El número de cuadrados latinos de orden 4 es muy elevado. sino que además se prohíbe la repetición en el interior de 9 zonas disjuntas de tamaño 3x3. Se pide: a) (3 puntos) Plantear un modelo matemático cuya solución sea una solución de un cuadrado mágico de 3x3 con constante mágica tan pequeña como sea posible. Así ahorraremos mucho tiempo a los bañistas que podrán dedicarse al clásico autodefinido. para que. etcétera. Así una solución (4.1.3. 16.4) sacaría primero el primer coche de la línea 4 (que evidentemente sabemos cual es).1.2. Y alguien ya tiene desarrollado el evaluador. Por lo visto hay una serie de restricciones de diferentes niveles de importancia cada una.2. Cómo evalúa el cumplimiento de restricciones no es objeto del presente problema. h) (1 punto) Desarrolle el árbol para las cuatro primeras celdas que vaya a generar. no es la secuencia de unidades a extraer sino la secuencia de las líneas desde las que se van a extraer las unidades.k que valiera 1 si en la celda de coordenadas i y j se asigna el valor k. que sirve para absorber las fluctuaciones entre la primera parte de la planta (denominada trim) y la segunda parte de la misma (denominada chasis). Los coches de una determinada línea no pueden adelantarse entre sí. es decir si se pretende sacar el tercer coche de una línea se debe secuenciar primero las unidades por delante de él. Tras analizar la situación descubre que la calidad de la secuencia va relacionada con un concepto que denominan “violación de restricciones”. con el valor 1 (y 0 en caso de que no se asigne dicho valor). De este modo se puede definir la opción a introducir en cada celda asignando a una variable binaria. Nota 2: Si una restricción no sabe como representarla escríbala “en letra”. Nota: (Esta nota es útil a partir del apartado b) Un modo de garantizar que todos los elementos son distintos. Una restricción se puede representar del siguiente modo: “No más de dos Fort Juerga con Lavafaros de cada 6 coches”. Los coches entran en el almacén y son distribuidos de acuerdo a un criterio que no es relevante en este momento. luego el primero de la línea 1 seguido del segundo de la línea 1.7 Secuenciando en la Línea de Montaje Una línea de montaje de coches tiene en medio de su sistema un almacen formado por 4 líneas en paralelo cada una con capacidad para alrededor de 20 coches. recuerde que el proceso y el orden del mismo es tan (o más) importante que el resultado.Usando las matemáticas para pensar sobre Dirección de Operaciones. y pertenecientes a un conjunto limitado de opciones. Página 162 de 190 © JPGS2011 . que identifique la celda y la opción que se le ha incorporado. posteriormente el segundo de la línea 2 seguido del tercero de la línea 1. Tras explorar diferentes alternativas decide que lo mejor es buscar en cada iteración del proceso (es decir cada vez que hay que sacar un coche) la mejor secuencia posible de 10 unidades y sacar el primer coche de dicha secuencia. luego el primer coche de la línea 2. es establecer un índice para cada una de las opciones. Se admite que un evaluador actuaría del siguiente modo: cada coche <i> al ser incorporado a una secuencia S viola unos puntos que calculará una función G(S*<i>).1. En una brillante idea se le ocurre que la representación de la solución más adecuada. Así se podría definir una variable binaria i.j. en la segunda hay que ejecutar el algoritmo poniendo un ejemplo. 23 32 16 11 58 61 74 19 96 75 95 82 79 45 46 35 66 33 86 18 59 55 21 68 81 8 34 30 21 68 68 56 12 3 63 98 5 76 13 39 74 61 89 59 20 55 7 78 26 99 42 48 38 34 54 63 28 70 15 3 2 83 14 54 83 39 64 7 86 57 53 70 36 64 21 7 75 85 26 35 53 56 43 22 23 71 27 4 35 67 27 13 41 43 26 80 43 96 35 79 40 47 76 32 67 31 96 38 19 75 10 13 64 0 17 87 61 89 66 88 35 76 43 74 33 24 99 46 69 13 67 48 37 86 71 68 66 98 24 89 89 4 96 1 78 39 22 83 76 17 83 29 21 55 88 58 14 42 39 59 89 23 50 90 48 80 76 9 81 15 89 47 93 90 63 35 44 44 16 48 99 73 98 82 8 24 17 74 98 2411413432 1433142211 Resolución Sea i: el índice que recorre las 10 posiciones de la secuencia a generar Sea j: el índice que recorre las 4 líneas desde las que se pueden extraer unidades Sea k: el índice que recorre las unidades en cada una de las líneas. Al ejecutar los algoritmos invéntese los datos que necesite. aquí tiene una secuencia de números entre 0 y 99. Si le hacen falta números aleatorios. e) Modifique el algoritmo diseñado en b) teniendo en cuenta que en las líneas el número de unidades que puede haber puede ser muy bajo.Modelos y Métodos de Investigación de Operaciones Para sacar 10 coches tiene por tanto 4^10 combinaciones y por tanto desprecian (aunque no deberían) la posibilidad de hacer una enumeración completa de las soluciones. Sea xi la línea de la que extraer en la posición i Sea ajk el vector que establece la unidad en posición k del producto i a) Un algoritmo que genere una solución aleatoria podría tener la siguiente estructura. Para diseñar el algoritmo hay que hacerlo de la manera más inteligible posible. Se le pide que: a) Diseñe un algoritmo que genere una solución aleatoria. Cada apartado debe constar de dos partes. d) Diseñe un algoritmo de tipo genético. For i:=1 to 10 do begin Página 163 de 190 . c) Diseñe un algoritmo de tipo Mejora Local. Sea rnd() una función que define un número aletario entre 0 y 1 Sea entero(x) una función que trunca un número aletario y se queda sólo con la parte entera. En la primera hay que describir el algoritmo. b) Diseñe un algoritmo heurístico que genere una solución que podamos considerar correcta. 3.1. Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =La línea con menor número de coches. Dividiendo esos números por 100 tenemos números entre 0 y 1 La secuencia de 10 números aleatorios es: 23 75 86 30 5 55 54 54 36 56 La secuencia de 10 líneas será: 1 4 4 2 1 3 3 3 2 3 b) Un algoritmo que genere una solución que podamos considerar correcta podría tener la siguiente estructura for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible dé un mejor valor de G(S*i) end Como ejemplo y dado que aquí no hay nada aleatorio.4.3. end Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =(i mod 4) +1. Por ejemplo la anterior. xi=entero(rnd()*4)+1. Por ejemplo en la solución anterior 1 4 4 2 1 3 3 3 2 3 posibles vecinos serían 2442133323 Página 164 de 190 © JPGS2011 . end Este algoritmo daría como resultado 1.2.Usando las matemáticas para pensar sobre Dirección de Operaciones.1. y dado que no tenemos valores para los productos en el almacén no es posible poner nada más que una secuencia de números del 1 al 4. end Como ejemplo sean los números de dos cifras una secuencia aleatoria entre 0 y 99. end c) Un algoritmo de Mejora local exige definir un vecindario y un procedimiento de descenso. La secuencia de 10 líneas será: 1 4 4 2 1 3 3 3 2 3 Otro algoritmo que genere una solución que podamos considerar correcta sería: for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible sea el más antiguo de todos.2 puesto La función mod es la función resto.2. Un vecindario podría ser (poniendo un ejemplo diferente de los tradicionales) modificar el valor de uno de los elementos del vector solución.4. end. i:=1. Por tanto para definir el procedimiento hace falta (asumiendo que tenemos una función G que evalúa) Definir un tamaño de población inicial: Por ejemplo 10 Definir un modo de generación de la población inicial: aleatoriamente Definir un modo de parar: al cabo de 1000 iteraciones. Es decir en el momento que se encuentre algo mejor se sustituye Una posible estructura del algoritmo sería: generarSolucionVecinoMasCercano. coste:=evaluarSolución(v). Se selecciona un modo de selección de padres en función de una ruleta donde el valor de fitness sea la inversa de la valoración de la solución. provocarMutaciones. while (i<=10) do begin j:=i.j) que significa que en la posición i probamos el efecto de la extracción de un unidad de la fila j Y el mecanismo de descenso puede ser el mecanismo de descenso rápido. Página 165 de 190 . end. aux:=x(i) ModificarGen(i. if j=4 then i:=i+1. Se define un procedimiento de cruce: en este caso se propone un OX con un punto de cruce. if evaluarSolucion(v)<=coste then HayMejora:=true else mutaciónInversa(i. end.aux). // del while d) Un algoritmo genético podría tener la siguiente estructura generarPoblacionInicial. actualizarPoblación. HayMejora:=false.Modelos y Métodos de Investigación de Operaciones 3442133323 4442133323 1142133323 1242133323 1342133323 1412133323 Denominemos a este método ModificarGen(i. construirNuevaSolucion. if HayMejora then i:=1.j). while ((j<=4) and not(HayMejora)) do begin j:=j+1. while not(hayQueParar) do begin seleccionarPadres. donde la sección del Padre y la Madre se incorporan íntegramente no haciendo falta reparación. Cruzamos la primera y la segunda solución cortando en la segunda posición y da 2433142211 e) Para modificar el el algoritmo diseñado en b) teniendo en cuenta que en las líneas el número de unidades que puede haber puede ser muy bajo. Para provocar mutaciones cada 100 iteraciones se sustituyen los 5 peores miembros de la población por 5 soluciones aleatoriamente construidas.1 es decir 2. Se actualiza la población: Si una solución obtenida del cruce es mejor que la peor de las soluciones la sustituye. Un ejemplo para lo único representable (la función de cruce).Usando las matemáticas para pensar sobre Dirección de Operaciones. Sean dos soluciones aleatorias construidas con los 10 primeros números de las filas segunda y tercera: 2411413432 1433142211 Se elige un número aleatorio (por ejemplo con el primero de la cuarta fila: 11 que dividido por 100 (para que esté entre 0 y 1) y multiplicado por 10 para elegir por donde cortar nos da 1. Se propone lo siguiente: for i:=1 to 10 do begin xi =Elegir la línea cuyo primer producto disponible dé un mejor valor de G(S*i) comprobando siempre que haya un producto disponible en dicha línea end Página 166 de 190 © JPGS2011 . hace tiempo que no se rediseña todo el proceso. recoge leche de vaquerías situadas en distintas comarcas Asturianas y de las comunidades colindantes de la cornisa cantábrica española.1 Asignación de Fechas y Aulas para Exámenes. y para ello les requieren que analicen el proceso de recogida en la comarca de Llanes. Algunos de los datos del problema son: Número de Alumnos Número de Asignaturas 400-500 300-400 200-300 100-200 50-100 0-50 5 19 30 8 58 84 Capacidad Aulas para exámenes 90 60 Núm ero Aulas 14 32 ¿Puede establecer un método automático de asignación? 17. La dirección pretende comprobar si compensaría hacer un estudio global. 3)Cada vaquería tiene una capacidad productiva distinta. El sistema de recogida de leche hace tiempo que fue diseñado. Página 167 de 190 . 2)La leche se guarda en enfriadoras durante un máximo de 2 días. sino que se hacen pequeños ajustes. Los diferentes problemas que se plantean por esta nueva circunstancia se pretenden resolver mediante una asignación automática al principio de curso.Modelos y Métodos de Investigación de Operaciones 17 CASOS 17.2 La Ruta de Llanes En Arriondas (Asturias) tiene una de sus plantas envasadoras la Central Lechera “Carrete”. alumnos y aulas en los últimos años. Entre ellos el de asignación de aulas y fechas para exámenes. Este crecimiento ha supuesto una modificación sustancial en algunos de los procesos. Una Escuela de Ingeniería ha experimentado una multiplicación en el número de títulos. y aunque ha habido variaciones importantes en las características de la recogida.000 litros. Esta central lechera. Algunos datos relevantes son los siguientes: 1)La capacidad de los camiones que gasta nuestra empresa es de 20. 5)La jornada laboral de cada transportista se considera de 40 horas semanales (con un margen “en negro” máximo de 15 horas).000 10.000 20.000 10. 4)Los costes de transporte se evalúan a razón de 50 pesetas el kilómetro realizado. 6)Cada carga tiene un tiempo fijo de 15 minutos y una velocidad de carga de 200 litros por minuto.000 15. Las vaquerías con las que se tiene concierto están en los siguientes pueblos (se incorpora además la capacidad de su enfriadora medida en litros. 8)Por algunas carreteras la pendiente es tan acusada que no se puede descender con el camión cargado con más de 5000 litros. aunque en realidad es un poco más caro ir cargado que de vacío. y su producción también medida en litros): Nombre Pueblo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Cangas de Onís Onís Riensena La Pereda Arenas Cabrales Arangas Panes Noriega Colombres Cien Carreña Arrobio Nava Tazones Tres Cares de Enfriadora 15. estás son: a) La AS-340 en sentido Riensena-Nueva b) La LLN14 Riensena-Palacio Meré en ese sentido c) La LLN-7 Palacio Meré-La Pereda en ese sentido. 7)Las velocidades de desplazamiento son de 60 kilómetros/hora por la N-634.Usando las matemáticas para pensar sobre Dirección de Operaciones. y 35 kilómetros por hora en el resto de carreteras. 45 kilómetros/hora por la AS-114 y AS-115.000 10.000 10.000 10.000 10.000 10000 10000 10000 10000 10000 10000 Producción 6000 7000 4000 7000 3000 4000 6000 6000 3000 7000 5000 4000 5000 4000 3000 Página 168 de 190 © JPGS2011 . Modelos y Métodos de Investigación de Operaciones 17. La red eléctrica tiene la siguiente configuración: 5 F A 1 4 E 3 D C B 2 Donde todas las líneas tienen una capacidad de 500 MW excepto las que vienen reflejadas en la siguiente tabla: Línea B1 Línea F5 Línea E4 Línea A4 200 MW 400 MW 400 MW 600 MW Existen 5 Centros de transformación de alta tensión con demandas máximas según la siguiente tabla: Demanda Máxima 1 250MW 2 1000 MW 3 825 MW 4 1150 MW 5 700 MW El sistema descrito tiene 6 sistemas de generación: 3 son de tipo térmico y 2 de tipo hidráulico y uno de tipo nuclear.3 Sistema Eléctrico En un determinado sistema eléctrico se dispone de un número de centrales térmicas. nucleares e hidroeléctricas para afrontar una demanda que sigue en cada centro de transformación una función similar con respecto a cada hora del día. Esta relación se puede representar del siguiente modo: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 85 80 76 60 68 66 72 70 70 84 70 65 95 92 93 83 85 80 85 86 90 100 99 80 Donde la primera fila indica la hora del día considerada y la segunda el porcentaje sobre el consumo máximo diario previsto. Página 169 de 190 . Los generadores térmicos y nucleares tienen que trabajar entre un máximo y un mínimo. Los valores de dichos costes para las centrales térmicas vienen definidos en la tabla siguiente.30 metros 0. Este incremento se podría conseguir aumentando los niveles de trabajo de las centrales térmicas o poniendo en marcha las centrales hidroeléctricas. Éstas pueden trabajar a un nivel de producción fijo con un coste horario. Se supone que estamos en la estación seca. Nivel de Generación Coste por Hora Reducción del nivel Coste de Puesta de agua en el en Marcha depósito por hora Central B Central E 450 MW 400 MW 350 € 300 € 0.48 metros 2000 € 2000 € Subir un metro de agua al depósito superior consume 3300 MW. B y E. más un coste extra por cada MW sobre el mínimo. y sus costes extra por MW no son lineales y se representan por la siguiente curva: Página 170 de 190 © JPGS2011 .5 € 5€ Además se dispone de dos centrales Hidroeléctricas. en cualquier momento debiera ser posible alcanzar un incremento de demanda sobre la prevista de un 15%. Una característica importante de estas centrales Hidroeléctricas es que el agua se puede subir otra vez al depósito desde un depósito inferior situado a los pies de la central. Se define un coste horario por trabajar al mínimo. o utilizando la energía que se invierte en subir el agua al depósito superior. y un coste fijo de puesta en marcha. Nivel Mínimo Nivel Máximo Coste Mínimo Coste por MW Extra Coste de Puesta en Marcha 3000 € 2000 € 1000 € A C F 40 % max 50% max 40% max 1350 MW 700 MW 1050 MW 4000 € 5000 € 9000 € 5€ 4. La central nuclear tiene también unos costes máximos y unos mínimos. y no entra más agua en el depósito que la que ya hay. Por razones medio ambientales el depósito superior debe mantener siempre entre 10 y 20 metros de agua. Por motivos de servicio. aunque ello suponga disminuir los 10 metros de agua citados. Poner en marcha cada generador tiene también un coste fijo.Usando las matemáticas para pensar sobre Dirección de Operaciones. Página 171 de 190 .Modelos y Métodos de Investigación de Operaciones Nivel Mínimo D 50 % max Nivel Máximo 1000 MW Coste Mínimo 4000 € Además los centros de transformación 1 y 5 pueden ser alimentados con más potencia comprando energía a una red eléctrica externa. Se debe calcular la forma más barata de alimentar a la red eléctrica. Calcular a partir de qué precios y en qué momentos del día es rentable comprar y vender energía eléctrica a las redes vecinas. 15 0. 17.14 Residuo Reforma Las Naftas se pueden usar directamente para mezclarlas dando lugar a gasolinas de diferentes octanajes o pasar por el proceso de reforma.13 0.52 barriles de gasolina reformada de 1 barril de nafta media Página 172 de 190 © JPGS2011 . El departamento de compra establece los siguientes tres escenarios con las probabilidades expresadas en la tabla 1 y los precios en euros por barril para los próximos meses (por obvia simplificación del caso no se establecen probabilidades distintas para diferentes periodos) PETR1 Escenario 1 (35%) Escenario 2 (35%) Escenario 3 (30%) 27 28 29 PETR2 30 30 29 PETR3 26 28 27 El petróleo se transforma a través de 4 procesos (Destilación.2 0.85 y 75 respectivamente.25 0.16 Aceite Pesado 0.21 Aceite Ligero 0.2 0. Las proporciones de cada fracción son (incluyendo las pérdidas): Nafta Ligera PETR1 PETR2 PETR3 0. Dado que los planes de producción se establecen con un mes de antelación es necesario trabajar con previsiones de precio por barril. medias y pesadas tienen un octanaje medio de 95. PETR3) de diferentes calidades y por tanto de diferentes precios por barril.08 0.Usando las matemáticas para pensar sobre Dirección de Operaciones.22 0. Nafta Media.4 Optimización en la Refinería Una empresa que posee dos refinerías compra tres tipos de petróleo (PETR1.19 0.12 0.2 0. PETR2.18 0.1 Nafta Media 0. Gasolina 98 y Keroseno. Nafta Pesada. Crackeado y Mezcla) para producir los productos que el consumidor normal compra: Aceite Lubricante.12 0. En el proceso de reforma se obtiene: 0. Las naftas ligeras.6 barriles de gasolina reformada de 1 barril de nafta ligera 0. Reformado.1 0. Destilación En la destilación se separa el petróleo en 6 fracciones (Nafta Ligera. Aceite Ligero.15 Nafta Pesada 0. Este proceso genera una gasolina denominada reformada con un octanaje de 125. Gasolina 95. Aceite Pesado y Residuo). Gasóleo. 63 barriles de aceite craqueado y 0.6). Mezclado Gasolinas Hay dos tipos de gasolinas (súper y normal). La gasolina craqueada se utiliza para hacer gasolinas (95 y 98). Se puede asumir otra vez que la presión de vapor resultado es combinación lineal considerando volúmenes. Ésta tiene un octanaje de 110. Además. y el de la gasolina normal a 95. 1 barril de aceite pesado daría lugar a 0.77 barriles de aceite craqueado y 0. en las mismas unidades.68 barriles de aceite craqueado y 0. Keroseno Se estipula que la presión de vapor del Keroseno debe ser inferior a 1 Kg/cm2 .05).75 barriles de aceite craqueado y 0. 1 barril de aceite pesado da lugar a 0. Las presiones de vapor. Aceite craqueado (1. El octanaje de la gasolina súper debe ser superior a 98.18 de gasolina craqueada. El aceite craqueado se utiliza para hacer gasóleos (gasóleo y Keroseno). que se obtienen por mezcla de naftas y gasolinas (craqueada y reformada).6 barriles de Aceite Lubricante utilizando la capacidad del mismo sistema de craqueado. Se asume que el octanaje se obtiene por combinación lineal de los volúmenes mezclados.45 barriles de gasolina reformada de 1 barril de nafta pasada Craqueado Los aceites (ligero y pesado) pueden ser usados para mezclar (dando lugar a Gasóleo y Keroseno) o se pueden pasar a través de un proceso conocido como craqueado catalítico. 1 barril de aceite ligero da lugar a 0. a partir de un barril de Residuo se puede obtener 0. Este proceso produce aceite craqueado y gasolina craqueada.Modelos y Métodos de Investigación de Operaciones 0. Actualmente se está investigando en un producto químico que modificaría las anteriores proporciones: 1 barril de aceite ligero daría lugar a 0.32 de gasolina craqueada.5) y Residuo (0.28 de gasolina craqueada.2 de gasolina craqueada. Aceite Pesado (0. de los productos que pueden dar lugar al Keroseno son los siguientes: Aceite Ligero (1). Gasóleo Página 173 de 190 . 000 barriles respectivamente.Usando las matemáticas para pensar sobre Dirección de Operaciones.5 € 50 € 45 € 35 € 34 € Aceite Lubricante Gasolina 95 Gasolina 98 Keroseno Gasóleo 4000 26000 10000 30000 30000 Como se observa en la tabla los beneficios no son iguales para cualquier refinería debido a que no son plantas idénticas. Precios de Venta: Los precios de venta de cada barril aportan los siguientes ingresos en Euros.5 € 43 € 47 € 39 € 34 € Beneficio Venta en refinería 2 28. aceite craqueado.000 y 40. aceite pesado y residuo con una proporción 10:4:3:1. Página 174 de 190 © JPGS2011 . descontados los gastos generales (de tal modo que los beneficios de la refinería se pueden calcular descontando estos ingresos de los costes de adquisición de los barriles). La demanda de cada producto tiene una cierta elasticidad con el precio que podemos considerar que se expresa del siguiente modo: “Una variación de un 1% en el precio implica una variación de sentido contrario en las ventas de un 5%”. Además en su construcción fueron diseñadas para que solo se pudiera trabajar con dos tipos de petróleo (por planta).000. Restricciones de capacidad a) Disponibilidad diaria de los tres tipos de petróleo: 40. Esta regla se mantiene para variaciones de precio inferiores al 10%. Demanda Beneficio Venta en refinería 1 27. 60. b) Capacidad de destilación: 40000 barriles diarios por refinería c) Capacidad de reformado: 9000 barriles diarios por refinería d) Capacidad de craqueado: 5000 barriles diarios por refinería e) La fabricación de Gasolina 98 debe ser al menos el 30% de la Gasolina 95. Para producir Gasóleo se utiliza aceite ligero. además de aumentar la cantidad de población que puede tener contacto con la Red de Metro. Los promotores de tan magno proyecto piensan que esta línea. tal y como se muestra en el plano adjunto. Dicha línea sería una nueva línea de tranvía que se engarzaría con la actual en las paradas de A B J C I D E F G H Empalme y La Carrasca.Modelos y Métodos de Investigación de Operaciones 17. aumentará la conectividad entre las distintas estaciones de la Red de Metro Valencia. y con la Línea 5 en la Parada de Manuel Candela. Dicha línea tendría un punto medio en la parada de Jesús. Otra interesante cuestión es saber si realmente es necesario cerrar la línea circular del Tranvía. Una vez desarrollada la herramienta les solicitan que hagan una exploración acerca de una nueva línea que se está planteando. donde se cruzaría con las Líneas 1 y 3.5 Red de Metro de Valencia Trabaja usted en una consultora que ha sido contratada por la empresa FGV para realizar un programa que permita calcular el tiempo que se tarda en llegar entre dos paradas cualesquiera de la red de Metro Valencia. para aumentar la conectividad o sobraría con fragmentos de la misma (por ejemplo de La Carrasca a Jesús). Página 175 de 190 . Están interesados en una herramienta que permita definir la carga de los camiones teniendo en cuenta que estos tienen una limitación de capacidad de 33 paletas cada uno. Cada kilómetro cuesta 30 céntimos de Euro. la descarga en cada empresa cliente cuesta alrededor de 30 minutos de media. 17. Se asume que ningún conductor debe dedicar más de 8 horas diarias a conducir ni más de 12 horas en total. Página 176 de 190 © JPGS2011 .Usando las matemáticas para pensar sobre Dirección de Operaciones.6 Rutas de Distribución Una empresa de fabricación de cartones (cajas fundamentalmente) radicada en Alzira debe servir entre 4 y 7 camiones diarios a más de una veintena de clientes. PUEBLOS Alborache Alcàcer Algemesí Almoines Benifaió Benigànim Carcaixent Carlet Villanueva de Castellón Chiva Denia L’Alcúdia de Carlet L’Olleria Llombai Ontinyent Silla Sueca Tavernes de la Valldigna Xàtiva Lote de Paletas 6 2 2 12 4 6 2 4 6 6 6 6 12 4 12 4 12 4 12 Se asume que en cargar un camión se tarda alrededor de 45 minutos. Refuerzos (tipos: R1. Cada mes se puede trabajar un máximo de 40 horas extra. Cuerpo (tipos CO1. CO2. con un catálogo inicial a la venta de 3 modelos. Los costes de producción de cada par se evalúan en 7 € si se producen en horas normales. A4) M1 M2 S1 A1 A2 R2 C CO1 S2 A1 A3 R1 Cr CO2 M3 S3 A3 A2 A4 R1 C CO3 Como se puede observar. Un grupo de 3 personas es Página 177 de 190 . A3. y las cremalleras de un plazo de 8 semanas.Modelos y Métodos de Investigación de Operaciones 17. dependiendo del calendario laboral de la localidad de Picassent. entre los diferentes modelos de zapatillas a producir se da la particularidad que comparten componentes entre un modelo y otro. estima la siguiente demanda (en miles de pares) para los próximos 6 meses. Abril May o Modelo 1 Modelo 2 Modelo 3 100 150 150 200 100 150 Juni o 150 150 250 Juli o 150 100 150 Agost o 200 250 150 Septiemb re 150 100 150 Se admite un error en la previsión de demanda de cada modelo de 3 miles de pares.7 Fabricación de Zapatillas Una empresa fabricante de zapatillas deportivas. localizada en Picasent. CO3) y adornos (A1. Cremallera (Cr) . Se dispone también en almacén de suficientes componentes para cubrir la demanda de los próximos dos meses. de los diferentes componentes. Los pedidos se lanzarán en miles de unidades. S3) . y 9 € si se produce en horas extras. los adornos de 1 semana. Los refuerzos y el cuerpo un periodo de aprovisionamiento de 2 semanas. S2. R2). El número de días laborables por mes es variable cada mes. Los elementos que se utilizan en la producción de estos 3 modelos de zapatillas son los siguientes: Cordones (C) . El número de horas normales disponibles por día son 8. Las suelas tienen un periodo de aprovisionamiento de 4 semanas. Se dispone en almacén de 8000 de estas cremalleras. Suela (tipos: S1. a excepción de las cremalleras que se lanzaran en lotes de cinco mil unidades. A2. Usando las matemáticas para pensar sobre Dirección de Operaciones. Se plantean diferentes alternativas al definir el objetivo principal. Otra. Se podrá contratar uno o dos grupos. Además es habitual que en el mes de Agosto.. a través de equilibrado de la producción utilizando horas extras. y que los trabajadores de la empresa cojan los 15 días restantes durante los meses de Junio. si dispone de suficiente material. El ritmo de producción de estos trabajadores es de 18 pares de zapatillas por hora. Los costes de producción de cada par se evalúan en 8€ en horas normales no pudiendo producir estos trabajadores en horas extras. una de ellas podría ser el minimizar el máximo stock entre periodos. El coste de almacenar un par de una semana para otra es de 0’025 € por par. asegurando el mínimo coste para la empresa. Así. Página 178 de 190 © JPGS2011 . Se dispone de 200 pares en stock en estos momentos. Así. no se trabaje la mitad del mes. de cada uno de los modelos. minimizar las diferencias de producción entre un mes y el siguiente. capaz de fabricar 15 pares de zapatillas por hora. por lo que debería plantearse como programar también esa circunstancia. minimizar el stock en almacenes. Julio. para cualquier mes. Al ingeniero se le ha planteado un compromiso con los trabajadores de utilizar cada dos meses al menos un 15% de la capacidad en horas extra actual. se pretende establecer el modelo que permitiera definir el plan de trabajo para los próximos meses.. Agosto o Septiembre dependiendo de la disponibilidad de la empresa. Durante las vacaciones de de verano se debe considerar la contratación de trabajadores para sustituir a los trabajadores que están todo el año. En total. Hola. Se me ocurre investigar un modo de establecer el calendario respetando restricciones de no más de 1 guardia en 6 o 7 días. tardaríais 11 años en darle la vuelta. sobre todo en puentes y preferimos un sólo turno cada 11 días (es lo más habitual entre los pueblos que nos rodean). farmacéutica de Carlet y estoy integrada con las farmacias de mi pueblo y de otros 2 cercanos. no más de un festivo en 15 días… Te adjunto una tabla en excel que puedes completar con los festivos que faltan. Como hay once columnas todo consistiría en sortear cada columna a cada persona. el 31 de dic y el 5 de Enero. ¿qué manda? Página 179 de 190 . Mi pregunta es si sabes alguna fórmula matemática para hacerlo más equitativo. más que tener dudas de los turnos. etc. Muchos estamos hartos de tanto turno porque hay semanas que nos coinciden 2 o 3 guardias. PD: Por cierto. porque supongo que no serán iguales. Pero no tendréis un ciclo de 11 días sino más bien. Tenemos tres turnos: 1. Le ha llegado un trabajo por vía de un amigo. Domingos y festivos Incluso en la última reunión que tuvimos este mes pasado se planteó incluso hacer otro turno (el cuarto ¡!) que incluyera el 24 dic (Nochebuena). para hacer las guardias. excepto cuando toca Benimodo que no queda más remedio que sean 2 noches”. Benimodo y Carlet Está empezando una nueva carrera de consultor free-lance y por tanto acepta cualquier tipo de trabajo.8 Las Farmacias de Alcudia. un calendario anual (o semestral o bianual) que intenta equilibrar las cargas. Puesto manos a la obra usted le envía el siguiente mensaje: Hola Marina. Parte de nuestros compañeros dicen que no es equitativo que siempre hay alguno que le tocan más domingos que otro. Me ha dado tu dirección Moisés de la Fuente. El trabajo no parece estar muy definido. Un turno especial de Navidad no creo que sea práctico. Días laborales 2. Sábados 3. Mi propuesta es plantear un sistema que permita establecer una secuencia donde se establezcan tantas restricciones como se quieran (siempre que sea matemáticamente posible). somos 11 farmacias de tres pueblos cercanos:    5 de Carlet 5 de L´Alcudia 1 de Benimodo Entre las 11 farmacias nos turnamos los turnos de guardia (noche) alternativamente de forma que “cada pueblo no esté más de 1 noche sin tener una farmacia abierta. lo que me gustaría saber son las fechas que se consideran festivos en cada una de las localidades.Modelos y Métodos de Investigación de Operaciones 17. el único modo de que entren trabajos. Soy Marina Amorós. ¿qué ocurre cuando un sábado coincide con festivo?. Ante todo. Página 180 de 190 © JPGS2011 . o conjunto de ellas. es la siguiente Buenos días.Usando las matemáticas para pensar sobre Dirección de Operaciones. Gracias de nuevo. que resuelvan satisfactoriamente el problema. El trabajo consiste en: a) Definir de modo estructurado el problema b) Diseñar un Modelo matemático que lo resuelva. La respuesta. por tanto no hacemos refuerzos de sábado (cada pueblo tiene todos los sábados una farmacia abierta hasta las 5). muchísimas gracias por el interés. que obvia los datos de las festividades. c) Implementar el modelo en MPL. Respondiendo a tu pregunta. para resolverlo. cuando un sábado coincide con un festivo manda siempre el festivo. d) Diseñar una heurística. y en el montaje diferentes elementos mecanizados se ensamblan en una línea de montaje.9 Planificación Agregada en una Planta de Motores. Además de que el número de variantes a producir tiende a crecer para adecuarse o superar a la competencia. Una empresa de fabricación y montaje de motores sirve motores y componentes de los mismos a plantas de fabricación de coches así como a empresas de distribución de repuestos.Modelos y Métodos de Investigación de Operaciones 17. En un mercado tan competitivo como el del automóvil las actualizaciones de los productos son frecuentes. Asimismo Esto implica pruebas de productos y nuevas versiones y también implica la desaparición planificada de productos. aunque este conjunto varía. Al ser los clientes distintos los modos de preparación del producto y embarque del mismo pueden variar entre clientes. algunas se fabrican en la planta objeto de estudio y otros no. Cigueñales) y otros componentes. En la Fabricación un elemento en bruto es mecanizado. El número de productos a fabricar es siempre limitado y conocido. Y también compran semielaborado. Dentro de la escasa Página 181 de 190 . bastante poco flexible en cuanto a capacidad. El proceso de fabricación de un motor tiene dos etapas: a) Fabricación y b) Montaje. La línea de Montaje de una fábrica de Motores es un sistema altamente automatizado. Bielas. De cada tipo de componente hay un cierto número de variantes. Ambos tipos de clientes están distribuidos por todo el mundo. Asimismo diferentes clientes y diferentes proveedores tienen necesidades y calendarios variables. Culatas. No sólo venden producto final sino también semielaborado. y costoso de puesta en marcha y mantenimiento. Pero varía de un modo planificado. Levas. Un motor se compone de las denominadas 5C’s (Bloque. se autoriza el paro total de la planta cuando sea necesario. pascua. navidad) de tal modo que no se tendrá más stock del deseado en ningún momento sin necesidad de asignarle un coste. en las líneas de mecanizado de las conocidas como 5C’s. La empresa planifica en semanas y cada semana tiene una serie de días hábiles (5 por lo general) y de inhábiles (2 por lo general) pero la empresa podría decidir parar un día la producción pues ahorraría costes de energía. Además si la línea no tiene capacidad de cumplir la demanda durante la semana normal. Página 182 de 190 © JPGS2011 . En este caso. En este sentido el funcionamiento de la planta es atípico tanto al nivel de la gestión de la producción como en lo referente a la consideración del factor humano. Los inventarios no tienen un coste de mantenimiento conocido. consideraremos que los directivos pueden decidir que hay que trabajar unos días festivos por cualquier razón. los operarios van a formación o se dedican a tareas de mantenimiento y se ahorran los gastos de hacer funcionar la línea.Usando las matemáticas para pensar sobre Dirección de Operaciones. Aunque el proceso de fabricación es diferente lo mismo ocurre. Para mantener bajo control los inventarios la empresa prefiere establecer un stock mínimo y máximo (medido en días de stock) para el final del horizonte de planificación. En efecto. el modelo deberá ser capaz de proponer la cantidad de días extras que se necesitan para evitar diferir (dentro de los límites impuestos por la empresa durante cada semana). Y dicho horizonte de planificación se situa siempre al final de un periodo de vacaciones relativamente prolongado (verano. ya que se sabe que el coste de mano de obra es muy bajo en comparación con el de la mantener en funcionamiento la maquinaria. o utilizar uno de los días inhábiles. Los modos de gestión de la capacidad son dos: Incrementar o reducir la velocidad de la línea (incorporando nuevos recursos a la misma). aunque este es elevado dadas las características de los productos. a causa del nivel de automatización de la línea y de los costes que implica el hacer funcionar la maquinaria. Así pues. con diferente dimensión. flexibilidad reconocida a la línea existe la posibilidad de pararla o hacerla funcionar a diferentes velocidades con costes diferentes para cada una de las opciones. La empresa utiliza en ocasiones las horas extras pero estas no se planifican puesto que se utilizan para responder a problemas puntuales. y parar/utilizar la línea en días laborales/días festivos. es decir entre el lunes y el viernes. La fábrica puede trabajar a 1.2. Ventas le anticipa la demanda en hectólitros en forma de 4 escenarios posibles. con la demanda prevista en centenares hectólitros por semana (tabla 1). y el departamento de finanzas se ha puesto a trabajar. El departamento de recursos humanos tiene cerrado ya el programa de trabajo de las primeras 5 semanas del año y debe cerrar las de la semana de 6 a 10. K la capacidad de envasado medida en hectólitros por hora.10 REFRESCOS EN FONT DEL RAFOL Una empresa que fabrica refrescos carbonatados tiene una fábrica con capacidad de envasar 70 hectólitros a la hora. Cada cambio de configuración del número de turnos. Se le pide que : a) Diseñe un modelo matemático para establecer el programa óptimo teniendo en cuenta los 4 escenarios. Si los productos se guardan en el almacén propio el coste de almacenar cada hectólitro se evalúa en alrededor de 0. Usted debe anticipar el plan de producción para poder aportar información al departamento de Recursos Humanos y al de Logística. por ejemplo pasar en una semana de 2 turnos a 3 turnos. solicitando presupuestos. Al principio de año calcula que tendrá 5000 hectólitros de stock. Están en las últimas semanas del año. Dispone también de almacenes a los que puede subcontratar capacidad si los productos se guardan en almacén ajeno el coste de almacenar (que incluye el coste de transportar) se eleva a 1 € por semana. Página 183 de 190 . y f el número de festivos en una semana (considerando sólo los festivos que reducen el número de días laborables). b) Defina los costes en recursos humanos y en almacenes en los que incurrirá.3 y 4 turnos de 80 horas semanales cada uno (deduciendo la parte proporcional de festivos no fin de semana). tiene un coste de 1000 euros por turno cambiado. El departamento de RRHH le ha pedido un presupuesto para su gasto del año que viene.25 € por semana. Es decir la capacidad productiva de una determinada semana se calcula según la siguiente fórmula 40·K (5  f ) 5 Siendo 40 el número de horas laborables por semana en un turno completo. El departamento de logística tiene un almacén propio con una capacidad de 8000 hectólitros. 03/01/2011 10/01/2011 17/01/2011 24/01/2011 31/01/2011 Turnos 1 1 1 2 2 El departamento financiero le ha pedido un presupuesto para su gasto en almacenes subcontratados este año. Un turno tiene un coste semanal de 6000 euros.Modelos y Métodos de Investigación de Operaciones 17. C Variable por € 1 1 1 1 0. ubicados en los puntos de la geografía que se indican en la tabla 2. Ubicación y Demanda de cada Tienda CPD cuenta con 4 almacenes. Actualmente está considerando la posibilidad de abrir un nuevo centro logístico. y CPD cuenta con tres fábricas de envasado. 17.Usando las matemáticas para pensar sobre Dirección de Operaciones. Tiendas Tienda1 Tienda2 Tienda3 Tienda4 Tienda5 Tienda6 Tienda7 Tienda8 Tienda9 TiendaA TiendaB TiendaC TiendaD x 10 30 20 40 50 50 40 50 50 60 100 12 90 y 40 50 50 10 30 20 40 50 30 40 20 90 90 Demanda (€) 1000 2000 1000 500 600 2000 700 800 1200 900 700 600 1000 Tabla 1. Actualmente cuenta con 14 tiendas de diferentes tamaños. es una floreciente cadena de supermercados.1 Almacenes Almacen1 Almacen2 Almacen3 Almacen4 ALMACEN5 X 10 14 23 50 y 20 30 60 50 Capacidad(€) 5000 5000 5000 5000 20000 C Fijo 1000 1000 1000 1000 2000 200 200 Tabla 2. ubicadas geográficamente en los puntos que se reflejan en la tabla 1. C Variable por € © JPGS2011 Fabricas Página 184 de 190 Capacidad(€) C Fijo . El consumo de cada una de las tiendas se estima en peso. Dichos almacenes están mayormente situados cerca de sus mayores puntos de consumo. Capacidad y Coste de Cada almacén Usted está analizando la cadena de suministro de productos perecederos. Los datos básicos se representan en la siguiente tabla. Ubicación.11 Central Pendiente Dominicana. más grande y alejado. Y la demanda debe ser satisfecha. Central Pendiente Dominicana CPD.Sus características están en la tabla 3. coste del km coste de almacenaje Valor del m3 coste de inventario 1 1 10 €/m3transportado/km €/m3 almacenado al día €/m3 0. Ubicación del centro de gravedad de los puntos de abastecimiento Los costes de transporte se calculan en pesos por kilómetro recorrido y m3 transportado. Capacidad y Coste de Cada Fábrica Los centros de aprovisionamiento de los productos que vende están fundamentalmente en dos puntos de la geografía que se indican en la tabla 4. Los costes de almacenamiento y de procesamiento del producto se calculan teniendo en cuenta un coste fijo (relacionado con poner en marcha la instalación) y un coste variable medido en pesos por m3 movido.05 €/€ almacenado al día ¿para qué densidad de valor (€/m3) del producto es rentable irse al almacén grande único y alejado? Construya un modelo matemático Página 185 de 190 .Modelos y Métodos de Investigación de Operaciones Fábrica1 Fábrica2 Fábrica3 10 30 40 10 50 40 10000 10000 10000 500 700 1000 5 2 1 Tabla 3. Abastecimiento X Proveedor1 Proveedor2 0 70 Y 0 20 Tabla 3. Ubicación. 4000} La demanda a servir a cada almacén es {2000.2000. La capacidad de cada fábrica es {10000.2000.4000. ¿Es mejorable la solución que le entrega? ¿Cómo afectan los costes de transporte a los costes totales? Página 186 de 190 © JPGS2011 .2000} Los costes de transportar desde cada fábrica a cada almacen son: coste transporte Fabrica 1 Fabrica 2 Fabrica 3 Almacen1 1 1 2 Almacen2 2 3 3 Almacen3 3 2 4 Almacen4 4 3 2 ¿Quién debe servir a quien para tener el mínimo coste? Utilice el solver para resolver. ETAPA 1: Una empresa tiene 3 fábricas y 4 almacenes.Usando las matemáticas para pensar sobre Dirección de Operaciones. El coste de cada fábrica son {800.1200} Utilice el solver para resolver.1} Utilice el solver para resolver. Cada fábrica tiene que pagar un coste fijo por ser utilizada. ¿Por qué cree que deben existir esos costes variables? ¿Cree que deben ser constantes o dependen según la cantidad? Página 187 de 190 . El coste unitario de producir en cada fábrica son {3.Modelos y Métodos de Investigación de Operaciones ETAPA 2: Sobre el problema anterior. Cada fábrica tiene que pagar un coste variable por cada unidad que utiliza.2. ¿Por qué cree que deben existir esos costes fijos? ETAPA 3: Sobre el problema anterior.1000. Página 188 de 190 © JPGS2011 . con sus costes de aprovisionar a cada fábrica respectivamente. Las fábricas sólo pueden fabricar si tienen materia prima suficiente. Grafíe como evolucionaría la red completa a medida que va subiendo el valor de euros por metro cúbico transportado. ETAPA 4 Añadimos dos posibles proveedores.Usando las matemáticas para pensar sobre Dirección de Operaciones. Companys.T. M. J. Dynamic Programming. Scheduling Theory and its Applications. Gross. Hansen. Corominas. In: Glover. Mladenovic. cpda-etseib. Ferreira. M. F. Página 189 de 190 . Parallel computing in Optimization. 1967 Cuatrecasas. F. Laguna. 1996 Gendreau. McGraw-Hill.W.. Wiley and Sons. Handbook of metaheuristics Kluwer International Series.L. Wiley. Ghaziri.. R. Ferreira. A. C. 37-54.). R. 1982. J. Maxwell. Models for parallel algorithm designs: an introduction. Handbook of metaheuristics Kluwer International Series.F. pp. Liu. Ll..R. G. A. McGraw-Hill. John Wiley and Sons. Binmore.. Programacion dinamica..A. D. N. J. F. (Eds. Glover. 1996 Diaz. Annals of Operations Research 30. K. Simchi-Levy. G.T.L... 1997 Chase. 1997 Companys. W. (Eds... Optimización Heurística y Redes Neuronales. R. 145-184.). E. Prentice Hall. H. Irwin-McGraw-Hill. F. A. A.. R.. A.. 1992. D.V. Handbook of metaheuristics Kluwer International Series. In: Glover. F. 63-80.. C. D... Moscato. Administración de producción y operaciones. McGriwHall.. Springer. Laguna. Teoría de Juegos. Glover. Conway. 1997.. Introducción al BDP. Laguna. Aquilano. Z. L. 1990 Denardo. Morvan. pp. Kochenberger.G. Marti. Fundamentals of Queueing Theory. Kochenberger. Harris. CPDA-ETSEIB.... Organización de la Producción y Dirección de Operaciones. pp.. Miller. Dembo.J.. P.. Pardalos. Models and Applications.L. Harris.. Moscato. Díaz. N.B. The Logic of Logistics. Solving Combinatorial Problems in Parallel.. Teoria de Grafs.S. Gross.1994 Binmore. Companys. F. 2003. 1996. M. Variable Neighborhood Search. G. Scenario Optimization.. Kluwer Academic Publishers. P. P. 2003.. Theory of Scheduling. Lenstra.M. Springer. F. E. R.. 1-35. Optimización Heurística y Redes Neuronales..M. J. Coffman..Modelos y Métodos de Investigación de Operaciones 18 BIBLIOGRAFÍA Bautista. M. F. R. In: Glover.A. R. Thomson. H. Kochenberger.A. K. (Eds. Bramel. M. J. Gonzales. 2008. 2000 Chrétienne. J.M.).. J. González. 1994.W. 1998. Glover.. Teoría de Juegos. 2002. 2003. F.. Fundamentals of Queueing Theory. 2003. Ghaziri. Scatter Search and Path relinking: advances and applications. P. Addison-Wesley. An introduction to tabu search.K. Jacobs. Shortle. CECSA. Stockton Press. F.F.. John Wiley and Sons. 1999 Raiffa...C. Kauffmann A. Scheduling and Inventory Control. Teoría de la Decisión. Wilsdon..H. D. 92-122.. D. 1970 Resende. Batista. 1972 Lourenço. Operations Scheduling. Duxbury. 1976 Kauffmann. Modelling the Supply Chain. G. 2003. Hampshire (UK). 2001 White. B.. The theory and practice of simulated annealing. Mart+¡. (Eds. (Eds. M. Handbook of metaheuristics Kluwer International Series.C. O.G. 321-353.R. In: Glover. Kochenberger. 219-249. Stützle.. Pinedo. Osman. Métodos y Modelos de la Investigación de Operaciones Tomo III. Wiley. Metaheuristic Procedures for Training Neutral Networks Springer US. C. G.. 1972 Williams. Decision Analysis. Handbook of metaheuristics Kluwer International Series. J. Johnson. Amo.). C... Handbook of metaheuristics Kluwer International Series. 2003. H. 1972. G. Operations Research in Production Planning. Kochenberger. Metatemas. Pidd. Investigaciones. An Introduction to Metahuristics. Henderson. Iterated Local Search. R. 1974 Kauffman. Wiley. CECSA.A.). pp.. 355-368.. Montgomery.. Mladenovic. Kochenberger. R. Chao X. M. pp.. H.A.P. pp. 2006.H.C..). Shapiro. Greedy Randomized Adaptive Search Procedures. Jonhson. A. (Eds. 1995. Marti. Tools for thinking... 2003. M. Addison Wesley.. Ribeiro.. J. M. A. 287-319. In: Glover.. Kochenberger. N.A. In: Glover.. J. In: Lawrence.).. Kauffman. D. Variable Neighbourhood Search. Operational Research Tutorial Papers. G. S.). 2003.. A. In: Glover. 71-86. Métodos y Modelos de la Investigación de Operaciones Tomo II.Usando las matemáticas para pensar sobre Dirección de Operaciones. In: Alba. Perez. Métodos y Modelos de la Investigación de Operaciones. (Eds. pp. F.. Henry-Labordere. pp. F. T. Multistart Mehods.). I.. L. A. 1996. Jacobson. McGraw-Hill. F.F..J. E. (Eds. pp. Model Building in Mathematical Programming. (Eds. Martin. S.A. CECSA... 2003. Alianza Universidad.A. I. Handbook of metaheuristics Kluwer International Series.. 1999 Página 190 de 190 © JPGS2011 . Documents Similar To modeladomatematicoSkip carouselcarousel previouscarousel nextTALLER 1-Modelamiento ClasePlandeCursoMetodoCuantitativosSESIÓN DE APRENDIZAJE DE PROGRAMACIÓN LINEALILOG-2010 Investigacion de Operaciones IAnalisis de SensibilidadInvestigacion de Operaciones00055372probelmascmIntro Ducci OnCosto en sistemas de tuberias a presionTeoria de La DualidadINTRODUCCIÓN A LA INVESTIGACIÓN DE OPERACIONESTema 1 IntroducciónPC1 - IO I - UPN - Programación Lineal - SoluciónProgrmación LinealYann AlysApuntes 2010-2011 v.14-09-11Teorias Sistemas Modelo Situacional Fundamentos de Gestiondiaz_djAnalisis de Casos en Administración vClase 1-1 Gestión EstrategicaAct 5 Calificacion 32.9 - 38 AlexTRABAJO PRACTICO 2.docxDescripción y Análisis de PuestosTrabajo Colaborativo1Tc_grupo 102016_ 223_fase 6_proyecto Final (2)SenasaActividad Individual (1)Reconoc Genra Actores Metodos DeterministicosapunteUmayorFooter MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.