MINLPLib

A Library of Mixed-Integer and Continuous Nonlinear Programming Instances

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


Instance kall_ellipsoids_tc02b

A set of tri-axial ellipsoids, with given semi-axes, is to be packed into a rectangular box;
its widths, lengths and height are subject to lower and upper bounds. We want to minimize the volume
of this box and seek an overlap-free placement of the ellipsoids which can take any orientation.
Formats ams gms mod nl osil py
Primal Bounds (infeas ≤ 1e-08)
44.30988233 p1 ( gdx sol )
(infeas: 1e-12)
32.40000000 p2 ( gdx sol )
(infeas: 1e-10)
Other points (infeas > 1e-08)  
Dual Bounds
32.39999997 (ANTIGONE)
22.50000000 (BARON)
22.50000000 (COUENNE)
22.50000000 (LINDO)
22.50000000 (SCIP)
References Kallrath, Josef, Packing ellipsoids into volume-minimizing rectangular boxes, Journal of Global Optimization, 2015.
Application Geometry
Added to library 26 Apr 2016
Problem type NLP
#Variables 124
#Binary Variables 0
#Integer Variables 0
#Nonlinear Variables 69
#Nonlinear Binary Variables 0
#Nonlinear Integer Variables 0
Objective Sense min
Objective type linear
Objective curvature linear
#Nonzeros in Objective 1
#Nonlinear Nonzeros in Objective 0
#Constraints 128
#Linear Constraints 80
#Quadratic Constraints 43
#Polynomial Constraints 4
#Signomial Constraints 0
#General Nonlinear Constraints 1
Operands in Gen. Nonlin. Functions mul sqr sqrt
Constraints curvature indefinite
#Nonzeros in Jacobian 382
#Nonlinear Nonzeros in Jacobian 133
#Nonzeros in (Upper-Left) Hessian of Lagrangian 448
#Nonzeros in Diagonal of Hessian of Lagrangian 46
#Blocks in Hessian of Lagrangian 18
Minimal blocksize in Hessian of Lagrangian 1
Maximal blocksize in Hessian of Lagrangian 24
Average blocksize in Hessian of Lagrangian 3.833333
#Semicontinuities 0
#Nonlinear Semicontinuities 0
#SOS type 1 0
#SOS type 2 0
Minimal coefficient 2.5000e-01
Maximal coefficient 3.0000e+00
Infeasibility of initial point 5.535
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
*        129      110        3       16        0        0        0        0
*  
*  Variable counts
*                   x        b        i      s1s      s2s       sc       si
*      Total     cont   binary  integer     sos1     sos2    scont     sint
*        125      125        0        0        0        0        0        0
*  FX      0
*  
*  Nonzero counts
*      Total    const       NL      DLL
*        384      251      133        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,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;

Positive Variables  x114,x115,x116,x117,x118,x119,x120,x121,x122,x123,x124
          ,x125;

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;


e1..    objvar - x98 =E= 0;

e2.. -x105*x106*x107 + x98 =E= 0;

e3.. x41*x45*x49 - x41*x46*x48 - x42*x44*x49 + x42*x47*x46 + x44*x43*x48 - x43*
     x45*x47 =E= 1;

e4.. x50*x54*x58 - x50*x55*x57 - x51*x53*x58 + x51*x56*x55 + x53*x52*x57 - x52*
     x54*x56 =E= 1;

e5..    x62 + x63 + x64 =E= 1;

e6..    x65 + x66 + x67 =E= 0;

e7..    x68 + x69 + x70 =E= 0;

e8..    x71 + x72 + x73 =E= 1;

e9..    x74 + x75 + x76 =E= 0;

e10..    x77 + x78 + x79 =E= 1;

e11..    x80 + x81 + x82 =E= 1;

e12..    x83 + x84 + x85 =E= 0;

e13..    x86 + x87 + x88 =E= 0;

e14..    x89 + x90 + x91 =E= 1;

e15..    x92 + x93 + x94 =E= 0;

e16..    x95 + x96 + x97 =E= 1;

e17..    x23 - 0.25*x62 - 0.444444444444444*x63 - x64 =E= 0;

e18..    x24 - 0.25*x65 - 0.444444444444444*x66 - x67 =E= 0;

