MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

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


Instance: bchoco06

Formats ams gms mod nl osil
Primal Bounds
0.96277644 p2 ( gdx sol )
(infeas: 8e-09)
Dual Bounds
0.99920775 (ANTIGONE)
0.98675900 (BARON)
0.96277650 (LINDO)
0.99914267 (SCIP)
References Chang, YoungJung and Sahinidis, N V, Stabilizing controller design and the Belgian chocolate problem, 2009.
Source bcp6.gms from minlp.org model 57
Application Belgian chocolate problem
Added to library 24 Sep 2013
Problem type MBNLP
#Variables 118
#Binary Variables 7
#Integer Variables 0
#Nonlinear Variables 64
#Nonlinear Binary Variables 1
#Nonlinear Integer Variables 0
Objective Sense max
Objective type linear
Objective curvature linear
#Nonzeros in Objective 1
#Nonlinear Nonzeros in Objective 0
#Constraints 134
#Linear Constraints 87
#Quadratic Constraints 8
#Polynomial Constraints 3
#Signomial Constraints 36
#General Nonlinear Constraints 0
Operands in Gen. Nonlin. Functions  
Constraints curvature indefinite
#Nonzeros in Jacobian 456
#Nonlinear Nonzeros in Jacobian 148
#Nonzeros in (Upper-Left) Hessian of Lagrangian 247
#Nonzeros in Diagonal of Hessian of Lagrangian 17
#Blocks in Hessian of Lagrangian 4
Minimal blocksize in Hessian of Lagrangian 8
Maximal blocksize in Hessian of Lagrangian 31
Average blocksize in Hessian of Lagrangian 16.0
#Semicontinuities 0
#Nonlinear Semicontinuities 0
#SOS type 1 0
#SOS type 2 0
Infeasibility of initial point 1e+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
*        135       97       10       28        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*        119      112        7        0        0        0        0        0
*  FX      1
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        458      310      148        0
*
*  Solve m using MINLP maximizing 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,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,b112,b113,b114,b115,b116
          ,b117,b118,objvar;

Positive Variables  x9,x10,x11,x12,x13,x14,x15,x32,x33,x34,x35,x36,x37,x38,x55
          ,x81;

Binary Variables  b112,b113,b114,b115,b116,b117,b118;

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,e122,e123,e124,e125,e126,e127,e128,e129
          ,e130,e131,e132,e133,e134,e135;


e1..  - x1 + objvar =E= 0;

e2..  - x9 + 0.001*b112 =L= 0;

e3..  - x10 + 0.001*b113 =L= 0;

e4..  - x11 + 0.001*b114 =L= 0;

e5..  - x12 + 0.001*b115 =L= 0;

e6..  - x13 + 0.001*b116 =L= 0;

e7..  - x14 + 0.001*b117 =L= 0;

e8..  - x15 + 0.001*b118 =L= 0;

e9..    x9 - 10*b112 =L= 0;

e10..    x10 - 10*b113 =L= 0;

e11..    x11 - 10*b114 =L= 0;

e12..    x12 - 10*b115 =L= 0;

e13..    x13 - 10*b116 =L= 0;

e14..    x14 - 10*b117 =L= 0;

e15..    x15 - 10*b118 =L= 0;

e16..  - x32 + 0.001*b112 =L= 0;

e17..  - x33 + 0.001*b113 =L= 0;

e18..  - x34 + 0.001*b114 =L= 0;

e19..  - x35 + 0.001*b115 =L= 0;

e20..  - x36 + 0.001*b116 =L= 0;

e21..  - x37 + 0.001*b117 =L= 0;

e22..  - x38 + 0.001*b118 =L= 0;

e23..    x32 - 10*b112 =L= 0;

e24..    x33 - 10*b113 =L= 0;

e25..    x34 - 10*b114 =L= 0;

e26..    x35 - 10*b115 =L= 0;

e27..    x36 - 10*b116 =L= 0;

e28..    x37 - 10*b117 =L= 0;

e29..    x38 - 10*b118 =L= 0;

e30..    b112 - b113 =G= 0;

e31..    b113 - b114 =G= 0;

e32..    b114 - b115 =G= 0;

e33..    b115 - b116 =G= 0;

e34..    b116 - b117 =G= 0;

e35..    b117 - b118 =G= 0;

