robert.gms : Elementary Production and Inventory Model

Description

```A manufacturer can produce three different products requiring the
storage of two raw materials. Expected profits change over time and
remaining raw materials are valued.
```

Reference

• Fourer, R, Modeling Languages Versus Matrix Generators for Linear Programming. ACM Transaction on Mathematical Software 9, 2 (1983), 243-262.

Small Model of Type : LP

Category : GAMS Model library

Main file : robert.gms

``````\$title Elementary Production and Inventory Model (ROBERT,SEQ=37)

\$onText
A manufacturer can produce three different products requiring the
storage of two raw materials. Expected profits change over time and
remaining raw materials are valued.

Fourer, R, Modeling Languages versus Matrix Generators For Linear
Programming. ACM Transaction of Mathematical Software 9, 2 (1983),
143-183.

Keywords: linear programming, production planning, inventory problem, manufacturing
\$offText

Set
p     'products'      / low, medium, high /
r     'raw materials' / scrap, new        /
tt    'long horizon'  / 1*4 /
t(tt) 'short horizon' / 1*3 /;

Table a(r,p) 'input coefficients'
low  medium  high
scrap        5       3     1
new          1       2     3;

Table c(p,t) 'expected profits'
1    2    3
low       25   20   10
medium    50   50   50
high      75   80  100;

Table misc(*,r) 'other data'
scrap  new
max-stock       400  275
storage-c        .5    2
res-value        15   25;

Scalar m 'maximum production' / 40 /;

Variable
x(p,tt) 'production and sales'
s(r,tt) 'opening stocks'
profit;

Positive Variable x, s;

Equation
cc(t)    'capacity constraint'
sb(r,tt) 'stock balance'
pd       'profit definition';

cc(t)..      sum(p, x(p,t)) =l= m;

sb(r,tt+1).. s(r,tt+1) =e= s(r,tt) - sum(p, a(r,p)*x(p,tt));

pd.. profit =e= sum(t, sum(p, c(p,t)*x(p,t)) - sum(r, misc("storage-c",r)*s(r,t)))
+  sum(r, misc("res-value",r)*s(r,"4"));

s.up(r,"1") = misc("max-stock",r);

Model robert / all /;

solve robert maximizing profit using lp;
``````