Dear all,
I have a very large-scale MILP problem for which I know a very good solution, which could be even globally-optimal. The task is either to (i) prove the global optimality, or to (ii) find the global optimum.
In order to manage the binary tree size that needs to be stored, I manually split (branched) the problem into several smaller subproblems, for which I set the Cutoff parameter corresponding to the known solution. Therefore, most of the subproblems should be infeasible. Also, I turned off heuristics and set a time limit.
Evaluating such strategy, I ended with the following log, from which it implies that the solver explored the whole binary tree in something above 80 s, however, the Gurobi process hanged until the time limit of 172700 s passed. The question is then - how to make the process quit after exploring the whole tree (and thus proving infeasibility)?
Marek T.
Gurobi 7.0.0 (linux64) logging started Mon Nov 21 15:09:41 2016
Set parameter LogFile to value example_72bar32_15.log
Set parameter TimeLimit to value 172700
Optimize a model with 18746 rows, 5216 columns and 107968 nonzeros
Variable types: 4704 continuous, 512 integer (448 binary)
Coefficient statistics:
Matrix range [7e-02, 5e+02]
Objective range [2e+00, 3e+02]
Bounds range [2e-01, 8e+01]
RHS range [2e-01, 3e+02]
Presolve removed 7163 rows and 1857 columns
Presolve time: 0.34s
Presolved: 11583 rows, 3359 columns, 61361 nonzeros
MIP start did not produce a new incumbent solution
Variable types: 2976 continuous, 383 integer (383 binary)
Presolved: 11583 rows, 3359 columns, 61361 nonzeros
Root relaxation: objective 3.187400e+02, 9444 iterations, 1.00 seconds
Nodes | Current Node | Objective Bounds | Work
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
0 0 318.73999 0 13 - 318.73999 - - 1s
Another try with MIP start
0 0 318.96595 0 12 - 318.96595 - - 2s
0 0 318.96595 0 11 - 318.96595 - - 3s
0 0 319.10382 0 12 - 319.10382 - - 3s
0 0 319.10856 0 12 - 319.10856 - - 3s
0 0 319.16013 0 12 - 319.16013 - - 3s
0 0 319.16157 0 12 - 319.16157 - - 3s
0 0 319.55803 0 17 - 319.55803 - - 3s
0 0 319.61191 0 16 - 319.61191 - - 3s
0 0 319.66763 0 16 - 319.66763 - - 4s
0 0 319.66784 0 16 - 319.66784 - - 4s
0 2 319.66784 0 16 - 319.66784 - - 5s
467 287 381.48794 15 9 - 331.57486 - 354 10s
1759 1068 364.19072 35 15 - 345.72152 - 274 15s
2545 1590 347.57070 13 10 - 347.57070 - 270 20s
2879 1719 378.47519 23 6 - 347.57070 - 299 25s
4677 2078 cutoff 23 - 354.71607 - 270 30s
7042 2358 367.21009 21 14 - 360.33139 - 245 35s
9739 3443 cutoff 22 - 363.44264 - 233 40s
12615 4072 378.55515 26 20 - 366.99381 - 232 45s
15176 4812 cutoff 53 - 369.07093 - 230 50s
17672 5472 381.73548 27 11 - 370.74942 - 226 55s
19955 5923 380.62652 24 4 - 372.29292 - 223 60s
22431 5939 378.84120 27 6 - 373.88167 - 220 65s
25091 5363 378.95398 23 11 - 376.22773 - 217 70s
28166 3812 cutoff 56 - 379.53722 - 213 75s
31059 1373 cutoff 34 - 383.10111 - 206 80s
Cutting planes:
Gomory: 2
Cover: 2
Projected Implied bound: 22
MIR: 7
Flow cover: 46
Inf proof: 4
Explored 32972 nodes (6574727 simplex iterations) in 172700.01 seconds
Thread count was 24 (of 24 available processors)
Solution count 0
Pool objective bound 385.543
Time limit reached
Best objective -, best bound 3.855426650800e+02, gap -
Warning: unable to write requested result file 'example_72bar32_15.sol'