[Cbc] CBC spends much time after having found a solution within specified tolerance

Michael Römer michael.roemer at wiwi.uni-halle.de
Thu Jun 25 13:16:26 EDT 2015


Dear CBC users,

using CBC for a time-critical application, I observe the following 
behaviour (I call CBC from C++ using cbcmain1), having set the ratio 
parameter (relative mipgap) to 0.02 and the strategy parameter to 0: CBC 
finds an integer solution within the tolerance rather quickly (e.g. in 
48 seconds, see log below). After this, it outputs some statistics on 
cuts and then, seemingly nothing happens for quite a while until 
finally, after 154 seconds wallclock time, CBC stops running and outputs 
the final statistics.

Is it possible so save the waiting time of 100 seconds by setting some 
parameter?

thank you and best regards,

Michael Römer

PS: Please find below the output log after having solved the LP using 
barrier solver ---

ratioGap was changed from 0 to 0.02
Continuous objective value is 1734.85 - 0.02 seconds
Cgl0003I 0 fixed, 2105 tightened bounds, 0 strengthened rows, 0 
substitutions
Cgl0003I 0 fixed, 1036 tightened bounds, 0 strengthened rows, 0 
substitutions
Cgl0003I 0 fixed, 166 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0003I 0 fixed, 18 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0003I 0 fixed, 3 tightened bounds, 0 strengthened rows, 0 substitutions
Cgl0004I processed model has 7632 rows, 31409 columns (5801 integer 
(3799 of which binary)) and 127372 elements
Cbc0038I Initial state - 82 integers unsatisfied sum - 24.2206
Cbc0038I Pass   1: (5.97 seconds) suminf.    3.06858 (7) obj. 1775.65 
iterations 1703
Cbc0038I Solution found of 1775.65
Cbc0038I Branch and bound needed to clear up 7 general integers
Cbc0038I Full problem 7632 rows 31409 columns, reduced to 5683 rows 
23745 columns - too large
Cbc0038I Mini branch and bound could not fix general integers
Cbc0038I No solution found this major pass
Cbc0038I After 11.09 seconds - Feasibility pump exiting - took 5.88 seconds
Cbc0013I At root node, 0 cuts changed objective from 1734.8473 to 
1734.8473 in 1 passes
Cbc0014I Cut generator 0 (Probing) - 0 row cuts average 0.0 elements, 26 
column cuts (26 active)  in 0.042 seconds - new frequency is 1
Cbc0014I Cut generator 1 (Gomory) - 0 row cuts average 0.0 elements, 0 
column cuts (0 active)  in 0.023 seconds - new frequency is -100
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0 
column cuts (0 active)  in 0.020 seconds - new frequency is -100
Cbc0014I Cut generator 3 (Clique) - 0 row cuts average 0.0 elements, 0 
column cuts (0 active)  in 0.000 seconds - new frequency is -100
Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 0 row cuts average 
0.0 elements, 0 column cuts (0 active)  in 0.004 seconds - new frequency 
is -100
Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts average 0.0 elements, 
0 column cuts (0 active)  in 0.016 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, 1e+050 best solution, best possible 
1734.8473 (12.82 seconds)
Cbc0004I Integer solution of 1736.0821 found after 13396 iterations and 
30 nodes (48.42 seconds)
Cbc0011I Exiting as integer gap of 1.2348315 less than 1e-010 or 2%
Cbc0001I Search completed - best objective 1736.082130858523, took 13463 
iterations and 31 nodes (48.65 seconds)
Cbc0032I Strong branching done 590 times (23681 iterations), fathomed 0 
nodes and fixed 0 variables
Cbc0035I Maximum depth 16, 2420 variables fixed on reduced cost
Cuts at root node changed objective from 1734.85 to 1734.85
Probing was tried 13 times and created 57 cuts of which 0 were active 
after adding rounds of cuts (0.117 seconds)
Gomory was tried 1 times and created 0 cuts of which 0 were active after 
adding rounds of cuts (0.023 seconds)
Knapsack was tried 1 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.020 seconds)
Clique was tried 1 times and created 0 cuts of which 0 were active after 
adding rounds of cuts (0.000 seconds)
MixedIntegerRounding2 was tried 1 times and created 0 cuts of which 0 
were active after adding rounds of cuts (0.004 seconds)
FlowCover was tried 1 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.016 seconds)
TwoMirCuts was tried 1 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.058 seconds)

Result - Optimal solution found (within gap tolerance)

Objective value:                1736.08213086
Lower bound:                    1734.847
Gap:                            0.00
Enumerated nodes:               31
Total iterations:               13463
Time (CPU seconds):             154.43
Time (Wallclock seconds):       154.43

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




More information about the Cbc mailing list