MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

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


Removed Instance bchoco07

Formatsⓘ ams gms mod nl osil py
Primal Bounds (infeas ≤ 1e-08)ⓘ
0.96299244 p1 ( gdx sol )
(infeas: 2e-09)
Other points (infeas > 1e-08)ⓘ  
Dual Boundsⓘ
0.98170728 (ANTIGONE)
0.99775911 (BARON)
0.98078389 (COUENNE)
0.96299244 (LINDO)
0.99996781 (SCIP)
1. (SHOT)
Referencesⓘ Chang, YoungJung and Sahinidis, N V, Stabilizing controller design and the Belgian chocolate problem, 2009.
Sourceⓘ bcp7.gms from minlp.org model 57
Applicationⓘ Belgian chocolate problem
Added to libraryⓘ 24 Sep 2013
Removed from libraryⓘ 01 Mar 2022
Removed becauseⓘ Numerically difficult formulation (coefficient of order 1E-10 and 1E9)
Problem typeⓘ MBNLP
#Variablesⓘ 134
#Binary Variablesⓘ 8
#Integer Variablesⓘ 0
#Nonlinear Variablesⓘ 76
#Nonlinear Binary Variablesⓘ 2
#Nonlinear Integer Variablesⓘ 0
Objective Senseⓘ max
Objective typeⓘ linear
Objective curvatureⓘ linear
#Nonzeros in Objectiveⓘ 1
#Nonlinear Nonzeros in Objectiveⓘ 0
#Constraintsⓘ 153
#Linear Constraintsⓘ 97
#Quadratic Constraintsⓘ 9
#Polynomial Constraintsⓘ 4
#Signomial Constraintsⓘ 43
#General Nonlinear Constraintsⓘ 0
Operands in Gen. Nonlin. Functionsⓘ  
Constraints curvatureⓘ indefinite
#Nonzeros in Jacobianⓘ 537
#Nonlinear Nonzeros in Jacobianⓘ 183
#Nonzeros in (Upper-Left) Hessian of Lagrangianⓘ 308
#Nonzeros in Diagonal of Hessian of Lagrangianⓘ 20
#Blocks in Hessian of Lagrangianⓘ 4
Minimal blocksize in Hessian of Lagrangianⓘ 9
Maximal blocksize in Hessian of Lagrangianⓘ 36
Average blocksize in Hessian of Lagrangianⓘ 19.0
#Semicontinuitiesⓘ 0
#Nonlinear Semicontinuitiesⓘ 0
#SOS type 1ⓘ 0
#SOS type 2ⓘ 0
Minimal coefficientⓘ 1.0000e-10
Maximal coefficientⓘ 1.0000e+09
Infeasibility of initial pointⓘ 1e+06
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
*        154      110       12       32        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*        135      127        8        0        0        0        0        0
*  FX      1
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        539      356      183        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,x112,x113,x114,x115,x116
          ,x117,x118,x119,x120,x121,x122,x123,x124,x125,x126,b127,b128,b129
          ,b130,b131,b132,b133,b134,objvar;

Positive Variables  x10,x11,x12,x13,x14,x15,x16,x17,x36,x37,x38,x39,x40,x41
          ,x42,x43;

Binary Variables  b127,b128,b129,b130,b131,b132,b133,b134;

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,e136,e137,e138,e139,e140,e141,e142
          ,e143,e144,e145,e146,e147,e148,e149,e150,e151,e152,e153,e154;


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

e2..  - x10 + 0.001*b127 =L= 0;

e3..  - x11 + 0.001*b128 =L= 0;

e4..  - x12 + 0.001*b129 =L= 0;

e5..  - x13 + 0.001*b130 =L= 0;

e6..  - x14 + 0.001*b131 =L= 0;

e7..  - x15 + 0.001*b132 =L= 0;

e8..  - x16 + 0.001*b133 =L= 0;

e9..  - x17 + 0.001*b134 =L= 0;

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

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

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

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

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

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

e16..    x16 - 10*b133 =L= 0;

e17..    x17 - 10*b134 =L= 0;

e18..  - x36 + 0.001*b127 =L= 0;

e19..  - x37 + 0.001*b128 =L= 0;

e20..  - x38 + 0.001*b129 =L= 0;

e21..  - x39 + 0.001*b130 =L= 0;

e22..  - x40 + 0.001*b131 =L= 0;

e23..  - x41 + 0.001*b132 =L= 0;

e24..  - x42 + 0.001*b133 =L= 0;

e25..  - x43 + 0.001*b134 =L= 0;

e26..    x36 - 10*b127 =L= 0;

e27..    x37 - 10*b128 =L= 0;

