<br><font size=2 face="sans-serif">A little while ago I sent the following
message to Coin-discuss. The last time I paid serious attention,
there was no mailing list devoted to Cbc, but now I discover that there
is, and this was probably a better place to ask my question. I apologize
to those who are seeing my query twice.</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Allan
C Wechsler/Cambridge/Ascent on 12/16/2008 07:11 PM -----</font>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">acw@ascent.com</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">coin-discuss@list.coin-or.org</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">12/16/2008 06:14 PM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">[Coin-discuss] Clues sought on how to
diagnose Cbc performance changes</font></table>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 face="sans-serif"><br>
About two years ago, we built an application around the then-current release
of Cbc. For the sake of discussion, call this "Version A."</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Very recently, we downloaded a much more recent release, and re-architected
the application. This "Version B" has exactly the same
API as Version A, but the details of the systems integration are different
in a variety of ways. </font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
Version A was essentially a hack-job on CbcMain's command-line interface:
for example, it launched the Cbc solver by faking a "branch"
command. Version B, in contrast, was written along the lines of some
of the simpler examples in Cbc/examples, and since it leaves out most of
the machinery of the command-line interface, it's about a factor of ten
shorter.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
To my (perhaps naive) surprise, Version B is far less efficient than Version
A. On one small example problem, Version A processed 24 nodes to
solve the problem, while Version B processed 52 nodes, more than twice
as many.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
It is obvious that we have made at least one ill-advised change in cut,
node, or branch selection, or in presolve/postsolve processing. We
have avoided customizations we did not understand, and in most cases used
the default choices that were implicit in the two versions of Cbc.</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
We have tried more-or-less blind flailing in our attempts to regain the
lost performance efficiency, exploring Version A and experimenting with
transplanting various customizations from there to Version B, but nothing
has had an effect of more than about 10%, compared to the more than 2-to-1
discrepancy between the two versions.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Obviously Cbc has not regressed; it is our own ignorance of how to configure
it that is at fault. But we don't even know how to begin the analysis
that would reveal fruitful avenues to take. We would appreciate any
advice. I haven't provided much detail about our configuration, because
I don't know what aspects of it are important, but I'd be pleased to answer
any questions that would help someone give us some guidance.</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Thank you for your consideration, and for the enormous amount of work that
has clearly been put into making Cbc a useful tool.</font><tt><font size=2>_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@list.coin-or.org<br>
</font></tt><a href="http://list.coin-or.org/mailman/listinfo/coin-discuss"><tt><font size=2>http://list.coin-or.org/mailman/listinfo/coin-discuss</font></tt></a><tt><font size=2><br>
</font></tt>