MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

Home // Instances // Documentation // Download // Statistics


Instance waternd1

Formats ams gms mod nl osil py
Primal Bounds (infeas ≤ 1e-08)
606763.16750000 p1 ( gdx sol )
(infeas: 5e-13)
Other points (infeas > 1e-08)  
Dual Bounds
606763.16750000 (ANTIGONE)
606763.16750000 (BARON)
606763.16750000 (COUENNE)
606763.16750000 (LINDO)
606763.16750000 (SCIP)
320026.52300000 (SHOT)
References Ahmetović, Elvis and Grossmann, I E, Integrated Process Water Networks Design Problem, 2010.
Source WaterNetwokProblem-B-Eps.gms from minlp.org model 101
Application Water Network Design
Added to library 25 Sep 2013
Problem type MBNLP
#Variables 74
#Binary Variables 20
#Integer Variables 0
#Nonlinear Variables 49
#Nonlinear Binary Variables 0
#Nonlinear Integer Variables 0
Objective Sense min
Objective type nonlinear
Objective curvature concave
#Nonzeros in Objective 43
#Nonlinear Nonzeros in Objective 22
#Constraints 83
#Linear Constraints 67
#Quadratic Constraints 16
#Polynomial Constraints 0
#Signomial Constraints 0
#General Nonlinear Constraints 0
Operands in Gen. Nonlin. Functions vcpower
Constraints curvature indefinite
#Nonzeros in Jacobian 258
#Nonlinear Nonzeros in Jacobian 92
#Nonzeros in (Upper-Left) Hessian of Lagrangian 106
#Nonzeros in Diagonal of Hessian of Lagrangian 22
#Blocks in Hessian of Lagrangian 17
Minimal blocksize in Hessian of Lagrangian 1
Maximal blocksize in Hessian of Lagrangian 5
Average blocksize in Hessian of Lagrangian 2.882353
#Semicontinuities 0
#Nonlinear Semicontinuities 0
#SOS type 1 0
#SOS type 2 0
Minimal coefficient 1.0000e-03
Maximal coefficient 1.6800e+04
Infeasibility of initial point 2500
Sparsity Jacobian Sparsity of Objective Gradient and Jacobian
Sparsity Hessian of Lagrangian Sparsity of Hessian of Lagrangian

$offlisting
*  
*  Equation counts
*      Total        E        G        L        N        X        C        B
*         84       43        0       41        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*         75       55       20        0        0        0        0        0
*  FX      6
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        302      188      114        0
*
*  Solve m using MINLP minimizing objvar;


Variables  b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19
          ,b20,objvar,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,x56,x57,x58,x59,x60,x61,x62,x63,x64,x65,x66,x67,x68,x69
          ,x70,x71,x72,x73,x74,x75;

Positive Variables  x23,x24,x25,x26,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38
          ,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x52,x53,x58,x59,x60,x61,x62
          ,x63,x64,x65,x66,x67,x68,x69,x70,x71,x72,x73,x74,x75;

Binary Variables  b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17
          ,b18,b19,b20;

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,e67,e68,e69,e70
          ,e71,e72,e73,e74,e75,e76,e77,e78,e79,e80,e81,e82,e83,e84;


