[Cbc] cbc.exe vs. Cbc API

Michal Kaut mail at michalkaut.net
Wed Feb 6 11:00:12 EST 2008


Hello,

is there a (preferably easy) way to pass to a OsiCbcSolverInterface or 
CbcModel object the same set of options that the standalone solver 
(cbc.exe) is using?
I have a problem that cbc.exe solves in under a minute, but when I load 
the same MPS file to an OsiCbcSolverInterface object and use 
.branchAndBound(), it takes at least a day (I stopped after a day, so I 
do not know)...

And if not, would someone venture a guess about what options should I 
use, given the output?
cbc.exe:
---------------------------------------------------------------
Problem BLANK has 840 rows, 3990 columns and 10920 elements
Coin0008I BLANK read with 0 errors
Continuous objective value is 1157.17 - 0.09 seconds
Cgl0003I 0 fixed, 252 tightened bounds, 125 strengthened rows, 0 
substitutions
Cgl0004I processed model has 362 rows, 1048 columns (252 integer) and 
2850 elements
Cbc0031I 102 added rows had average density of 5.01961
Cbc0013I At root node, 102 cuts changed objective from 1428.63 to 
4268.57 in 24 passes
Cbc0014I Cut generator 0 (Probing) - 2 row cuts (0 active), 0 column 
cuts  in 0.047 seconds - new frequency is 5
Cbc0014I Cut generator 1 (Gomory) - 64 row cuts (1 active), 0 column 
cuts  in 0.109 seconds - new frequency is 1
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts (0 active), 0 column 
cuts  in 0.063 seconds - new frequency is -100
Cbc0014I Cut generator 3 (Clique) - 0 row cuts (0 active), 0 column cuts 
  in 0.000 seconds - new frequency is -100
Cbc0014I Cut generator 4 (MixedIntegerRounding2) - 194 row cuts (61 
active), 0 column cuts  in 0.031 seconds - new frequency is 1
Cbc0014I Cut generator 5 (FlowCover) - 0 row cuts (0 active), 0 column 
cuts  in 0.000 seconds - new frequency is -100
Cbc0014I Cut generator 6 (TwoMirCuts) - 237 row cuts (29 active), 0 
column cuts  in 0.078 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, 1e+050 best solution, best possible 
4268.57 (2.94 seconds)
Cbc0004I Integer solution of 7465 found after 11465 iterations and 122 
nodes (30.11 seconds)
Cbc0016I Integer solution of 5579 found by strong branching after 11566 
iterations and 125 nodes (30.30 seconds)
Cbc0038I Full problem 362 rows 1048 columns, reduced to 320 rows 799 
columns - too large
Cbc0004I Integer solution of 4796 found after 15969 iterations and 174 
nodes (36.58 seconds)
Cbc0038I Full problem 362 rows 1048 columns, reduced to 330 rows 812 
columns - too large
Cbc0001I Search completed - best objective 4796, took 20593 iterations 
and 247 nodes (41.16 seconds)
Cbc0032I Strong branching done 2920 times (109798 iterations), fathomed 
1 nodes and fixed 56 variables
Cbc0035I Maximum depth 32, 677 variables fixed on reduced cost
Cuts at root node changed objective from 1428.63 to 4268.57
Probing was tried 65 times and created 32 cuts of which 29 were active 
after adding rounds of cuts (0.127 seconds)
Gomory was tried 233 times and created 102 cuts of which 23 were active 
after adding rounds of cuts (0.618 seconds)
Knapsack was tried 24 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.063 seconds)
Clique was tried 24 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.000 seconds)
MixedIntegerRounding2 was tried 233 times and created 827 cuts of which 
465 were active after adding rounds of cuts (0.373 seconds)
FlowCover was tried 1 times and created 0 cuts of which 0 were active 
after adding rounds of cuts (0.000 seconds)
TwoMirCuts was tried 24 times and created 237 cuts of which 29 were 
active after adding rounds of cuts (0.078 seconds)
Result - Finished objective 4796 after 247 nodes and 20593 iterations - 
took 41.27 seconds (total time 41.50)
Total time 41.56
---------------------------------------------------------------

.branchAndBound():
---------------------------------------------------------------
Cbc0031I 72 added rows had average density of 57.1806
Cbc0013I At root node, 72 cuts changed objective from 1157.17 to 2496.59 
in 20 passes
Cbc0014I Cut generator 0 (Probing) - 101 row cuts (48 active), 1 column 
cuts  in 0.079 seconds - new frequency is -100
Cbc0014I Cut generator 1 (Gomory) - 46 row cuts (18 active), 0 column 
cuts  in 0.154 seconds - new frequency is -100
Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts (0 active), 0 column 
cuts  in 0.250 seconds - new frequency is -100
Cbc0014I Cut generator 3 (Clique) - 0 row cuts (0 active), 0 column cuts 
  in -0.000 seconds - new frequency is -100
Cbc0014I Cut generator 4 (FlowCover) - 0 row cuts (0 active), 0 column 
cuts  in 0.125 seconds - new frequency is -100
Cbc0014I Cut generator 5 (MixedIntegerRounding2) - 0 row cuts (0 
active), 0 column cuts  in 0.046 seconds - new frequency is -100
Cbc0010I After 0 nodes, 1 on tree, 1e+050 best solution, best possible 
2496.59 (1.61 seconds)
Cbc0010I After 100 nodes, 53 on tree, 1e+050 best solution, best 
possible 2540.24 (29.69 seconds)
Cbc0010I After 200 nodes, 111 on tree, 1e+050 best solution, best 
possible 2540.24 (52.17 seconds)
Cbc0004I Integer solution of 9092 found after 20082 iterations and 238 
nodes (59.21 seconds)
Cbc0010I After 300 nodes, 160 on tree, 9092 best solution, best possible 
2540.24 (69.19 seconds)
Cbc0012I Integer solution of 7538 found by rounding after 27720 
iterations and 350 nodes (78.11 seconds)
Cbc0010I After 400 nodes, 196 on tree, 7538 best solution, best possible 
2540.24 (94.67 seconds)
Cbc0004I Integer solution of 5985 found after 40396 iterations and 493 
nodes (119.99 seconds)
Cbc0010I After 500 nodes, 214 on tree, 5985 best solution, best possible 
2540.24 (123.16 seconds)
Cbc0010I After 600 nodes, 264 on tree, 5985 best solution, best possible 
2540.24 (149.77 seconds)
...
---------------------------------------------------------------


Thanks a lot in advance.

Regards,
Michal


More information about the Cbc mailing list