Programación Lineal Entera / Investigación Operativa 1 MODELIZACIÓN Y RESOLUCIÓN CON SOLVER. Hoja 3 Para los siguientes problemas, se pide: 1. Plantear el correspondiente modelo de Programación Lineal Entera. 2. Resolver el modelo con ayuda del Solver de Excel. 1. En una galerı́a de arte cuyo plano es el de la figura, se desean instalar cámaras de video para tenerla completamente vigilada. Hay 9 zonas A, B, . . . , I, y 9 posibles puntos 1, . . . , 9 de instalación de las cámaras. Una cámara colocada en cualquiera de los puntos señalados vigila todas las zonas adyacentes a dicho punto. Por consideración a los visitantes, no se permite que más de 2 cámaras vigilen la misma zona. A 1 3 2 E 5 B 4 H F I 6 D G 7 9 8 C Además, si la zona A queda vigilada sólo por una cámara, entonces la zona D debe quedar vigilada sólo por 1 cámara. Las cámaras situadas en puntos capaces de vigilar 2, 3 y 4 zonas cuestan 5, 7 y 8 unidades monetarias, respectivamente. Formula el correspondiente modelo para determinar qué cámaras se deben instalar de manera que se minimice el coste total y se cumplan las condiciones anteriores. Solución. Se trata esencialmente de un problema de cubrimiento. Hay que decidir qué camaras se instalan: variables de decisión binarias 1 si la cámara i se instala xi = , i = 1, . . . , 9 0 si no se instala Programación Lineal Entera / Investigación Operativa 2 Las condiciones de cubrimiento garantizan que cada zona queda vigilada: Zona A: Zona B: Zona C: Zona D: Zona E: Zona F: Zona G: Zona H: Zona I: x1 + x2 + x3 x3 + x8 ≥ 1 x7 + x8 + x9 x1 + x9 ≥ 1 x2 + x4 + x5 x5 + x8 ≥ 1 x6 + x7 + x8 x6 ≥ 1 x4 + x6 ≥ 1 ≥1 ≥1 ≥1 ≥1 La condición de que no más de 2 cámaras vigilen simultáneamente una zona es necesaria sólo para las zonas accesibles desde más de 2 cámaras: Zona A: Zona C: Zona E: Zona G: x1 + x2 + x3 x7 + x8 + x9 x2 + x4 + x5 x6 + x7 + x8 ≤2 ≤2 ≤2 ≤2 Para modelar las implicaciones “si la zona A queda vigilada sólo por una cámara, entonces la zona B debe quedar vigilada por 2 cámaras y la zona D sólo por 1”, es suficiente con tener en cuenta que x1 + x2 + x3 = número de cámaras que vigilan la zona A sólo puede ser igual a 1 ó 2: x3 + x8 ≥ 3 − x1 − x2 − x3 x1 + x9 ≤ x1 + x2 + x3 2. Una empresa fabrica tres productos 1, 2 y 3, que deben procesarse en dos tipos de maquinaria denominadas A y B. En la siguiente tabla se recogen los tiempos de procesamiento (por tonelada procesada) con cada máquina, los beneficios (por tonelada procesada) en euros, y la disponibilidad de cada tipo de maquinaria (en horas por semana): Tipo de Productos Disponibilidad maquinaria 1 2 3 (horas) A 2 5 4 70 B 3 4 6 86 Benef./ton. (miles de euros) 800 700 950 La empresa considera aumentar la disponibilidad de tiempo de procesamiento de la maquinaria. Para ello, puede llevar a cabo alguna de las posibilidades indicadas a continuación Programación Lineal Entera / Investigación Operativa 3 Tipo de maquinaria A B Incremento de disp. (horas) 10 15 8 12 Coste inversión (miles de euros) 1600 1700 1700 1750 A lo sumo, se puede realizar un tipo de incremento para cada máquina. Gracias a un estudio de mercado se conocen los lı́mites de demanda de los productos, que son Producto 1 2 3 Demanda (ton.) mı́nima máxima 6 17 3 8 7 20 Además, la inversión total no puede exceder de 3400000 euros. Se pide: (a) Formular el problema que se debe plantear la dirección de la empresa para obtener el plan de procesamiento e inversión de mayor beneficio. (b) Si la empresa desease aumentar la disponibilidad de un sólo tipo de maquinaria, ¿cómo se modifica el modelo anterior reflejando tal situación? (c) Si no se quiere añadir disponibilidad de B a menos que se añada de A, ¿cómo se representa esta nueva condición? (d) La empresa desea ampliar la disponibilidad con la maquinaria B si, y sólo si, se incrementa también la A. ¿Cómo debe modificarse la condición considerada en el apartado anterior? Solución. Las variables de decisión son: x1 , x2 y x3 : cantidad de cada producto que se fabrica. Variables binarias que nos indican si se realiza cada uno de los 4 posibles incrementos o no: δA1 , δA2 , δB1 y δB2 . 1, si se realiza el incremento de 10 h. en la máquina A, δA1 = 0, si no se realiza δA2 , δB1 y δB2 se definen análogamente para los incrementos de 15 h. en la máquina A y 8 y 12 h. en la máquina B, respectivamente. Programación Lineal Entera / Investigación Operativa 4 La función objetivo a maximizar: beneficios de venta - coste incremento de capacidad de las máquinas 800x1 + 700x2 + 950x3 − 1600δA1 − 1700δA2 − 1700δB1 − 1750δB2 Las restricciones son: Disponibilidad de maquinaria: 2x1 + 5x2 + 4x3 ≤ 70 + 10δA1 + 15δA2 3x1 + 4x2 + 6x3 ≤ 86 + 8δB1 + 12δB2 A lo sumo, se puede realizar un tipo de incremento para cada máquina: δA1 + δA2 ≤ 1 (1) δB1 + δB2 ≤ 1 (2) Lı́mites de la demanda de cada producto: 6 ≤ x1 ≤ 17, 3 ≤ x2 ≤ 8, 7 ≤ x3 ≤ 20 La inversión total no puede exceder de 3400000 euros: 1600δA1 + 1700δA2 + 1700δB1 + 1750δB2 ≤ 3400 x1 , x2 , x3 ≥ 0 y δA1 , δA2 , δB1 y δB2 variables binarias. (b) Si la empresa desease aumentar la disponibilidad de un sólo tipo de maquinaria, ¿cómo se modifica el modelo anterior reflejando tal situación? Si se siguen manteniendo las restricciones (1) y (2), entonces es suficiente con añadir: δA1 + δA2 + δB1 + δB2 ≤ 1 Si no se mantienen, es decir, sólo se puede invertir en una máquina pero las ampliaciones se pueden acumular, entonces hay que añadir 2 nuevas variables binarias que indiquen si se invierte o no en cada máquina: 1, si se realiza algún incremento en la máquina A, δA = 0, si no se realiza Programación Lineal Entera / Investigación Operativa 5 Análogamente se define δB . Estas 2 variables toman su valor en función del valor de las variables binarias previamente definidas: δA1 + δA2 ≤ 2δA (3) δB1 + δB2 ≤ 2δB (4) Estas 2 restricciones sustituirı́an a las anteriores (1) y (2). Además, habrı́a que añadir para modelizar la condición que se nos pide ahora: δA + δB ≤ 1 (b) Si no se quiere añadir disponibilidad de B a menos que se añada de A, ¿cómo se representa esta nueva condición? Como antes, si no se elimina la condición de, a lo sumo 1 inversión en cada máquina, habrı́a que añadir la restricción: δB1 + δB2 ≤ δA1 + δA2 Si se elimina la condición, entonces se definen δA y δB como antes y se añade la restricción: δB ≤ δA (b) La empresa desea ampliar la disponibilidad con la maquinaria B si, y sólo si, se incrementa también la A. ¿Cómo debe modificarse la condición considerada en el apartado anterior? Se debe cambiar la desigualdad por una igualdad. 3. Considera el siguiente problema de localización de almacenes: Una empresa tiene que decidir dónde localizar 2 posibles almacenes de distribución para atender la demanda de 4 posibles clientes. Cada cliente corresponde a una zona geográfica. La empresa tiene 3 posibles ubicaciones para los almacenes, de las que tiene que seleccionar 2. Para cada ubicación se conoce: Costes fijos por levantar cada almacén (P1, P2 y P3) y capacidad máxima de cada uno de ellos P1 P2 P3 costes fijos capacidades 25 12 12 10 13 8 Costes de asignación almacén–cliente y demandas de cada cliente Programación Lineal Entera / Investigación Operativa 6 costes de asignación cliente 1 cliente 2 cliente 3 5 6 3 3 4 2 4 2 3 almacén P1 P2 P3 demandas 2 4 cliente 4 2 3 5 4 3 El objetivo es determinar qué almacenes se levantan y qué clientes se atienden desde cada almacén cuando cada cliente sólo puede ser atendido desde un almacén y es obligatorio que cada cliente tenga asignado un almacén. La variables de decisión binarias son: Decisión respecto a qué almacén se levanta: 1 si el almacén i se levanta xi = 0 en otro caso para i = 1, . . . , 3 Decisión respecto a qué almacén sirve a cada cliente: 1 si el almacén i sirve al cliente j yij = 0 en otro caso para i = 1, 2, 3, j = 1, 2, 3, 4 (variables de asignación) Mientras que el objetivo es minimizar el coste total: coste de levantar un almacén más coste de asignación cliente-almacén. En cuanto a las restricciones, una posibilidad es: (1) Si el almacén i no se levanta (xi = 0), no puede servir al cliente j (yij = 0): yij ≤ xi para i = 1, 2, 3, j = 1, . . . , 4 (2) Cada cliente debe ser servido por exactamente un almacén: 3 X yij = 1 para j = 1, . . . , 4 i=1 (3) Cada almacén no puede servir más de su capacidad: 4 X nj yij ≤ CAPi j=1 donde nj = demanda del cliente j, j = 1, . . . , 4. para i = 1, 2, 3, Programación Lineal Entera / Investigación Operativa 7 (4) El número máximo de almacenes es 2: 3 X xi ≤ 2 i=1 (5) Las variables son binarias: xi ∈ {0, 1} ∀i = 1, 2, 3 y yij ∈ {0, 1} ∀i = 1, 2, 3, j = 1, 2, 3, 4 Todas las restricciones anteriores, junto con la función objetivo, componen el Modelo 1. Si nos fijamos en las restricciones (1) y (3), observamos que se pueden combinar en una única restricción (13), manteniendo el resto de restricciones (13) Si el almacén i no se levanta (xi = 0), no puede servir a ningún cliente j (yij = 0), j = 1, . . . , 4, y si se levanta, la demanda de su cartera de clientes no puede exceder su capacidad: 4 X nj yij ≤ CAPi xi para i = 1, 2, 3 j=1 Llamamemos Modelo 2 al modelo resultante. Plantea y resuelve la relajación lineal del Modelo 1 y del Modelo 2 con el Solver de Excel. ¿Qué relación hay entre el valor óptimo de ambos problemas?, ¿la solución óptima de la relajación lineal del modelo 1 verifica todas las restricciones (13) del modelo 2?, ¿cuál de los dos modelos crees que es “mejor”?, ¿por qué? Construye un tercer modelo, Modelo 3, manteniendo el conjunto de restricciones (1) del Modelo 1 y sustituyendo el conjunto de restricciones (3) por las restricciones (13). Compara el valor óptimo de la relajación lineal de este nuevo modelo con las soluciones de las relajaciones lineales de los Modelos 1 y 2. ¿La solución óptima de la relajación lineal del modelo 2 verifica todas las restricciones del modelo 3?, ¿cuál de los 3 modelos te parece “mejor”? Solución. Los valores óptimos de las relajaciones lineales de los problemas 1, 2 y 3, son respectivamente: z1∗ = 24.6923067 < z2∗ = 27.3 < z3∗ = 28.5 Como estos valores se van a usar para obtener cotas inferiores para el valor óptimo del problema entero, la mejor de todas ellas es la proporcionada al resolver la relajación lineal del Modelo 3. Efectivamente, se trata de la formulación “más fuerte”. Programación Lineal Entera / Investigación Operativa 8 La solución óptima de la relajación lineal del Modelo 1 no verifica las restricciones de capacidad (13) del Modelo 2 correspondientes a las localizaciones 2 y 3. La solución óptima de la relajación lineal del Modelo 2 no verifica las restricciones (1) del Modelo 3 correspondientes a las localizaciones 2 y 3: ∗ ∗ ∗ y21 = y23 = y24 = 1 0.9 = x∗2 ∗ y32 = 1 0.5 = x∗3 donde x∗ es la solución óptima de la relajación lineal del Modelo 2.