MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

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


Instance heatexch_gen1

Formats ams gms mod nl osil py
Primal Bounds (infeas ≤ 1e-08)
197729.43240000 p1 ( gdx sol )
(infeas: 2e-12)
160899.85690000 p3 ( gdx sol )
(infeas: 2e-12)
154895.93300000 p4 ( gdx sol )
(infeas: 5e-12)
Other points (infeas > 1e-08)
154895.93300000 p2 ( gdx sol )
(infeas: 2e-08)
140081.39070000 p5 ( gdx sol )
(infeas: 8e-08)
Dual Bounds
106031.21900000 (ANTIGONE)
100552.19310000 (BARON)
100500.00050000 (COUENNE)
107976.12280000 (LINDO)
100500.00000000 (SCIP)
100500.00000000 (SHOT)
References Escobar, Marcelo and Grossmann, I E, Mixed-Integer Nonlinear Programming Models for Optimal Simultaneous Synthesis of Heat Exchangers Network, 2010.
Source General_Model_Case1.gms from minlp.org model 93
Application Heat Exchanger Network
Added to library 25 Sep 2013
Problem type MBNLP
#Variables 112
#Binary Variables 12
#Integer Variables 0
#Nonlinear Variables 80
#Nonlinear Binary Variables 0
#Nonlinear Integer Variables 0
Objective Sense min
Objective type linear
Objective curvature linear
#Nonzeros in Objective 32
#Nonlinear Nonzeros in Objective 0
#Constraints 120
#Linear Constraints 72
#Quadratic Constraints 24
#Polynomial Constraints 0
#Signomial Constraints 0
#General Nonlinear Constraints 24
Operands in Gen. Nonlin. Functions div log
Constraints curvature indefinite
#Nonzeros in Jacobian 368
#Nonlinear Nonzeros in Jacobian 124
#Nonzeros in (Upper-Left) Hessian of Lagrangian 132
#Nonzeros in Diagonal of Hessian of Lagrangian 28
#Blocks in Hessian of Lagrangian 28
Minimal blocksize in Hessian of Lagrangian 1
Maximal blocksize in Hessian of Lagrangian 5
Average blocksize in Hessian of Lagrangian 2.857143
#Semicontinuities 0
#Nonlinear Semicontinuities 0
#SOS type 1 0
#SOS type 2 0
Minimal coefficient 1.0000e-06
Maximal coefficient 5.5000e+03
Infeasibility of initial point 7.2e+05
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
*        121       77       12       32        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*        113      101       12        0        0        0        0        0
*  FX      0
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        401      277      124        0
*
*  Solve m using MINLP minimizing objvar;


Variables  b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,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,x65,x66,x67,x68,x69,x70
          ,x71,x72,x73,x74,x75,x76,x77,x78,x79,x80,x81,x82,x83,x84,x85,x86,x87
          ,x88,x89,x90,x91,x92,x93,x94,x95,x96,x97,x98,x99,x100,x101,x102,x103
          ,x104,x105,x106,x107,x108,x109,x110,x111,x112,objvar;

Positive Variables  x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x53,x54
          ,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64,x65,x66,x67,x68,x85,x86,x87
          ,x88,x89,x90,x91,x92,x93,x94,x95,x96,x97,x98,x99,x100,x101,x102,x103
          ,x104,x105,x106,x107,x108,x109,x110,x111,x112;

Binary Variables  b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12;

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,e85,e86,e87
          ,e88,e89,e90,e91,e92,e93,e94,e95,e96,e97,e98,e99,e100,e101,e102,e103
          ,e104,e105,e106,e107,e108,e109,e110,e111,e112,e113,e114,e115,e116
          ,e117,e118,e119,e120,e121;


e1..    10*x13 - 10*x14 - x25 - x27 =E= 0;

e2..    10*x14 - 10*x15 - x26 - x28 =E= 0;

e3..    20*x16 - 20*x17 - x29 - x31 =E= 0;

