PROBLEMAS PROPUESTOS Y DESARROLLADOS Caso 5.1 Chandler Oil Company dispone de 5000 barriles de crudo 1 y de 10000 barriles de crudo 2. La compañía 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 dólar gastado en anunciar a la gasolina crea una demanda de 5 barriles de gasolina; cada dólar gastado en anunciar al aceite combustible origina una demanda de 10 barriles del aceite. La gasolina se vende a 25 dólares por barril y el aceite combustible se vende a 20 dólares por barril. Formule un modelo de programación lineal para ayudar a Chandler a maximizar sus utilidades. (Respuesta: Z* = 347500) Solución; Primero generamos la matriz Crudo (i) Producto (j) Gasolina Aceite Calcrudo Dispo
Crudo 1
Crudo 2
Mezcla 10 5000
Costo
Precio
CalPro
0.2 0.1
25 20
7 6
5 10000
Sets: Sets: Crudo / Crudo1 Crudo2 / : Dispo, CalCrudo; Producto / Gasolina Aceite / : Costo, Precio, CalProd; Matriz(Crudo, Producto) : Mezcla; End Sets Data: Data: Dispo = 5000 10000; CalCrudo = 10 5; Costo = .2 .1; Precio = 25 20; CalProd = 7 6; End Data [Max_Utilidad] max max = = @sum @sum(Matriz(i,j): (Matriz(i,j): Mezcla(i,j)*Precio(j)) - @sum @sum(Matriz(i,j): (Matriz(i,j): Mezcla(i,j)*Costo(j)); @for(Crudo(i): @for (Crudo(i): @sum @sum(Producto(j): (Producto(j): Mezcla(i,j)) <= Dispo(i)); @for(Producto(j): @for (Producto(j): ( @sum @sum(Crudo(i): (Crudo(i): Mezcla(i,j)*CalCrudo(i)) / @sum @sum(Crudo(i): (Crudo(i): Mezcla(i,j))) >= CalProd(j)); END LINGO REPORT: Local optimal solution found. Objective value: Infeasibilities: Extended solver steps: Best multistart solution found at step: Total solver iterations: Elapsed runtime seconds: Model Class:
347500.0 0.000000 5 2 68 0.37 NLP
Total variables: Nonlinear variables: Integer variables:
4 4 0
Total constraints: Nonlinear constraints:
5 2
Total nonzeros: Nonlinear nonzeros:
12 4
Variable DISPO( CRUDO1) DISPO( CRUDO2) CALCRUDO( CRUDO1) CALCRUDO( CRUDO2) COSTO( GASOLINA) COSTO( ACEITE) PRECIO( GASOLINA) PRECIO( ACEITE) CALPROD( GASOLINA) CALPROD( ACEITE) MEZCLA( CRUDO1, GASOLINA) MEZCLA( CRUDO1, ACEITE) MEZCLA( CRUDO2, GASOLINA) MEZCLA( CRUDO2, ACEITE)
Value 5000.000 10000.00 10.00000 5.000000 0.2000000 0.1000000 25.00000 20.00000 7.000000 6.000000 4000.000 1000.000 6000.000 4000.000
Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Caso 4.1 La empresa Ryan Electronics tiene un problema de trasbordo. La producción de sus artículos electrónicos los realiza en las plantas que están ubicadas en Denver y Atlanta, con una capacidad de 600 y 700 unidades respectivamente. La producción de cada planta es enviada a dos almacenes ubicadas en Kansas City y Louisville, que tienen una capacidad de almacén de 600 unidades cada una, de los almacenes son enviados a 4 clientes que están ubicados en las ciudades de: Detroit, Miami, Dallas y New Orleáns, que tiene una demanda de 200, 200, 400 y 300 unidades respectivamente. Los costos (en dólares por unidad) de transporte son:
Defina las variables de decisión y formule el modelo de programación lineal correspondiente. (Respuesta: Z* = 5600) Solución; Primero generamos la matriz
Almacen (j) Planta (i) Denver Atlanta CapAlmacen Cliente (k) Almacen (j) Kansas Louis Demanda
Costo de envío i,j Kansas Louis 2 3 600
3 1 600
CapPlanta 600 700
Costo de envío j,k Detroit Miami Dallas 2 4 200
6 4 200
3 6 400
NewO
CapAlmacen
6 5 300
600 600
Modelo Matemático en Notación Extendida: Variables:
, iℎ é j , é j ℎ Función 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;
Modelo Matemático en Notación Compacta: Definición de Variables:
, ℎ é , é ℎ , ℎ é
, é j ℎ Función Objetivo: 2 2
2 4
= =
= =
∑. ∑, ∗ , + ∑. ∑, ∗ , Restricciones: 2
∀:∑, ≤ = 2
∀:∑, ≤é =4
∀:∑, = 2
4
∀:∑, ∑, = = ∀,∀: , ≥ 0 ∀,∀:, ≥ 0 Lingo en Notación Compacta: ! Nota: Lo que está entre [ ] es comentario ! ! ! ! ! !
Variable de decisión X: Cantidad de unidades producidos en la planta i enviados al almacén j Y: Cantidad de unidades enviados del almacén j al cliente k i = 1, 2 j = 1, 2 k = 1, 2, 3, 4;
! Declaración 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: Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: Elapsed runtime seconds:
5600.000 0.000000 7 0.06
Model Class:
LP
Total variables: Nonlinear variables: Integer variables:
12 0 0
Total constraints: Nonlinear constraints:
11 0
Total nonzeros: Nonlinear nonzeros:
40 0
Variable CAPPLANTA( DENVER) CAPPLANTA( ATLANTA) CAPALMACEN( KANSAS) CAPALMACEN( LOUIS) DEMANDA( DETROIT) DEMANDA( MIAMI) DEMANDA( DALLAS) DEMANDA( NEWO) COSTO1( DENVER, KANSAS) COSTO1( DENVER, LOUIS) COSTO1( ATLANTA, KANSAS) COSTO1( ATLANTA, LOUIS) X( DENVER, KANSAS) X( DENVER, LOUIS) X( ATLANTA, KANSAS) X( ATLANTA, LOUIS) COSTO2( KANSAS, DETROIT) COSTO2( KANSAS, MIAMI) COSTO2( KANSAS, DALLAS) COSTO2( KANSAS, NEWO) COSTO2( LOUIS, DETROIT) COSTO2( LOUIS, MIAMI) COSTO2( LOUIS, DALLAS) COSTO2( LOUIS, NEWO) Y( KANSAS, DETROIT) Y( KANSAS, MIAMI) Y( KANSAS, DALLAS) Y( KANSAS, NEWO) Y( LOUIS, DETROIT) Y( LOUIS, MIAMI) Y( LOUIS, DALLAS) Y( LOUIS, NEWO)
Value 600.0000 700.0000 600.0000 600.0000 200.0000 200.0000 400.0000 300.0000 2.000000 3.000000 3.000000 1.000000 600.0000 0.000000 0.000000 500.0000 2.000000 6.000000 3.000000 6.000000 4.000000 4.000000 6.000000 5.000000 200.0000 0.000000 400.0000 0.000000 0.000000 200.0000 0.000000 300.0000
Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 3.000000 0.000000 2.000000 1.000000 0.000000 2.000000 0.000000
Caso 6.2 1 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 programación lineal para minimizar el costo total por cumplir la demanda de los tres meses siguientes:
Mes 1
Producto
Demanda 40 20
Pastel de queso Selva Negra
Mes 2 Costo ($/pastel) 3.00 2.50
Demanda 30 30
Mes 3 Costo ($/pastel) 3.40 2.80
Demanda 20 10
Costo ($/pastel) 3.80 3.40
(Respuesta: Z* = 464.5) Solución: Primero generamos la matriz Mes (j) Producto (i) 1 2 3 Pastel de queso Producción (i,j) Inventario (i,j) Producción (i,j) Inventario (i,j) Producción (i,j) Inventario (i,j) Selva Negra 65 65 65 Capacidad (j)
Producto (i) Pastel de queso Selva Negra
1 Demanda (i,j)
CostoProd (i,j)
Mes (j) 2 Demanda CostoProd (i,j) (i,j)
CostoInv (i) 3 Demanda (i,j)
CostoProd (i,j)
0.50 0.40
Modelo Matemático en Notación Extendida: Variables:
, ó ,
Función 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 pastelería 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 Matemático en Notación Compacta: Definición de Variables:
, ó , , , ó ó Función Objetivo: 2 3
2 2
= =
= =
∑. ∑, ∗ , + ∑. ∑ ∗ , Nota importante: Notar que en el segundo término de la función 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 evaluación, no se le incluye como costo. En algunos ejemplos, el inventario final debe tener un valor determinado, tener en cuenta esto.
Restricciones:
2
∀:∑, ≤ =
Para el mes 1; es decir para el primer periodo.
∀,∀1: 0+, , + , Para los siguientes periodos. ∀,∀>1: ,− + , , + , ∀,∀:, ≥ 0 ∀,∀:, ≥ 0 Lingo en Notación Extendida: [COSTO] Min = 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; [Mes1_Queso] X11-40=Y11; [Mes2_Queso] Y11+X12-30=Y12; [Mes3_Queso] Y12+X13-20=Y13; [Mes1_Selva] X21-20=Y21; [Mes2_Selva] Y21+X22-30=Y22; [Mes3_Selva] Y22+X23-10=Y23; [Produccion_mes1] X11+X21<=65; [Produccion_mes2] X12+X22<=65; [Produccion_mes3] X13+X23<=65; end
Lingo en Notación Compacta: ! ! ! ! !
Variable de decision Xi,j = Producción del producto “i” en el mes “j” Yi,j = Inventario del producto “i” en el mes “j” i = PastelQueso, SelvaNegra j = 1, 2, 3;
! Declaración 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 CostoInv = 0.50 Demanda = 40 20 CostoProd = 3.00 2.50 end data
65 65; 0.40; 30 20 30 10; 3.40 3.80 2.80 3.40;
! 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 Entrega para el primer periodo; @for(Producto(i): @For(mes(j) | j # eq # 1:
0 + X(i,j) = Demanda(i,j) + Y(i,j)));
! Restriccion de Entrega para los siguiente periodos mayores al primero; @for(Producto(i): @For(mes(j) | j # GT # 1: Y(i,j-1) + X(i,j) = Demanda(i,j) + Y(i,j))); ! Restriccion de capacidad; @for(Mes(j): @sum(Producto(i): X(i,j)) <= Capacidad(j)); end
Lingo en Notación Compacta (OTRA OPCIÓN) ! ! ! ! !
Variable de decision Xi,j = Producción del producto “i” en el mes “j” Yi,j = Inventario del producto “i” en el mes “j” i = PastelQueso, SelvaNegra j = 1, 2, 3;
! Declaración 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 CostoInv = 0.50 0.40 Demanda = 40 20 CostoProd = 3.00 2.50 end data
65 0.50 0.40 30 30 3.40 2.80
65; 0.50 0.40; 20 10; 3.80 3.40;
! 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 Entrega para el primer periodo; @for(Producto(i): @For(mes(j) | j # eq # 1:
0 + X(i,j) = Demanda(i,j) + Y(i,j)));
! Restriccion de Entrega para los siguiente periodos mayores al primero; @for(Producto(i): @For(mes(j) | j # GT # 1: Y(i,j-1) + X(i,j) = Demanda(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: Infeasibilities: Total solver iterations: Elapsed runtime seconds:
464.5000 0.000000 5 0.05
Model Class:
LP
Total variables: Nonlinear variables: Integer variables:
12 0 0
Total constraints: Nonlinear constraints:
10 0
Total nonzeros: Nonlinear nonzeros:
34 0
Variable COSTOINV( PASTELQUESO) COSTOINV( SELVANEGRA) CAPACIDAD( 1) CAPACIDAD( 2) CAPACIDAD( 3) DEMANDA( PASTELQUESO, 1) DEMANDA( PASTELQUESO, 2) DEMANDA( PASTELQUESO, 3) DEMANDA( SELVANEGRA, 1) DEMANDA( SELVANEGRA, 2) DEMANDA( SELVANEGRA, 3) COSTOPROD( PASTELQUESO, 1) COSTOPROD( PASTELQUESO, 2) COSTOPROD( PASTELQUESO, 3) COSTOPROD( SELVANEGRA, 1) COSTOPROD( SELVANEGRA, 2) COSTOPROD( SELVANEGRA, 3) X( PASTELQUESO, 1) X( PASTELQUESO, 2) X( PASTELQUESO, 3) X( SELVANEGRA, 1) X( SELVANEGRA, 2) X( SELVANEGRA, 3) Y( PASTELQUESO, 1) Y( PASTELQUESO, 2) Y( PASTELQUESO, 3) Y( SELVANEGRA, 1) Y( SELVANEGRA, 2) Y( SELVANEGRA, 3)
Value 0.5000000 0.4000000 65.00000 65.00000 65.00000 40.00000 30.00000 20.00000 20.00000 30.00000 10.00000 3.000000 3.400000 3.800000 2.500000 2.800000 3.400000 45.00000 25.00000 20.00000 20.00000 40.00000 0.000000 5.000000 0.000000 0.000000 0.000000 10.00000 0.000000
Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.1000000 0.000000 0.2000000 4.300000 0.000000 0.000000 3.700000
Caso 3.3 Sunco Oil tiene refinería en Los Ángeles y Chicago. La refinería de Los Ángeles puede procesar hasta 2 millones de barrilles de crudo por año y la refinería de Chicago refina hasta 3 millones de crudo por año. Una vez refinado, el crudo se embarca hacia dos puntos de distribución: Houston y Nueva York. Sunco estima que cada punto de distribución puede vender hasta 5 millones de barriles por año. Debido a las diferencias en los costos de embarque y refinación, la utilidad unitaria (en $/millón de barriles) depende de dónde se refinó el crudo y del punto de distribución. Utilidad unitaria ($/millón de barriles) Houston Nueva York 8000 13000 11000 14000
Refinería Los Ángeles Refinería Chicago
Asimismo, Sunco planea ampliar la capacidad de cada refinería. Cada millón de barriles de capacidad de refinación anual que se amplíe costará $1200 en el caso de la refinería de Los Ángeles y $1500 en el caso de la refinería de Chicago, respectivamente. Defina las variables de decisión y plantee el modelo de programación lineal correspondiente, en la forma compacta, que permita a Sunco optimizar sus operaciones en un año. (Respuesta: Z* = 115500) Solución; Primero generamos la matriz
Distribuidor j Refinería i LAS CHG
Houston
Nueva York
Xij
CapacAct
Amplia
CapacActi
Yi
Demanda j
Houston LAS CHG
Nueva York
Utilidadij
CostoAmpl
Costoampli
Modelo Matemático en Notación Compacta: Definición de Variables:
, í ℎ í , í ℎ ó í í Función Objetivo: 2 2
2
= =
=
∑. ∑, ∗ , ∑ ∗ Restricciones: 2
∀:∑, ≤ + = 2
∀:∑, ≤ = ∀,∀: , ≥ 0 ∀: ≥ 0
Lingo en Notación Compacta: ! Nota: Lo que está entre [ ] es comentario ! ! ! ! !
Variable de decisión X: Millones de barriles enviados desde la refinería i hasta el distribuidor j Y: Millones de barriles ampliados en la refinería i i = 1, 2 j = 1, 2
! Declaración 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 Utilidad= 8000 Demanda=5 5; end data
1500; 13000 11000
14000;
max=@sum(RxD(i,j):utilidad(i,j)*X(i,j))- @sum(refineria(i):CostoAmpl( @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
i)*Y(i));
Reporte de Lingo : Global optimal solution found. Objective value: Infeasibilities: Total solver iterations: Elapsed runtime seconds:
115500.0 0.000000 4 0.03
Model Class:
LP
Total variables: Nonlinear variables: Integer variables:
6 0 0
Total constraints: Nonlinear constraints:
5 0
Total nonzeros: Nonlinear nonzeros:
16 0
Variable Y( LAS) Y( CHG) CAPACACT( LAS) CAPACACT( CHG) COSTOAMPL( LAS) COSTOAMPL( CHG) DEMANDA( HOU) DEMANDA( NYK) X( LAS, HOU) X( LAS, NYK) X( CHG, HOU) X( CHG, NYK) UTILIDAD( LAS, HOU) UTILIDAD( LAS, NYK) UTILIDAD( CHG, HOU)
Value 0.000000 5.000000 2.000000 3.000000 1200.000 1500.000 5.000000 5.000000 0.000000 2.000000 5.000000 3.000000 8000.000 13000.00 11000.00
Reduced Cost 700.0000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 2000.000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
UTILIDAD( CHG, NYK)
14000.00
0.000000
El plan de envío óptimo, y la ampliación son los siguientes:
Refinería
Envío y Ampliación óptima (en millones de barriles) Distribuidor Houston NewYork
Ampliación
Los Angeles
0
2
0
Chicago
5
3
5
Caso 7.3: Suministro de arena 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 Lurín. La cantidad máxima que puede comprar en Cieneguilla es 18 toneladas y en Lurín 14 toneladas. Los costos de transporte y obtención de la arena se muestran en el cuadro siguiente: Costo de transporte (soles / tonelada) Construcción Costo de arena Surco La Molina San Borja Cantera (soles/tonelada) 30 60 50 100 Cieneguilla 60 30 40 120 Lurín La cantidad de arena que como mínimo debe entregar a cada construcción es la siguiente: Surco La Molina San Borja 10 toneladas 5 toneladas 10 toneladas Teniendo en cuenta los datos anteriores, el modelo de programación 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 = disp = costo = costo_t = End data
10 5 10; 18 14; 100 120; 30 60 50 60 30 40;
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
Reporte de la Solución Óptima Global optimal solution found. Objective value: Variable DISP( 1) DISP( 2) COSTO( 1) COSTO( 2) REQ( 1) REQ( 2) REQ( 3) COSTO_T( 1, 1) COSTO_T( 1, 2) COSTO_T( 1, 3) COSTO_T( 2, 1) COSTO_T( 2, 2) COSTO_T( 2, 3) X( 1, 1) X( 1, 2) X( 1, 3) X( 2, 1) X( 2, 2) X( 2, 3)
3570.000 Value 18.00000 14.00000 100.0000 120.0000 10.00000 5.000000 10.00000 30.00000 60.00000 50.00000 60.00000 30.00000 40.00000 10.00000 0.000000 8.000000 0.000000 5.000000 2.000000
Reduced Cost 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 20.00000 0.000000 40.00000 0.000000 0.000000
Row 1 DISPONIBILIDAD( 1) DISPONIBILIDAD( 2) REQUERIMIENTO( 1) REQUERIMIENTO( 2) REQUERIMIENTO( 3)
Slack or Surplus 3570.000 0.000000 7.000000 0.000000 0.000000 0.000000
Dual Price -1.000000 10.00000 0.000000 -140.0000 -150.0000 -160.0000
Reporte de Rangos de Sensibilidad Ranges in which the basis is unchanged: Objective Coefficient Ranges:
Variable X( 1, 1) X( 1, 2) X( 1, 3) X( 2, 1) X( 2, 2) X( 2, 3)
Current Coefficient 130.0000 160.0000 150.0000 180.0000 150.0000 160.0000
Allowable Increase 40.00000 INFINITY 10.00000 INFINITY 20.00000 40.00000
Allowable Decrease 140.0000 20.00000 40.00000 40.00000 150.0000 10.00000
Righthand Side Ranges: Current RHS 18.00000 14.00000 10.00000 5.000000 10.00000
Row DISPONIBILIDAD( 1) DISPONIBILIDAD( 2) REQUERIMIENTO( 1) REQUERIMIENTO( 2) REQUERIMIENTO( 3)
Allowable Increase 2.000000 INFINITY 7.000000 7.000000 7.000000
Allowable Decrease 7.000000 7.000000 2.000000 5.000000 2.000000
a) ¿Cuál es el punto óptimo de operación?
Envío óptimo de Arena Construcción Cantera Cieneguilla Lurín Requerimiento b)
Surco
La Molina
San Borja
Total
10 0 10
0 5 5
8 2 10
18 7
¿Cuál de las Canteras se usa a su máxima de disponibilidad? La cantera 01 se usa a su máxima disponibilidad (slack or surplus = CERO) La cantera 02 se usa al 50% (slack or surplus = 07)
c) ¿A fin de favorecer el envío de Cieneguilla – Molina, cuál sería el precio por tonelada que debería cobrarse? El precio debería ser 40, y se obtiene de restar el costo actual (60) menos el valor del costo reducido (20). d) ¿En cuánto pueden variar los costos de envío/ de extración, sin que afecte el punto óptimo actual? Al revisar los valores en: Objective Coefficient Ranges Variable X (1 , 1) X (1 , 2) X (1 , 3) X (2 , 1) X (2 , 2)
Peor Valor
Coeficiente Actual
Mejor Valor
170 (=130+40)
130 (=100+30)
-10 (=130-140)
160 (=100+60)
140 (=160-20)
150 (=100+50)
110 (=150-40)
180 (=120+60)
140 (=180-40)
150 (=120+30)
0(=
∞
(=160+ ) ∞
160 (=150+10) ∞
(=180+ ) ∞
170 (=150+20)
X (2 , 3)
200 (=160+40)
160 (=120+40)
150 (=160-10)
e) Usted ha escuchado que es posible que la cantera de Cieneguilla eleve el costo por tonelada de arena. ¿Hasta qué precio estaría 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 dejándole a usted una disponibilidad menor. Usted desea evaluar cuál será el efecto en sus costos totales y cuál sería la máxima disminución de dicha disponibilidad que le permitiera mantener las mismas rutas de transporte a utilizar en su plan actual.
LINGO COMPACTO
Operadores Lógicos:
#EQ# #NE# #GE# #GT# #LT# #LE# #AND# #OR# #NOT#
Igual No Igual Mayor o igual Mayor Menor Menor o igual y o (inclusivo) no
Instrucciones que recorren conjuntos:
@For(Conjunto(i): ) Repite una tarea para todo i @Sum(Conjunto(i): ) Suma una expresión para todo i @Prod(Conjunto(i): ) Multiplica una expresión para todo i @Max(Conjunto(i): ) Calcula el máximo para todo i @Min(Conjunto(i): ) Calcula el mínimo para todo i @Writefor(Conjunto(i): ) Escribe una expresión para todo i.