MINLPLib
A Library of Mixed-Integer and Continuous Nonlinear Programming Instances
Home // Instances // Documentation // Download // Statistics
Instance pooling_adhya3pq
PQ formulation of pooling problem. Explicitly added RLT constraints were removed from the original formulation of Alfaki and Haugland.
| Formatsⓘ | ams gms lp mod nl osil pip py | 
| Primal Bounds (infeas ≤ 1e-08)ⓘ | |
| Other points (infeas > 1e-08)ⓘ | |
| Dual Boundsⓘ | -561.04468810 (ANTIGONE) -561.04468810 (BARON) -561.04468760 (COUENNE) -561.04468880 (GUROBI) -561.04468760 (LINDO) -561.04468900 (SCIP)  | 
 
| Referencesⓘ | Adhya, Nilanjan, Tawarmalani, Mohit, and Sahinidis, Nikolaos V., A Lagrangian Approach to the Pooling Problem, Industrial & Engineering Chemistry Research, 38:5, 1999, 1956-1972. Alfaki, Mohammed and Haugland, Dag, Strong formulations for the pooling problem, Journal of Global Optimization, 56:3, 2013, 897-916.  | 
 
| Sourceⓘ | Adhya3.gms from Standard Pooling Problem Instances | 
| Applicationⓘ | Pooling problem | 
| Added to libraryⓘ | 12 Sep 2017 | 
| Problem typeⓘ | QCP | 
| #Variablesⓘ | 52 | 
| #Binary Variablesⓘ | 0 | 
| #Integer Variablesⓘ | 0 | 
| #Nonlinear Variablesⓘ | 20 | 
| #Nonlinear Binary Variablesⓘ | 0 | 
| #Nonlinear Integer Variablesⓘ | 0 | 
| Objective Senseⓘ | min | 
| Objective typeⓘ | linear | 
| Objective curvatureⓘ | linear | 
| #Nonzeros in Objectiveⓘ | 31 | 
| #Nonlinear Nonzeros in Objectiveⓘ | 0 | 
| #Constraintsⓘ | 74 | 
| #Linear Constraintsⓘ | 42 | 
| #Quadratic Constraintsⓘ | 32 | 
| #Polynomial Constraintsⓘ | 0 | 
| #Signomial Constraintsⓘ | 0 | 
| #General Nonlinear Constraintsⓘ | 0 | 
| Operands in Gen. Nonlin. Functionsⓘ | |
| Constraints curvatureⓘ | indefinite | 
| #Nonzeros in Jacobianⓘ | 378 | 
| #Nonlinear Nonzeros in Jacobianⓘ | 64 | 
| #Nonzeros in (Upper-Left) Hessian of Lagrangianⓘ | 64 | 
| #Nonzeros in Diagonal of Hessian of Lagrangianⓘ | 0 | 
| #Blocks in Hessian of Lagrangianⓘ | 3 | 
| Minimal blocksize in Hessian of Lagrangianⓘ | 6 | 
| Maximal blocksize in Hessian of Lagrangianⓘ | 7 | 
| Average blocksize in Hessian of Lagrangianⓘ | 6.666667 | 
| #Semicontinuitiesⓘ | 0 | 
| #Nonlinear Semicontinuitiesⓘ | 0 | 
| #SOS type 1ⓘ | 0 | 
| #SOS type 2ⓘ | 0 | 
| Minimal coefficientⓘ | 1.0000e-01 | 
| Maximal coefficientⓘ | 2.3000e+01 | 
| Infeasibility of initial pointⓘ | 1 | 
| Sparsity Jacobianⓘ | ![]()  | 
 
| Sparsity Hessian of Lagrangianⓘ | ![]()  | 
 
$offlisting
*  
*  Equation counts
*      Total        E        G        L        N        X        C        B
*         75       36        0       39        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*         53       53        0        0        0        0        0        0
*  FX      0
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        410      346       64        0
*
*  Solve m using NLP minimizing objvar;
Variables  objvar,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;
Positive Variables  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;
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;
e1..    objvar + 9*x22 + 18*x23 + 8*x24 + 3*x25 + 13*x26 + 22*x27 + 12*x28
      + 7*x29 + 14*x30 + 23*x31 + 13*x32 + 8*x33 + 6*x34 + 15*x35 + 5*x36
      + 11*x38 + 20*x39 + 10*x40 + 5*x41 + 11*x42 + 20*x43 + 10*x44 + 5*x45
      + 7*x46 + 16*x47 + 6*x48 + x49 + 5*x50 + 14*x51 + 4*x52 - x53 =E= 0;
