Programación Lineal Entera / Investigación Operativa

Anuncio
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.
Descargar