'OR-Tools SCIP Solver freezes without error message
We are running OR-Tools to solve an MIP problem with SCIP - the Protobuf interface is being used as we need to employ indicator constraints. For smaller problems we have no issues running the solver, but for runs larger than ~200mins the execution starts to freeze with no error message.
We are working with OR-Tools version 9.0.9048. We have tried to update to version 9.2.9972 but the issue began to affect even smaller problems.
The code is being run on a AWS Linux 2 EC2 machine (x86, 32GB)
The problem is configured as below, branching indicator constraints
final MPModelRequest mpModelRequest = MPModelRequest.newBuilder()
.setEnableInternalSolverOutput(true)
.setSolverSpecificParameters(
"constraints/indicator/branchindicators=TRUE")
.setSolverType(MPModelRequest.SolverType.SCIP_MIXED_INTEGER_PROGRAMMING)
.setModel(model)
.setSolverTimeLimitSeconds(300 * 60)
.build();
Presolve runs successfully as indicated below:
presolving (18 rounds: 18 fast, 9 medium, 9 exhaustive): 28263 deleted vars, 45689 deleted constraints, 40 added constraints, 30147 tightened bounds, 0 added holes, 90 changed sides, 0 changed coefficients 42170 implications, 13057 cliques
presolved problem has 24482 variables (3780 bin, 0 int, 13892 impl, 6810 cont) and 36842 constraints
19637 constraints of type <linear>
17205 constraints of type <indicator>
Presolving Time: 11.56
The execution then stops after approximately 6000 seconds and no further messages are displayed
time | node | left |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr| dualbound | primalbound | gap | compl.
17.0s| 1 | 0 | 11748 | - | 280M | 0 | 24k| 36k| 33k| 0 | 0 | 21 | 0 | 2.651011e+04 | 2.017194e+03 |1214.21%| unknown
...
587s| 1000 | 776 |236957 | 222.7 | 457M | 67 | 24k| 38k| 33k| 372 | 1 |1630 |1293 | 2.651011e+04 | 7.062428e+03 | 275.37%| unknown
...
1625s| 4700 | 3770 | 1050k| 220.4 | 540M | 189 | 24k| 40k| 33k| 881 | 1 |4635 |2835 | 2.651011e+04 | 2.019589e+04 | 31.26%| unknown
...
2612s| 8200 | 6779 | 1605k| 194.0 | 596M | 195 | 24k| 40k| 33k|2361 | 1 |7334 |3980 | 2.651011e+04 | 2.030212e+04 | 30.58%| unknown
Restart triggered after 50 consecutive estimations that the remaining tree will be large
(run 1, node 8279) performing user restart
(restart) converted 66 cuts from the global cut pool into linear constraints
presolving:
(round 1, fast) 0 del vars, 41 del conss, 10 add conss, 4 chg bounds, 3 chg sides, 10 chg coeffs, 0 upgd conss, 42170 impls, 13074 clqs
(round 2, exhaustive) 0 del vars, 53 del conss, 10 add conss, 10 chg bounds, 8 chg sides, 10 chg coeffs, 60 upgd conss, 42170 impls, 13074 clqs
(round 3, medium) 0 del vars, 56 del conss, 46 add conss, 10 chg bounds, 8 chg sides, 10 chg coeffs, 60 upgd conss, 42170 impls, 13074 clqs
(round 4, exhaustive) 0 del vars, 127 del conss, 46 add conss, 10 chg bounds, 8 chg sides, 95 chg coeffs, 60 upgd conss, 42170 impls, 13074 clqs
presolving (5 rounds: 5 fast, 4 medium, 3 exhaustive):
0 deleted vars, 134 deleted constraints, 46 added constraints, 10 tightened bounds, 0 added holes, 8 changed sides, 118 changed coefficients
42170 implications, 13074 cliques
presolved problem has 24482 variables (3780 bin, 0 int, 13892 impl, 6810 cont) and 40631 constraints
6 constraints of type <varbound>
11 constraints of type <knapsack>
83 constraints of type <setppc>
19663 constraints of type <linear>
1003 constraints of type <logicor>
2673 constraints of type <bounddisjunction>
17192 constraints of type <indicator>
Presolving Time: 12.22
transformed 3/15 original solutions to the transformed problem space
time | node | left |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr| dualbound | primalbound | gap | compl.
2662s| 1 | 0 | 1630k| - | 621M | 0 | 24k| 40k| 33k| 0 | 0 |7361 |4050 | 2.651011e+04 | 2.030212e+04 | 30.58%| unknown
...
6026s| 11300 | 8954 | 3452k| 174.9 | 776M | 151 | 24k| 44k| 33k|1074 | 1 | 20k|9328 | 2.650735e+04 | 2.288876e+04 | 15.81%| 2.69%
After this line nothing else is printed and the program did not proceed for the next 3 hours.
I understand that if this was related to memory limitation an error message would be thrown. We also did not change the total available SCIP memory (which according to the SCIP documentation has a very large default value)
Any ideas as what could be causing the issue and how we can resolve it?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
