MINLPLib
A Library of Mixed-Integer and Continuous Nonlinear Programming Instances
Home // Instances // Documentation // Download // Statistics
Instance wastewater04m2
| Formatsⓘ | ams gms lp mod nl osil pip py |
| Primal Bounds (infeas ≤ 1e-08)ⓘ | |
| Other points (infeas > 1e-08)ⓘ | |
| Dual Boundsⓘ | 89.83606548 (ANTIGONE) 89.83606547 (BARON) 89.83605965 (COUENNE) 89.83606557 (GUROBI) 89.83606557 (LINDO) 89.83606557 (SCIP) |
| Referencesⓘ | Castro, Pedro M, Matos, Henrique A, and Novais, Augusto Q, An efficient heuristic procedure for the optimal design of wastewater treatment systems, Resources, Conservation and Recycling, 50:2, 2007, 158-185. Castro, Pedro M, Teles, João P, and Novais, Augusto Q, Linear program-based algorithm for the optimal design of wastewater treatment systems, Clean Technologies and Environmental Policy, 11:1, 2009, 83-93. |
| Sourceⓘ | ANTIGONE test library model Other_MIQCQP/castro_etal_2007_wts_Ex04_M2.gms |
| Applicationⓘ | Waste Water Treatment |
| Added to libraryⓘ | 15 Aug 2014 |
| Problem typeⓘ | QCP |
| #Variablesⓘ | 55 |
| #Binary Variablesⓘ | 0 |
| #Integer Variablesⓘ | 0 |
| #Nonlinear Variablesⓘ | 12 |
| #Nonlinear Binary Variablesⓘ | 0 |
| #Nonlinear Integer Variablesⓘ | 0 |
| Objective Senseⓘ | min |
| Objective typeⓘ | linear |
| Objective curvatureⓘ | linear |
| #Nonzeros in Objectiveⓘ | 2 |
| #Nonlinear Nonzeros in Objectiveⓘ | 0 |
| #Constraintsⓘ | 65 |
| #Linear Constraintsⓘ | 47 |
| #Quadratic Constraintsⓘ | 18 |
| #Polynomial Constraintsⓘ | 0 |
| #Signomial Constraintsⓘ | 0 |
| #General Nonlinear Constraintsⓘ | 0 |
| Operands in Gen. Nonlin. Functionsⓘ | |
| Constraints curvatureⓘ | indefinite |
| #Nonzeros in Jacobianⓘ | 209 |
| #Nonlinear Nonzeros in Jacobianⓘ | 36 |
| #Nonzeros in (Upper-Left) Hessian of Lagrangianⓘ | 36 |
| #Nonzeros in Diagonal of Hessian of Lagrangianⓘ | 0 |
| #Blocks in Hessian of Lagrangianⓘ | 2 |
| Minimal blocksize in Hessian of Lagrangianⓘ | 6 |
| Maximal blocksize in Hessian of Lagrangianⓘ | 6 |
| Average blocksize in Hessian of Lagrangianⓘ | 6.0 |
| #Semicontinuitiesⓘ | 0 |
| #Nonlinear Semicontinuitiesⓘ | 0 |
| #SOS type 1ⓘ | 0 |
| #SOS type 2ⓘ | 0 |
| Minimal coefficientⓘ | 2.4000e-02 |
| Maximal coefficientⓘ | 8.0000e+03 |
| Infeasibility of initial pointⓘ | 8000 |
| Sparsity Jacobianⓘ | ![]() |
| Sparsity Hessian of Lagrangianⓘ | ![]() |
$offlisting
*
* Equation counts
* Total E G L N X C B
* 66 60 0 6 0 0 0 0
*
* Variable counts
* x b i s1s s2s sc si
* Total cont binary integer sos1 sos2 scont sint
* 56 56 0 0 0 0 0 0
* FX 0
*
* Nonzero counts
* Total const NL DLL
* 212 176 36 0
*
* Solve m using NLP minimizing objvar;
Variables x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19
,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36
,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53
,x54,x55,objvar;
Positive Variables x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17
,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34
,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51
,x52,x53,x54,x55;
Equations e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15,e16,e17,e18,e19
,e20,e21,e22,e23,e24,e25,e26,e27,e28,e29,e30,e31,e32,e33,e34,e35,e36
,e37,e38,e39,e40,e41,e42,e43,e44,e45,e46,e47,e48,e49,e50,e51,e52,e53
,e54,e55,e56,e57,e58,e59,e60,e61,e62,e63,e64,e65,e66;
e1.. - x14 - x15 + objvar =E= 0;
e2.. - x5 - x9 - x10 =E= -40;
e3.. - x6 - x11 - x12 =E= -40;
e4.. - x1 - x3 - x9 - x11 + x14 =E= 0;
e5.. - x2 - x4 - x10 - x12 + x15 =E= 0;
e6.. - x1 - x2 - x7 + x14 =E= 0;
e7.. - x3 - x4 - x8 + x15 =E= 0;
e8.. - x5 - x6 - x7 - x8 + x13 =E= 0;
e9.. - x24 - x32 - x34 =E= -4000;
e10.. - x25 - x33 - x35 =E= -800;
e11.. - x26 - x36 - x38 =E= -600;
e12.. - x27 - x37 - x39 =E= -8000;
e13.. - x32 + 4000*x52 =E= 0;
e14.. - x33 + 800*x52 =E= 0;
e15.. - x34 + 4000*x53 =E= 0;
e16.. - x35 + 800*x53 =E= 0;
e17.. - x36 + 600*x54 =E= 0;
e18.. - x37 + 8000*x54 =E= 0;
e19.. - x38 + 600*x55 =E= 0;
e20.. - x39 + 8000*x55 =E= 0;
e21.. - x24 + 4000*x48 =E= 0;
e22.. - x25 + 800*x48 =E= 0;
e23.. - x26 + 600*x49 =E= 0;
e24.. - x27 + 8000*x49 =E= 0;
e25.. - x9 + 40*x52 =E= 0;
e26.. - x10 + 40*x53 =E= 0;
e27.. - x11 + 40*x54 =E= 0;
e28.. - x12 + 40*x55 =E= 0;
e29.. - x5 + 40*x48 =E= 0;
e30.. - x6 + 40*x49 =E= 0;
e31.. x48 + x52 + x53 =E= 1;
e32.. x49 + x54 + x55 =E= 1;
e33.. - 200*x14 + x16 + x20 + x32 + x36 =L= 0;
e34.. - 200*x14 + x17 + x21 + x33 + x37 =L= 0;
e35.. - 200*x15 + x18 + x22 + x34 + x38 =L= 0;
e36.. - 200*x15 + x19 + x23 + x35 + x39 =L= 0;
e37.. 0.05*x16 + 0.05*x20 + 0.05*x32 + 0.05*x36 - x40 =E= 0;
e38.. x17 + x21 + x33 + x37 - x41 =E= 0;
e39.. x18 + x22 + x34 + x38 - x42 =E= 0;
e40.. 0.024*x19 + 0.024*x23 + 0.024*x35 + 0.024*x39 - x43 =E= 0;
e41.. - x16 - x18 - x28 + x40 =E= 0;
e42.. - x17 - x19 - x29 + x41 =E= 0;
e43.. - x20 - x22 - x30 + x42 =E= 0;
e44.. - x21 - x23 - x31 + x43 =E= 0;
e45.. x40*x44 - x16 =E= 0;
e46.. x41*x44 - x17 =E= 0;
e47.. x40*x45 - x18 =E= 0;
e48.. x41*x45 - x19 =E= 0;
e49.. x42*x46 - x20 =E= 0;
e50.. x43*x46 - x21 =E= 0;
e51.. x42*x47 - x22 =E= 0;
e52.. x43*x47 - x23 =E= 0;
e53.. x40*x50 - x28 =E= 0;
e54.. x41*x50 - x29 =E= 0;
e55.. x42*x51 - x30 =E= 0;
e56.. x43*x51 - x31 =E= 0;
e57.. x14*x44 - x1 =E= 0;
e58.. x14*x45 - x2 =E= 0;
e59.. x15*x46 - x3 =E= 0;
e60.. x15*x47 - x4 =E= 0;
e61.. x14*x50 - x7 =E= 0;
e62.. x15*x51 - x8 =E= 0;
e63.. x44 + x45 + x50 =E= 1;
e64.. x46 + x47 + x51 =E= 1;
e65.. - 10*x13 + x24 + x26 + x28 + x30 =L= 0;
e66.. - 10*x13 + x25 + x27 + x29 + x31 =L= 0;
* set non-default bounds
x1.up = 1000000;
x2.up = 1000000;
x3.up = 1000000;
x4.up = 1000000;
x5.up = 1000000;
x6.up = 1000000;
x7.up = 1000000;
x8.up = 1000000;
x9.up = 1000000;
x10.up = 1000000;
x11.up = 1000000;
x12.up = 1000000;
x13.up = 1000000;
x14.up = 1000000;
x15.up = 1000000;
x16.up = 1000000;
x17.up = 1000000;
x18.up = 1000000;
x19.up = 1000000;
x20.up = 1000000;
x21.up = 1000000;
x22.up = 1000000;
x23.up = 1000000;
x24.up = 1000000;
x25.up = 1000000;
x26.up = 1000000;
x27.up = 1000000;
x28.up = 1000000;
x29.up = 1000000;
x30.up = 1000000;
x31.up = 1000000;
x32.up = 1000000;
x33.up = 1000000;
x34.up = 1000000;
x35.up = 1000000;
x36.up = 1000000;
x37.up = 1000000;
x38.up = 1000000;
x39.up = 1000000;
x40.up = 1000000;
x41.up = 1000000;
x42.up = 1000000;
x43.up = 1000000;
x44.up = 1000000;
x45.up = 1000000;
x46.up = 1000000;
x47.up = 1000000;
x48.up = 1000000;
x49.up = 1000000;
x50.up = 1000000;
x51.up = 1000000;
x52.up = 1000000;
x53.up = 1000000;
x54.up = 1000000;
x55.up = 1000000;
Model m / all /;
m.limrow=0; m.limcol=0;
m.tolproj=0.0;
$if NOT '%gams.u1%' == '' $include '%gams.u1%'
$if not set NLP $set NLP NLP
Solve m using %NLP% minimizing objvar;
Last updated: 2025-08-07 Git hash: e62cedfc