e28..    x38 - 10*b129 =L= 0;

e29..    x39 - 10*b130 =L= 0;

e30..    x40 - 10*b131 =L= 0;

e31..    x41 - 10*b132 =L= 0;

e32..    x42 - 10*b133 =L= 0;

e33..    x43 - 10*b134 =L= 0;

e34..    b127 - b128 =G= 0;

e35..    b128 - b129 =G= 0;

e36..    b129 - b130 =G= 0;

e37..    b130 - b131 =G= 0;

e38..    b131 - b132 =G= 0;

e39..    b132 - b133 =G= 0;

e40..    b133 - b134 =G= 0;

e41..  - 1000000000*x2 + 1000000000*x10 + x18 =E= 0;

e42.. 200000000*x1*x2 - 100000000*x3 + 100000000*x11 + x19 =E= 0;

e43.. 20000000*x1*x3 - 10000000*x2 - 10000000*x4 - 10000000*x10 + 10000000*x12
       + x20 =E= 0;

e44.. 2000000*x1*x4 - 1000000*x3 - 1000000*x5 - 1000000*x11 + 1000000*x13 + x21
       =E= 0;

e45.. 200000*x1*x5 - 100000*x4 - 100000*x6 - 100000*x12 + 100000*x14 + x22
       =E= 0;

e46.. 20000*x1*x6 - 10000*x5 - 10000*x7 - 10000*x13 + 10000*x15 + x23 =E= 0;

e47.. 2000*x1*x7 - 1000*x6 - 1000*x8 - 1000*x14 + 1000*x16 + x24 =E= 0;

e48.. 200*x1*x8 - 100*x7 - 100*x9 - 100*x15 + 100*x17 + x25 =E= 0;

e49.. 20*x1*x9 - 10*x8 - 10*x16 + x26 =E= 0;

e50..  - x9 - x17 + x27 =E= 0;

e51..  - x2 + 1E-5*x3 - 1E-10*x4 + x28 =E= 0;

e52..  - x3 + 2E-5*x4 - 3E-10*x5 + x29 =E= 0;

e53..  - x4 + 3E-5*x5 - 6E-10*x6 + x30 =E= 0;

e54..  - x5 + 4E-5*x6 - 1E-9*x7 + x31 =E= 0;

e55..  - x6 + 5E-5*x7 - 1.5E-9*x8 + x32 =E= 0;

e56..  - x7 + 6E-5*x8 - 2.1E-9*x9 + x33 =E= 0;

e57..  - x8 + 7E-5*x9 + x34 =E= 0;

e58..  - x9 + x35 =E= 0;

e59..  - x10 + 1E-5*x11 - 1E-10*x12 + x36 =E= 0;

e60..  - x11 + 2E-5*x12 - 3E-10*x13 + x37 =E= 0;

e61..  - x12 + 3E-5*x13 - 6E-10*x14 + x38 =E= 0;

e62..  - x13 + 4E-5*x14 - 1E-9*x15 + x39 =E= 0;

e63..  - x14 + 5E-5*x15 - 1.5E-9*x16 + x40 =E= 0;

e64..  - x15 + 6E-5*x16 - 2.1E-9*x17 + x41 =E= 0;

e65..  - x16 + 7E-5*x17 + x42 =E= 0;

e66..  - x17 + x43 =E= 0;

e67..  - x18 + 1E-5*x19 - 1E-10*x20 + x44 =E= 0;

e68..  - x19 + 2E-5*x20 - 3E-10*x21 + x45 =E= 0;

e69..  - x20 + 3E-5*x21 - 6E-10*x22 + x46 =E= 0;

e70..  - x21 + 4E-5*x22 - 1E-9*x23 + x47 =E= 0;

e71..  - x22 + 5E-5*x23 - 1.5E-9*x24 + x48 =E= 0;

e72..  - x23 + 6E-5*x24 - 2.1E-9*x25 + x49 =E= 0;

e73..  - x24 + 7E-5*x25 - 2.8E-9*x26 + x50 =E= 0;

e74..  - x25 + 8E-5*x26 - 3.6E-9*x27 + x51 =E= 0;

e75..  - x26 + 9E-5*x27 + x52 =E= 0;

e76..  - x27 + x53 =E= 0;

e77..  - x35 + x54 =E= 0;

e78..  - x33 + x55 =E= 0;

e79..  - x31 + x56 =E= 0;

e80..  - x29 + x57 =E= 0;

e81..  - x34 + x58 =E= 0;

e82..  - x32 + x59 =E= 0;

e83..  - x30 + x60 =E= 0;

e84..  - x28 + x61 =E= 0;

