[Cbc] Intermediate results via CbcModel.bestSolution()

acw at ascent.com acw at ascent.com
Thu Jul 15 11:27:58 EDT 2010


In our application, we pose biggish problems to Cbc, which then goes off 
and spends quite a while solving them.  Even before we get the optimal 
solution, we can make use of any solutions Cbc finds along the way.

So, during the solution process, when we see that Cbc has improved its 
best result, we query the CbcModel using bestSolution().

Recently we've started encountering a problem where the returned solution 
is much shorter than expected.  Looking at the number of columns in the 
solution makes us suspect that we are seeing solutions to the processed 
model, and not to the original one.  That is, Cbc is boiling the problem 
down to a smaller, equivalent problem, and solving that; when it's 
completely finished it inverts the transformation to give a solution to 
the original problem.  But if we interrupt it, we find an intermediate 
solution to the transformed problem, not the original.

This makes a certain amount of sense, but it didn't use to happen.  In a 
previous Cbc version, either the model was not compressed in the same way, 
or bestSolution() inverted the compression regardless of whether the 
solution was complete.

Is this change in behavior intentional?  If so, does there remain any 
supported way to extract an intermediate solution to the problem as posed?

Thank you; our experience with Cbc has been overwhelmingly positive, and 
we're sure there's an easy solution to this glitch as there have been for 
every problem we've encountered in the past.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://list.coin-or.org/pipermail/cbc/attachments/20100715/3f56e97a/attachment.html 


More information about the Cbc mailing list