e4..    20*x17 - 20*x18 - x30 - x32 =E= 0;

e5..    15*x19 - 15*x20 - x25 - x29 =E= 0;

e6..    15*x20 - 15*x21 - x26 - x30 =E= 0;

e7..    13*x22 - 13*x23 - x27 - x31 =E= 0;

e8..    13*x23 - 13*x24 - x28 - x32 =E= 0;

e9..    10*x15 - x33 =E= 3700;

e10..    20*x18 - x34 =E= 7400;

e11..  - x25 - x26 - x27 - x28 - x33 =E= -2800;

e12..  - x29 - x30 - x31 - x32 - x34 =E= -4400;

e13..  - 15*x19 - x35 =E= -9750;

e14..  - 13*x22 - x36 =E= -6500;

e15..  - x25 - x26 - x29 - x30 - x35 =E= -3600;

e16..  - x27 - x28 - x31 - x32 - x36 =E= -1950;

e17..    x13 - x14 =G= 0;

e18..    x14 - x15 =G= 0;

e19..    x16 - x17 =G= 0;

e20..    x17 - x18 =G= 0;

e21..    x19 - x20 =G= 0;

e22..    x20 - x21 =G= 0;

e23..    x22 - x23 =G= 0;

e24..    x23 - x24 =G= 0;

e25..    x15 =G= 370;

e26..    x18 =G= 370;

e27..  - x19 =G= -650;

e28..  - x22 =G= -500;

e29..  - x13 =E= -650;

e30..  - x16 =E= -590;

e31..  - x21 =E= -410;

e32..  - x24 =E= -350;

e33..  - x53 - x55 =E= -10;

e34..  - x54 - x56 =E= -10;

e35..  - x57 - x59 =E= -20;

e36..  - x58 - x60 =E= -20;

e37..  - x61 - x65 =E= -15;

e38..  - x62 - x66 =E= -15;

e39..  - x63 - x67 =E= -13;

e40..  - x64 - x68 =E= -13;

e41.. -x53*(x13 - x69) + x25 =E= 0;

e42.. -x54*(x14 - x70) + x26 =E= 0;

e43.. -x55*(x13 - x71) + x27 =E= 0;

e44.. -x56*(x14 - x72) + x28 =E= 0;

e45.. -x57*(x16 - x73) + x29 =E= 0;

e46.. -x58*(x17 - x74) + x30 =E= 0;

e47.. -x59*(x16 - x75) + x31 =E= 0;

e48.. -x60*(x17 - x76) + x32 =E= 0;

e49.. -x61*(x77 - x20) + x25 =E= 0;

e50.. -x62*(x78 - x21) + x26 =E= 0;

e51.. -x63*(x79 - x23) + x27 =E= 0;

e52.. -x64*(x80 - x24) + x28 =E= 0;

e53.. -x65*(x81 - x20) + x29 =E= 0;

e54.. -x66*(x82 - x21) + x30 =E= 0;

e55.. -x67*(x83 - x23) + x31 =E= 0;

e56.. -x68*(x84 - x24) + x32 =E= 0;

e57.. -(x53*x69 + x55*x71) + 10*x14 =E= 0;

e58.. -(x54*x70 + x56*x72) + 10*x15 =E= 0;

e59.. -(x57*x73 + x59*x75) + 20*x17 =E= 0;

e60.. -(x58*x74 + x60*x76) + 20*x18 =E= 0;

e61.. -(x61*x77 + x65*x81) + 15*x19 =E= 0;

e62.. -(x62*x78 + x66*x82) + 15*x20 =E= 0;

e63.. -(x63*x79 + x67*x83) + 13*x22 =E= 0;

e64.. -(x64*x80 + x68*x84) + 13*x23 =E= 0;

e65.. -(x37 - x38)/log(x37/(1e-6 + x38)) + x85 =E= 0;

e66.. -(x38 - x39)/log(x38/(1e-6 + x39)) + x86 =E= 0;

e67.. -(x40 - x41)/log(x40/(1e-6 + x41)) + x87 =E= 0;

