Sei sulla pagina 1di 37

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:
n
X
Max 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
xi =
0 otro caso
Objetivo: Maximizar el VAN:
Max z = 16, 000 x1 + 20, 000 x2 + 12, 000 x3 + 8, 000 x4
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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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 TELA PRECIO VENTA COSTO


Horas m2 dólares dólares
Camisa 3 4 12 6
Short 2 3 8 4
Pantalón 6 4 15 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 = + (12 x1 + 8 x2 + 15 x3 )
− (6 x1 + 4 x2 + 8 x3 )
− (200 y1 + 150 y2 + 100 y3 )

CCIR / Matemáticas 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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.

HACIA
DE Ciudad 1 Ciudad 2 Ciudad 3 Ciudad 4 Ciudad 5 Ciudad 6
Ciudad 1 0 10 20 30 30 20
Ciudad 2 10 0 25 35 20 10
Ciudad 3 20 25 0 15 30 20
Ciudad 4 30 35 15 0 15 15
Ciudad 5 30 20 30 15 0 14
Ciudad 6 20 10 20 25 14 0

CCIR / Matemáticas Programación Lineal: Modelos PLE euresti@itesm.mx 12 / 35


Ejemplo 3

Variables de decisión:

1 si estación de bomberos en la ciudad i
xi =
0 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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.

C1 C2 C3 C4
P1 6 2 6 7
P2 4 9 5 3
P3 8 8 1 5

CCIR / Matemáticas 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
3
X 3 X
X 4
Min z = cpi · yi + ci,j · xi,j
i=1 i=1 j=1

Restricciones
P3
Cumplir demandas: Para toda ciudad j = 1, 2, 3, 4, i=1 xi,j ≥ dj
P4
No exceder capacidades: Para toda planta i = 1, 2, 3, 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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 ) ≤ My
g (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 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.

COMPACTO MEDIANO GRANDE


Acero requerido 1.5 ton 3 ton 5 ton
Trabajo requerido 30 horas 25 horas 40 horas
Gancia obtenida 2,000 dólares 3,000 dólares 4,000 dólares

CCIR / Matemáticas Programación Lineal: Modelos PLE euresti@itesm.mx 19 / 35


Ejemplo 5
Variables de Decisión
xi = Num de autos i a producir (i = 1 Compacto, i = 2 mediano, i = 3
grande)
Objetivo
3
X
Max z = 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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 var bk+1

CCIR / Matemáticas Programación Lineal: Modelos PLE 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 b2 = 100 b3 = 200

CCIR / Matemáticas Programación Lineal: Modelos PLE 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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 OBJECTIVE FUNCTION VALUE


ST 1) 476.0000
VARIABLE VALUE REDUCED COST
X1 -X11 - X12=0 Y1 1.000000 0.000000
X2 -X21 + X22=0 Y2 0.000000 0.000000
Y3 0.000000 0.000000
X2 <= 1000 Y4 0.000000 0.000000
X1 <= 2000 X11 1400.000000 0.000000
0.5X11 + 0.5X21 - X11 <=0 X21 1400.000000 0.000000
X12 600.000000 0.000000
0.6X12 + 0.6X22 - X12 <= 0 X22 400.000000 0.000000
125Z3 + 225Z4 + 300Z5 - CX1=0 CX1 0.000000 0.000000
X1 2000.000000 0.000000
Z1 - Y1 <= 0 X2 1000.000000 0.000000
Z2 - Y2 - Y1 <=0 Z3 0.000000 125.000000
Z3 - Y3 - Y2 <=0 Z4 0.000000 225.000000
Z5 0.000000 300.000000
Z4 - Y4 - Y3 <=0 Z1 0.000000 0.000000
Z5 - Y4 <= 0 Z2 1.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
Y1 + Y2 + Y3 + Y4 = 1 2) 0.000000 -0.236000
Z1 + Z2 + Z3 + Z4 + Z5 = 1 3) 0.000000 -0.004000
1000Z3 + 1500Z4 + 2000Z5 - X1 <=0 4) 0.000000 0.004000
5) 0.000000 0.236000
END 6) 0.000000 0.232000
INTE Y1 7) 0.000000 0.240000
8) 0.000000 1.000000
INTE Y2 9) 1.000000 0.000000
INTE Y3 10) 0.000000 0.000000
INTE Y4 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

CCIR / Matemáticas 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.

TIEMPO REQUERIDO
PARA TERMINAR (dı́as)(ti ) FECHA LÍMITE (di )
Trabajo 1 6 Final del dı́a 8
Trabajo 2 4 Final del dı́a 4
Trabajo 3 5 Final del dı́a 12
Trabajo 4 8 Final del dı́a 16

CCIR / Matemáticas 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

Potrebbero piacerti anche