Modelos de PL para Producción e Inventarios
Modelos de PL para Producción e Inventarios
Se le solicita lo siguiente:
a) Defina los índices que el modelo empleará.
b) Defina las variables de decisión que el modelo empleará.
c) Defina las estructuras de datos [vectores y matrices] que el modelo empleará.
d) Presente SETS y DATA del modelo en lingo
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma compacta
(algebraico y en lingo).
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).
h) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo
Preparación de la data
Mes
Concepto Producto
1 2 3 4
P1 100 150 200 150
Venta máxima (ton)
P2 200 300 200 300
P1 120 120 120 120
Precio de venta ($/ton)
P2 140 140 140 140
P1 50 55 50 55
Costo de Producción ($/ton)
P2 45 50 55 45
P1 0.6 0.6 0.6 0.6
Requerimiento de producción (horas/ton)
P2 0.8 0.8 0.8 0.8
Capacidad de maquinado (horas) 300 250 300 250
P1 2 2 2 2
Costo de inventario ($/ton)
P2 3 3 3 3
Capacidad de almacenamiento (ton) 20 20 20 20
P1 0 --- --- ---
Inventario Inicial (ton)
P2 0 --- --- ---
a) Defina los índices que el modelo empleará.
i: productos (1,2)
j: meses (1,2,3,4)
SETS:
PRODUCTOS/1,2/:;
MESES/1..4/:CAPACIDADMAQUINADO,CAPACIDADALMACENAMIENTO;
PXM(PRODUCTOS,MESES):X, S, V, VENTAMAXIMA, PRECIOVENTA,
COSTOPRODUCCION, REQUERIMIENTO, COSTOINVENTARIO,
INVENTARIOINICIAL;
ENDSETS
DATA:
VENTAMAXIMA = 100 150 200 150 200 300 200 300;
PRECIOVENTA = 120 120 120 120 140 140 140 140;
COSTOPRODUCCION = 50 55 50 55 45 50 55 45;
REQUERIMIENTO = 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8;
CAPACIDADMAQUINADO = 300 250 300 250;
COSTOINVENTARIO = 2 2 2 2 3 3 3 3;
CAPACIDADALMACENAMIENTO = 20 20 20 20;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
2 4
MAX =@SUM(PXM(I,J):PRECIOVENTA(I,J)*V(I,J)-
COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(I,J)*S(I,J));
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma compacta
(algebraico y en lingo).
V ij ≤ VENTAMAXIMAij; ∀i, ∀j
2
@FOR(PXM(I,J):V(I,J)<=VENTAMAXIMA(I,J));
@FOR(MESES(J):
@SUM(PRODUCTOS(I):
REQUERIMIENTO(I,J)*X(I,J))<=CAPACIDADMAQUINADO(J));
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).
2
Sij ≤ CAPACIDADALMACENAMIENTOj; ∀j
i=1
@FOR(MESES(J):
@SUM(PRODUCTOS(I):
S(I,J))<=CAPACIDADALMACENAMIENTO(J));
@FOR(PXM(I,J):
@FOR(MESES(J)|J#EQ#1:
S(I,J)=INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):
@FOR(MESES(J)|J#GE#2:
S(I,J)=S(I,J-1)+X(I,J)-V(I,J)));
Modelo completo
SETS:
PRODUCTOS/1,2/:;
MESES/1..4/:CAPACIDADMAQUINADO,CAPACIDADALMACENAMIENTO;
PXM(PRODUCTOS,MESES):X, S, V, VENTAMAXIMA, PRECIOVENTA, COSTOPRODUCCION, REQUERIMIENTO,
COSTOINVENTARIO, INVENTARIOINICIAL;
ENDSETS
DATA:
VENTAMAXIMA = 100 150 200 150 200 300 200 300;
PRECIOVENTA = 120 120 120 120 140 140 140 140;
COSTOPRODUCCION = 50 55 50 55 45 50 55 45;
REQUERIMIENTO = 0.6 0.6 0.6 0.6 0.8 0.8 0.8 0.8;
CAPACIDADMAQUINADO = 300 250 300 250;
COSTOINVENTARIO = 2 2 2 2 3 3 3 3;
CAPACIDADALMACENAMIENTO = 20 20 20 20;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
MAX = @SUM(PXM(I,J):PRECIOVENTA(I,J)*V(I,J)-COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(I,J)*S(I,J));
@FOR(PXM(I,J):V(I,J)<=VENTAMAXIMA(I,J));
@FOR(MESES(J):@SUM(PRODUCTOS(I):REQUERIMIENTO(I,J)*X(I,J))<=CAPACIDADMAQUINADO(J));
@FOR(MESES(J):@SUM(PRODUCTOS(I):S(I,J))<=CAPACIDADALMACENAMIENTO(J));
@FOR(PXM(I,J):@FOR(MESES(J)|J#EQ#1:S(I,J)=INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):@FOR(MESES(J)|J#GE#2:S(I,J)=S(I,J-1)+X(I,J)-V(I,J)));
@FOR(PXM(I,J):@GIN(X(I,J));@GIN(S(I,J));@GIN(V(I,J)));
END
h) Presente el reporte administrativo del programa lineal en forma compacta.
La utilidad es $117,913.3
Mes
Concepto Producto
1 2 3 4
P1 100 43.33 200 43.33
Venta (ton)
P2 200 300 200 300
P1 100 43.33 200 43.33
Producción ($/ton)
P2 220 280 220 280
P1 0 0 0 0
Inventario ($/ton)
P2 20 0 20 0
i) Presente el reporte de sensibilidad de los coeficientes de las variables de la función objetivo.
Objective Coefficient Ranges:
Por política de la empresa se ha establecido que, para atender emergencias, se mantenga un inventario mínimo por
cada tipo de depósito en cada periodo de 9 unidades y un máximo de 18 en cada mes; las ventas no excederán la
demanda y el costo de inventario de 10 soles/por tipo de depósito; por condición de nuevo negocio no se considera
stock inicial.
Se le solicita lo siguiente:
Tipo de Semana
Concepto
depósito 1 2 3 4
Capacidad de producción (unidades) 900 1000 1000 1000
A 560 580 600 620
Demanda (unidades)
B 580 600 620 640
A 400 600 700 680
Costo de producción (S/)
B 400 600 700 680
A 600 800 850 680
Precio de venta (S/)
B 600 800 850 780
Inventario mínimo (unidades) 9 9 9 9
Inventario máximo (unidades) 18 18 18 18
Costo de inventario (S/) 10 10 10 10
Inventario inicial A 0 --- --- ---
(unidades) B 0 --- --- ---
Ventas menores que la demanda
a) Defina los índices que el modelo empleará.
SETS:
DEPOSITO/1 2/:;
SEMANA/1..4/: CAPACIDADPRODUCCION,INVENTARIOMINIMO,
INVENTARIOMAXIMO, COSTOINVENTARIO;
DXS(DEPOSITO,SEMANA): X, V, S, DEMANDA, COSTOPRODUCCION,PRECIOVENTA,
INVENTARIOINICIAL;
ENDSETS
DATA:
CAPACIDADPRODUCCION = 900 1000 1000 1000;
DEMANDA = 560 580 600 620 580 600 620 640;
COSTOPRODUCCION = 400 600 700 680 400 600 700 680;
PRECIOVENTA = 600 800 850 680 600 800 850 780;
INVENTARIOMINIMO = 9 9 9 9;
INVENTARIOMÁXIMO = 18 18 18 18;
COSTOINVENTARIO = 10 10 10 10;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
2 4
MAX = @SUM(DXS(I,J):PRECIOVENTA(I,J)*V(I,J)-
COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(J)*S(I,J));
f) Formular las restricciones de ventas y capacidad de producción del programa lineal en forma
compacta (algebraico y en lingo).
V ij ≤ VENTAMAXIMAij; ∀i, ∀j
2
Xij ≤ CAPACIDADPRODUCCIONj; ∀j
i=1
@FOR(DXS(I,J):
V(I,J)<=DEMANDA(I,J));
@FOR(SEMANA(J):
@SUM(DEPOSITO(I):
X(I,J))<=CAPACIDADPRODUCCION(J));
g) Formular las restricciones de inventario del programa lineal en forma compacta (algebraico y en lingo).
SETS:
DEPOSITO/1 2/:;
SEMANA/1..4/: CAPACIDADPRODUCCION,INVENTARIOMINIMO,INVENTARIOMAXIMO, COSTOINVENTARIO;
DXS(DEPOSITO,SEMANA): X,V,S,DEMANDA,COSTOPRODUCCION,PRECIOVENTA,INVENTARIOINICIAL;
ENDSETS
DATA:
CAPACIDADPRODUCCION = 900 1000 1000 1000;
DEMANDA = 560 580 600 620 580 600 620 640;
COSTOPRODUCCION = 400 600 700 680 400 600 700 680;
PRECIOVENTA = 600 800 850 680 600 800 850 780;
INVENTARIOMINIMO = 9 9 9 9;
INVENTARIOMAXIMO = 18 18 18 18;
COSTOINVENTARIO = 10 10 10 10;
INVENTARIOINICIAL = 0 0 0 0 0 0 0 0;
ENDDATA
MAX=@SUM(DXS(I,J):(PRECIOVENTA(I,J)*V(I,J)-COSTOPRODUCCION(I,J)*X(I,J)-COSTOINVENTARIO(J)*S(I,J)));
@FOR(DXS(I,J):V(I,J)<=DEMANDA(I,J));
@FOR(SEMANA(J): @SUM(DEPOSITO(I): X(I,J))<=CAPACIDADPRODUCCION(J));
@FOR(DXS(I,J)|J#EQ#1: S(I,J)= INVENTARIOINICIAL(I,J)+X(I,J)-V(I,J));
@FOR(DXS(I,J)|J#GE#2: S(I,J)= S(I,J-1)+X(I,J)-V(I,J));
@FOR(DXS(I,J):S(I,J)>=INVENTARIOMINIMO(J));
@FOR(DXS(I,J):S(I,J)<=INVENTARIOMAXIMO(J));
@FOR(DXS(I,J):@GIN(X(I,J)));
END
h) Presente el reporte administrativo del programa lineal en forma compacta.
El valor óptimo de los ingresos alcanza S/586,620, a continuación, la información por cada tipo
de depósito:
Tipo A Sem 1 Sem 2 Sem 3 Sem 4
Demanda1 560 580 600 620
Venta1 560 580 398 0
Inv.Inicial1 0 18 18 9
Producción1 (Xij) 578 580 389 0
InvFinal1 18 18 9 9
Modelo InvInicial
A 6 Índice:
i
B 7 i: modelo (A B)
InvInicial i j: mes (1..3)
k: pais (Japón Brasil Mexico)
Variable de decisión:
Xijk = Cantidad (unidades) a comprar del modelo i en mes j del país k
Sij = Inventario (unidades) del modelo i al final del mes j
Estructura de datos
Definición de índices, variables InvInicial i = 6 7
y estructura de datos para HorasDispon j = 1500 3400 3288
compactar Demanda ij = 200 501 600 301 600 501
CostoImporta ik = 105 98 99 116 101 105
Índices, Variables y vectores y su relación con SETS y DATA
Sets:
Índice:
Modelo/A B/: InvInicial;
i: modelo (A B)
Mes/1..3/: HorasDispon;
j: mes (1..3)
Pais/Japon Brasil Mexico/: ;
k: pais (Japón Brasil Mexico)
MxM(Modelo, Mes): Demanda, S;
MxP(Modelo, Pais): CostoImporta;
Variable de decisión:
MxMxP(Modelo,Mes,Pais): X;
Xijk = Cantidad (unidades) a comprar del modelo i en mes j del país k
End sets
Sij = Inventario (unidades) del modelo i al final del mes j
Data:
Estructura de datos
InvInicial = 6 7;
InvInicial i = 6 7
HorasDispon = 1500 3400 3288;
HorasDispon j = 1500 3400 3288
Demanda = 200 501 600 301 600 501;
Demanda ij = 200 501 600 301 600 501
CostoImporta = 105 98 99 116 101 105;
CostoImporta ik = 105 98 99 116 101 105
End data
Construcción de función objetivo en sintaxis compacto
… el costo mensual de guardar un auto en almacén (costo de mantenimiento de inventarios) es de $5.
Se desea determinar el programa de importación para esta empresa para los próximos tres meses que permita cumplir
con los pedidos pactados [cubrir la demanda].
2 3 3 2 3
2 3
Data:
InvInicial = 6 7;
HorasDispon = 1500 3400 3288;
Demanda = 200 501 600 301 600 501;
CostoImporta = 105 98 99 116 101 105;
End data
CostoInsumo i = 25 15 10 8 25;
CostoFijo i = 100 120 100 80 150;
RequerimientoHoras i = 5 4 5 2 3;
MínimaHora = 500;
MaximaArea = 100;
d) Presente SETS y DATA del modelo en lingo
SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO,
COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
MAXIMAAREA = 100;
M = 10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
f) Formular las restricciones del programa lineal en forma compacta (algebraico y en lingo).
Y i ≥ 3 @SUM(PRODUCTO(I):Y(I))>=3;
i=1
5
@SUM(PRODUCTO(I):Y(I))<=4;
Y i ≤ 4
i=1
Y1+Y4 <= 1 Y(1)+Y(4)<=1;
Y5<=Y2 Y(5)<=Y(2);
Xi ≥ 0, ∀i
Yi = 0, 1; ∀i @FOR(PRODUCTO(I):@BIN(Y(I)));
SETS:
PRODUCTO/1..5/: X, Y, COSTOINSUMO, COSTOFIJO, REQUERIMIENTOHORA;
ENDSETS
DATA:
COSTOINSUMO = 25 15 10 8 25;
COSTOFIJO = 100 120 100 80 150;
REQUERIMIENTOHORA = 5 4 5 2 3;
MINIMAHORA = 500;
Programa Binario Mixto MAXIMAAREA = 100;
M = 10000;
ENDDATA
MIN = @SUM(PRODUCTO(I):COSTOINSUMO(I)*X(I)+COSTOFIJO(I)*Y(I));
@SUM(PRODUCTO(I):X(I))<=MAXIMAAREA;
@SUM(PRODUCTO(I):REQUERIMIENTOHORA(I)*X(I))>=MINIMAHORA;
@SUM(PRODUCTO(I):Y(I))>=3;
@SUM(PRODUCTO(I):Y(I))<=4;
Y(1)+Y(4)<=1;
Y(5)<=Y(2);
@FOR(PRODUCTO(I):X(I)<=M*Y(I));
@FOR(PRODUCTO(I):@BIN(Y(I)));
END
Variable Value Reduced Cost
MINIMAHORA 500.0000 0.000000
MAXIMAAREA 100.0000 0.000000
M 10000.00 0.000000
X( 1) 0.000000 15.00000
X( 2) 0.000000 7.000000
X( 3) 100.0000 0.000000
X( 4) 0.000000 4.000000
X( 5) 0.000000 19.00000
Y( 1) 0.000000 100.0000
Y( 2) 1.000000 120.0000
Y( 3) 1.000000 100.0000
Y( 4) 1.000000 80.00000
Y( 5) 0.000000 150.0000
COSTOINSUMO( 1) 25.00000 0.000000
COSTOINSUMO( 2) 15.00000 0.000000
COSTOINSUMO( 3) 10.00000 0.000000
COSTOINSUMO( 4) 8.000000 0.000000
COSTOINSUMO( 5) 25.00000 0.000000
COSTOFIJO( 1) 100.0000 0.000000
COSTOFIJO( 2) 120.0000 0.000000
COSTOFIJO( 3) 100.0000 0.000000
COSTOFIJO( 4) 80.00000 0.000000
COSTOFIJO( 5) 150.0000 0.000000
REQUERIMIENTOHORA( 1) 5.000000 0.000000
REQUERIMIENTOHORA( 2) 4.000000 0.000000
REQUERIMIENTOHORA( 3) 5.000000 0.000000
REQUERIMIENTOHORA( 4) 2.000000 0.000000
REQUERIMIENTOHORA( 5) 3.000000 0.000000
Aceite Agua Sosa cáustica Glicerina Esencia de limón Esencia de fresa Beneficio
Tipo de jabón
(ml/jabón) (ml/jabón) (g/jabón) (g/jabón) (ml/jabón) (ml/jabón) ($/jabón)
1 250 240 42 1 1 3 10
2 200 210 2 40 2 1 13
i 3 230 240 20 25 3 1 15
4 180 200 10 35 1 3 11
150,000 ml 160,000 ml 12 kg 3 kg 2,000 ml 3,000 ml actual
Disponibilidad
50,000 ml 70,000 ml 4 kg 4 kg 1,000 ml 500 ml incremento
Mínimo de tipos: 1;
Máximo de tipos: 3;
Si 1 va entonces 4 no va.
Costo de ampliación=$200000;
a) Defina los índices que el modelo empleará.
i: jabón (1,2,3,4)
j: componente (1,2,3,4,5,6)
Beneficio i = 10 13 15 11;
Disponibilidad1 j = 150000 160000 12000 3000 2000 3000;
Disponibilidad2 j = 50000 70000 4000 4000 1000 500;
Requerimiento ij = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200 10 35 1 3;
Ampliación = 200000;
M= 10000;
d) Presente SETS y DATA del modelo en lingo
SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS
DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1
180 200 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
e) Formular la función objetivo del programa lineal en forma compacta (algebraico y en lingo).
Yi ≥ 1
i=1
4
Yi ≤ 3
i=1
Y1 + Y4 ≤ 1
Xi ≤ M ∗ Yi ; ∀i
@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
g) Presente las restricciones de las variables
Xi ≥ 0, entera; ∀i
Yi = 0, 1; ∀i @FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
Z = 0, 1;
SETS:
JABON/1..4/:X, Y, BENEFICIO;
COMPONENTE/1..6/:DISPONIBILIDAD1, DISPONIBILIDAD2;
JXC(JABON,COMPONENTE):REQUERIMIENTO;
ENDSETS
DATA:
BENEFICIO = 100 130 150 110;
DISPONIBILIDAD1 = 150000 160000 12000 3000 2000 3000;
DISPONIBILIDAD2 = 50000 70000 4000 4000 1000 500;
REQUERIMIENTO = 250 240 42 1 1 3 200 210 2 40 2 1 230 240 20 25 3 1 180 200
Programa Binario Mixto 10 35 1 3;
AMPLIACION = 200000;
M=10000;
ENDDATA
MAX = @SUM(JABON(I):BENEFICIO(I)*X(I))- AMPLIACION*Z;
@FOR(COMPONENTE(J):
@SUM(JABON(I):
REQUERIMIENTO(I,J)*X(I))<=DISPONIBILIDAD1(J)+DISPONIBILIDAD2(J)*Z);
@SUM(JABON(I):Y(I))>=1;
@SUM(JABON(I):Y(I))<=3;
Y(1)+Y(4)<=1;
@FOR(JABON(I):X(I)<=M*Y(I));
@FOR(JABON(I):@GIN(X(I));@BIN(Y(I));@BIN(Z));
END
Variable Value Reduced Cost
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 1, 1) 250.0000 0.000000
REQUERIMIENTO( 1, 2) 240.0000 0.000000
REQUERIMIENTO( 1, 3) 42.00000 0.000000
REQUERIMIENTO( 1, 4) 1.000000 0.000000
REQUERIMIENTO( 1, 5) 1.000000 0.000000
REQUERIMIENTO( 1, 6) 3.000000 0.000000
REQUERIMIENTO( 2, 1) 200.0000 0.000000
REQUERIMIENTO( 2, 2) 210.0000 0.000000
REQUERIMIENTO( 2, 3) 2.000000 0.000000
REQUERIMIENTO( 2, 4) 40.00000 0.000000
REQUERIMIENTO( 2, 5) 2.000000 0.000000
Variable Value Reduced Cost
REQUERIMIENTO( 2, 6) 1.000000 0.000000
AMPLIACION 200000.0 0.000000
REQUERIMIENTO( 3, 1) 230.0000 0.000000
M 10000.00 0.000000
REQUERIMIENTO( 3, 2) 240.0000 0.000000
Z 0.000000 200000.0
REQUERIMIENTO( 3, 3) 20.00000 0.000000
X( 1) 233.0000 -100.0000
REQUERIMIENTO( 3, 4) 25.00000 0.000000
X( 2) 0.000000 -130.0000
REQUERIMIENTO( 3, 5) 3.000000 0.000000
X( 3) 110.0000 -150.0000
REQUERIMIENTO( 3, 6) 1.000000 0.000000
X( 4) 0.000000 -110.0000
REQUERIMIENTO( 4, 1) 180.0000 0.000000
Y( 1) 1.000000 0.000000
REQUERIMIENTO( 4, 2) 200.0000 0.000000
Y( 2) 0.000000 0.000000
REQUERIMIENTO( 4, 3) 10.00000 0.000000
Y( 3) 1.000000 0.000000
REQUERIMIENTO( 4, 4) 35.00000 0.000000
Y( 4) 0.000000 0.000000
REQUERIMIENTO( 4, 5) 1.000000 0.000000
BENEFICIO( 1) 100.0000 0.000000
REQUERIMIENTO( 4, 6) 3.000000 0.000000
BENEFICIO( 2) 130.0000 0.000000
BENEFICIO( 3) 150.0000 0.000000
BENEFICIO( 4) 110.0000 0.000000 Row Slack or Surplus Dual Price
DISPONIBILIDAD1( 1) 150000.0 0.000000 1 39800.00 1.000000
DISPONIBILIDAD1( 2) 160000.0 0.000000 2 66450.00 0.000000
DISPONIBILIDAD1( 3) 12000.00 0.000000 3 77680.00 0.000000
DISPONIBILIDAD1( 4) 3000.000 0.000000 4 14.00000 0.000000
DISPONIBILIDAD1( 5) 2000.000 0.000000 5 17.00000 0.000000
DISPONIBILIDAD1( 6) 3000.000 0.000000 6 1437.000 0.000000
DISPONIBILIDAD2( 1) 50000.00 0.000000 7 2191.000 0.000000
DISPONIBILIDAD2( 2) 70000.00 0.000000 8 1.000000 0.000000
DISPONIBILIDAD2( 3) 4000.000 0.000000 9 1.000000 0.000000
DISPONIBILIDAD2( 4) 4000.000 0.000000 10 0.000000 0.000000
DISPONIBILIDAD2( 5) 1000.000 0.000000 11 9767.000 0.000000
DISPONIBILIDAD2( 6) 500.0000 0.000000 12 0.000000 0.000000
13 9890.000 0.000000
14 0.000000 0.000000
Competencia internacional de futbol escolar
Un colegio particular se encuentra organizando un campeonato internacional de fútbol escolar. Para ello se han
definido 2 grupos: Grupo A y Grupo B, conformados por equipos escolares de los países vecinos. Sin embargo,
aún no se han escogido las sedes donde se realizarán los partidos. Para ello, se han definido 5 posibles sedes, de
las cuales se tienen que elegir a 4. Por cada grupo se deberá elegir 2 sedes; pero una misma sede no puede ser
elegida por los 2 grupos.
Téngase en cuenta que, si una sede es elegida, se venderán todas las entradas de esa sede. Asimismo, el colegio
particular organizador debe cubrir los gastos de transporte de cada grupo.
La asistencia, el precio a cobrar por entrada y el costo del alquiler de cada sede que el organizador (el colegio
particular) debe asumir si es que es elegida y los costos de traslado para cada grupo a cada sede por toda la
temporada que dure el campeonato son los siguientes:
Asistencia (personas) Costo de alquiler Costo de traslado (soles)
Sede
Entrada regular Entrada especial (Soles) Grupo A Grupo B
1 900 500 1700 820 880
2 960 560 1800 860 820
3 780 480 1500 780 800
4 920 550 1800 900 840
5 870 460 1600 800 840
Precio (Soles/entrada) 14 20
Se solicita:
a) Definir los índices y variables de decisión en sintaxis algebraico
b) Presentar la estructura de datos que empleará en el modelo
c) Presentar la información SETS y DATA que empleará en el modelo
d) Presente la función objetivo del modelo en lingo en sintaxis compacta que realmente represente el
problema y permita determinar su solución [uso de funciones @sum]
e) Presente las restricciones del modelo en notación compacta que realmente represente el problema y
permita determinar su solución [uso de funciones @sum y @for entre otros].
f) Presente su mejor y amplio reporte administrativo [con toda la información que se desprende del
problema y del reporte lingo] para toma de decisiones de optimización; no adjunte el reporte del lingo.
Sea explicito en su decisión para que sea considerado.
k i
Variable de decisión
Simplificación para compactar Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1
Estructura de datos
alquiler j = 1700 1800 1500 1800 1600;
precio k = 14 20;
traslado ij = 820 860 780 900 800 880 820 800 840 840;
asistencia jk = 900 500 960 560 780 480 920 550 870 460;
Índices, Variables y vectores y su relación con SETS y DATA
Indice: Sets:
i: grupo [A,B] grupo/A B/:;
j: sedes [1..5] sede/1..5/: Y, alquiler;
k: entrada [1..2] entrada/1 2/: precio;
GXS (grupo, sede): X, traslado;
SXE (sede, entrada): asistencia;
Variable de decisión End sets
Yj = Elegir o no elegir la sede j, 0,1
Xij = Elegir o no elegir el grupo i en la sede j; 0,1
5 2 5 2 5
Max=
@sum(SXE(j,k): asistencia(j,k)*precio(k)*Y(j)) –
(@sum(sede(j): alquiler(j)*Y(j)) + @sum(GXS(i,j): traslado(i,j)*X(i,j)));
Determinación de restricciones en sintaxis de lingo compacto
5
Se han definido 5 posibles sedes, de las cuales
se tienen que elegir a 4. Yj = 4
j=1
!Se deben escoger 4 sedes;
@sum(sede(j): Y(j)) = 4;
5
Por cada grupo se deberá elegir 2 sedes;
i: X ij = 2
j=1
!Cada grupo escoge dos sedes;
@for(grupo(i): @sum(sede(j): X(i,j)) = 2);
2
Una misma sede no puede ser elegida por los 2
grupos. j: X ij ≤ Yj
i=1
!Una misma sede no puede ser escogida por dos grupos;
@for(sede(j):@sum(grupo(i): X(i,j)) <= Y(j));
Min 3 1 21
Capacidad (j) 3.6
Max 9
0.1 66.00
500 A 1 4.8
0.2 48.00 4.8
3.0
Oferta (i) 2 14 Demanda (k)
6.0
0.3 45.60
6.0 63.60
B
0.3
400 2
7.2
2.5 Min 5
Max 13 3 21
(i) (j)
66.00
(k)
Etapa (ij)
Etapa (jk)
Indices
i: planta (A B)
j: centro de distribución (1. 2)
j
k: puntos de venta (1. 3)
Variables de decisión
Xij= Cantidad (en botelas) a enviar de la planta i al centro de distribución j
Yj= Cantidad (en cajas) a vender en el centro de distribución j
Wjk= Cantidad (en cajas) a enviar del centro de distribución j a los puntos de venta k
Estructura de datos
capacidad i= 500 400
costoproduc ion i = 3 2.5
PV1 j = 48.0 45.6
VMin1 j= 3 5
VMax j= 9 13
PV2 k = 66 63.6 66
VMin2 k= 21 14 21
CEnvio1 ij= 0.1 0.2 03 0.3
CEnvio2 jk = 3.6 4.8 6 4.8 6 7.2
Xij ≤ capacidadi ; i
j=1
Yj ≥ VMin1j ; j
Yj ≤ VMaxj ;
j
3
Wjk ≥ VMin2k ; k
j=1
2 3
Xij
= 𝑌𝑗 + Wjk ; j
12
i=1 k=1
Max Z = Max =
2
Medical Tecnologies, Inc (MTI), es una empresa fabricante y distribuidora internacional de equipos de rayos X
de alta resolución que se utiliza en hospitales. Las plantas que tiene en Paris, Texas, pueden producir hasta 100
máquinas por año; la que se encuentra en Davenport, Iowa, produce hasta 200 máquinas y la planta de
Sprienfield. Oregon, puede producir hasta 150 máquinas. Para el año siguiente sus clientes en Japón han
pedido 120 máquinas, los de Corea del Sur ordenaron 80 máquinas, los de Nueva Zelanda 70 y los de Australia
110 máquinas.
El equipo producido en Texas y en Iowa puede ser enviado a los almacenes regionales situados en Hungría y/o
en Hawai. Los almacenes regionales, a su vez, pueden enviar a cualquiera de los almacenes de campo situados
en Fiji en las Filipinas. Ninguno de los almacenes regionales almacena máquinas en inventario, por
consiguiente deben enviar todas las máquinas que reciben. Los clientes de Corea del Sur y de Nueva Zelanda
pueden recibir máquinas de cualquiera de los almacenes de campo. Sin embargo, debido a los tratados de
comercio internacionales, los clientes del Japón deben obtener sus máquinas exclusivamente de las Filipinas y
los de Australia recibir las suyas solamente de las de Fiji.
Los costos de envío por máquina desde las plantas a los almacenes regionales, a los de campo y finalmente a
los de los clientes se dan en las siguientes tablas:
Costos de embarque ($/máquina) Costo de
Planta Almacenes regionales producción
Hungría Hawai (M$/máquina)
Texas 200 400 3
Iowa 300 400 2.5
Oregon --- 500 4
3mil 7mil
400 800 600
1 1
2 80
600 800
Oferta 3.0 50 Demanda
200 2 6.5mil
(i) 300 700 700 (k)
2.5mil 500
400 3 70
2 2
600 7.5mil
3 2.5 70
250 500 4 110
(j) (k)
4mil
8mil
(i) Etapa (jk) (l)
Etapa (ij) Etapa (kl)
j
j Indices
i: planta (texas iowa oregon)
Costos de embarque ($/máquina) Capacidad de Costo de j: almacenregional(hungria hawai)
Planta Almacenes regionales producción producción k: almacendecampo (filipinas fiji)
Hungría Hawai (máquinas) (M$/máquina) l: clientes (japon coreadelsur nuevazelanda australia)
Texas 200 400 100 3 Variables de decisión
i Iowa 300 400 200 2.5 Xij= Cantidad (de máquinas) a enviar de la planta i al
Oregon --- 500 150 4 almacén regional j
CEnvio1 ij capacidad i costoproduccion i Yjk= Cantidad (de máquinas) a enviar de almacén regional j
k al almacén de campo k
Wkl= Cantidad (de máquinas) a enviar de almacén de
campo k al cliente l
Costos de embarque ($/máquina)
Almacén regional Almacenes de campo [alquilado] Estructura de datos
capacidad i= 100 200 150
Filipinas Fiji
costoproduccion i = 3000 2500 4000
Hungría 800 600
j CEnvio2 jk costoalmacen k= 50 70
Hawai 700 400
demanad l = 120 80 70 110
Costo de almacenamiento ($/máquina) 50 70 costoalmacen k
l Pventa l = 7000 6500 7500 8000
CEnvio1 ij = 200 400 300 400 10000 500
CEnvio2 jk= 800 600 700 400
Costos de embarque ($/máquina)
Almacenes de campo Clientes CEnvio3 kl = 700 600 800 10000 10000 700 500 600
Japón Corea del sur Nueva Zelanda Australia
Filipinas 700 600 800 ---
k CEnvio3 kl
Fiji --- 700 500 600
Demanda (máquinas) 120 80 70 110 demanda l
Precio de venta (M$/máquina) 7 6.5 7.5 8 PVenta l
Modelamiento en sintaxis compacta algebraica
Max Z
2 4 3 2
Xij ≤ capacidadi ; i
j=1
2
Wkl ≥ demandal ; l
k=1
3 2
Xij = Yjk ; j
i=1 k=1
2 4
Yjk = Wkl ; k
j=1 l=1
Max = Max =
2 4 @Sum(CXC(k,l): PVenta(l)*W(k,l))
PVental ∗ Wkl
k=1 l=1
3 2
2 2
2 4
2 4
@For(campo(k): @sum(regional(j): Y(j,k)) = @sum(cliente(l): W(k,l)));
Yjk = Wkl ; k
j=1 l=1
Modelo Lineal
Sets: Max = @Sum(CXC(k,l): PVenta(l)*W(k,l)) - @Sum(PXR(i,j):
planta/1..3/: capacidad, costoproduccion; (costoproduccion(i) + CEnvio1(i,j))*X(i,j)) - @Sum(RXC(j,k):
regional/1..2/:; (costoalmacen(k) + CEnvio2(j,k))*Y(j,k)) - @Sum(CXC(k,l):
campo/1..2/: costoalmacen; CEnvio3(k,l)*W(k,l));
cliente/1..4/: demanda, PVenta; @for(planta(i): @sum(regional(j): X(i,j)) <= capacidad(i));
PXR(planta,regional): X, CEnvio1; @for(cliente(l): @sum(campo(k): W(k,l)) >= demanda(l));
RXC(regional,campo): Y, CEnvio2; @for(regional(j): @sum(planta(i): X(i,j)) = @sum(campo(k): Y(j,k)));
CXC(campo,cliente): W, CEnvio3; @For(campo(k): @sum(regional(j): Y(j,k)) = @sum(cliente(l): W(k,l)));
Endsets End
Data:
capacidad = 100 200 150;
costoproduccion = 3000 2500 4000;
costoalmacen = 50 70;
demanda = 120 80 70 110;
Pventa = 7000 6500 7500 8000;
CEnvio1 = 200 400 300 400 10000 500;
CEnvio2 = 800 600 700 400;
CEnvio3 = 700 600 800 10000 10000 700
500 600;
Enddata
Variable Value Reduced Cost Variable Value Reduced Cost
CAPACIDAD( 1) 100.0000 0.000000 Y( 1, 1) 100.0000 0.000000
CAPACIDAD( 2) 200.0000 0.000000 Y( 1, 2) 0.000000 100.0000
CAPACIDAD( 3) 150.0000 0.000000 Y( 2, 1) 20.00000 0.000000
COSTOPRODUCCION( 1) 3000.000 0.000000 Y( 2, 2) 330.0000 0.000000
COSTOPRODUCCION( 2) 2500.000 0.000000 CENVIO2( 1, 1) 800.0000 0.000000
COSTOPRODUCCION( 3) 4000.000 0.000000 CENVIO2( 1, 2) 600.0000 0.000000
COSTOALMACEN( 1) 50.00000 0.000000 CENVIO2( 2, 1) 700.0000 0.000000
COSTOALMACEN( 2) 70.00000 0.000000 CENVIO2( 2, 2) 400.0000 0.000000
DEMANDA( 1) 120.0000 0.000000 W( 1, 1) 120.0000 0.000000
DEMANDA( 2) 80.00000 0.000000 W( 1, 2) 0.000000 180.0000
DEMANDA( 3) 70.00000 0.000000 W( 1, 3) 0.000000 580.0000
DEMANDA( 4) 110.0000 0.000000 W( 1, 4) 0.000000 9680.000
PVENTA( 1) 7000.000 0.000000 W( 2, 1) 0.000000 9020.000
PVENTA( 2) 6500.000 0.000000 W( 2, 2) 80.00000 0.000000
PVENTA( 3) 7500.000 0.000000 W( 2, 3) 70.00000 0.000000
PVENTA( 4) 8000.000 0.000000 W( 2, 4) 180.0000 0.000000
X( 1, 1) 100.0000 0.000000 CENVIO3( 1, 1) 700.0000 0.000000
X( 1, 2) 0.000000 100.0000 CENVIO3( 1, 2) 600.0000 0.000000
X( 2, 1) 0.000000 0.000000 CENVIO3( 1, 3) 800.0000 0.000000
X( 2, 2) 200.0000 0.000000 CENVIO3( 1, 4) 10000.00 0.000000
X( 3, 1) 0.000000 9600.000 CENVIO3( 2, 1) 10000.00 0.000000
X( 3, 2) 150.0000 0.000000 CENVIO3( 2, 2) 700.0000 0.000000
CENVIO1( 1, 1) 200.0000 0.000000 CENVIO3( 2, 3) 500.0000 0.000000
CENVIO1( 1, 2) 400.0000 0.000000 CENVIO3( 2, 4) 600.0000 0.000000
CENVIO1( 2, 1) 300.0000 0.000000
CENVIO1( 2, 2) 400.0000 0.000000
CENVIO1( 3, 1) 10000.00 0.000000
CENVIO1( 3, 2) 500.0000 0.000000
Row Slack or Surplus Dual Price
1 1211900. 1.000000
2 0.000000 3630.000
3 0.000000 4030.000
4 0.000000 2430.000
5 0.000000 -1380.000
6 0.000000 -1600.000
7 0.000000 -400.0000
8 70.00000 0.000000
9 0.000000 -6830.000
10 0.000000 -6930.000
11 0.000000 -7680.000
12 0.000000 -7400.000
Muchas gracias
[email protected]