Originally posted by: SchedNPack
CPLEX seems to get stuck with large bin packing problems (involving up to 1600 items). For some of my randomly generated instances, I get a log output like the following:
Tried aggregator 1 time.
MIP Presolve eliminated 628 rows and 0 columns.
MIP Presolve modified 812632 coefficients.
Reduced MIP has 2008 rows, 472884 columns, and 1418024 nonzeros.
Reduced MIP has 472884 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 2.16 sec. (723.36 ticks)
Found incumbent of value 508.000000 after 4.70 sec. (1738.99 ticks)
Tried aggregator 1 time.
Reduced MIP has 2008 rows, 472884 columns, and 1418024 nonzeros.
Reduced MIP has 472884 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 1.47 sec. (499.51 ticks)
Probing time = 0.39 sec. (80.35 ticks)
Clique table members: 28492.
MIP emphasis: balance optimality and feasibility.
MIP search method: dynamic search.
Parallel mode: none, using 1 thread.
Root relaxation solution time = 4.10 sec. (3292.86 ticks)
Nodes Cuts/
Node Left Objective IInf Best Integer Best Bound ItCnt Gap
* 0+ 0 508.0000 0.0000 100.00%
0 0 313.1538 481 508.0000 313.1538 3766 38.36%
0 0 313.1538 642 508.0000 Cuts: 457 6235 38.36%
0 0 313.1538 623 508.0000 Cuts: 351 9248 38.36%
0 0 313.1538 615 508.0000 Cuts: 285 11453 38.36%
* 0+ 0 382.0000 313.1538 18.02%
* 0+ 0 374.0000 313.1538 16.27%
* 0+ 0 369.0000 313.1538 15.13%
* 0+ 0 361.0000 313.1538 13.25%
* 0+ 0 358.0000 313.1538 12.53%
* 0+ 0 357.0000 313.1538 12.28%
* 0+ 0 352.0000 313.1538 11.04%
* 0+ 0 351.0000 313.1538 10.78%
0 0 313.1538 606 351.0000 Cuts: 302 14476 10.78%
0 0 313.1538 510 351.0000 Cuts: 233 18205 10.78%
Then the log output stops, while CPLEX keeps running, slowly allocating more and more memory until it stops with an "out-of-memory" exception (when using the .NET API). Any time limit that has been set beforehand is completely ignored.
This behavior is independent of
- the CPLEX version (tested: 12.6.0, 12.6.1 and 12.6.2)
- the platform (tested: Windows x86_64 and Linux x86_64)
- whether one uses the interactive optimizer or the callable library
- whether cuts are completely turned on or off
- whether the heuristic is turned on or off
However, the issue seems to be limited to the standard bin packing objective (minimize number of allocated bins). Using a different objective, such as a load based one, for the same instances did not provoke a similar behavior in any case.
Has anyone perhaps observed something similar or is there any straightforward (simple) explanation or remedy for the above issue?
#CPLEXOptimizers#DecisionOptimization