e68.. -(x41 - x42)/log(x41/(1e-6 + x42)) + x88 =E= 0;

e69.. -(x43 - x44)/log(x43/(1e-6 + x44)) + x89 =E= 0;

e70.. -(x44 - x45)/log(x44/(1e-6 + x45)) + x90 =E= 0;

e71.. -(x46 - x47)/log(x46/(1e-6 + x47)) + x91 =E= 0;

e72.. -(x47 - x48)/log(x47/(1e-6 + x48)) + x92 =E= 0;

e73.. -2*x25/(0.01 + x85) + x97 =E= 0;

e74.. -2*x26/(0.01 + x86) + x98 =E= 0;

e75.. -2*x27/(0.01 + x87) + x100 =E= 0;

e76.. -2*x28/(0.01 + x88) + x101 =E= 0;

e77.. -2*x29/(0.01 + x89) + x103 =E= 0;

e78.. -2*x30/(0.01 + x90) + x104 =E= 0;

e79.. -2*x31/(0.01 + x91) + x106 =E= 0;

e80.. -2*x32/(0.01 + x92) + x107 =E= 0;

e81.. -(-70 + x49)/log(0.0142857140816327*x49) + x93 =E= 0;

e82.. -(-70 + x50)/log(0.0142857140816327*x50) + x94 =E= 0;

e83.. -(-30 + x51)/log(0.0333333322222223*x51) + x95 =E= 0;

e84.. -(-180 + x52)/log(0.00555555552469136*x52) + x96 =E= 0;

e85.. -2*x33/(0.01 + x93) + x109 =E= 0;

e86.. -2*x34/(0.01 + x94) + x110 =E= 0;

e87.. -1.2*x35/(0.01 + x95) + x111 =E= 0;

e88.. -1.2*x36/(0.01 + x96) + x112 =E= 0;

e89..  - 2800*b1 + x25 =L= 0;

e90..  - 2800*b2 + x26 =L= 0;

e91..  - 1950*b3 + x27 =L= 0;

e92..  - 1950*b4 + x28 =L= 0;

e93..  - 3600*b5 + x29 =L= 0;

e94..  - 3600*b6 + x30 =L= 0;

e95..  - 1950*b7 + x31 =L= 0;

e96..  - 1950*b8 + x32 =L= 0;

e97..  - 3600*b11 + x35 =L= 0;

e98..  - 1950*b12 + x36 =L= 0;

e99..  - 2800*b9 + x33 =L= 0;

e100..  - 4400*b10 + x34 =L= 0;

e101..    280*b1 - x13 + x19 + x37 =L= 280;

e102..    280*b2 - x14 + x20 + x38 =L= 280;

e103..    130*b3 - x13 + x22 + x40 =L= 130;

e104..    130*b4 - x14 + x23 + x41 =L= 130;

e105..    280*b5 - x16 + x19 + x43 =L= 280;

e106..    280*b6 - x17 + x20 + x44 =L= 280;

e107..    130*b7 - x16 + x22 + x46 =L= 130;

e108..    130*b8 - x17 + x23 + x47 =L= 130;

e109..    280*b1 - x14 + x20 + x38 =L= 280;

e110..    280*b2 - x15 + x21 + x39 =L= 280;

e111..    130*b3 - x14 + x23 + x41 =L= 130;

e112..    130*b4 - x15 + x24 + x42 =L= 130;

e113..    280*b5 - x17 + x20 + x44 =L= 280;

e114..    280*b6 - x18 + x21 + x45 =L= 280;

e115..    130*b7 - x17 + x23 + x47 =L= 130;

e116..    130*b8 - x18 + x24 + x48 =L= 130;

e117..  - x15 + x49 =L= -320;

e118..  - x18 + x50 =L= -320;

e119..    x19 + x51 =L= 680;

e120..    x22 + x52 =L= 680;

