67.411/92.473 OR I, Homework 3 AMPL Models.
Oil refinery model (E&K, section 2.2)
Model file
set GASOLINE;
set PROCESS;
set GRADES;
param profit {GASOLINE} >= 0; # profit on sale of an item of a product
param crude_used {PROCESS, GRADES} >= 0; # amount of crude used
# in a particular process
param gas_produced {PROCESS,GASOLINE} > 0; # amount of gasoline produced
# in a particular process
param crude {GRADES}; # limit on amount of crude available
param require {GASOLINE} >= 0;
# amount of gasoline required
var runs {i in PROCESS} >= 0; # number of runs of a process
maximize total_profit :
sum{i in GASOLINE} profit[i]*(sum{j in PROCESS} runs[j]*gas_produced[j,i]);
# profit from selling gasoline
subject to min_requirements {i in GASOLINE}:
sum{j in PROCESS} runs[j]*gas_produced[j,i] >= require[i];
subject to crude_available {j in GRADES}:
sum{i in PROCESS} runs[i]*crude_used[i,j] <= crude[j];
Data file:
set GASOLINE := regular super;
set PROCESS := older newer;
set GRADES := A B C;
param: profit require :=
regular 6 500
super 9 300;
param crude_used :
A B C :=
older 5 7 2
newer 3 9 4;
param crude :=
A 1500
B 1900
C 1000;
param gas_produced :
regular super :=
older 9 7
newer 5 9 ;
Solution:
MINOS 5.4: optimal solution found.
1 iterations, objective 31757.14286
runs [*] :=
newer 0
older 271.429
Electric power model (E&K, Question 2.15)
var a >= 0;
var b >= 0;
var c >= 0;
maximize steam: 22000 * a + 26000 * b + 32000 * c;
subject to capacity: a + b + c <=25;
subject to particulates: a + 3 * b + 2 * c <= 15;
subject to sulfur: -1300 * a + 1200 * c <= 0;
Solution:
MINOS 5.4: optimal solution found.
1 iterations, objective 680000
a = 15
b = 0
c = 0
Advertising model (AMPL book, question 1.1)
var tv >= 10;
var magazines >= 2;
var radio >= 0, <= 120;
maximize audience: 1.8 * tv + magazines + .25 * radio;
subject to budget: 20000 * tv + 10000 * magazines + 2000 * radio <= 1000000;
subject to create: tv + 3 * magazines + (1/7) * radio <=100;
Solution:
(a):
MINOS 5.4: optimal solution found.
1 iterations, objective 98
tv = 10
magazines = 80
(b):
MINOS 5.4: optimal solution found.
2 iterations, objective 92
tv = 40
magazines = 20
(c):
MINOS 5.4: optimal solution found.
1 iterations, objective 118
tv = 10
magazines = 0
radio = 400
(d):
magazines >= 2:
MINOS 5.4: optimal solution found.
1 iterations, objective 117.5
tv = 10
magazines = 2
radio = 390
radio <=120:
MINOS 5.4: optimal solution found.
3 iterations, objective 100.1942857
tv = 29.0286
magazines = 17.9429
radio = 120