e1.. -(0.1*(16800*(0.001 + x47)**0.7 + 12600*(0.001 + x48)**0.7) + 8000*x47 + 
     53.6*x48 + 0.1*(100*(0.001 + x23)**0.6 + 100*(0.001 + x24)**0.6 + 100*(
     0.001 + x25)**0.6 + 100*(0.001 + x26)**0.6 + 100*(0.001 + x29)**0.6 + 100*
     (0.001 + x30)**0.6 + 100*(0.001 + x31)**0.6 + 100*(0.001 + x32)**0.6 + 100
     *(0.001 + x33)**0.6 + 100*(0.001 + x34)**0.6 + 100*(0.001 + x35)**0.6 + 
     100*(0.001 + x36)**0.6 + 100*(0.001 + x37)**0.6 + 100*(0.001 + x38)**0.6
      + 100*(0.001 + x39)**0.6 + 100*(0.001 + x40)**0.6 + 100*(0.001 + x43)**
     0.6 + 100*(0.001 + x44)**0.6 + 100*(0.001 + x41)**0.6 + 100*(0.001 + x42)
     **0.6) + 48*x23 + 48*x24 + 48*x25 + 48*x26 + 48*x29 + 48*x30 + 48*x31 + 48
     *x32 + 48*x33 + 48*x34 + 48*x35 + 48*x36 + 48*x37 + 48*x38 + 48*x39 + 48*
     x40 + 48*x41 + 48*x42 + 48*x43 + 48*x44) - 0.6*b1 - 0.6*b2 - 0.6*b3
      - 0.6*b4 - 0.6*b5 - 0.6*b6 - 0.6*b7 - 0.6*b8 - 0.6*b9 - 0.6*b10 - 0.6*b11
      - 0.6*b12 - 0.6*b13 - 0.6*b14 - 0.6*b15 - 0.6*b16 - 0.6*b17 - 0.6*b18
      - 0.6*b19 - 0.6*b20 + objvar - 8000*x22 =E= 0;

e2..    x22 - x23 - x24 - x25 - x26 =E= 0;

e3..  - x23 - x30 - x37 - x39 =E= -40;

e4..  - x24 - x29 - x38 - x40 =E= -50;

e5.. -(x30*x56 + x37*x62 + x39*x64) + 40*x50 =E= 0;

e6.. -(x30*x57 + x37*x63 + x39*x65) + 40*x51 =E= 0;

e7.. -(x29*x54 + x38*x62 + x40*x64) + 50*x52 =E= 0;

e8.. -(x29*x55 + x38*x63 + x40*x65) + 50*x53 =E= 0;

e9..  - x27 =E= -40;

e10..  - x28 =E= -50;

e11.. -x27*x54 + 40*x50 =E= -1000;

e12.. -x27*x55 + 40*x51 =E= -1500;

e13.. -x28*x56 + 50*x52 =E= -1000;

e14.. -x28*x57 + 50*x53 =E= -1000;

e15..    x27 - x29 - x31 - x32 - x35 =E= 0;

e16..    x28 - x30 - x33 - x34 - x36 =E= 0;

e17..  - x54 + x66 =E= 0;

e18..  - x55 + x67 =E= 0;

e19..  - x56 + x68 =E= 0;

e20..  - x57 + x69 =E= 0;

e21..  - x25 - x31 - x33 - x42 + x45 =E= 0;

e22..  - x26 - x32 - x34 - x41 + x46 =E= 0;

e23.. x45*x58 - (x42*x72 + x31*x66 + x33*x68) =E= 0;

e24.. x45*x59 - (x42*x73 + x31*x67 + x33*x69) =E= 0;

e25.. x46*x60 - (x41*x70 + x32*x66 + x34*x68) =E= 0;

e26.. x46*x61 - (x41*x71 + x32*x67 + x34*x69) =E= 0;

e27..    x45 - x47 =E= 0;

e28..    x46 - x48 =E= 0;

e29..  - 0.0499999999999999*x58 + x62 =E= 0;

e30..  - x59 + x63 =E= 0;

e31..  - x60 + x64 =E= 0;

e32..  - 0.0499999999999999*x61 + x65 =E= 0;

e33..  - x37 - x38 - x41 - x43 + x47 =E= 0;

e34..  - x39 - x40 - x42 - x44 + x48 =E= 0;

e35..  - x62 + x70 =E= 0;

e36..  - x63 + x71 =E= 0;

e37..  - x64 + x72 =E= 0;

e38..  - x65 + x73 =E= 0;

e39..  - x35 - x36 - x43 - x44 + x49 =E= 0;

e40.. x49*x74 - (x35*x66 + x36*x68 + x43*x70 + x44*x72) =E= 0;

e41.. x49*x75 - (x35*x67 + x36*x69 + x43*x71 + x44*x73) =E= 0;