e121..  - 5500*b1 - 5500*b2 - 5500*b3 - 5500*b4 - 5500*b5 - 5500*b6 - 5500*b7
        - 5500*b8 - 5500*b9 - 5500*b10 - 5500*b11 - 5500*b12 - 15*x33 - 15*x34
        - 80*x35 - 80*x36 - 150*x97 - 150*x98 - 150*x99 - 150*x100 - 150*x101
        - 150*x102 - 150*x103 - 150*x104 - 150*x105 - 150*x106 - 150*x107
        - 150*x108 - 150*x109 - 150*x110 - 150*x111 - 150*x112 + objvar =E= 0;

* set non-default bounds
x13.lo = 370; x13.up = 650;
x14.lo = 370; x14.up = 650;
x15.lo = 370; x15.up = 650;
x16.lo = 370; x16.up = 590;
x17.lo = 370; x17.up = 590;
x18.lo = 370; x18.up = 590;
x19.lo = 410; x19.up = 650;
x20.lo = 410; x20.up = 650;
x21.lo = 410; x21.up = 650;
x22.lo = 350; x22.up = 500;
x23.lo = 350; x23.up = 500;
x24.lo = 350; x24.up = 500;
x37.lo = 10;
x38.lo = 10;
x39.lo = 10;
x40.lo = 10;
x41.lo = 10;
x42.lo = 10;
x43.lo = 10;
x44.lo = 10;
x45.lo = 10;
x46.lo = 10;
x47.lo = 10;
x48.lo = 10;
x49.lo = 10;
x50.lo = 10;
x51.lo = 10;
x52.lo = 10;
x53.up = 10;
x54.up = 10;
x55.up = 10;
x56.up = 10;
x57.up = 20;
x58.up = 20;
x59.up = 20;
x60.up = 20;
x61.up = 15;
x62.up = 15;
x63.up = 13;
x64.up = 13;
x65.up = 15;
x66.up = 15;
x67.up = 13;
x68.up = 13;
x69.lo = 370; x69.up = 650;
x70.lo = 370; x70.up = 650;
x71.lo = 370; x71.up = 650;
x72.lo = 370; x72.up = 650;
x73.lo = 370; x73.up = 590;
x74.lo = 370; x74.up = 590;
x75.lo = 370; x75.up = 590;
x76.lo = 370; x76.up = 590;
x77.lo = 410; x77.up = 650;
x78.lo = 410; x78.up = 650;
x79.lo = 350; x79.up = 500;
x80.lo = 350; x80.up = 500;
x81.lo = 410; x81.up = 650;
x82.lo = 410; x82.up = 650;
x83.lo = 350; x83.up = 500;
x84.lo = 350; x84.up = 500;

* set non-default levels
x13.l = 650;
x14.l = 650;
x15.l = 650;
x16.l = 590;
x17.l = 590;
x18.l = 590;
x25.l = 2800;
x26.l = 2800;
x27.l = 1950;
x28.l = 1950;
x29.l = 3600;
x30.l = 3600;
x31.l = 1950;
x32.l = 1950;
x37.l = 240;
x38.l = 240;
x39.l = 240;
x40.l = 300;
x41.l = 300;
x42.l = 300;
x43.l = 180;
x44.l = 180;
x45.l = 180;
x46.l = 240;
x47.l = 240;
x48.l = 240;
x49.l = 330;
x50.l = 270;
x51.l = 270;
x52.l = 330;
x53.l = 10;
x54.l = 10;
x55.l = 10;
x56.l = 10;
x57.l = 20;
x58.l = 20;
x59.l = 20;
x60.l = 20;
x61.l = 15;
x62.l = 15;
x63.l = 13;
x64.l = 13;
x65.l = 15;
x66.l = 15;
x67.l = 13;
x68.l = 13;
x69.l = 650;
x70.l = 650;
x71.l = 650;
x72.l = 650;
x73.l = 590;
x74.l = 590;
x75.l = 590;
x76.l = 590;

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-03-25 Git hash: 1dae024f
Imprint / Privacy Policy / License: CC-BY 4.0