A MINLP GAMS implementation of the example model mentioned in "An overview of genetic algorithms for the solution of optimisation problems"
$ontext
An overview of genetic algorithms for the solution of optimisation problems
Simon Mardle and Sean Pascoe
University of Portsmouth
http://www.economicsnetwork.ac.uk/cheer/ch13_1/ch13_1p16.htm
$offtext
Set i boat class /i1*i3/
j fish species /j1*j3/
Parameter
P(j) Price of fish species j / j1 2.5, j2 2, j3 1.5 /
F(i) Fixed Costs of boat class i / i1 1, i2 0.8, i3 0.8 /
V(i) Variable Costs of boat class i / i1 0.01, i2 0.008, i3 0.008 /
K(j) Carrying capacity of fish species j / j1 2000, j2 2500, j3 4000 /
R(j) Growth rate of fish species j / j1 0.1, j2 0.5, j3 0.3 /
ue(i) upper bound on effort / i1 275, i2 160, i3 200 /;
Table Q(i,j) Catchability coefficient of fish species j by boat class i
j1 j2 j3
i1 0.0002 0.0001
i2 0.0002 0.00005
i3 0.0002
;
Variable
z profit
xb(i) boats
xe(i) effort
xf(j) fishing mortality
xc(j) catch
xl(j) landings;
Positive Variables xe,xf,xc,xl;
Integer Variables xb;
Equation
obj revenue from landings minus the fixed and variable costs of the fishing
e1(j) fishing mortality
e2(j) evaluates catch from this fishing mortality rate
e3(j) constrains landings to be no greater than catch;
obj.. z =e= sum(j, P(j)*xl(j)) - sum(i, F(i)*xb(i) + V(i)*xe(i)*xb(i));
e1(j).. xf(j) =e= sum(i, Q(i,j)*xe(i)*xb(i));
e2(j).. xc(j) =e= K(j)*xf(j) - K(j)/R(j)*sqr(xf(j));
e3(j).. xl(j) =l= xc(j);
model fish /all/;
option optcr=0;
xe.up(i) = ue(i);
xl.up(j) = 500;
xb.l(i)=uniform(1,10);
xe.l(i)=uniform(100,200);
solve fish max z using rminlp;
fish.optcr=0;
solve fish max z using minlp;