[Cbc] CBC not immediately return after seemingly proving known best solution as optimal

Jack Vreeken jack at vreeken.me
Thu Aug 15 09:15:33 EDT 2019


I am using setBestSolution to pass a MIP start (due to setMIPStart not working*), but I ran into a case where CBC decides to ignore the result of setBestSolution for some reason, or spends a lot of time doing what to me seems like useless work. The log is pasted below. I've tried going through the code to figure out what is going on, or what option I could set, but I got confused around the part where it apparently decides the root relaxation is "infeasible or too expensive". Does anyone have an idea what is going on, and if there is a setting I could change to make it return quicker?

* I really tried to get it to work, but it either says that the column names do not match (if I just use CLP's default column names),  or the cbcmain1() call just crashes (when I set column names explicitly myself).

---------------------------------------
2019-08-14 15:09:17,353 INFO Calling solver
Coin0506I Presolve 29656 (-137356) rows, 6114 (-17844) columns and 63229 (-392381) elements
Clp0006I 0  Obj 0 Primal inf 1213.0483 (10364) Dual inf 1.8142358e+14 (6029)
Clp0006I 385  Obj 0 Primal inf 1053.0322 (9098) Dual inf 1.7195925e+14 (5672)
Clp0006I 769  Obj 0 Primal inf 889.75953 (7821) Dual inf 1.6240869e+14 (5310)
Clp0006I 1150  Obj 0 Primal inf 725.98791 (6558) Dual inf 1.5296975e+14 (4951)
Clp0006I 1531  Obj 0 Primal inf 561.24453 (5296) Dual inf 1.4354435e+14 (4596)
Clp0029I End of values pass after 1805 iterations
Clp0006I 1805  Obj 0 Primal inf 444.37754 (4391) Dual inf 1.3678744e+14 (4342)
Clp0006I 2178  Obj 0 Primal inf 312.15586 (3712) Dual inf 1.2267897e+14 (3654)
Clp0006I 2551  Obj 0 Primal inf 205.09142 (3175) Dual inf 11989395 (3167)
Clp0006I 2924  Obj 0.15302598 Primal inf 33.842235 (600) Dual inf 1113833.7 (442)
Clp0006I 3237  Obj -7.7363867e-11
Clp0000I Optimal - objective value -7.7363867e-11
Coin0511I After Postsolve, objective -7.7363867e-11, infeasibilities - dual 0 (0), primal 0 (0)
Clp0032I Optimal objective -7.73638668e-11 - 3237 iterations time 0.262, Presolve 0.15
Cbc0045I Solution with objective value -7.73639e-11 saved
Welcome to the CBC MILP Solver
Version: 2.10
Build Date: Aug 11 2019

command line - CbcInterface -loglevel 2 -threads 8 -solve -quit (default strategy 1)
logLevel was changed from 1 to 2
threads was changed from 0 to 8
Continuous objective value is 0 - 0.22 seconds
Cbc0006I The LP relaxation is infeasible or too expensive
Cbc0045I Solution of -7.73639e-11 already found by heuristic
Cuts at root node changed objective from 1.79769e+308 to -1.79769e+308
Probing was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Gomory was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Knapsack was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Clique was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
MixedIntegerRounding2 was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
FlowCover was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
TwoMirCuts was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
ZeroHalf was tried 0 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)

Result - Optimal solution found

Objective value:                0.00000000
Enumerated nodes:               0
Total iterations:               0
Time (CPU seconds):             52.83
Time (Wallclock seconds):       52.83

Total time (CPU seconds):       52.84   (Wallclock seconds):       52.84

2019-08-14 15:10:11,349 INFO Solver succeeded with status finished


More information about the Cbc mailing list