INGENIERÍA INDUSTRIAL
INVESTIGACION DE OPERACIONES I
UNIDAD 4
AGUASCALIENTES, AGS. 27/11/2014 ÍNDICE............................................................................................................................. 2 1
UNIDAD 4 – PROGRAMACIÓN ENTERA....................................................................... 3
4.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN. ....................................................... 3
4.1.1. INTRODUCCIÓN. ................................................................................................. 3-4
4.1.2. CASOS DE APLICACIÓN...................................................................................... 4-5
4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA................. 6
4.2.1. DEFINICIÓN.......................................................................................................... 6
4.2.2. DESCRIPCIÓN DEL MÉTODO............................................................................. 7-8
4.2.3. EL MODELO PEB................................................................................................ 8-11
4.3. MÉTODO DE GOMORY...................................................................................... 12-19
4.4. MÉTODO DE BIFURCACIÓN Y ACOTAMIENTO............................................... 20-26
CONCLUSIÓN............................................................................................................... 26
BIBLIOGRAFÍA.............................................................................................................. 27
PROGRAMACIÓN ENTERA
2
4.1. INTRODUCCIÓN Y CASOS DE APLICACIÓN. 4.1.1. INTRODUCCIÓN. Es frecuente al tener que resolver problemas en los cuales las soluciones tienen que ser valores enteros como por ejemplo: números de unidades a producir por máquina, número de máquinas necesarias, etc. Parte del problema de la programación entera radica en la diferencia esencial que existe la programación lineal y la entera, en la programación lineal se maximiza o minimiza una función sobre una región de factibilidad convexa, mientras que al usar los métodos de programación entera se maximiza una función sobre una región de factibilidad que generalmente no es convexa. De tal manera que la programación entera tiene más complicaciones que la programación lineal. En este tema se presenta un tipo de problemas formalmente similares a los problemas de Programación Lineal, ya que en su descripción solo se establecen expresiones lineales. Sin embargo no responden a problemas lineales ya que algunas (o todas) las variables del problema toman valores que no están en un conjunto continuo. Por ejemplo, pueden ser variables que toman valores 0 o 1(binarias), o variables que toman valores enteros no negativos (0, 1,2,...), etc. Tras introducir el tipo de problemas se dedica un importante apartado para presentar las posibilidades de modelado que esta herramienta proporciona: problemas binarios, problemas de carga, problemas con restricciones condicionales o con dicotomías, etc. Tras dedicar una parte importante del tema a presentar estas herramientas de modelado y a plantear numerosos problemas con ellas se procede a mostrar dos métodos de resolución. Uno de ellos dedicado a problemas en los que todas las variables son binarias y otro para problemas generales. Ambos métodos tienen en común que desarrollan un proceso de enumeración que permite comprobar explícita o implícitamente todas las soluciones del problema hasta encontrar la óptima, y entran dentro del tipo de métodos de ramificación y acotación. En algunos casos se requiere que la solución óptima se componga de valores enteros para algunas de las variables. La resolución de este problema se obtiene analizando las posibles alternativas de valores enteros de esas variables en un entorno alrededor de la solución obtenida considerando las variables reales. Muchas veces la solución del programa lineal truncado está lejos de ser el óptimo entero, por lo que se hace necesario usar algún algoritmo para hallar esta solución de forma exacta. El más famoso es el método de “Ramificación y Acotación” o “Branch and Bound” por su nombre en inglés. El método de Ramificación y Acotación, parte de la adición de nuevas restricciones para cada variable de decisión (acotar) que al ser evaluado independientemente (ramificar) lleva al óptimo entero.
La programación entera se divide en 3 tipos de modelos:
3
Programación Entera Pura: Todas las variables de decisión tienen valores enteros. Programación Entera Mixta (PEM): Algunas de las variables de decisión tienen valores enteros. Las demás cumplen con la suposición de divisibilidad. Programación Entera Binaria (PEB): Utiliza variables binarias.
4.1.2. CASOS DE APLICACIÓN. A continuación se presenta la variedad de problemas que caen dentro de la programación entera y binaria: a) Todos los problemas de programación lineal, donde las actividades, por su estructura deben ser no-divisibles, son programas enteros. Por ejemplo problemas de producción de automóviles, prendas de vestir, etc. ¿Qué significado tendría la producción de 577.83 automóviles? b) Todos los problemas de transporte, asignación y redes de optimización. Este tipo de problemas son enteros y dada la estructura tan especial de estos problemas, tienen métodos de solución propios. c) Problemas de secuenciación. Este tipo de problemas aunque son fáciles de formular, resultan bastantes difíciles de resolver. Se supone por ejemplo en el caso de un taller que puede efectuar un solo tipo de trabajo a la vez (orden i ), el que se tiene contratado a entregar en días, a partir de una cierta fecha base, y que además tiene una gran duración de trabajo de ( > 0) días y al cuales asocian una multa de pesos por día de retrasos después de los días estipulados. Se supone que el taller recibe n órdenes de trabajo en la fecha base. ¿Cuál debe ser el orden de secuenciación de trabajos que minimice el costo penal total? d) El problema del agente viajero. Este problema concierne en un agente viajero que saliendo de una terminal de ciudad debe visitar una sola vez n-1 ciudades diferentes, y regresar al punto de partida. Si el costo de dirigirse a la ciudad j desde la ciudad i es ( ≠ ), se debe terminar la secuencia de visita de ciudades, tal que el costo total asociado sea el mínimo. Este problema se presentó por primera vez en 1960, en un artículo de Miller, Tucker, Zemling, pero hay una variedad de métodos que resuelven el problema dependiendo del tamaño de n, el número de ciudades. e) Problema tipo mochila. Este tipo de problemas de optimización de carácter entero puede darse en dos versiones. En la primera se proporciona un cierto espacio con determinado volumen o capacidad, y este debe ser llenado con
4
objetos de valor y volumen o capacidades especificados. El problema consiste en llenar ese espacio con el conjunto de objetos más valioso, sin exceder los límites físicos de dicho espacio. La segunda versión consiste en dividir a un objeto en varias porciones de diferente valor, el problema consiste en encontrar la división de mayor valor. f) Problemas de inversión. Se supone por ejemplo que el organismo Nacional Financiera S.A., tiene que escoger una alternativa en cada uno de tres proyectos de inversión. El primer proyecto está relacionado con la construcción de partes de generadores eléctricos. El segundo proyecto con el ensamblado de esas partes de generadores eléctricos y el tercer proyecto con la distribución y venta de los generadores eléctricos incluyendo a su posible exportación. Cada proyecto tiene una serie de alternativas. Asociadas a cada alternativa se tiene calculado el valor presente del retorno total de la inversión (en millones de pesos), el número de empleos que se generan y el flujo de inversión (en millones de pesos) que se necesitan para los próximos 5 años. Las restricciones del sistema son que no hay capacidad económica para generar más de 10 mil empleos y que los flujos máximos de capital son 700 millones en el año 1, 300 millones en el año 2, 150 millones respectivamente en los años 3,4 y 5. ¿Qué alternativas conviene seleccionar de los proyectos I, II y III a fin de maximizar el ingreso total neto anual? g) Problemas con costos fijos. Todos los problemas que en su función de costo influyen un costo fijo del siguiente tipo Costo total para la variable = f ( )= pertenece al grupo de problemas enteros. Este tipo de costos aparecen frecuentemente en problemas de transportes, inventarios, localización de plantas, distribución geográfica de electores, etc. h) Problemas de cubrimiento y partición de un conjunto. Este tipo de modelos de carácter entero se ha utilizado en problemas de acceso de información, programación de entrega de paquetería por transporte terrestre, distribución política electoral, problemas matemáticos de coloración y programación de horarios de tripulación aéreos, ferrocarrileros, terrestres y marítimos. i) Dicotomías y problemas de aproximación. Una dicotomía ocurre en un programa matemático cuando se tienen condiciones de tipo esta restricción o la otra restricción, pero no ambas. Este tipo de condiciones se pueden representar por medio de una estructura entera. j) Balance de líneas de producción. Este tipo de problemas consisten en decidir qué actividades deben se desempeñadas por cada trabajador, a medida que un producto se desplaza por una línea de producción. El objetivo consiste en 0 , si = 0, 0 ≤ ≤ , j=1,2,…n + , si > 0 minimizar el número de trabajadores (o estaciones de trabajo o actividades) en función de una tasa de producción.
5
k) Asignación cuadrática. Este tipo de problemas apareció en los problemas de localización, existe un conjunto de n posibles lugares en donde se piensa construir n plantas industriales m
4.2. DEFINICIÓN Y MODELOS DE PROGRAMACIÓN ENTERA Y BINARIA 4.2.1. DEFINICIÓN El modelo de programación entera es sencillamente la programación lineal solo que con la característica de que la programación entera tiene una restricción de que todas las variables sean valores enteros a este tipo de modelos se les llama programación entera pura. Esto nos quiere decir que la metodología para resolver los problemas de programación entera es prácticamente el mismo que para hacer la programación lineal. La programación entera mixta (PEM) se ocupa solo cuando algunas de las variables deben ser enteros y la suposición de divisibilidad se cumple para el resto. Esto se da cuando algunos datos deben ser enteros como la cantidad de personal dentro de una empresa ya que no se pueden asignar 2.5 empleados se deben redondear a 3 pero dentro del mismo modelo se asigna el salario ya que puede ser $2000.50 a estos modelos se les reconoce por (PEM).
6
Las programaciones enteras binarias son aquellas donde incluyen decisiones de si o no que están interrelacionadas. En las decisiones de este tipo solo hay 2 posibles respuestas a este tipo de decisiones se les puede representar mediante variables de decisión restringidas a 2 valores, por ejemplo 0 y 1, así la j-ésima decisión sí o no se puede representar por X j, tal que: ˂1 si la decisión j es si o 0 si la decisión j es no. A este tipo de problemas de programación entera binaria también se les conoce como problemas 0-1 de programación entera.
4.2.2. DESCRIPCIÓN DEL MÉTODO Lo primero que se debe saber, es que al ser las decisiones de Si o No, todas las variables de decisión tienen la forma binaria. La representación de lo anterior queda así:
Cuando al escoger una opción, no se nos permite escoger otra, se dice que ambas son mutuamente excluyentes, esta restricción se representa como la sumatoria de ambas ≤ 1, ya que eso indica que entre ambas puede haber solo 1 (solo una de las 2) o 0 (ninguna de ellas).
7
En el caso en que una opción solo se pueda escoger habiendo elegido otra con anterioridad, se dice que son contingentes o condicionales, esta restricción se representa poniendo que la variable dependiente es ≤ a la variable independiente, de la siguiente manera:
Pero para colocar lo anterior como restricción válida para modelación, se debe igualar a 0.
Como paso final para modelar se ponen las restricciones ≤ 1 y ≥ 0 para indicar que solo entre esos valores pueda estar la optimización.
Dónde: j= Número de variables de decisión.
Ejemplo: A continuación se presenta un problema del cual se hará el modelaje y se darán los pasos para desarrollarlo en programación entera binaria. La CALIFORNIA MANUFACTURING COMPANY analiza la posibilidad de llevar a cabo una expansión mediante la construcción de una nueva fábrica ya sea en Los Ángeles o en San Francisco, o tal vez en ambas ciudades. También piensa en construir, a lo sumo, un nuevo almacén, pero la decisión sobre el lugar en donde lo instalará está restringida a la ciudad donde se construya la nueva fábrica. En la cuarta columna de la tabla 1 se muestra el valor presente neto — rendimiento total que toma en cuenta el valor del dinero en el tiempo— de
8
cada alternativa. En la última columna se proporciona el capital que se requiere —incluido el valor presente neto— para las respectivas inversiones, donde el capital total disponible es de 10 millones de dólares. El objetivo es encontrar la combinación factible de alternativas que maximice el valor presente neto total.
4.2.3. EL MODELO PEB Aun cuando este problema se puede resolver con un simple razonamiento construir fábricas en ambas ciudades, pero ningún almacén—, se formulará como ejemplo. Sea: Z= valor neto de estas decisiones. Si se hace la inversión para construir una instalación dada —de manera que la variable de decisión correspondiente tenga valor de 1—, el valor neto estimado de estas inversiones aparece en la cuarta columna de la tabla. Si la inversión no se hace —y, por tanto, la variable de decisión es igual a 0—, el valor presente neto es 0.
Datos del ejemplo de la California Manufacturing Co.
Entonces, con unidades de millones de dólares, la F.O queda: Z=9x1 +5x2 +6x3 +4x4. La última columna de la tabla indica el capital que se gastará en las cuatro instalaciones, y dice que no puede exceder a 10 millones de dólares. Entonces, la primera restricción sería: 9
6x1 +3x2 +5x3 +2x4 10. Como las últimas dos decisiones representan alternativas mutuamente excluyentes — la compañía quiere construir cuando mucho un almacén nuevo —, se necesita la restricción
Aún más, las decisiones 3 y 4 son contingentes —o condicionales— porque dependen de las decisiones 1 y 2, respectivamente (la compañía consideraría la construcción de un almacén en determinada ciudad sólo si la nueva fábrica va a estar ahí). Por tanto, en caso de tomar la decisión 3, se requiere que x3 = 0 si x1 = 0. Esta restricción sobre x3 (cuando x1 = 0) se impone al agregar la restricción.
De manera similar, el requerimiento de que x4 = 0 si x2 = 0 se impone con la restricción:
Por tanto, después de escribir de nuevo estas dos restricciones para que todas las variables queden en el lado izquierdo, el modelo completo de PEB es
10
De manera equivalente las 3 últimas líneas de este modelo se puede sustituir por una sola restricción.
Excepto por su tamaño pequeño, este ejemplo representa muchas aplicaciones reales de programación entera en las que las decisiones básicas que se toman son del tipo sí o no. Al igual que el segundo par de decisiones de este ejemplo, muchos grupos de decisiones sí o no son mutuamente excluyentes, tales que sólo una decisión de ese grupo puede ser sí. Cada grupo requiere una restricción que obligue a la suma de las variables binarias correspondientes a ser igual a 1 si exactamente una decisión de ese grupo debe ser sí, o menor o igual a 1 (si cuando mucho una decisión de ese grupo puede ser sí). En ocasiones, las decisiones del tipo sí o no son decisiones contingentes, es decir, dependen de decisiones anteriores. Se dice que una decisión es contingente respecto a otra si se permite que sea si sólo si la otra es sí. Esta situación ocurre cuando una decisión contingente implica una acción que sigue a otra y que se vuelve irrelevante, o imposible, si la otra decisión es no. La forma de la restricción que se obtiene se ilustra en la cuarta y quinta restricciones del ejemplo.
11
Punto óptimo
Función objetivo en el punto óptimo 9. Igual que en el ejemplo de la California Manufacturing Co., con frecuencia los administradores enfrentan decisiones de sí o no. Por tanto, la programación entera binaria (PEB) se usa de manera considerable como ayuda para tomar estas decisiones.
4.3. MÉTODO DE GOMORY Publicado en 1958 por Ralph Gomory, el método de Gomory mejor conocido como Algoritmo de Plano de Corte, es un método que permite encontrar soluciones óptimas enteras en aquellos problemas de programación lineal que tienen soluciones fraccionarias o con decimales. Se basa con los “planos cortantes” (o corte) que es una nueva restricción funcional que reduce la región factible del relajamiento de PL sin eliminar soluciones factibles del 12
problema de PE original. Podemos decir que este método es una base de nuevas técnicas que permiten de igual manera encontrar una solución óptima entera de un problema de PL, un ejemplo, el “método de ramificación y acotamiento” que lo veremos más adelante. El método de Gomory se inicia en la solución óptima continua. Se agregan restricciones especiales (los cortes) al espacio de soluciones para que produzcan un punto extremo óptimo entero. La desventaja de este método, es que resulta muy ineficiente para resolver problemas enteros de tamaño medio. Estos métodos generan en cada iteración una restricción y una variable extra. Sin embargo, su ventaja es que ilustran lo que se pretende hacer con la región de factibilidad de problemas entero, para lograr la solución del mismo. Comenzaremos con un ejemplo práctico para su mejor entendimiento. Ejemplo:
13
Observamos que nuestras soluciones óptimas no son números enteros, para esto, si bien es donde proseguimos con el método de Gomory. En base a la información que nos arroja nuestra tabla óptima, podemos reescribirla de la siguiente manera.
14
Una vez que tenemos la información de la tabla ordenada en las ecuaciones anteriores, debemos escoger una de estas ecuaciones, con la condición de que siempre el lado derecho sea fraccionario. En caso del ejemplo, las 3 ecuaciones cumplen con la condición. La ecuación de restricción que elijamos, será nuestra fila origen (o renglón de fuente), con la cual generaremos un corte. Paso 1: Factorizamos todos los coeficientes no enteros de la ecuación en un valor entero y un componente fraccionario, siempre y cuando el componente fraccionario sea estrictamente positivo. De la ecuación Z, nos queda como resultado
Paso 2: Los componentes enteros los moveremos al lado izquierdo y los componentes fraccionarios al lado derecho. Obtenemos:
15
Este resultado de justifica porque un valor entero menor que una fracción positiva necesariamente debe ser ≤ 0. La última desigualdad es el corte deseado, y representa una condición necesaria (más no suficiente) para obtener una solución entera. Esta desigualdad se conoce como corte fraccionario porque todos sus coeficientes son fracciones. Antes de demostrar cómo se implementa el corte fraccionario en la tabla óptima, se demostrará como también podremos construir los cortes a partir de las otras 2 ecuaciones de restricción.
Por lo tanto, nuestro corte asociado es:
16
17
Observamos que nuestras soluciones siguen siendo fraccionarias con excepción de la primera, pero esto no significa que el problema esté terminado, puesto que todas nuestras soluciones deben de ser enteras. Gráfica de la tabla con el primer corte:
18
19
4.4. MÉTODO DE BIFURCACIÓN Y ACOTAMIENTO 20
En 1960, Ailsa H. Land y Alison G. Doig, presentan el algoritmo Land-Doig. El nombre de bifurcación y acotamiento (o bien, ramificación y acotamiento y en inglés “Branch and Bound”) se lo dan posteriormente Little, Murty, Sweeney, Karel. Más tarde, el algoritmo fue modificado por Dakin, haciéndolo de manera más general. El método de bifurcación y acotación que es muy elegante y simple, redondea y acota variables enteras, resultantes de la solución de los problemas lineales correspondientes. Este proceso de acotamiento y redondeo se hace de una manera secuencial lógica heurística que permite eliminar con anticipación un buen número de soluciones factibles alejadas del optimo a medida que se intera. De tal suerte que si una variable entera , j=1, … , n está acotada entre un límite inferior entero , j=1,…n y un límite superior entero , j=1,…,n el proceso de bifurcación y acotación solo analiza un número muy pequeño de todas las posibles soluciones.
21
22
23
24
25
26
CONCLUSIÓN: En este trabajo hemos abarcado los distintos tipos de metodologías que se requieren para dar solución a los métodos de programación entera, programación entera binaria, programación mixta, método de Gomory, así como método de ramificación y acotación. Dentro de las definiciones de cada uno de los métodos se muestran de manera clara y concisa, así como el sistema que se debe llevar a cabo para resolverlos de una manera eficiente y óptima. Se obtuvieron las ideas precisas de como poder modelar los distintos tipos de problemas que se dan en industrias, transportes y cualquier problema donde se requiera una optimización de los recursos o disminución de costos. Se muestran distintos ejemplos de cada uno de estos métodos y se da una serie de características únicas de estos que diferencian a uno de otro, así, como un paso a paso de cada ejemplo en su ejecución para dar como resultado la optimización de estos casos muestras. Si bien, el presente trabajo muestra las herramientas necesarias para dar solución a los problemas PEB y PE para poder identificar el mejor método para solucionarlos.
27
BIBLIOGRAFÍA: Hillier Frederick S., Lieberman Gerald J., INVESTIGACION DE OPERACIONES, 7° edición, McGRAW-HILL, México, 2002. Taha Hamdy A, INVESTIGACION DE OPERACIONES, 9° edición, Pearson Educación, México, 2012. Prawda Witenberg Juan, MÉTODOS Y MODELOS DE INVESTIGACION DE OPERACIONES Vol. 1 Modelos determinísticos, Limusa Noriega Editores, México, 1999. Gallagher Charles A., Watson Hugh J., MÉTODOS CUANTITATIVOS PARA LA TOMA DE DECISIONES EN ADMINISTRACIÓN, McGRAW-HILL, Winston Wayne L., INVESTIGACION DE OPERACIONES, Aplicaciones Algoritmos, 4° edición, Cengage Learning Editores, México, 2005.
28
y