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)ⓘ | |
| Other points (infeas > 1e-08)ⓘ | |
| Dual Boundsⓘ | 32.39999997 (ANTIGONE) 22.50000000 (BARON) 22.50000000 (COUENNE) 22.50000000 (GUROBI) 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 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: 2025-08-07 Git hash: e62cedfc