e19..    x25 - 0.25*x68 - 0.444444444444444*x69 - x70 =E= 0;

e20..    x27 - 0.25*x71 - 0.444444444444444*x72 - x73 =E= 0;

e21..    x28 - 0.25*x74 - 0.444444444444444*x75 - x76 =E= 0;

e22..    x31 - 0.25*x77 - 0.444444444444444*x78 - x79 =E= 0;

e23..    x32 - 0.444444444444444*x80 - x81 - 2.04081632653061*x82 =E= 0;

e24..    x33 - 0.444444444444444*x83 - x84 - 2.04081632653061*x85 =E= 0;

e25..    x34 - 0.444444444444444*x86 - x87 - 2.04081632653061*x88 =E= 0;

e26..    x36 - 0.444444444444444*x89 - x90 - 2.04081632653061*x91 =E= 0;

e27..    x37 - 0.444444444444444*x92 - x93 - 2.04081632653061*x94 =E= 0;

e28..    x40 - 0.444444444444444*x95 - x96 - 2.04081632653061*x97 =E= 0;

e29..  - x24 + x26 =E= 0;

e30..  - x25 + x29 =E= 0;

e31..  - x28 + x30 =E= 0;

e32..  - x33 + x35 =E= 0;

e33..  - x34 + x38 =E= 0;

e34..  - x37 + x39 =E= 0;

e35..  - x105 + x108 =L= -1;

e36..  - x106 + x109 =L= -1;

e37..  - x107 + x110 =L= -1;

e38..  - x105 + x111 =L= -0.7;

e39..  - x106 + x112 =L= -0.7;

e40..  - x107 + x113 =L= -0.7;

e41.. sqr(x99) - (x27*x31 - x28*x30) =E= 0;

e42.. sqr(x102) - (x36*x40 - x37*x39) =E= 0;

e43.. sqr(x100) - (x23*x31 - x25*x29) =E= 0;

e44.. sqr(x103) - (x32*x40 - x34*x38) =E= 0;

e45.. sqr(x101) - (x23*x27 - x24*x26) =E= 0;

e46.. sqr(x104) - (x32*x36 - x33*x35) =E= 0;

e47..    3*x99 - x108 + x114 =E= 0;

e48..    3*x100 - x109 + x115 =E= 0;

e49..    3*x101 - x110 + x116 =E= 0;

e50..    1.05*x102 - x111 + x117 =E= 0;

e51..    1.05*x103 - x112 + x118 =E= 0;

e52..    1.05*x104 - x113 + x119 =E= 0;

e53..  - 3*x99 - x108 + x120 =E= 0;

e54..  - 3*x100 - x109 + x121 =E= 0;

e55..  - 3*x101 - x110 + x122 =E= 0;

e56..  - 1.05*x102 - x111 + x123 =E= 0;

e57..  - 1.05*x103 - x112 + x124 =E= 0;

e58..  - 1.05*x104 - x113 + x125 =E= 0;

e59..  - x105 + x120 =L= 0;

e60..  - x106 + x121 =L= 0;

e61..  - x107 + x122 =L= 0;

e62..  - x105 + x123 =L= 0;

e63..  - x106 + x124 =L= 0;

e64..  - x107 + x125 =L= 0;

e65..    x105 - x106 =G= 0;

e66..    x106 - x107 =G= 0;

e67..  - 0.5*x105 + x108 =L= 0;

e68..  - 0.5*x106 + x109 =L= 0;

e69..  - 0.5*x107 + x110 =L= 0;

e70.. sqr(x59) + sqr(x60) + sqr(x61) =E= 1;

e71.. -x41*x41 + x62 =E= 0;

e72.. -x42*x42 + x63 =E= 0;

e73.. -x43*x43 + x64 =E= 0;

e74.. -x41*x44 + x65 =E= 0;

e75.. -x42*x45 + x66 =E= 0;

e76.. -x43*x46 + x67 =E= 0;

e77.. -x41*x47 + x68 =E= 0;

e78.. -x42*x48 + x69 =E= 0;

e79.. -x43*x49 + x70 =E= 0;

e80.. -x44*x44 + x71 =E= 0;

e81.. -x45*x45 + x72 =E= 0;

e82.. -x46*x46 + x73 =E= 0;

e83.. -x44*x47 + x74 =E= 0;