e42.. -(0.95*x45*x58 + x49*x74) =E= -2000;

e43.. -(0.95*x46*x61 + x49*x75) =E= -2500;

e44..  - 40*b17 + x37 =L= 0;

e45..  - 50*b18 + x38 =L= 0;

e46..  - 40*b19 + x39 =L= 0;

e47..  - 50*b20 + x40 =L= 0;

e48..  - x37 =L= 0;

e49..  - x38 =L= 0;

e50..  - x39 =L= 0;

e51..  - x40 =L= 0;

e52..  - 40*b5 + x29 =L= 0;

e53..  - 40*b6 + x30 =L= 0;

e54..  - x29 =L= 0;

e55..  - x30 =L= 0;

e56..  - 40*b7 + x31 =L= 0;

e57..  - 40*b8 + x32 =L= 0;

e58..  - 50*b9 + x33 =L= 0;

e59..  - 50*b10 + x34 =L= 0;

e60..  - x31 =L= 0;

e61..  - x32 =L= 0;

e62..  - x33 =L= 0;

e63..  - x34 =L= 0;

e64..  - 40*b11 + x35 =L= 0;

e65..  - 50*b12 + x36 =L= 0;

e66..  - x35 =L= 0;

e67..  - x36 =L= 0;

e68..  - 90*b13 + x43 =L= 0;

e69..  - 90*b14 + x44 =L= 0;

e70..  - x43 =L= 0;

e71..  - x44 =L= 0;

e72..  - 90*b15 + x41 =L= 0;

e73..  - 90*b16 + x42 =L= 0;

e74..  - x41 =L= 0;

e75..  - x42 =L= 0;

e76..  - 40*b1 + x23 =L= 0;

e77..  - 50*b2 + x24 =L= 0;

e78..  - x23 =L= 0;

e79..  - x24 =L= 0;

e80..  - 90*b3 + x25 =L= 0;

e81..  - 90*b4 + x26 =L= 0;

e82..  - x25 =L= 0;

e83..  - x26 =L= 0;

e84..    b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8 + b9 + b10 + b11 + b12 + b13
       + b14 + b15 + b16 + b17 + b18 + b19 + b20 =L= 20;

* set non-default bounds
x22.lo = 40; x22.up = 90;
x23.up = 40;
x24.up = 50;
x25.up = 90;
x26.up = 90;
x27.fx = 40;
x28.fx = 50;
x29.up = 40;
x30.up = 40;
x31.up = 40;
x32.up = 40;
x33.up = 50;
x34.up = 50;
x35.up = 40;
x36.up = 50;
x37.up = 40;
x38.up = 50;
x39.up = 40;
x40.up = 50;
x41.up = 90;
x42.up = 90;
x43.up = 90;
x44.up = 90;
x45.up = 90;
x46.up = 90;
x47.up = 90;
x48.up = 90;
x49.lo = 40; x49.up = 90;
x50.fx = 0;
x51.fx = 0;
x52.up = 50;
x53.up = 50;
x54.fx = 25;
x55.fx = 37.5;
x56.lo = 20; x56.up = 70;
x57.lo = 20; x57.up = 70;
x58.up = 70;
x59.up = 70;
x60.up = 70;
x61.up = 70;
x62.up = 3.5;
x63.up = 70;
x64.up = 70;
x65.up = 3.5;
x66.up = 25;
x67.up = 37.5;
x68.up = 70;
x69.up = 70;
x70.up = 3.5;
x71.up = 70;
x72.up = 70;
x73.up = 3.5;
x74.up = 10;
x75.up = 10;

Model m / all /;

m.limrow=0; m.limcol=0;
m.tolproj=0.0;

$if NOT '%gams.u1%' == '' $include '%gams.u1%'

$if not set MINLP $set MINLP MINLP
Solve m using %MINLP% minimizing objvar;


Last updated: 2024-12-17 Git hash: 8eaceb91
Imprint / Privacy Policy / License: CC-BY 4.0