e36..  - 100000000*x2 + 100000000*x9 + x16 =E= 0;

e37.. 20000000*x1*x2 - 10000000*x3 + 10000000*x10 + x17 =E= 0;

e38.. 2000000*x1*x3 - 1000000*x2 - 1000000*x4 - 1000000*x9 + 1000000*x11 + x18
       =E= 0;

e39.. 200000*x1*x4 - 100000*x3 - 100000*x5 - 100000*x10 + 100000*x12 + x19
       =E= 0;

e40.. 20000*x1*x5 - 10000*x4 - 10000*x6 - 10000*x11 + 10000*x13 + x20 =E= 0;

e41.. 2000*x1*x6 - 1000*x5 - 1000*x7 - 1000*x12 + 1000*x14 + x21 =E= 0;

e42.. 200*x1*x7 - 100*x6 - 100*x8 - 100*x13 + 100*x15 + x22 =E= 0;

e43.. 20*x1*x8 - 10*x7 - 10*x14 + x23 =E= 0;

e44..  - x8 - x15 + x24 =E= 0;

e45..  - x2 + 1E-5*x3 - 1E-10*x4 + x25 =E= 0;

e46..  - x3 + 2E-5*x4 - 3E-10*x5 + x26 =E= 0;

e47..  - x4 + 3E-5*x5 - 6E-10*x6 + x27 =E= 0;

e48..  - x5 + 4E-5*x6 - 1E-9*x7 + x28 =E= 0;

e49..  - x6 + 5E-5*x7 - 1.5E-9*x8 + x29 =E= 0;

e50..  - x7 + 6E-5*x8 + x30 =E= 0;

e51..  - x8 + x31 =E= 0;

e52..  - x9 + 1E-5*x10 - 1E-10*x11 + x32 =E= 0;

e53..  - x10 + 2E-5*x11 - 3E-10*x12 + x33 =E= 0;

e54..  - x11 + 3E-5*x12 - 6E-10*x13 + x34 =E= 0;

e55..  - x12 + 4E-5*x13 - 1E-9*x14 + x35 =E= 0;

e56..  - x13 + 5E-5*x14 - 1.5E-9*x15 + x36 =E= 0;

e57..  - x14 + 6E-5*x15 + x37 =E= 0;

e58..  - x15 + x38 =E= 0;

e59..  - x16 + 1E-5*x17 - 1E-10*x18 + x39 =E= 0;

e60..  - x17 + 2E-5*x18 - 3E-10*x19 + x40 =E= 0;

e61..  - x18 + 3E-5*x19 - 6E-10*x20 + x41 =E= 0;

e62..  - x19 + 4E-5*x20 - 1E-9*x21 + x42 =E= 0;

e63..  - x20 + 5E-5*x21 - 1.5E-9*x22 + x43 =E= 0;

e64..  - x21 + 6E-5*x22 - 2.1E-9*x23 + x44 =E= 0;

e65..  - x22 + 7E-5*x23 - 2.8E-9*x24 + x45 =E= 0;

e66..  - x23 + 8E-5*x24 + x46 =E= 0;

e67..  - x24 + x47 =E= 0;

e68..  - x31 + x48 =E= 0;

e69..  - x29 + x49 =E= 0;

e70..  - x27 + x50 =E= 0;

e71..  - x25 + x51 =E= 0;

e72..  - x30 + x52 =E= 0;

e73..  - x28 + x53 =E= 0;

e74..  - x26 + x54 =E= 0;

e75..    x55 =E= 0;

e76.. x48*x53/x52 - x49 + x56 =E= 0;

e77.. x48*x54/x52 - x50 + x57 =E= 0;

e78.. x48*x55/x52 - x51 + x58 =E= 0;

e79.. x52*x57/x56 - x53 + x60 =E= 0;

e80.. x52*x58/x56 - x54 + x61 =E= 0;

e81.. x52*x59/x56 - x55 + x62 =E= 0;

e82.. x56*x61/x60 - x57 + x64 =E= 0;

e83.. x56*x62/x60 - x58 + x65 =E= 0;

e84.. x56*x63/x60 - x59 + x66 =E= 0;

e85.. x60*x65/x64 - x61 + x68 =E= 0;

e86.. x60*x66/x64 - x62 + x69 =E= 0;

e87.. x60*x67/x64 - x63 + x70 =E= 0;

