param l {1..5}; param u {1..5}; param a {1..21}; var x {j in 1..5} >= l[j], <= u[j]; minimize obj: -a[1] - a[2]*x[1] - a[3]*x[1]*x[2] - a[4]*x[1]*x[3] - a[5]*x[1]*x[4] -a[6]*x[1]*x[5] ; subject to constr1: 0 <= a[7]*x[1] + a[8]*x[1]*x[2] + a[9]*x[1]*x[3] + a[10]*x[1]*x[4] + a[11]*x[1]*x[5] <= 294000; subject to constr2: 0 <= a[12]*x[1] + a[13]*x[1]*x[2] + a[14]*x[1]*x[3] + a[15]*x[1]*x[4] + a[16]*x[1]*x[5] <= 294000; subject to constr3: 0 <= a[17]*x[1] + a[18]*x[1]*x[2] + a[19]*x[1]*x[3] + a[20]*x[1]*x[4] + a[21]*x[1]*x[5] <= 277200; data; param a := 1 -24345 2 -8720288.849 3 150512.5253 4 -156.6950325 5 476470.3222 6 729482.8271 7 -145421.402 8 2931.1506 9 -40.427932 10 5106.192 11 15711.36 12 -155011.1084 13 4360.53352 14 12.9492344 15 10236.884 16 13176.786 17 -326669.5104 18 7390.68412 19 -27.8986976 20 16643.076 21 30988.146 ; param l := 1 0 2 1.2 3 20 4 9 5 6.5 ; param u := 1 1000 2 2.4 3 60 4 9.3 5 7 ; let x[1] := 2.52; let x[2] := 2; let x[3] := 37.5; let x[4] := 9.25; let x[5] := 6.8; #printf "optimal solution as starting point \n"; #let x[1] := 4.53743097; #let x[2] := 2.4; #let x[3] := 37.5; #let x[4] := 9.25; #let x[5] := 6.8; solve; display x; display obj; display obj + 5280335.133;