MINLPLib
A Library of Mixed-Integer and Continuous Nonlinear Programming Instances
Home // Instances // Documentation // Download // Statistics
Instance gastransnlp
The problem of distributing gas through a network of pipelines is formulated as a cost minimization subject to nonlinear flow-pressure relations, material balances, and pressure bounds. The Belgian gas network is used as an example.
Formatsⓘ | ams gms osil py |
Primal Bounds (infeas ≤ 1e-08)ⓘ | |
Other points (infeas > 1e-08)ⓘ | |
Dual Boundsⓘ | 89.08583999 (COUENNE) 89.08583991 (LINDO) 89.08584000 (SCIP) |
Referencesⓘ | de Wolf, Daniel and Smeers, Yves, The Gas Transmission Problem Solved by and Extension of the Simplex Algorithm, Management Science, 46:11, 2000, 1454-1465. |
Sourceⓘ | GAMS Model Library model gastrans, straight-forward NLP formulation |
Applicationⓘ | Gas Transmission |
Added to libraryⓘ | 18 Aug 2014 |
Problem typeⓘ | NLP |
#Variablesⓘ | 64 |
#Binary Variablesⓘ | 0 |
#Integer Variablesⓘ | 0 |
#Nonlinear Variablesⓘ | 24 |
#Nonlinear Binary Variablesⓘ | 0 |
#Nonlinear Integer Variablesⓘ | 0 |
Objective Senseⓘ | min |
Objective typeⓘ | linear |
Objective curvatureⓘ | linear |
#Nonzeros in Objectiveⓘ | 5 |
#Nonlinear Nonzeros in Objectiveⓘ | 0 |
#Constraintsⓘ | 44 |
#Linear Constraintsⓘ | 20 |
#Quadratic Constraintsⓘ | 3 |
#Polynomial Constraintsⓘ | 0 |
#Signomial Constraintsⓘ | 0 |
#General Nonlinear Constraintsⓘ | 21 |
Operands in Gen. Nonlin. Functionsⓘ | signpower |
Constraints curvatureⓘ | indefinite |
#Nonzeros in Jacobianⓘ | 140 |
#Nonlinear Nonzeros in Jacobianⓘ | 24 |
#Nonzeros in (Upper-Left) Hessian of Lagrangianⓘ | 24 |
#Nonzeros in Diagonal of Hessian of Lagrangianⓘ | 24 |
#Blocks in Hessian of Lagrangianⓘ | 24 |
Minimal blocksize in Hessian of Lagrangianⓘ | 1 |
Maximal blocksize in Hessian of Lagrangianⓘ | 1 |
Average blocksize in Hessian of Lagrangianⓘ | 1.0 |
#Semicontinuitiesⓘ | 0 |
#Nonlinear Semicontinuitiesⓘ | 0 |
#SOS type 1ⓘ | 0 |
#SOS type 2ⓘ | 0 |
Minimal coefficientⓘ | 1.6883e-03 |
Maximal coefficientⓘ | 8.9908e+00 |
Infeasibility of initial pointⓘ | 1.798e+04 |
Sparsity Jacobianⓘ | |
Sparsity Hessian of Lagrangianⓘ |
$offlisting * * Equation counts * Total E G L N X C B * 45 42 3 0 0 0 0 0 * * Variable counts * x b i s1s s2s sc si * Total cont binary integer sos1 sos2 scont sint * 65 65 0 0 0 0 0 0 * FX 5 * * Nonzero counts * Total const NL DLL * 146 122 24 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,x56,x57,x58,x59,x60,x61,x62,x63,x64,objvar; Positive Variables x10,x11,x22,x25,x31,x34,x38,x45,x47,x48,x51,x54,x55,x56 ,x58,x59,x61,x62,x63,x64; 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; e1.. - x17 + x18 - x25 =E= 0; e2.. - x6 + x7 - x26 =E= 0; e3.. - x23 + x24 - x27 =E= 0; e4.. - x10 - x11 + x12 + x13 - x28 =E= 0; e5.. - x20 - x29 =E= 0; e6.. - x3 - x4 + x5 - x30 =E= 0; e7.. - x1 - x2 + x3 + x4 - x31 =E= 0; e8.. - x7 + x8 - x32 =E= 0; e9.. - x12 - x13 + x14 + x15 - x33 =E= 0; e10.. x6 - x34 =E= 0; e11.. - x19 + x20 - x35 =E= 0; e12.. - x16 + x17 - x36 =E= 0; e13.. - x24 - x37 =E= 0; e14.. - x9 - x18 + x19 - x38 =E= 0; e15.. - x22 + x23 - x39 =E= 0; e16.. x10 + x11 - x40 =E= 0; e17.. - x21 + x22 - x41 =E= 0; e18.. - x14 - x15 + x16 + x21 - x42 =E= 0; e19.. x1 + x2 - x43 =E= 0; e20.. - x5 - x8 + x9 - x44 =E= 0; e21.. SignPower(x1,2) + 8.99076279639866*x51 - 8.99076279639866*x63 =E= 0; e22.. SignPower(x2,2) + 8.99076279639866*x51 - 8.99076279639866*x63 =E= 0; e23.. SignPower(x3,2) + 5.99384186426577*x50 - 5.99384186426577*x51 =E= 0; e24.. SignPower(x4,2) + 5.99384186426577*x50 - 5.99384186426577*x51 =E= 0; e25.. SignPower(x5,2) - 1.38319427636902*x50 + 1.38319427636902*x64 =E= 0; e26.. SignPower(x6,2) + 0.0993769948466698*x46 - 0.0993769948466698*x54 =E= 0; e27.. SignPower(x7,2) - 0.147352095807131*x46 + 0.147352095807131*x52 =E= 0; e28.. SignPower(x8,2) - 0.224905830442463*x52 + 0.224905830442463*x64 =E= 0; e29.. SignPower(x9,2) + 0.653873657919902*x58 - 0.653873657919902*x64 =E= 0; e30.. SignPower(x12,2) - 1.79815255927973*x48 + 1.79815255927973*x53 =E= 0; e31.. SignPower(x13,2) - 0.0265962529480588*x48 + 0.0265962529480588*x53 =E= 0; e32.. SignPower(x14,2) - 1.43852204742379*x53 + 1.43852204742379*x62 =E= 0; e33.. SignPower(x15,2) - 0.021277002358447*x53 + 0.021277002358447*x62 =E= 0; e34.. SignPower(x16,2) + 0.856263123466539*x56 - 0.856263123466539*x62 =E= 0; e35.. SignPower(x17,2) + 0.899076279639866*x45 - 0.899076279639866*x56 =E= 0; e36.. SignPower(x18,2) - 7.19261023711893*x45 + 7.19261023711893*x58 =E= 0; e37.. SignPower(x19,2) + 3.59630511855946*x55 - 3.59630511855946*x58 =E= 0; e38.. SignPower(x20,2) + 1.43852204742379*x49 - 1.43852204742379*x55 =E= 0; e39.. SignPower(x21,2) + 0.0509935163731392*x61 - 0.0509935163731392*x62 =E= 0; e40.. SignPower(x23,2) + 0.0016882734118691*x47 - 0.0016882734118691*x59 =E= 0; e41.. SignPower(x24,2) - 0.0275751323938619*x47 + 0.0275751323938619*x57 =E= 0; e42.. -sqr(x10) + 7.19261023711893*x48 - 7.19261023711893*x60 =G= 0; e43.. -sqr(x11) + 0.106385011792235*x48 - 0.106385011792235*x60 =G= 0; e44.. -sqr(x22) + 0.0063634920908912*x59 - 0.0063634920908912*x61 =G= 0; e45.. - 2.28*x31 - 2.28*x34 - 1.68*x38 - 1.68*x40 - 2.28*x43 + objvar =E= 0; * set non-default bounds x25.up = 1.2; x26.up = -4.034; x27.up = -0.222; x28.fx = 0; x29.up = -15.616; x30.up = -3.918; x31.up = 8.4; x32.up = -5.256; x33.up = -6.385; x34.up = 4.8; x35.up = -6.848; x36.up = -2.12; x37.up = -1.919; x38.up = 0.96; x39.fx = 0; x40.lo = 20.344; x40.up = 22.012; x41.fx = 0; x42.fx = 0; x43.lo = 8.87; x43.up = 11.594; x44.fx = 0; x45.up = 4382.44; x46.lo = 900; x46.up = 6400; x47.up = 4382.44; x48.up = 4382.44; x49.lo = 2500; x49.up = 4382.44; x50.lo = 900; x50.up = 6400; x51.up = 5929; x52.lo = 900; x52.up = 6400; x53.lo = 900; x53.up = 4382.44; x54.up = 5929; x55.up = 4382.44; x56.up = 4382.44; x57.lo = 625; x57.up = 4382.44; x58.up = 4382.44; x59.up = 3969; x60.lo = 2500; x60.up = 4382.44; x61.up = 4382.44; x62.up = 4382.44; x63.up = 5929; x64.up = 6400; * set non-default levels x1.l = -0.656505736; x2.l = 0.686533416; x3.l = 0.100750712; x4.l = -0.397724192; x5.l = -0.415575766; x6.l = -0.551894266; x7.l = -0.300338992; x8.l = 0.712540694; x9.l = -0.865772554; x10.l = 0.000421337999999993; x11.l = 0.996235254; x12.l = 0.157466756; x13.l = 0.982266078; x14.l = 0.524500934; x15.l = -0.738615034; x16.l = 0.279437518; x17.l = -0.680964272; x18.l = -0.499838934; x19.l = 0.337857218; x20.l = -0.129287238; x21.l = -0.280599468; x23.l = -0.73701682; x24.l = -0.699796424; 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: 2024-12-17 Git hash: 8eaceb91