e2..    x22 + x23 + x24 + x25 =L= 75;
e3..    x26 + x27 + x28 + x29 =L= 75;
e4..    x30 + x31 + x32 + x33 =L= 75;
e5..    x34 + x35 + x36 + x37 =L= 75;
e6..    x38 + x39 + x40 + x41 =L= 75;
e7..    x42 + x43 + x44 + x45 =L= 75;
e8..    x46 + x47 + x48 + x49 =L= 75;
e9..    x50 + x51 + x52 + x53 =L= 75;
e10..    x22 + x23 + x24 + x25 + x26 + x27 + x28 + x29 =L= 75;
e11..    x30 + x31 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40 + x41
       =L= 75;
e12..    x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53
       =L= 75;
e13..    x22 + x26 + x30 + x34 + x38 + x42 + x46 + x50 =L= 10;
e14..    x23 + x27 + x31 + x35 + x39 + x43 + x47 + x51 =L= 25;
e15..    x24 + x28 + x32 + x36 + x40 + x44 + x48 + x52 =L= 30;
e16..    x25 + x29 + x33 + x37 + x41 + x45 + x49 + x53 =L= 10;
e17..  - 2*x22 + x26 + x30 - 2*x38 - 1.2*x42 + 2*x46 =L= 0;
e18..    3*x22 - 2*x26 + 2.5*x30 - 0.3*x38 - 0.3*x42 - 2*x46 =L= 0;
e19..    0.75*x22 - 0.25*x26 - 0.25*x30 - 0.25*x34 + 0.75*x38 + 0.75*x42
       - 1.55*x46 - 0.25*x50 =L= 0;
e20..  - 0.25*x22 + 1.25*x26 + 0.15*x30 + 0.25*x34 + 0.85*x38 + 2.75*x42
       + 2.15*x46 + 0.25*x50 =L= 0;
e21..  - x22 - 2*x26 + x30 - 3*x34 - 3*x38 + 0.0999999999999996*x42 - 2.5*x46
       - x50 =L= 0;
e22..    4*x22 - x26 + 5*x30 - x34 + 2*x38 - 2*x42 - 2.1*x46 - 3*x50 =L= 0;
e23..  - 3*x23 - x35 - 3*x39 - 2.2*x43 + x47 - x51 =L= 0;
e24..    3.5*x23 - 1.5*x27 + 3*x31 + 0.5*x35 + 0.2*x39 + 0.2*x43 - 1.5*x47
       + 0.5*x51 =L= 0;
e25..    0.5*x23 - 0.5*x27 - 0.5*x31 - 0.5*x35 + 0.5*x39 + 0.5*x43 - 1.8*x47
       - 0.5*x51 =L= 0;
e26..  - x23 + 0.5*x27 - 0.6*x31 - 0.5*x35 + 0.1*x39 + 2*x43 + 1.4*x47
       - 0.5*x51 =L= 0;
e27..  - 2*x23 - 3*x27 - 4*x35 - 4*x39 - 0.9*x43 - 3.5*x47 - 2*x51 =L= 0;
e28..    3*x23 - 2*x27 + 4*x31 - 2*x35 + x39 - 3*x43 - 3.1*x47 - 4*x51 =L= 0;
e29..  - 0.5*x24 + 2.5*x28 + 2.5*x32 + 1.5*x36 - 0.5*x40 + 0.3*x44 + 3.5*x48
       + 1.5*x52 =L= 0;
e30..    0.5*x24 - 4.5*x28 - 2.5*x36 - 2.8*x40 - 2.8*x44 - 4.5*x48 - 2.5*x52
       =L= 0;
e31..    0.1*x24 - 0.9*x28 - 0.9*x32 - 0.9*x36 + 0.1*x40 + 0.1*x44 - 2.2*x48
       - 0.9*x52 =L= 0;
e32..  - 0.3*x24 + 1.2*x28 + 0.1*x32 + 0.2*x36 + 0.8*x40 + 2.7*x44 + 2.1*x48
       + 0.2*x52 =L= 0;
