[Cbc] More restart problems (I think)

David Einstein deinst at gmail.com
Tue Mar 18 17:49:38 EDT 2014


I think that there are some problems with the reporting of the lower bound
when starting with a predetermined solution.  When I do something like:

  CbcModel cbcModel(osi);
  CbcMain0(cbcModel);
  model.setBestSolution(guess, numCols, obj);
  const char * argv2[]={"injectsol", "-seconds", "3600", "-solve","-quit"};
  CbcMain1(5, argv2, cbcModel);

It appears that the solver starts twice, but only reports the lower bound
from the outer run (which appears to be just the result of a bunch of
cuts.)  If the problem is only cosmetic (the incorrect lower bound being
reported), I can live with it. Why do we need to restart in the first
place?  I can give you some code, but you can just take the first solution
from a nontrivial model, and restart a copy of the model with the previous
soln and similar things will happen.


The output looks like

command line - injectsol -seconds 3600 -solve -quit (default strategy 1)
seconds was changed from 1e+100 to 3600
Continuous objective value is 306383 - 0.92 seconds
Cgl0003I 0 fixed, 8317 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 4932 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7103 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7758 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7661 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7540 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7481 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7419 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0003I 0 fixed, 7325 tightened bounds, 0 strengthened rows, 0
substitutions
Cgl0004I processed model has 3183 rows, 8109 columns (8109 integer) and
63855 elements
Cbc0038I Solution found of 306383
Cbc0038I Branch and bound needed to clear up 1498 general integers
Cbc0038I Full problem 3184 rows 8109 columns, reduced to 2682 rows 5030
columns - too large
Cbc0038I Mini branch and bound could not fix general integers
Cbc0038I No solution found this major pass
Cbc0038I Before mini branch and bound, 6611 integers at bound fixed and 0
continuous of which 50 were internal integer and 0 internal continuous
Cbc0038I Full problem 3183 rows 8109 columns, reduced to 1788 rows 1493
columns
Cbc0038I Mini branch and bound did not improve solution (12.63 seconds)
Cbc0038I After 12.63 seconds - Feasibility pump exiting - took 6.38 seconds
Cbc0038I Full problem 3183 rows 8109 columns, reduced to 1844 rows 1568
columns
Cbc0031I 58 added rows had average density of 249.7931
Cbc0013I At root node, 58 cuts changed objective from 306383.27 to
314230.99 in 20 passes
Cbc0014I Cut generator 0 (Probing) - 0 row cuts average 0.0 elements, 431
column cuts (431 active)  in 1.620 seconds - new frequency is 1
Cbc0014I Cut generator 1 (Gomory) - 319 row cuts average 556.5 elements, 0
column cuts (43 active)  in 3.559 seconds - new frequency is 1
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0
column cuts (0 active)  in 0.071 seconds - new frequency is -100
Cbc0014I Cut generator 3 (Clique) - 0 row cuts average 0.0 elements, 0
column cuts (0 active)  in 0.002 seconds - new frequency is -100
Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 8 row cuts average 67.6
elements, 0 column cuts (1 active)  in 0.610 seconds - new frequency is -100
Cbc0014I Cut generator 6 (TwoMirCuts) - 280 row cuts average 252.0
elements, 0 column cuts (0 active)  in 1.414 seconds - new frequency is 1
Cbc0010I After 0 nodes, 1 on tree, 383452.46 best solution, best possible
314230.99 (33.14 seconds)
Cbc0038I Full problem 3183 rows 8109 columns, reduced to 1422 rows 1128
columns
Cbc0038I Full problem 3241 rows 8109 columns, reduced to 2681 rows 5030
columns
Cbc0044I Reduced cost fixing - 2681 rows, 5030 columns - restarting search
Cbc0012I Integer solution of 383452.46 found by Previous solution after 0
iterations and 0 nodes (59.99 seconds)
Cbc0031I 59 added rows had average density of 245.88136
Cbc0013I At root node, 59 cuts changed objective from 306383.27 to 314244.6
in 4 passes
Cbc0014I Cut generator 0 (Probing) - 0 row cuts average 0.0 elements, 67
column cuts (67 active)  in 0.310 seconds - new frequency is 1
Cbc0014I Cut generator 1 (Gomory) - 47 row cuts average 202.8 elements, 0
column cuts (42 active)  in 0.264 seconds - new frequency is 1
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0
column cuts (0 active)  in 0.010 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.148 seconds - new frequency is -100
Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts average 0.0 elements, 0
column cuts (0 active)  in 0.071 seconds - new frequency is -100
Cbc0014I Cut generator 6 (TwoMirCuts) - 64 row cuts average 152.9 elements,
0 column cuts (0 active)  in 0.205 seconds - new frequency is -100
Cbc0014I Cut generator 7 (Stored from first) - 60 row cuts average 251.7
elements, 0 column cuts (3 active)
Cbc0010I After 0 nodes, 1 on tree, 383452.46 best solution, best possible
314244.6 (66.56 seconds)