e85.. x54*x59/x58 - x55 + x62 =E= 0;

e86.. x54*x60/x58 - x56 + x63 =E= 0;

e87.. x54*x61/x58 - x57 + x64 =E= 0;

e88.. x58*x63/x62 - x59 + x66 =E= 0;

e89.. x58*x64/x62 - x60 + x67 =E= 0;

e90.. x58*x65/x62 - x61 + x68 =E= 0;

e91.. x62*x67/x66 - x63 + x70 =E= 0;

e92.. x62*x68/x66 - x64 + x71 =E= 0;

e93.. x62*x69/x66 - x65 + x72 =E= 0;

e94.. x66*x71/x70 - x67 + x74 =E= 0;

e95.. x66*x72/x70 - x68 + x75 =E= 0;

e96.. x66*x73/x70 - x69 + x76 =E= 0;

e97.. x70*x75/x74 - x71 + x78 =E= 0;

e98.. x70*x76/x74 - x72 + x79 =E= 0;

e99.. x70*x77/x74 - x73 + x80 =E= 0;

e100..    x65 =E= 0;

e101..    x69 =E= 0;

e102..    x73 =E= 0;

e103..    x77 =E= 0;

e104..    x81 =E= 0;

e105..  - x53 + x82 =E= 0;

e106..  - x51 + x83 =E= 0;

e107..  - x49 + x84 =E= 0;

e108..  - x47 + x85 =E= 0;

e109..  - x45 + x86 =E= 0;

e110..  - x52 + x87 =E= 0;

e111..  - x50 + x88 =E= 0;

e112..  - x48 + x89 =E= 0;

e113..  - x46 + x90 =E= 0;

e114..  - x44 + x91 =E= 0;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

e131.. x102*x108/x107 - x103 + x112 =E= 0;

e132.. x102*x109/x107 - x104 + x113 =E= 0;

e133.. x102*x110/x107 - x105 + x114 =E= 0;

e134.. x102*x111/x107 - x106 + x115 =E= 0;

e135.. x107*x113/x112 - x108 + x117 =E= 0;

e136.. x107*x114/x112 - x109 + x118 =E= 0;

e137.. x107*x115/x112 - x110 + x119 =E= 0;

e138.. x107*x116/x112 - x111 + x120 =E= 0;

e139.. x112*x118/x117 - x113 + x122 =E= 0;

e140.. x112*x119/x117 - x114 + x123 =E= 0;

e141.. x112*x120/x117 - x115 + x124 =E= 0;

e142.. x112*x121/x117 - x116 + x125 =E= 0;

e143..    x96 =E= 0;

e144..    x101 =E= 0;

e145..    x106 =E= 0;

e146..    x111 =E= 0;

e147..    x116 =E= 0;

e148..    x121 =E= 0;

e149..    x126 =E= 0;

e150.. x41*x42 - x40*x43 - 1E-5*b134 =G= 0;

e151.. x40*x41*x42 - x40*x40*x43 + x38*x42*x43 - x39*x42*x42 - 1E-5*b133 =G= 0;

e152.. x39*x40*x41*x42 - x40**2*x39*x43 - x39**2*x42**2 + 2*x38*x39*x42*x43 - 
       x38**2*x43**2 + x38*x40*x41*x43 - x41**2*x38*x42 + x37*x41*x42**2 - x37*
       x40*x42*x43 - x36*x41*x42*x43 + x36*x40*x43**2 + (x39*x40 - x38*x41)*(1
        - b133) - 1E-5*b132 =G= 0;

e153.. x38*x39*x40*x41*x42 - x38*x39*x40**2*x43 + 2*x38**2*x39*x42*x43 - x39**2
       *x38*x42**2 - x38**3*x43**2 + x38**2*x40*x41*x43 - x38**2*x41**2*x42 - 3
       *x37*x38*x40*x42*x43 + x40**3*x37*x43 - x40**2*x37*x41*x42 + x37*x39*x40
       *x42**2 + 2*x37*x38*x41*x42**2 - x37**2*x42**3 - x36**2*x42*x43**2 - x36
       *x39*x41*x42**2 - x36*x38*x41*x42*x43 - x40**2*x36*x41*x43 + 2*x36*x37*
       x42**2*x43 + 2*x36*x38*x40*x43**2 + x36*x40*x41**2*x42 + (x38*x39*x40 - 
       x38**2*x41 - x40**2*x37 + x36*x40*x41)*(1 - b133) - 1E-5*b131 =G= 0;