e33..  - 2*x24 - 3*x28 - 4*x36 - 4*x40 - 0.9*x44 - 3.5*x48 - 2*x52 =L= 0;
e34..    3*x24 - 2*x28 + 4*x32 - 2*x36 + x40 - 3*x44 - 3.1*x48 - 4*x52 =L= 0;
e35..  - 2*x25 + x29 + x33 - 2*x41 - 1.2*x45 + 2*x49 =L= 0;
e36..    2*x25 - 3*x29 + 1.5*x33 - x37 - 1.3*x41 - 1.3*x45 - 3*x49 - x53 =L= 0;
e37..  - x29 - x33 - x37 - 2.3*x49 - x53 =L= 0;
e38..  - 1.3*x25 + 0.2*x29 - 0.9*x33 - 0.8*x37 - 0.2*x41 + 1.7*x45 + 1.1*x49
       - 0.8*x53 =L= 0;
e39..  - x25 - 2*x29 + x33 - 3*x37 - 3*x41 + 0.0999999999999996*x45 - 2.5*x49
       - x53 =L= 0;
e40..    3*x25 - 2*x29 + 4*x33 - 2*x37 + x41 - 3*x45 - 3.1*x49 - 4*x53 =L= 0;
e41..    x2 + x3 =E= 1;
e42..    x4 + x5 + x6 =E= 1;
e43..    x7 + x8 + x9 =E= 1;
e44.. -x2*x10 + x22 =E= 0;
e45.. -x2*x11 + x23 =E= 0;
e46.. -x2*x12 + x24 =E= 0;
e47.. -x2*x13 + x25 =E= 0;
e48.. -x3*x10 + x26 =E= 0;
e49.. -x3*x11 + x27 =E= 0;
e50.. -x3*x12 + x28 =E= 0;
e51.. -x3*x13 + x29 =E= 0;
e52.. -x4*x14 + x30 =E= 0;
e53.. -x4*x15 + x31 =E= 0;
e54.. -x4*x16 + x32 =E= 0;
e55.. -x4*x17 + x33 =E= 0;
e56.. -x5*x14 + x34 =E= 0;
e57.. -x5*x15 + x35 =E= 0;
e58.. -x5*x16 + x36 =E= 0;
e59.. -x5*x17 + x37 =E= 0;
e60.. -x6*x14 + x38 =E= 0;
e61.. -x6*x15 + x39 =E= 0;
e62.. -x6*x16 + x40 =E= 0;
e63.. -x6*x17 + x41 =E= 0;
e64.. -x7*x18 + x42 =E= 0;
e65.. -x7*x19 + x43 =E= 0;
e66.. -x7*x20 + x44 =E= 0;
e67.. -x7*x21 + x45 =E= 0;
e68.. -x8*x18 + x46 =E= 0;
e69.. -x8*x19 + x47 =E= 0;
e70.. -x8*x20 + x48 =E= 0;
e71.. -x8*x21 + x49 =E= 0;
e72.. -x9*x18 + x50 =E= 0;
e73.. -x9*x19 + x51 =E= 0;
e74.. -x9*x20 + x52 =E= 0;
e75.. -x9*x21 + x53 =E= 0;
* set non-default bounds
x2.up = 1;
x3.up = 1;
x4.up = 1;
x5.up = 1;
x6.up = 1;
x7.up = 1;
x8.up = 1;
x9.up = 1;
x10.up = 10;
x11.up = 25;
x12.up = 30;
x13.up = 10;
x14.up = 10;
x15.up = 25;
x16.up = 30;
x17.up = 10;
x18.up = 10;
x19.up = 25;
x20.up = 30;
x21.up = 10;
x22.up = 10;
x23.up = 25;
x24.up = 30;
x25.up = 10;
x26.up = 10;
x27.up = 25;
x28.up = 30;
x29.up = 10;
x30.up = 10;
x31.up = 25;
x32.up = 30;
x33.up = 10;
x34.up = 10;
x35.up = 25;
x36.up = 30;
x37.up = 10;
x38.up = 10;
x39.up = 25;
x40.up = 30;
x41.up = 10;
x42.up = 10;
x43.up = 25;
x44.up = 30;
x45.up = 10;
x46.up = 10;
x47.up = 25;
x48.up = 30;
x49.up = 10;
x50.up = 10;
x51.up = 25;
x52.up = 30;
x53.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 NLP $set NLP NLP
Solve m using %NLP% minimizing objvar;
Last updated: 2025-08-07 Git hash: e62cedfc