[And now a word from our sponsor ...]

Cbc0010I After 28500 nodes, 8319 on tree, 335722.71 best solution, best
possible 314650.52 (3576.32 seconds)
Cbc0020I Exiting on maximum time
Cbc0005I Partial search - best objective 335722.71 (best possible
314650.52), took 6716191 iterations and 28597 nodes (3597.00 seconds)
Cbc0032I Strong branching done 11770 times (748581 iterations), fathomed
161 nodes and fixed 312 variables
Cbc0035I Maximum depth 347, 1583061 variables fixed on reduced cost
Cbc0038I Probing was tried 27963 times and created 722193 cuts of which 167
were active after adding rounds of cuts (155.081 seconds)
Cbc0038I Gomory was tried 27963 times and created 30873 cuts of which 9868
were active after adding rounds of cuts (687.126 seconds)
Cbc0038I Knapsack was tried 4 times and created 0 cuts of which 0 were
active after adding rounds of cuts (0.010 seconds)
Cbc0038I Clique was tried 4 times and created 0 cuts of which 0 were active
after adding rounds of cuts (0.000 seconds)
Cbc0038I MixedIntegerRounding2 was tried 4 times and created 0 cuts of
which 0 were active after adding rounds of cuts (0.148 seconds)
Cbc0038I FlowCover was tried 4 times and created 0 cuts of which 0 were
active after adding rounds of cuts (0.071 seconds)
Cbc0038I TwoMirCuts was tried 1 times and created 64 cuts of which 0 were
active after adding rounds of cuts (0.205 seconds)
Cbc0038I Stored from first was tried 27963 times and created 9823 cuts of
which 5511 were active after adding rounds of cuts (0.000 seconds)
Cbc0012I Integer solution of 335722.71 found by Reduced search after
6734688 iterations and 28647 nodes (3597.50 seconds)
Cbc0020I Exiting on maximum time
Cbc0005I Partial search - best objective 335722.71 (best possible
314230.99), took 6734688 iterations and 28647 nodes (3597.50 seconds)
Cbc0032I Strong branching done 438 times (4140 iterations), fathomed 0
nodes and fixed 0 variables
Cbc0035I Maximum depth 37, 0 variables fixed on reduced cost
Cuts at root node changed objective from 306383 to 314231
Probing was tried 37 times and created 800 cuts of which 0 were active
after adding rounds of cuts (1.751 seconds)
Gomory was tried 37 times and created 326 cuts of which 45 were active
after adding rounds of cuts (4.145 seconds)
Knapsack was tried 20 times and created 0 cuts of which 0 were active after
adding rounds of cuts (0.071 seconds)
Clique was tried 20 times and created 0 cuts of which 0 were active after
adding rounds of cuts (0.002 seconds)
MixedIntegerRounding2 was tried 20 times and created 8 cuts of which 1 were
active after adding rounds of cuts (0.610 seconds)
FlowCover was tried 1 times and created 0 cuts of which 0 were active after
adding rounds of cuts (0.007 seconds)
TwoMirCuts was tried 37 times and created 282 cuts of which 1 were active
after adding rounds of cuts (1.891 seconds)

Result - Stopped on time limit

Objective value:                335722.71500000
Lower bound:                    314230.987
Gap:                            0.07
Enumerated nodes:               28647
Total iterations:               6734688
Time (CPU seconds):             3597.94
Time (Wallclock seconds):       3625.79

Total time (CPU seconds):       3597.94   (Wallclock seconds):       3625.79
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20140318/a9ed5cca/attachment.html>


More information about the Cbc mailing list