MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

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


Removed Instance bchoco06

Formats ams gms mod nl osil py
Primal Bounds (infeas ≤ 1e-08)
0.96277644 p2 ( gdx sol )
(infeas: 8e-09)
Other points (infeas > 1e-08)
0.96277650 p1 ( gdx sol )
(infeas: 6e-08)
Dual Bounds
0.97849070 (ANTIGONE)
0.98675900 (BARON)
0.96277650 (LINDO)
0.99914267 (SCIP)
1.00000000 (SHOT)
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
Removed from library 01 Mar 2022
Removed because Numerically difficult formulation (coefficient of order 1E-10 and 1E8)
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
Minimal coefficient 1.0000e-10
Maximal coefficient 1.0000e+08
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: 2024-03-25 Git hash: 1dae024f
Imprint / Privacy Policy / License: CC-BY 4.0