Beruflich Dokumente
Kultur Dokumente
Caso 5.1
Chandler Oil Company dispone de 5000 barriles de crudo 1 y de 10000 barriles de crudo 2. La compaa produce y
vende dos productos: gasolina y aceite combustible. Ambos productos se elaboran combinando el crudo 1 y el crudo 2.
La calidad del crudo 1 es 10 y la calidad del crudo 2 es 5. La gasolina debe tener una calidad promedio de por lo menos
7 y el aceite una calidad promedio de por lo menos 6. La demanda de cada producto debe ser creada por la publicidad.
Cada dlar gastado en anunciar a la gasolina crea una demanda de 5 barriles de gasolina; cada dlar gastado en
anunciar al aceite combustible origina una demanda de 10 barriles del aceite. La gasolina se vende a 25 dlares por
barril y el aceite combustible se vende a 20 dlares por barril. Formule un modelo de programacin lineal para ayudar a
Chandler a maximizar sus utilidades. (Respuesta: Z* = 347500)
Solucin;
Primero generamos la matriz
Sets:
Crudo / Crudo1 Crudo2 / : Dispo, CalCrudo;
Producto / Gasolina Aceite / : Costo, Precio, CalProd;
Matriz(Crudo, Producto) : Mezcla;
End Sets
Data:
Dispo = 5000 10000;
CalCrudo = 10 5;
Costo = .2 .1;
Precio = 25 20;
CalProd = 7 6;
End Data
LINGO REPORT:
Total variables: 4
Nonlinear variables: 4
Integer variables: 0
Total constraints: 5
Nonlinear constraints: 2
Total nonzeros: 12
Nonlinear nonzeros: 4
Defina las variables de decisin y formule el modelo de programacin lineal correspondiente. (Respuesta: Z* = 5600)
Solucin;
Primero generamos la matriz
Variables:
, = i j
, = j
Funcin Objetivo:
Min Z = 2*X11+3*X12+3*X21+X22+2*Y11+6*Y12+3*Y13+6*Y14+4*Y21+4*Y22+6*Y23+5*Y24;
Restricciones:
X11+X12<=600;
X21+X22<=700;
X11+X21<=600;
X12+X22<=600;
Y11+Y21=200;
Y12+Y22=200;
Y13+Y23=400;
Y14+Y24=300;
X11+X21=Y11+Y12+Y13+Y14;
X12+X22=Y21+Y22+Y23+Y24;
Definicin de Variables:
, =
, =
, =
, = j
Funcin Objetivo:
2 2 2 4
. , , + . , ,
=1 =1 =1 =1
Restricciones:
2
: ,
=1
2
: ,
=1
4
: , =
=1
2 4
: , = ,
=1 =1
, : , 0
, : , 0
! Variable de decisin
! X: Cantidad de unidades producidos en la planta i enviados al almacn j
! Y: Cantidad de unidades enviados del almacn j al cliente k
! i = 1, 2
! j = 1, 2
! k = 1, 2, 3, 4;
! Declaracin de Variables;
sets:
Planta /Denver Atlanta /: CapPlanta;
Almacen/ Kansas Louis /: CapAlmacen;
Cliente/Detroit Miami Dallas NewO/: Demanda;
PxA(planta, almacen): Costo1, X;
AxC(almacen, cliente): Costo2, Y;
end sets
! Ingreso de Datos;
data:
Costo1 = 2 3
3 1;
Costo2 = 2 6 3 6
4 4 6 5;
CapAlmacen = 600 600;
CapPlanta = 600 700;
Demanda = 200 200 400 300;
end data
! Funcion objetivo;
[MinCosto] min = @sum(PxA(i,j): Costo1(i,j)*X(i,j)) + @sum(AxC(j,k): Costo2(j,k)*Y(j,k));
! Restricciones;
@for(planta(i): @sum(almacen(j): x(i,j)) <= capPlanta(i));
@for(cliente(k): @sum(almacen(j): Y(j,k)) >= Demanda(k));
@for(almacen(j): @sum(planta(i): X(i,j)) <= CapAlmacen(j));
@for(almacen(j): @sum(planta(i): X(i,j)) = @sum(cliente(k): Y(j,k)));
END
Reporte de Lingo:
Model Class: LP
Total variables: 12
Nonlinear variables: 0
Integer variables: 0
Total constraints: 11
Nonlinear constraints: 0
Total nonzeros: 40
Nonlinear nonzeros: 0
James Beerd hornea pasteles de queso y pasteles de Selva Negra. Durante cualquier mes puede hornear cuando mucho
65 pasteles. Los costos por pastel y la demanda de pasteles, la cual se debe cumplir a tiempo, se proporcionan en la
siguiente tabla. Cuesta 50 centavos conservar un pastel de queso y 40 centavos conservar un pastel de la selva negra
en inventario por un mes. Plantee un modelo de programacin lineal para minimizar el costo total por cumplir la demanda
de los tres meses siguientes:
(Respuesta: Z* = 464.5)
Solucin:
Primero generamos la matriz
Mes (j)
Producto (i) 1 2 3
Pastel de queso Produccin (i,j) Inventario (i,j) Produccin (i,j) Inventario (i,j) Produccin (i,j) Inventario (i,j)
Selva Negra
Capacidad (j) 65 65 65
Variables:
, =
, =
Funcin Objetivo:
Min Z = 3.0*X11+3.4*X12+3.8*X13+2.5*X21+2.8*X22+3.4*X23+0.5*Y11+0.5*Y12+0.4*Y21+0.4*Y22
Nota importante: En este tipo de ejercicios, el costo de inventario se aplica al inventario con el que se
inicia el mes. Por ejemplo, para el pastel de queso en el mes 1, el inventario a costear es cero, pues la
pastelera inicia con un inventario inicial igual a CERO. Por al contrario, para el mes 2, el inventario
inicial, resulta ser el inventario final del mes uno (mes anterior), es decir el Y11, Y finalmente, para
el mes 3, el inventario a costear es el Y12.
Restricciones:
0+X11-40=Y11;
Y11+X12-30=Y12
Y12+X13-20=Y13
0+X21-20=Y21;
Y21+X22-30=Y22
Y22+X23-10=Y23
X11+X21<=65
X12+X22<=65
X13+X23<=65
Modelo Matemtico en Notacin Compacta:
Definicin de Variables:
, =
, =
, =
, =
=
=
Funcin Objetivo:
2 3 2 2
. , , + . ,
=1 =1 =1 =1
Nota importante: Notar que en el segundo trmino de la funcin objetivo, el vector j solo se utiliza
desde 1 a 2 (dejando de lado j=3), esto se debe a que los costos de inventario se aplican sobre los
inventarios iniciales del mes. Por ejemplo, en el caso del pastel de queso,CERO es inventario inicial del
mes 1; Y11 es inventario inicial del mes2; Y12 es inventario inicial del mes 3. As mismo, Y13 es
inventario inicial del mes 4, pero como no forma parte del periodo (mes 1, 2 y 3) en evaluacin, no se le
incluye como costo. En algunos ejemplos, el inventario final debe tener un valor determinado, tener en
cuenta esto.
Restricciones:
2
: ,
=1
Para el mes 1; es decir para el primer periodo.
, = 1: 0 + , = , + ,
Para los siguientes periodos.
, > 1: ,1 + , = , + ,
, : , 0
, : , 0
! Variable de decision
! Xi,j = Produccin del producto i en el mes j
! Yi,j = Inventario del producto i en el mes j
! i = PastelQueso, SelvaNegra
! j = 1, 2, 3;
! Declaracin de Variables;
sets:
Producto / PastelQueso SelvaNegra / : CostoInv;
Mes / 1..3 / : Capacidad;
Matriz(Producto,Mes): Demanda, CostoProd, X, Y;
end sets
! Ingreso de Datos;
data:
Capacidad = 65 65 65;
CostoInv = 0.50 0.40;
Demanda = 40 30 20
20 30 10;
CostoProd = 3.00 3.40 3.80
2.50 2.80 3.40;
end data
! Funcion objetivo;
min = @sum(Producto(i): @sum(Mes(j): CostoProd(i,j)*X(i,j))) + @sum(Producto(i):
@sum(mes(j): CostoInv(i)*Y(i,j)));
! Restriccion de capacidad;
@for(Mes(j): @sum(Producto(i): X(i,j)) <= Capacidad(j));
end
! Declaracin de Variables;
sets:
Producto / PastelQueso SelvaNegra / :;
Mes / 1..3 / : Capacidad;
Matriz(Producto,Mes): Demanda, CostoProd, CostoInv, X, Y;
end sets
! Ingreso de Datos;
data:
Capacidad = 65 65 65;
CostoInv = 0.50 0.50 0.50
0.40 0.40 0.40;
Demanda = 40 30 20
20 30 10;
CostoProd = 3.00 3.40 3.80
2.50 2.80 3.40;
end data
! Funcion objetivo;
min = @sum(Matriz(i,j): CostoProd(i,j)*X(i,j)) + @sum(Matriz(i,j): CostoInv(i,j)*Y(i,j));
! Restriccion de capacidad;
@for(Mes(j): @sum(Producto(i): X(i,j)) <= Capacidad(j));
End
Reporte de Lingo:
Global optimal solution found.
Objective value: 464.5000
Infeasibilities: 0.000000
Total solver iterations: 5
Elapsed runtime seconds: 0.05
Model Class: LP
Total variables: 12
Nonlinear variables: 0
Integer variables: 0
Total constraints: 10
Nonlinear constraints: 0
Total nonzeros: 34
Nonlinear nonzeros: 0
Asimismo, Sunco planea ampliar la capacidad de cada refinera. Cada milln de barriles de capacidad de refinacin
anual que se ample costar $1200 en el caso de la refinera de Los ngeles y $1500 en el caso de la refinera de
Chicago, respectivamente. Defina las variables de decisin y plantee el modelo de programacin lineal correspondiente,
en la forma compacta, que permita a Sunco optimizar sus operaciones en un ao. (Respuesta: Z* = 115500)
Solucin;
Primero generamos la matriz
Distribuidor j
Houston Nueva York CapacAct Amplia
Refinera i
LAS
CHG
Xij CapacActi Yi
Demandaj
Definicin de Variables:
, =
=
, =
=
=
=
Funcin Objetivo:
2 2 2
. , ,
=1 =1 =1
Restricciones:
2
: , +
=1
2
: ,
=1
, : , 0
: 0
Lingo en Notacin Compacta:
! Variable de decisin
! X: Millones de barriles enviados desde la refinera i hasta el distribuidor j
! Y: Millones de barriles ampliados en la refinera i
! i = 1, 2
! j = 1, 2
! Declaracin de Variables;
sets:
Refineria /LAS CHG /: Y,CapacAct,CostoAmpl;
Distribuidor / HOU NYK /:Demanda;
RxD(refineria,distribuidor):X,utilidad;
end sets
data:
CapacAct= 2 3;
CostoAmpl= 1200 1500;
Utilidad= 8000 13000 11000 14000;
Demanda=5 5;
end data
max=@sum(RxD(i,j):utilidad(i,j)*X(i,j))-@sum(refineria(i):CostoAmpl( i)*Y(i));
@for(Refineria(i):@sum(Distribuidor(j): x(i,j))<=CapacAct(i)+Y(i));
@for(Distribuidor(j):@sum(Refineria(i): x(i,j))<=Demanda(j));
End
Reporte de Lingo :
Model Class: LP
Total variables: 6
Nonlinear variables: 0
Integer variables: 0
Total constraints: 5
Nonlinear constraints: 0
Total nonzeros: 16
Nonlinear nonzeros: 0
Usted es un contratista que puede suministrar arena a tres construcciones ubicadas en Surco, La Molina y San Borja. La
arena se puede obtener de dos canteras ubicadas en Cieneguilla y Lurn. La cantidad mxima que puede comprar en
Cieneguilla es 18 toneladas y en Lurn 14 toneladas.
Los costos de transporte y obtencin de la arena se muestran en el cuadro siguiente:
Costo de transporte
(soles / tonelada)
Construccin Costo de arena
Surco La Molina San Borja
Cantera (soles/tonelada)
Cieneguilla 30 60 50 100
Lurn 60 30 40 120
La cantidad de arena que como mnimo debe entregar a cada construccin es la siguiente:
Surco La Molina San Borja
10 toneladas 5 toneladas 10 toneladas
Teniendo en cuenta los datos anteriores, el modelo de programacin lineal que permite al contratista determinar la
cantidad de arena que debe transportar desde las canteras a las construcciones es el siguiente:
Sets:
cant/1..2/ : disp, costo;
const/1..3/ : req;
CC(cant,const) : costo_t, x;
End sets
data:
req = 10 5 10;
disp = 18 14;
costo = 100 120;
costo_t = 30 60 50 60 30 40;
End data
Min = @sum(cc(i,j):x(i,j)*costo_t(i,j)+x(i,j)*costo(i));
@for(cant(i):[disponibilidad] @sum(const(j):x(i,j))<=disp(i));
@for(const(j):[requerimiento] @sum(cant(i):x(i,j))>=req(j));
End
c) A fin de favorecer el envo de Cieneguilla Molina, cul sera el precio por tonelada que debera cobrarse?
El precio debera ser 40, y se obtiene de restar el costo actual (60) menos el valor del costo reducido (20).
d) En cunto pueden variar los costos de envo/ de extracin, sin que afecte el punto ptimo actual?
Al revisar los valores en: Objective Coefficient Ranges
e) Usted ha escuchado que es posible que la cantera de Cieneguilla eleve el costo por tonelada de arena. Hasta qu
precio estara usted dispuesto a pagar por tonelada en dicha cantera para mantener su plan actual?
f) Se ha enterado que un competidor ha acudido antes que usted a la cantera de Cieneguilla y ha comprado material
dejndole a usted una disponibilidad menor. Usted desea evaluar cul ser el efecto en sus costos totales y cul
sera la mxima disminucin de dicha disponibilidad que le permitiera mantener las mismas rutas de transporte a
utilizar en su plan actual.
LINGO COMPACTO
Operadores Lgicos:
#EQ# Igual
#NE# No Igual
#GE# Mayor o igual
#GT# Mayor
#LT# Menor
#LE# Menor o igual
#AND# y
#OR# o (inclusivo)
#NOT# no
@For(Conjunto(i): )
Repite una tarea para todo i
@Sum(Conjunto(i): )
Suma una expresin para todo i
@Prod(Conjunto(i): )
Multiplica una expresin para todo i
@Max(Conjunto(i): )
Calcula el mximo para todo i
@Min(Conjunto(i): )
Calcula el mnimo para todo i
@Writefor(Conjunto(i): )
Escribe una expresin para todo i.