Home | Research Interests | Publications | Positions | Personal | Models | Seminar Abstracts | Powerpoint Talks
 

 

» Agprice
» Constraint
» Curve
» Decent
» Distrib
» Economy
» Efficient
» Factory
» Farm
  Food
» Hydro
» Logic
» Manpower
» Market
» Milk
» Mining
» OandX
» Opencast
» Refinery
» Tariff
» TSP
» Yield
 

Model Food

  MODEL Food
  DATA
 

 

maxt = 6, maxi = 5;
  SET
   

A = {1 .. 2}, B = {3 .. 5},

   

T = {1 .. maxt}, I = {1 .. maxi};

  DATA
   

cost[T,I] << "cost.dat",

   

hard[I] << "hard.dat";

  VARIABLES
   

b[I,T], u[I,T], s[I,T],

   

Prod[T];

  OBJECTIVE
 

 

MAXIMIZE prof = sum{t in T} (150*Prod[t] - sum{i in I} ( cost[t,i]*b[i,t] + 5*s[i,t]));
  CONSTRAINTS
   

loil{i in I, 1}: b[i,1] - u[i,1] - s[i,1] = -500,

   

loil{i in I, t in T, t > 1}: s[i,t-1] + b[i,t] - u[i,t] - s[i, t] = 0,

   

vveg{t in T}: sum{i in A} u[i,t] <= 200,

   

voil{t in T}: sum{i in B} u[i,t] <= 250,

   

uhrd{t in T}: sum{i in I} hard[i]*u[i,t] - 6*Prod[t] <= 0,

   

lhrd{t in T}: sum{i in I} hard[i]*u[i,t] - 3*Prod[t] >= 0,

   

cont{t in T}: sum{i in I} u[i,t] - Prod[t] = 0,

   

/* Specify bounds for the variables */

   

for {i in I, t in T, t= 1000, t<maxt} s[i,t] <= 1000,

   

for {i in I} s[i,maxt] = 500;

 

END MODEL

   

solve Food;

   

print solution fro Food >> "Food.sol";

   

quit;


   
  MODEL FoodB
  DATA
 

 

maxt = 6, maxi = 5;
  SET
   

A = {1 .. 2}, B = {3 .. 5},

   

T = {1 .. maxt}, I = {1 .. maxi};

  DATA
   

cost[T,I] << "cost.dat",

   

hard[I] << "hard.dat";

  VARIABLES
   

b[I,T], u[I,T], s[I,T],

   

Prod[T];

  OBJECTIVE
 

 

MAXIMIZE prof = sum{t in T} (150*Prod[t] - sum{i in I} ( cost[t,i]*b[i,t] + 5*s[i,t]));
  CONSTRAINTS
   

loil{i in I, 1}: b[i,1] - u[i,1] - s[i,1] = -500,

   

loil{i in I, t in T, t > 1}: s[i,t-1] + b[i,t] - u[i,t] - s[i, t] = 0,

   

vveg{t in T}: sum{i in A} u[i,t] <= 200,

   

voil{t in T}: sum{i in B} u[i,t] <= 250,

   

uhrd{t in T}: sum{i in I} hard[i]*u[i,t] - 6*Prod[t] <= 0,

   

lhrd{t in T}: sum{i in I} hard[i]*u[i,t] - 3*Prod[t] >= 0,

   

cont{t in T}: sum{i in I} u[i,t] - Prod[t] = 0,

   

/* Specify bounds for the variables */

   

for {i in I, t in T, t<maxt} s[i,t] <= 1000,

   

for {i in I} s[i,maxt] = 500;

   

VARIABLES

   

d[I, T] BINARY;

  CONSTRAINTS
   

for {t in T} { ! Formulate second condition

   

for { i in A } { ! UB on amount of veg. oil refined/month = 200 u[i,t] <= 200*d[i,t], u[i,t] >= 20*d[i,t] },

   

for { i in B } { ! UB on amount of non-veg. oil refined/month = 250 u[i,t] <= 250*d[i,t], u[i,t] >= 20*d[i,t] },

   

! Formulate first condition sum{i in I} d[i,t] <= 3,

   

! Formulate third condition d[1,t] <= d[5,t], d[2,t] <= d[5,t] };

  END MODEL
   

solve FoodB;

   

print solution for FoodB >> "FoodB.sol";

   

quit;


  cost.dat
  [110.0,120.0,130.0,110.0,115.0,
  130.0,130.0,110.0, 90.0,115.0,
  110.0,140.0,130.0,100.0, 95.0,
  120.0,110.0,120.0,120.0,125.0,
  100.0,120.0,150.0,110.0,105.0,
  90.0,100.0,140.0, 80.0,135.0]

  hard.dat
  [8.8,6.1,2.0,4.2,5.0]

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 
         
 
Site updated December 2021 | email: h.p.williams@lse.ac.uk