e88..    x59 =E= 0;

e89..    x63 =E= 0;

e90..    x67 =E= 0;

e91..    x71 =E= 0;

e92..  - x47 + x72 =E= 0;

e93..  - x45 + x73 =E= 0;

e94..  - x43 + x74 =E= 0;

e95..  - x41 + x75 =E= 0;

e96..  - x39 + x76 =E= 0;

e97..  - x46 + x77 =E= 0;

e98..  - x44 + x78 =E= 0;

e99..  - x42 + x79 =E= 0;

e100..  - x40 + x80 =E= 0;

e101..    x81 =E= 0;

e102.. x72*x78/x77 - x73 + x82 =E= 0;

e103.. x72*x79/x77 - x74 + x83 =E= 0;

e104.. x72*x80/x77 - x75 + x84 =E= 0;

e105.. x72*x81/x77 - x76 + x85 =E= 0;

e106.. x77*x83/x82 - x78 + x87 =E= 0;

e107.. x77*x84/x82 - x79 + x88 =E= 0;

e108.. x77*x85/x82 - x80 + x89 =E= 0;

e109.. x77*x86/x82 - x81 + x90 =E= 0;

e110.. x82*x88/x87 - x83 + x92 =E= 0;

e111.. x82*x89/x87 - x84 + x93 =E= 0;

e112.. x82*x90/x87 - x85 + x94 =E= 0;

e113.. x82*x91/x87 - x86 + x95 =E= 0;

e114.. x87*x93/x92 - x88 + x97 =E= 0;

e115.. x87*x94/x92 - x89 + x98 =E= 0;

e116.. x87*x95/x92 - x90 + x99 =E= 0;

e117.. x87*x96/x92 - x91 + x100 =E= 0;

e118.. x92*x98/x97 - x93 + x102 =E= 0;

e119.. x92*x99/x97 - x94 + x103 =E= 0;

e120.. x92*x100/x97 - x95 + x104 =E= 0;

e121.. x92*x101/x97 - x96 + x105 =E= 0;

e122.. x97*x103/x102 - x98 + x107 =E= 0;

e123.. x97*x104/x102 - x99 + x108 =E= 0;

e124.. x97*x105/x102 - x100 + x109 =E= 0;

e125.. x97*x106/x102 - x101 + x110 =E= 0;

e126..    x86 =E= 0;

e127..    x91 =E= 0;

e128..    x96 =E= 0;

e129..    x101 =E= 0;

e130..    x106 =E= 0;

e131..    x111 =E= 0;

e132.. x36*x37 - x35*x38 - 1E-5*b118 =G= 0;

e133.. x35*x36*x37 - x35*x35*x38 + x33*x37*x38 - x34*x37*x37 - 1E-5*b117 =G= 0;

e134.. x34*x35*x36*x37 - x35**2*x34*x38 - x34**2*x37**2 + 2*x33*x34*x37*x38 - 
       x33**2*x38**2 + x33*x35*x36*x38 - x36**2*x33*x37 + x32*x36*x37**2 - x32*
       x35*x37*x38 + (x34*x35 - x33*x36)*(1 - b117) - 1E-5*b116 =G= 0;

e135.. x33*x34*x35*x36*x37 - x33*x34*x35**2*x38 + 2*x33**2*x34*x37*x38 - x34**2
       *x33*x37**2 - x33**3*x38**2 + x33**2*x35*x36*x38 - x33**2*x36**2*x37 - 3
       *x32*x33*x35*x37*x38 + x35**3*x32*x38 - x35**2*x32*x36*x37 + x32*x34*x35
       *x37**2 + 2*x32*x33*x36*x37**2 - x32**2*x37**3 + (x33*x34*x35 - x33**2*
       x36 - x35**2*x32)*(1 - b117) - 1E-5*b115 =G= 0;

