Reference
Category : GAMS NOA library
Mainfile : lathe.gms
$onText
Optimization of a multi-spindle automatic lathe.
Schittkowski, K., More test examples for nonlinear programming codes.
Lecture Notes in Economics and Mathematical Systems, Springer-Verlag,
Berlin, 1987. (Problem 376, pp. 195)
$offText
Variables x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, obj;
Equations e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12,
e13,e14,e15, eobj;
* Objective function to be minimized:
eobj.. obj =e= -20000*(0.15*x1+14*x2-0.06)/(0.002+x1+60*x2);
* Constraints:
e1.. x1 - 0.75/(x3*x4) =g= 0;
e2.. x1 - x9/(x4*x5) =g= 0;
e3.. x1 - x10/(x4*x6) - 10/x4 =g= 0;
e4.. x1 - 0.19/(x4*x7) - 10/x4 =g= 0;
e5.. x1 - 0.125/(x4*x8) =g= 0;
e6.. 10000*x2 - 0.00131*x9*(x5**0.666)*(x4**1.5) =g= 0;
e7.. 10000*x2 - 0.001038*x10*(x6**1.6)*(x4**3) =g= 0;
e8.. 10000*x2 - 0.000223*(x7**0.666)*(x4**1.5) =g= 0;
e9.. 10000*x2 - 0.000076*(x8**3.55)*(x4**5.66) =g= 0;
e10.. 10000*x2 - 0.000698*(x3**1.2)*(x4**2) =g= 0;
e11.. 10000*x2 - 0.00005*(x3**1.6)*(x4**3) =g= 0;
e12.. 10000*x2 - 0.00000654*(x3**2.42)*(x4**4.17) =g= 0;
e13.. 10000*x2 - 0.000257*(x3**0.666)*(x4**1.5) =g= 0;
e14.. 30 - 2.003*x4*x5 - 1.885*x4*x6 - 0.184*x4*x8 -
2*x4*(x3**0.803) =g= 0;
e15.. x9 + x10 - 0.255 =e= 0;
* Bounds on variables;
x1.lo = 0; x1.up = 10;
x2.lo = 0; x2.up = 0.1;
x3.lo = 0.5e-4; x3.up = 0.0081;
x4.lo = 10; x4.up = 1000;
x5.lo = 0.5e-4; x5.up = 0.0017;
x6.lo = 0.5e-4; x6.up = 0.0013;
x7.lo = 0.5e-4; x7.up = 0.0027;
x8.lo = 0.5e-4; x8.up = 0.002;
x9.lo = 0.5e-4; x9.up = 1;
x10.lo = 0.5e-4; x10.up = 1;
Model lathe /all/;
Solve lathe minimizing obj using nlp;
$ifThenI x%mode%==xbook
file out /lathe1.dat/
put out;
put x1.l:15:7, x2.l:15:7, x3.l:15:7, x4.l:15:7 /;
put x5.l:15:7, x6.l:15:7, x7.l:15:7, x8.l:15:7 /;
put x9.l:15:7, x10.l:15:7 /;
put /"Objective =" obj.l:15:7 /;
$endIf
* End lathe