Programación Lineal: Modelos PLE

Anuncio
Programación Lineal: Modelos PLE
CCIR / Matemáticas
euresti@itesm.mx
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
1 / 35
Introduccion
Introduccion
En esta lectura se verán cómo se puede modelar situaciones mediante un modelo
de programación lineal entera o entera mixta (PLE). También veremos algunos
ejemplos que ilustran cómo modelar situaciones que nos son lineales, tanto en las
restricciones como en la función objetivo, que mediante la introducción de
variables binarias se pueden convertir a un modelo lineal.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
2 / 35
0-1 Knapsack problem
0-1 Knapsack problem
Suponga que hay n proyectos y que el costo del proyecto i es ci y que por otro
lado el valor del proyecto es ai . Cada proyecto se realiza o no, de manera que no
es posible realizar una fracción de él. El presupuesto disponible es limitado y tiene
el valor b. El problema de la mochila consiste en elegir un subconjunto de
proyectos que maximice el valor obtenido y que no exceda el presupuesto dado:
Max
n
X
ai xi
i=1
sujeto a
n
X
c i xi ≤ b
i=1
La variable binaria xi sirve para determinar cuando el proyecto i es seleccionado: 0
si no lo es, 1 si sı́ lo es.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
3 / 35
Ejemplo 1
Ejemplo 1
StockCo considera cuatro inversiones. La inversión 1 proporcionará un valor
actual neto (VAN) de 16,000 dólares; la inversión 2 un VAN de 20,000 dólares; la
inversión 3 un VAN de 12,000 dólares; y la inversión 4 un VAN de 8,000 dólares.
Cada inversión requiere cierto flujo de caja en el momento actual; la inversión 1
requiere 5,000 dólares; la inversión 2 requiere 7,000 dólares; la inversión 3 requiere
4,000 dólares; y la inversión 4 requiere 3,000 dólares. Se dispone de 14,000
dólares para la inversión. Formule y resuelva un modelo PLE para maximizar el
VAN obtenido por StockCo.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
4 / 35
Ejemplo 1
Ejemplo 1
StockCo considera cuatro inversiones. La inversión 1 proporcionará un valor
actual neto (VAN) de 16,000 dólares; la inversión 2 un VAN de 20,000 dólares; la
inversión 3 un VAN de 12,000 dólares; y la inversión 4 un VAN de 8,000 dólares.
Cada inversión requiere cierto flujo de caja en el momento actual; la inversión 1
requiere 5,000 dólares; la inversión 2 requiere 7,000 dólares; la inversión 3 requiere
4,000 dólares; y la inversión 4 requiere 3,000 dólares. Se dispone de 14,000
dólares para la inversión. Formule y resuelva un modelo PLE para maximizar el
VAN obtenido por StockCo.
Variables de Decisión:
1 si se realiza la inversión i
0 otro caso
Objetivo: Maximizar el VAN:
Max z = 16, 000 x1 + 20, 000 x2 + 12, 000 x3 + 8, 000 x4
xi =
Restricciones:
5, 000 x1 + 7, 000 x2 + 4, 000 x3 + 3, 000 x4 ≤ 14, 000
xi = 1 ó 0, para i = 1, 2, 3, 4.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
4 / 35
Ejemplo 1
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
5 / 35
Ejemplo 1
Modifique el modelo para StockCo para considerar por separado cada una de las
siguientes restricciones:
1
StockCo puede realizar los más dos inversiones.
2
Si StockCo invierte en la inversión 2, entonces debe también invertir en la 1.
3
Si StockCo invierte en la inversión 2, entonces no podrá invertir en la 4.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
6 / 35
Ejemplo 1
Modifique el modelo para StockCo para considerar por separado cada una de las
siguientes restricciones:
1
StockCo puede realizar los más dos inversiones.
2
Si StockCo invierte en la inversión 2, entonces debe también invertir en la 1.
3
Si StockCo invierte en la inversión 2, entonces no podrá invertir en la 4.
Respuestas
1
Basta añadir al modelo la restricción: x1 + x2 + x3 + x4 ≤ 2
Esto hace que entre todos los proyectos hay a lo más dos sı́’s
2
Basta añadir al modelo la restricción: x2 ≤ x1
Esto hace que un sı́ para el proyecto 2 implique un sı́ para el proyecto 1.
3
Basta añadir al modelo la restricción: x2 + x4 ≤ 1
Esto hace que entre los proyectos 2 y 4 hay a lo más un sı́.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
6 / 35
Ejemplo 2
Ejemplo 2
Gandhi Cloth Co puede fabricar 3 tipos de ropa: camisas, shorts y pantalones.
Para poder fabricar la ropa, la compañı́a debe disponer de la maquinaria adecuada
la cual debe rentar. Para fabricar camisas la maquinaria se renta en 200 dólares
por semana; la maquinaria para hacer shorts se renta en 150 dólares por semana;
y la maquinaria para hacer pantalones cuesta 100 dólares por semana. La
siguiente tabla contiene información sobre los requerimientos para fabricar la ropa
en tela y en horas de trabajo, ası́ mismo contiene información sobre los precios de
venta y los costos de la matera primas.
TRABAJO
Horas
TELA
m2
PRECIO VENTA
dólares
COSTO
dólares
Camisa
Short
Pantalón
3
2
6
4
3
4
12
8
15
6
4
8
Disponibles
150
160
Suponiendo que los costos de renta son independientes de las cantidades de ropa
a producir, formule y resuelva un modelo PLE para la compañı́a Gandhi de
manera que maximice sus ganancias semanales.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
7 / 35
Ejemplo 2
Variables de Decisión:
x1 = número de camisas a fabricar
x2 = número de shorts a fabticar
x3 = número de pantalones a fabricar
Relativas a la renta de maquinaria:
1 si se fabrican camisas
y1 =
0 otro caso
1 si se fabrican shorts
y2 =
0 otro caso
1 si se fabrican pantalones
y3 =
0 otro caso
Objetivo Maximizar:
z
CCIR / Matemáticas
=
+ (12 x1 + 8 x2 + 15 x3 )
− (6 x1 + 4 x2 + 8 x3 )
− (200 y1 + 150 y2 + 100 y3 )
Programación Lineal: Modelos PLE
euresti@itesm.mx
8 / 35
Ejemplo 2
Restricciones
No exceder el número de horas disponibles de trabajo
3 x1 + 2 x2 + 6 x3 ≤ 150
No exceder la cantidad semanda de tela disponible:
4 x1 + 3 x2 + 4 x3 ≤ 160
Si se decide hacer al menos una camisa, debe rentarse la maquinaria de
hacer camisas: x1 ≤ M1 y1
Si se decide hacer al menos un short, debe rentarse la maquinaria de hacer
shorts: x2 ≤ M2 y2
Si se decide hacer al menos una pantalón, debe rentarse la maquinaria de
hacer pantalones: x3 ≤ M3 y3
x1 , x2 , x3 enteros no negativos, y1 , y2 , y3 1 ó 0.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
9 / 35
Ejemplo 2
Para las restricciones anteriores, M1 , M2 y M3 son números grandes de forma tal
que un 0 en yi condiciona a que xi = 0 y un 1 en yi no pone restricciones a xi .
Estos valores de Mi son calculables por las restricciones. Por ejemplo, si sólo se
hicieran camisas (x2 = 0 y x3 = 0) por las horas de trabajo se debe cumplir que
3 x1 ≤ 150, ası́ x1 ≤ 50. Por tanto, se puede elegir M1 = 50 o un número mayor.
De igual manera, si sólo se hacen shorts (x1 = 0 y x3 = 0) de la restricción de
horas de trabajo se tiene que cumplir 2 x2 ≤ 150, y sı́ x2 ≤ 75. Por tanto, se
puede elegir M2 = 75 o cualquier número mayor. Si ahora decidimos elegir sólo
hacer pantalones (x1 = 0 y x2 = 0) por el número de horas disponibles se debe
cumplir 6 x3 ≤ 150, y ası́ x3 ≤ 25. Por tanto, se puede elegir M3 = 25 o cualquier
número mayor.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
10 / 35
Ejemplo 2
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
11 / 35
Ejemplo 3
Ejemplo 3
Hay seis ciudades (ciudades 1-6) en el Condado Kilroy. El condado debe
determinar en qué ciudad construir estaciones de bomberos. El condado quiere
construir una cantidad mı́nima de estaciones, pero quiere asegurarse que para
cada ciudad hay al menos una estación que está a 15 minutos de viaje. Los datos
de los tiempos de viaje, en minutos, de una ciudad a otra están en la siguiente
tabla. Formule y resuelva un modelo PLE que dirá en qué ciudades construir una
estacı́ón de bomberos.
DE
Ciudad
Ciudad
Ciudad
Ciudad
Ciudad
Ciudad
1
2
3
4
5
6
CCIR / Matemáticas
Ciudad 1
Ciudad 2
0
10
20
30
30
20
10
0
25
35
20
10
HACIA
Ciudad 3
Ciudad 4
20
25
0
15
30
20
30
35
15
0
15
25
Programación Lineal: Modelos PLE
Ciudad 5
Ciudad 6
30
20
30
15
0
14
20
10
20
15
14
0
euresti@itesm.mx
12 / 35
Ejemplo 3
Variables de decisión:
1
xi =
0
si estación de bomberos en la ciudad i
si no
Objetivo:
P6
Minimizar el total de estaciones de bomberos: Minimizar
i=1 xi
Restricciones
Cubrir a la ciudad 1: Como sólo ella misma y la ciudad 2 están a 15 minutos
o menos, entonces la ciudad 1 se cubrirı́a teniendo estaciones de bomberos
en la ciudad 1 y/o en la ciudad 2: x1 + x2 ≥ 1
Cubrir a la ciudad 2: x1 + x2 + x6 ≥ 1
Cubrir a la ciudad 3: x3 + x4 ≥ 1
Cubrir a la ciudad 4: x3 + x4 + x5 ≥ 1
Cubrir a la ciudad 5: x4 + x5 + x6 ≥ 1
Cubrir a la ciudad 6: x2 + x5 + x6 ≥ 1
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
13 / 35
Ejemplo 3
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
14 / 35
Ejemplo 4
Ejemplo 4
FC-Co considera construir plantas en tres localidades desde donde se proveerán
productos a otras 4 ciudades distintas. La primera de las posibles plantas tendrı́a
una capacidad de 39 productos y un costo de 91 unidades de capital; la segunda
tendrı́a una capacidad de 35 productos y un costo de 70 unidades de capital; la
tercera tendrı́a una capacidad de 31 productos a un costo de construcción de 24
unidades de capital. La ciudad 1 tiene una demanda de 15 productos, la segunda
de 17, la tercera de 22 y la cuarta ciudad de 12 productos. Determine cuáles de
las plantas debe construir de manera que se minimice el costo de construcción y
el costo por envio total. Suponga que debe proporcionar a las ciudades los
productos requeridos y que no debe exceder las capacidades de las plantas. Los
costos de envio unitarios en unidades de capital desde cada planta a cada ciiudad
están dados en la siguiente tabla.
P1
P2
P3
CCIR / Matemáticas
C1
6
4
8
C2
2
9
8
C3
6
5
1
C4
7
3
5
Programación Lineal: Modelos PLE
euresti@itesm.mx
15 / 35
Ejemplo 4
Variables de decisión
yi : variable binaria que indica si la planta i se construye
xi,j : Variable entera que determina cuántos productos se envian desde la
plata i a la ciudad j.
Objetivo
Min z =
3
X
i=1
cpi · yi +
3 X
4
X
ci,j · xi,j
i=1 j=1
Restricciones
Cumplir demandas: Para toda ciudad j = 1, 2, 3, 4,
P3
No exceder capacidades: Para toda planta i = 1, 2, 3,
i=1 xi,j
P4
≥ dj
j=1 xi,j
≤ s i · yi
Naturales: Para toda i = 1, 2, 3, yi es binaria.
Naturales: Para toda i = 1, 2, 3 y para toda j = 1, 2, 3, 4, xi,j es entera.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
16 / 35
Ejemplo 4
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
17 / 35
Restricciones del tipo O BIEN
Restricciones del tipo O BIEN
Para codificar una restricción del tipo
f (x1 , x2 , . . . , xn ) ≤ 0
o bien
g (x1 , x2 , . . . , xn ) ≤ 0
el truco consiste en introducir una variable binaria (0 ó 1) y que indica cuál
restricción se cumple, y lo anterior se codifica como
f (x1 , x2 , . . . , xn ) ≤
g (x1 , x2 , . . . , xn ) ≤
My
M (1 − y )
donde M es un número positivo muy grande.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
18 / 35
Ejemplo 5
Ejemplo 5
Dorian Auto considera la fabricación de 3 tipos de autos: Compacto, mediano, y
grande. En la siguiente tabla se muestran los recursos requeridos y las ganancias
por cada tipo de auto. En la actualidad se cuenta con 600 toneladas de acero y
60,000 horas de trabajo. Para que la producción de un tipo de auto sea factible,
hay que fabricar al menos 100 automóviles. Formule un modelo PLE para
maximizar la ganancia de Dorian Auto.
Acero requerido
Trabajo requerido
Gancia obtenida
CCIR / Matemáticas
COMPACTO
1.5 ton
30 horas
2,000 dólares
MEDIANO
3 ton
25 horas
3,000 dólares
Programación Lineal: Modelos PLE
GRANDE
5 ton
40 horas
4,000 dólares
euresti@itesm.mx
19 / 35
Variables de Decisión
Ejemplo 5
xi = Num de autos i a producir (i = 1 Compacto, i = 2 mediano, i = 3
grande)
Objetivo
Max z =
3
X
gi · xi
i=1
Restricciones
Recursos:
Acero: 1.5 x1 + 3 x2 + 5 x3 ≤ 600
Trabajo: 30 x1 + 25 x2 + 40 x2 ≤ 60, 000
Producción: 400 ≤ xi ó xi = 0
Restricciones naturales xi ≥ 0
Truco:
400 ≤ xi ó xi = 0 → f = 400 − xi ≤ 0 ó g = xi ≤ 0
→ (400 − xi ) ≤ M yi y xi ≤ M (1 − yi )
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
20 / 35
Ejemplo 5
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
21 / 35
Funciones Linealmente Seccionadas
Funciones Linealmente Seccionadas
Suponga una función linealmente seccionada en la variable var , f (var ); cuyos
puntos de ruptura son var = b1 , var = b2 , . . . var = bn . Para algún k
(k = 1, 2, . . . , n − 1) se tiene que
var = zk bk + (1 − zk ) bk+1
y ası́
f (var ) = zk f (bk ) + (1 − zk ) f (bk+1 )
f (bk+1 )
f (var )
f (bk )
bk
CCIR / Matemáticas
var
Programación Lineal: Modelos PLE
bk+1
euresti@itesm.mx
22 / 35
Funciones Linealmente Seccionadas
Estrategia de modelación con variables enteras:
Reemplace:
f (var ) = z1 f (b1 ) + z2 f (b2 ) + · · · + zn f (bn )
Adicione al modelo las restricciones:
z1 ≤ y1
z2 ≤ y1 + y2
z3 ≤ y2 + y3
..
.
zn−1 ≤ yn−2 + yn−1
zn ≤ yn−1
y1 + y2 + · · · + yn−1 = 1
z1 + z2 + · · · + zn = 1
var = z1 b1 + · · · + zn bn
yi = 0 ó 1 para i = 1, 2, . . . n − 1, zi ≥ 0 para i = 1, 2, . . . , n
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
23 / 35
Ejemplo 6
Ejemplo 6
La compañı́a MyCo produce dos tipos de productos que vende a granel, digamos
A y B. Estos productos se basan en una misma materia prima y diferentes
cantidades de mano de obra. El precio de venta de cada kilogramo de A es de 200
pesos y cada kilogramo de B se vende en 250 pesos. Cada kilogramo de A
requiere 4 horas de mano de obra y dos kilogramos de materia prima (1 kilogramo
de materia prima se pierde en el proceso). Cada kilogramo de B requiere 6 horas
de mano de obra y dos kilogramos y medio de materia prima (Un y medio
kilogramos se pierden en el proceso). La compañı́a dispone de 400 horas de mano
de obra a la semana y la materia prima la compra por semana a un proveedor a
un precio de 50 pesos cada kilogramo, pero por cada kilogramo después de
comprar 100 recibe un descuento de 5 pesos. El proveedor no puede proporcionar
más de 200 kilogramos por semana. Suponga que la materia prima no puede ser
almancenada por la compañı́a. Modele y resuelva mediante PLE la situación de
MyCo para maximizar sus ganancias semanales.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
24 / 35
Ejemplo 6
MODELO
VD
x= total de kg de A a producir
y = total de kg de B a producir
z= total de kg de materia prima a comprar
Objetivo
Max w = Costo(plan) = ventas − costos = (200 x + 250 y ) − C (z)
f (b3 ) = 9500
C (z)
f (b2 ) = 5000
f (b1 ) = 0
b1 = 0
CCIR / Matemáticas
b2 = 100
Programación Lineal: Modelos PLE
b3 = 200
euresti@itesm.mx
25 / 35
Ejemplo 6
Las restricciones quedan:
Referente a la materia prima:
Usada = 2 x + 2.5 y ≤ Disponible = z (en kg)
Referente a las horas de mano de obra:
Usada = 4 x + 6 y ≤ Disponible = 400 (en hrs)
La capacidad del proveedor de surtir materia prima
z ≤ 200 (en kg)
Naturales x, y , z ≥ 0
Ahora tenemos el pendiente de la función C (z) que no es lineal.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
26 / 35
Ejemplo 6
En este caso, la función linealmente seccionada C (z) tiene 3 puntos de
ruptura: (b1 = 0, C (0) = 0), (b2 = 100, C (100) = 5000) y
(b3 = 200, C (200) = 9500). Por tanto, requerimos sólo 3 − 1 = 2 variables
binarias yi (y1 y y2 ) y 3 variables auxiliares zi (z1 , z2 y z3 ). Cambiaremos
C (z) = z1 · f (b1 ) + z2 · f (b2 ) + z3 · f (b3 )
= z1 · 0 + z2 · 5000 + z3 · 9500
= 5000 z2 + 9500 z3
y añadiremos al modelo las restricciones:
z1 ≤ y1 , z2 ≤ y1 + y2 , z3 ≤ y2 ,
y1 + y2 = 1,
z1 + z2 + z3 = 1,
z = z1 · b1 + z2 · b2 + z3 · b3 = 100 z2 + 200 z3
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
27 / 35
Ejemplo 6
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
28 / 35
Ejemplo 7
Ejemplo 7
Euing Gas produce dos tipos de gasolina (G1 y G2) a partir de dos tipos de
petróleo (P1 y P2). Cada galón de G1 debe contener al menos 50 % de P1, y
cada galón de G2 debe contener al menos 60 % de P1. Cada galón de G1 se
vende 12 centavos de G2 a 14 centavos. Actualmente se disponen 500 galones de
P1 y 1,000 galones de P2. Se pueden comprar 1,500 galones extra de P1 a los
siguientes precios: los primeros 500 a 25 centavos el galón, los siguientes 500 a 20
centavos el galón, y los últimos 500 a 15 centavos el galón. Modele y resuelva
mediante PLE la situación de Euing Gas para maximizar sus ganancias.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
29 / 35
Ejemplo 7
Variables de Decisión
xij = Num de galones del petróleo i destinados a gasolina j.
Xi = Num de galones del petróleo i usados en total.
Objetivo
Max z = 0.12 (x11 + x21 ) + 0.14 (x12 + x22 ) − Costo(X1 )
Restricciones
Producción: X1 = x11 + x12
Producción: X2 = x21 + x22
Recursos petróleo 2: X2 ≤ 1, 000
Recursos petróleo 1: X1 ≤ 2, 000
Calidad: x11 ≥ 0.5 (x11 + x21 )
Calidad: x12 ≥ 0.6 (x12 + x22 )
Restricciones naturales xi ≥ 0
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
30 / 35
Ejemplo 7
Problema: Costo(X1 ) es una función seccionada
Costo(x) = 0 para 0 ≤ x ≤ 500 (Los primeros 500 ya se tienen)
Costo(x) = 0 + 0.25(x − 500) para 500 ≤ x ≤ 1, 000
Costo(x) = 125 + 0.20(x − 1, 000) para 1, 000 ≤ x ≤ 1, 500
Costo(x) = 125 + 100 + 0.15(x − 1, 500) para 1, 500 ≤ x ≤ 2, 000
Los extremos de la gráfica de la función costo son: P1 (b1 = 0, f (b1 ) = 0),
P2 (b2 = 500, f (b2 ) = 0), P3 (b3 = 1000, f (b3 ) = 125),
P4 (b4 = 1500, f (b4 ) = 225), y P5 (b5 = 2000, f (b5 ) = 300): Reemplazaremos:
Costo(X1 ) por z1 · 0 + z2 · 0 + z3 · 125 + z4 225 + z5 · 300
Adicionaremos al modelo:
z1 ≤ y1 , z2 ≤ y1 + y2 , z3 ≤ y2 + y3 , z4 ≤ y3 + y4 , z5 ≤ y4
y1 + y2 + y3 + y4 = 1
z1 + z1 + z3 + z4 + z5 = 1
X1 = z1 · 0 + z2 · 500 + z3 · 1, 000 + z4 · 1, 500 + z5 · 2, 000
yi binaria para i = 1, 2, 3, 4y zi ≥ 0 para i = 1, 2, 3, 4, 5
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
31 / 35
Ejemplo 7
Código LINDO y reporte Euing
MAX 0.12X11+0.12X21+0.14X12+0.14X22-CX1
ST
X1 -X11 - X12=0
X2 -X21 + X22=0
X2 <= 1000
X1 <= 2000
0.5X11 + 0.5X21 - X11 <=0
0.6X12 + 0.6X22 - X12 <= 0
125Z3 + 225Z4 + 300Z5 - CX1=0
Z1 - Y1 <= 0
Z2 - Y2 - Y1 <=0
Z3 - Y3 - Y2 <=0
Z4 - Y4 - Y3 <=0
Z5 - Y4 <= 0
Y1 + Y2 + Y3 + Y4 = 1
Z1 + Z2 + Z3 + Z4 + Z5 = 1
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0
END
INTE Y1
INTE Y2
INTE Y3
INTE Y4
CCIR / Matemáticas
OBJECTIVE FUNCTION VALUE
1)
476.0000
VARIABLE
VALUE
REDUCED COST
Y1
1.000000
0.000000
Y2
0.000000
0.000000
Y3
0.000000
0.000000
Y4
0.000000
0.000000
X11
1400.000000
0.000000
X21
1400.000000
0.000000
X12
600.000000
0.000000
X22
400.000000
0.000000
CX1
0.000000
0.000000
X1
2000.000000
0.000000
X2
1000.000000
0.000000
Z3
0.000000
125.000000
Z4
0.000000
225.000000
Z5
0.000000
300.000000
Z1
0.000000
0.000000
Z2
1.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
2)
0.000000
-0.236000
3)
0.000000
-0.004000
4)
0.000000
0.004000
5)
0.000000
0.236000
6)
0.000000
0.232000
7)
0.000000
0.240000
8)
0.000000
1.000000
9)
1.000000
0.000000
10)
0.000000
0.000000
11)
0.000000
0.000000
12)
0.000000
0.000000
13)
0.000000
0.000000
14)
0.000000
0.000000
15)
0.000000
0.000000
16)
2000.000000
0.000000
Programación Lineal: Modelos PLE
euresti@itesm.mx
32 / 35
Restricciones del tipo SI , ENTONCES
Restricciones del tipo SI , ENTONCES
Para codificar una restricción del tipo
Si
f (x1 , x2 , . . . , xn ) > 0
entonces
g (x1 , x2 , . . . , xn ) ≥ 0
el truco consiste en introducir una variable binaria (0 ó 1) y que indica cuál
restricción se cumple, y lo anterior se codifica como
−g (x1 , x2 , . . . , xn ) ≤ M y
f (x1 , x2 , . . . , xn ) ≤ M (1 − y )
donde M es un número positivo muy grande.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
33 / 35
Ejemplo 8
Ejemplo 8
Hay que realizar cuatro trabajos en una misma máquina. En la tabla siguiente se
indica el tiempo requerido por trabajo y la fecha lı́mite para entregarlo. El retraso
de un trabajo es el número de dı́as, después de la fecha lı́mite, hasta la la
terminación del trabajo. Si se termina el trabajo a tiempo o antes el retraso es
cero. Formule y resuelva un modelo PLE para minimizar el retraso total de los
cuatro trabajos.
Trabajo
Trabajo
Trabajo
Trabajo
CCIR / Matemáticas
1
2
3
4
TIEMPO REQUERIDO
PARA TERMINAR (dı́as)(ti )
FECHA LÍMITE (di )
6
4
5
8
Final del dı́a 8
Final del dı́a 4
Final del dı́a 12
Final del dı́a 16
Programación Lineal: Modelos PLE
euresti@itesm.mx
34 / 35
Ejemplo 8
Variables de decisión
yi = dı́as de retraso en el trabajo i.
xi = el dı́a en el cual el trabajo i se inicia.
P4
Función Objetivo Minimizar Z = i=1 yi
Restricciones
Dos trabajos no se pueden empalmar: Para todo i 6= j:
xi + ti ≤ xj ó xj + tj ≤ xi
→
→
xi + ti − xj ≤ 0 ó xj + tj − xi ≤ 0
xi + ti − xj ≤ M zij y
xj + tj − xi ≤ M (1 − zij )
con zij binario.
Contabilización del retraso: Si xi + ti > di , entonces yi = xi + ti − di : De
otra manera Si xi + ti − di > 0, entonces yi − xi − ti + di ≥ 0.
xi + ti − di − yi ≤ M wi y xi + ti − di ≤ M(1 − wi )
con wi binario.
CCIR / Matemáticas
Programación Lineal: Modelos PLE
euresti@itesm.mx
35 / 35
Descargar