* set non-default bounds
x1.lo = 0.95; x1.up = 1;
x2.lo = 0.001; x2.up = 10;
x3.lo = 0.001; x3.up = 10;
x4.lo = 0.001; x4.up = 10;
x5.lo = 0.001; x5.up = 10;
x6.lo = 0.001; x6.up = 10;
x7.lo = 0.001; x7.up = 10;
x8.lo = 0.001; x8.up = 10;
x16.lo = 0.001; x16.up = 10;
x17.lo = 0.001; x17.up = 10;
x18.lo = 0.001; x18.up = 10;
x19.lo = 0.001; x19.up = 10;
x20.lo = 0.001; x20.up = 10;
x21.lo = 0.001; x21.up = 10;
x22.lo = 0.001; x22.up = 10;
x23.lo = 0.001; x23.up = 10;
x24.lo = 0.001; x24.up = 10;
x25.lo = 0.001; x25.up = 10;
x26.lo = 0.001; x26.up = 10;
x27.lo = 0.001; x27.up = 10;
x28.lo = 0.001; x28.up = 10;
x29.lo = 0.001; x29.up = 10;
x30.lo = 0.001; x30.up = 10;
x31.lo = 0.001; x31.up = 10;
x39.lo = 0.001; x39.up = 10;
x40.lo = 0.001; x40.up = 10;
x41.lo = 0.001; x41.up = 10;
x42.lo = 0.001; x42.up = 10;
x43.lo = 0.001; x43.up = 10;
x44.lo = 0.001; x44.up = 10;
x45.lo = 0.001; x45.up = 10;
x46.lo = 0.001; x46.up = 10;
x47.lo = 0.001; x47.up = 10;
x48.lo = 0.001; x48.up = 10;
x49.lo = 0.001; x49.up = 10;
x50.lo = 0.001; x50.up = 10;
x51.lo = 0.001; x51.up = 10;
x52.lo = 0.001; x52.up = 10;
x53.lo = 0.001; x53.up = 10;
x54.lo = 0.001; x54.up = 10;
x55.up = 10;
x56.lo = 1E-5; x56.up = 10;
x57.lo = -10; x57.up = 10;
x58.lo = -10; x58.up = 10;
x59.lo = -10; x59.up = 10;
x60.lo = 1E-5; x60.up = 10;
x61.lo = -10; x61.up = 10;
x62.lo = -10; x62.up = 10;
x63.lo = -10; x63.up = 10;
x64.lo = 1E-5; x64.up = 10;
x65.lo = -10; x65.up = 10;
x66.lo = -10; x66.up = 10;
x67.lo = -10; x67.up = 10;
x68.lo = 1E-5; x68.up = 10;
x69.lo = -10; x69.up = 10;
x70.lo = -10; x70.up = 10;
x71.lo = -10; x71.up = 10;
x72.lo = 0.001; x72.up = 10;
x73.lo = 0.001; x73.up = 10;
x74.lo = 0.001; x74.up = 10;
x75.lo = 0.001; x75.up = 10;
x76.lo = 0.001; x76.up = 10;
x77.lo = 0.001; x77.up = 10;
x78.lo = 0.001; x78.up = 10;
x79.lo = 0.001; x79.up = 10;
x80.lo = 0.001; x80.up = 10;
x81.up = 10;
x82.lo = 1E-5; x82.up = 10;
x83.lo = -10; x83.up = 10;
x84.lo = -10; x84.up = 10;
x85.lo = -10; x85.up = 10;
x86.lo = -10; x86.up = 10;
x87.lo = 1E-5; x87.up = 10;
x88.lo = -10; x88.up = 10;
x89.lo = -10; x89.up = 10;
x90.lo = -10; x90.up = 10;
x91.lo = -10; x91.up = 10;
x92.lo = 1E-5; x92.up = 10;
x93.lo = -10; x93.up = 10;
x94.lo = -10; x94.up = 10;
x95.lo = -10; x95.up = 10;
x96.lo = -10; x96.up = 10;
x97.lo = 1E-5; x97.up = 10;
x98.lo = -10; x98.up = 10;
x99.lo = -10; x99.up = 10;
x100.lo = -10; x100.up = 10;
x101.lo = -10; x101.up = 10;
x102.lo = 1E-5; x102.up = 10;
x103.lo = -10; x103.up = 10;
x104.lo = -10; x104.up = 10;
x105.lo = -10; x105.up = 10;
x106.lo = -10; x106.up = 10;
x107.lo = 1E-5; x107.up = 10;
x108.lo = -10; x108.up = 10;
x109.lo = -10; x109.up = 10;
x110.lo = -10; x110.up = 10;
x111.lo = -10; x111.up = 10;
b112.fx = 1;

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% maximizing objvar;


Last updated: 2018-08-07 Git hash: fccdb193
Imprint / Privacy Policy