e154.. x36**3*x43**3 - x36**2*x41**3*x42 + x36**2*x40*x41**2*x43 - 2*x36**2*x39
       *x40*x43**2 - x36**2*x38*x41*x43**2 + 3*x36**2*x39*x41*x42*x43 - 3*x36**
       2*x37*x42*x43**2 + x36*x38*x39*x41**2*x42 + x39**3*x36*x42**2 + x36*x37*
       x39*x40*x42*x43 - x39**2*x36*x40*x41*x42 - x36*x38*x39*x40*x41*x43 - 2*
       x36*x37*x40**2*x41*x43 + x38**2*x36*x39*x43**2 - x36*x37*x38*x41*x42*x43
        - 2*x36*x38*x39**2*x42*x43 - 3*x36*x37*x39*x41*x42**2 + 3*x36*x37*x38*
       x40*x43**2 + 2*x36*x37*x40*x41**2*x42 + 3*x37**2*x36*x42**2*x43 + x39**2
       *x36*x40**2*x43 + x38**2*x37*x40*x41*x43 + 2*x37**2*x38*x41*x42**2 + 2*
       x38**2*x37*x39*x42*x43 + x37**2*x40**3*x43 - x37*x38*x39**2*x42**2 - x37
       **3*x42**3 - x37**2*x40**2*x41*x42 - x38**3*x37*x43**2 - x38**2*x37*x41
       **2*x42 - x37*x38*x39*x40**2*x43 + x37*x38*x39*x40*x41*x42 + x37**2*x39*
       x40*x42**2 - 3*x37**2*x38*x40*x42*x43 + (x37*x38*x39*x40 - x38**2*x37*
       x41 - x37**2*x40**2 + 2*x36*x37*x40*x41 + x36*x38*x39*x41 - x36**2*x41**
       2 - x39**2*x36*x40)*(1 - b133) + (x37*x38 - x36*x39)*(1 - b131)
        - 1E-5*b130 =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;
x9.lo = 0.001; x9.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;
x32.lo = 0.001; x32.up = 10;
x33.lo = 0.001; x33.up = 10;
x34.lo = 0.001; x34.up = 10;
x35.lo = 0.001; x35.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.lo = 0.001; x55.up = 10;
x56.lo = 0.001; x56.up = 10;
x57.lo = 0.001; x57.up = 10;
x58.lo = 0.001; x58.up = 10;
x59.lo = 0.001; x59.up = 10;
x60.lo = 0.001; x60.up = 10;
x61.lo = 0.001; x61.up = 10;
x62.lo = 1E-5; x62.up = 10;
x63.lo = -10; x63.up = 10;
x64.lo = -10; x64.up = 10;
x65.lo = -10; x65.up = 10;
x66.lo = 1E-5; x66.up = 10;
x67.lo = -10; x67.up = 10;
x68.lo = -10; x68.up = 10;
x69.lo = -10; x69.up = 10;
x70.lo = 1E-5; x70.up = 10;
x71.lo = -10; x71.up = 10;
x72.lo = -10; x72.up = 10;
x73.lo = -10; x73.up = 10;
x74.lo = 1E-5; x74.up = 10;
x75.lo = -10; x75.up = 10;
x76.lo = -10; x76.up = 10;
x77.lo = -10; x77.up = 10;
x78.lo = 1E-5; x78.up = 10;
x79.lo = -10; x79.up = 10;
x80.lo = -10; x80.up = 10;
x81.lo = -10; x81.up = 10;
x82.lo = 0.001; x82.up = 10;
x83.lo = 0.001; x83.up = 10;
x84.lo = 0.001; x84.up = 10;
x85.lo = 0.001; x85.up = 10;
x86.lo = 0.001; x86.up = 10;
x87.lo = 0.001; x87.up = 10;
x88.lo = 0.001; x88.up = 10;
x89.lo = 0.001; x89.up = 10;
x90.lo = 0.001; x90.up = 10;
x91.lo = 0.001; 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;
x112.lo = 1E-5; x112.up = 10;
x113.lo = -10; x113.up = 10;
x114.lo = -10; x114.up = 10;
x115.lo = -10; x115.up = 10;
x116.lo = -10; x116.up = 10;
x117.lo = 1E-5; x117.up = 10;
x118.lo = -10; x118.up = 10;
x119.lo = -10; x119.up = 10;
x120.lo = -10; x120.up = 10;
x121.lo = -10; x121.up = 10;
x122.lo = 1E-5; x122.up = 10;
x123.lo = -10; x123.up = 10;
x124.lo = -10; x124.up = 10;
x125.lo = -10; x125.up = 10;
x126.lo = -10; x126.up = 10;
b127.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: 2026-09-14 Git hash: 9472b011
Imprint / Privacy Policy / License: CC-BY 4.0