Description
This is an example of planning production within certain pollution standards.
Small Model of Type : NLP
Category : GAMS Model library
Main file : pollut.gms
$title Industrial Pollution Control (POLLUT,SEQ=96)
$onText
This is an example of planning production within certain pollution standards.
Mangasarian, O L, Nonlinear Programming. McGraw Hill, New York, 1973.
Keywords: nonlinear programming, production planning, pollution control, energy
economics
$offText
Set
j 'sectors' / food, textile, apparel, lumber, furniture
pulp+paper, printing, chemicals, coal+petro, rubber
leather, clay+stone, steel, nf-metals, metals-pr
machinery, elec-mach, transport, prec-mach, misc /
i 'pollutant' / cod, so2, land, water /;
Table w(j,i) 'unit load'
cod so2 land water
food .08488 .00909 .02990 .07195
textile .03353 .02470 .08980 .17032
apparel .03353 .02470 .02780 .01345
lumber .00135 .00084 .06890 .01606
furniture .00153 .00084 .03500 .01429
pulp+paper .23368 .07461 .04690 .15532
printing .07609 .05767 .01290 .01850
chemicals .07689 .05767 .05370 .09680
coal+petro .03736 .01663 .27080 .02900
rubber .02794 .00456 .06040 .09200
leather .02794 .00456 .04980 .07320
clay+stone .00213 .08800 .11510 .09520
steel .00633 .02361 .08900 .07780
nf-metals .00091 .03376 .02670 .03720
metals-pr .00125 .00860 .06790 .04930
machinery .00089 .00376 .06210 .02480
elec-mach .00123 .00369 .02950 .02300
transport .00079 .00127 .07870 .04300
prec-mach .00396 .00252 .03830 .03010
misc .00931 .00252 .04240 .03500;
Table z(j,*) 'other data'
a b k k0 l0
food 9.600 .121 .1064 29406 24709
textile 6.353 .194 .1611 21375 18918
apparel 9.818 .204 .0848 8423 20636
lumber 7.371 .181 .1428 13873 10457
furniture 10.220 .171 .0955 8470 9739
pulp+paper 6.255 .145 .1759 36375 18880
printing 8.149 .304 .2190 66016 44480
chemicals 7.794 .146 .1439 80134 36526
coal+petro 8.400 .173 .1314 1327 758
rubber 9.933 .174 .0987 4414 4921
leather 11.069 .167 .0817 3709 6766
clay+stone 6.528 .192 .1665 14496 9368
steel 7.928 .116 .1448 102399 31127
nf-metals 10.559 .091 .1026 28008 1166
metals-pr 6.606 .227 .1567 69314 59525
machinery 7.153 .208 .1506 90014 63048
elec-mach 11.146 .151 .0895 29360 29839
transport 6.884 .199 .1602 27687 16945
prec-mach 6.660 .253 .1446 4009 4828
misc 7.929 .182 .1256 24323 24569;
Scalar
alpha / .6 /
beta / 1.4 /
gamma1 / 1.4 /
gamma2 / .9 /;
Parameter tau(i) / cod .153e6, so2 .12e6, (land, water) .25e6 /;
Variable
k(j) 'capital'
l(j) 'labor'
tk
tl
output;
Equations
obj
eq4(i)
eq5a
eq5b
kdef
ldef;
obj.. output =e= sum(j, z(j,"a")*k(j)**(1 - z(j,"b"))*l(j)**z(j,"b"));
eq4(i).. sum(j, w(j,i)/z(j,"k")*k(j)) =l= tau(i);
eq5a.. tk =g= gamma2*tl;
eq5b.. tk =l= gamma1*tl;
kdef.. tk =e= sum(j, k(j));
ldef.. tl =e= sum(j, l(j));
k.lo(j) = alpha*z(j,"k0"); k.up(j) = beta*z(j,"k0"); k.l(j) = z(j,"k0");
l.lo(j) = alpha*z(j,"l0"); l.up(j) = beta*z(j,"l0"); l.l(j) = z(j,"l0");
Model one / all /;
solve one maximizing output using nlp;