e84.. -x45*x48 + x75 =E= 0;

e85.. -x46*x49 + x76 =E= 0;

e86.. -x47*x47 + x77 =E= 0;

e87.. -x48*x48 + x78 =E= 0;

e88.. -x49*x49 + x79 =E= 0;

e89.. -x50*x50 + x80 =E= 0;

e90.. -x51*x51 + x81 =E= 0;

e91.. -x52*x52 + x82 =E= 0;

e92.. -x50*x53 + x83 =E= 0;

e93.. -x51*x54 + x84 =E= 0;

e94.. -x52*x55 + x85 =E= 0;

e95.. -x50*x56 + x86 =E= 0;

e96.. -x51*x57 + x87 =E= 0;

e97.. -x52*x58 + x88 =E= 0;

e98.. -x53*x53 + x89 =E= 0;

e99.. -x54*x54 + x90 =E= 0;

e100.. -x55*x55 + x91 =E= 0;

e101.. -x53*x56 + x92 =E= 0;

e102.. -x54*x57 + x93 =E= 0;

e103.. -x55*x58 + x94 =E= 0;

e104.. -x56*x56 + x95 =E= 0;

e105.. -x57*x57 + x96 =E= 0;

e106.. -x58*x58 + x97 =E= 0;

e107.. POWER(x107,3) - x98 =L= 0;

e108..    x20 - x108 + x111 =E= 0;

e109..    x21 - x109 + x112 =E= 0;

e110..    x22 - x110 + x113 =E= 0;

e111.. x59*x20 + x60*x21 + x61*x22 - (sqrt(sqr(x2*x59) + sqr(x5*x60) + sqr(x8*
       x61) + sqr(x3*x59) + sqr(x6*x60) + sqr(x9*x61) + sqr(x4*x59) + sqr(x7*
       x60) + sqr(x10*x61)) + sqrt(sqr(x11*x59) + sqr(x14*x60) + sqr(x17*x61)
        + sqr(x12*x59) + sqr(x15*x60) + sqr(x18*x61) + sqr(x13*x59) + sqr(x16*
       x60) + sqr(x19*x61))) =G= 0;

e112..    x2 - 2*x41 =E= 0;

e113..    x3 - 1.5*x42 =E= 0;

e114..    x4 - x43 =E= 0;

e115..    x5 - 2*x44 =E= 0;

e116..    x6 - 1.5*x45 =E= 0;

e117..    x7 - x46 =E= 0;

e118..    x8 - 2*x47 =E= 0;

e119..    x9 - 1.5*x48 =E= 0;

e120..    x10 - x49 =E= 0;

e121..    x11 - 1.5*x50 =E= 0;

e122..    x12 - x51 =E= 0;

e123..    x13 - 0.7*x52 =E= 0;

e124..    x14 - 1.5*x53 =E= 0;

e125..    x15 - x54 =E= 0;

e126..    x16 - 0.7*x55 =E= 0;

e127..    x17 - 1.5*x56 =E= 0;

e128..    x18 - x57 =E= 0;

e129..    x19 - 0.7*x58 =E= 0;

* set non-default bounds
x23.lo = -1.69454444444444; x23.up = 1.69454444444444;
x24.lo = -1.69454444444444; x24.up = 1.69454444444444;
x25.lo = -1.69454444444444; x25.up = 1.69454444444444;
x26.lo = -1.69444444444444; x26.up = 1.69444444444444;
x27.lo = -1.69454444444444; x27.up = 1.69454444444444;
x28.lo = -1.69454444444444; x28.up = 1.69454444444444;
x29.lo = -1.69444444444444; x29.up = 1.69444444444444;
x30.lo = -1.69444444444444; x30.up = 1.69444444444444;
x31.lo = -1.69454444444444; x31.up = 1.69454444444444;
x32.lo = -3.48536077097506; x32.up = 3.48536077097506;
x33.lo = -3.48536077097506; x33.up = 3.48536077097506;
x34.lo = -3.48536077097506; x34.up = 3.48536077097506;
x35.lo = -3.48526077097506; x35.up = 3.48526077097506;
x36.lo = -3.48536077097506; x36.up = 3.48536077097506;
x37.lo = -3.48536077097506; x37.up = 3.48536077097506;
x38.lo = -3.48526077097506; x38.up = 3.48526077097506;
x39.lo = -3.48526077097506; x39.up = 3.48526077097506;
x40.lo = -3.48536077097506; x40.up = 3.48536077097506;
x41.lo = -1; x41.up = 1;
x42.lo = -1; x42.up = 1;
x43.lo = -1; x43.up = 1;
x44.lo = -1; x44.up = 1;
x45.lo = -1; x45.up = 1;
x46.lo = -1; x46.up = 1;
x47.lo = -1; x47.up = 1;
x48.lo = -1; x48.up = 1;
x49.lo = -1; x49.up = 1;
x50.lo = -1; x50.up = 1;
x51.lo = -1; x51.up = 1;
x52.lo = -1; x52.up = 1;
x53.lo = -1; x53.up = 1;
x54.lo = -1; x54.up = 1;
x55.lo = -1; x55.up = 1;
x56.lo = -1; x56.up = 1;
x57.lo = -1; x57.up = 1;
x58.lo = -1; x58.up = 1;
x59.lo = -1; x59.up = 1;
x60.lo = -1; x60.up = 1;
x61.lo = -1; x61.up = 1;
x62.lo = -1; x62.up = 1;
x63.lo = -1; x63.up = 1;
x64.lo = -1; x64.up = 1;
x65.lo = -1; x65.up = 1;
x66.lo = -1; x66.up = 1;
x67.lo = -1; x67.up = 1;
x68.lo = -1; x68.up = 1;
x69.lo = -1; x69.up = 1;
x70.lo = -1; x70.up = 1;
x71.lo = -1; x71.up = 1;
x72.lo = -1; x72.up = 1;
x73.lo = -1; x73.up = 1;
x74.lo = -1; x74.up = 1;
x75.lo = -1; x75.up = 1;
x76.lo = -1; x76.up = 1;
x77.lo = -1; x77.up = 1;
x78.lo = -1; x78.up = 1;
x79.lo = -1; x79.up = 1;
x80.lo = -1; x80.up = 1;
x81.lo = -1; x81.up = 1;
x82.lo = -1; x82.up = 1;
x83.lo = -1; x83.up = 1;
x84.lo = -1; x84.up = 1;
x85.lo = -1; x85.up = 1;
x86.lo = -1; x86.up = 1;
x87.lo = -1; x87.up = 1;
x88.lo = -1; x88.up = 1;
x89.lo = -1; x89.up = 1;
x90.lo = -1; x90.up = 1;
x91.lo = -1; x91.up = 1;
x92.lo = -1; x92.up = 1;
x93.lo = -1; x93.up = 1;
x94.lo = -1; x94.up = 1;
x95.lo = -1; x95.up = 1;
x96.lo = -1; x96.up = 1;
x97.lo = -1; x97.up = 1;
x98.lo = 16.9646003293849;
x99.lo = 0.333333333333333; x99.up = 0.666666666666667;
x100.lo = 0.333333333333333; x100.up = 0.666666666666667;
x101.lo = 0.333333333333333; x101.up = 0.666666666666667;
x102.lo = 0.666666666666667; x102.up = 1.42857142857143;
x103.lo = 0.666666666666667; x103.up = 1.42857142857143;
x104.lo = 0.666666666666667; x104.up = 1.42857142857143;
x105.lo = 4.5; x105.up = 7;
x106.lo = 2.5; x106.up = 4;
x107.lo = 2; x107.up = 4;
x108.lo = 1; x108.up = 6;
x109.lo = 1; x109.up = 3;
x110.lo = 1; x110.up = 3;
x111.lo = 0.7; x111.up = 6.3;
x112.lo = 0.7; x112.up = 3.3;
x113.lo = 0.7; x113.up = 3.3;
x114.up = 10;
x115.up = 4;
x116.up = 4;
x117.up = 10;
x118.up = 4;
x119.up = 4;
x120.up = 10;
x121.up = 4;
x122.up = 4;
x123.up = 10;
x124.up = 4;
x125.up = 4;

* set non-default levels
x41.l = 1;
x45.l = 1;
x49.l = 1;
x50.l = 1;
x54.l = 1;
x58.l = 1;

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: 2024-04-02 Git hash: 1dd5fb9b
Imprint / Privacy Policy / License: CC-BY 4.0