[Cbc] Cbc returns invalid result on simple problem unless presolve is enabled

Stefan Hacker hacker.stefan at gmail.com
Wed Nov 16 04:09:49 EST 2016


Hi,

I am trying to use Cbc to solve what I thought to be a simple problem.
However the behavior I see makes me wonder if I am encountering a Cbc
bug or if there is something wrong in the way I am using it.

If I run the attached model using Cbc 2.9.7 (version isn't that
important I think) from the console like this:
cbc model.lp -solve

I get the expected objective value of 0.9. However without presolving enabled
cbc model.lp -preprocess off -solve

Cbc returns an objective value of 1000 which is incorrect.

Originally I was using Cbc as a library (close to the minimum.cpp
example from the documentation) and didn't consider presolve to be
relevant for such a small problem. Activating it feels like I am just
suppressing a symptom without understanding or fixing the cause. Even
more confusing to me is that after the call to branchAndBound the
CbcModel returns 0 for primary and secondary status and
isProvenOptimal returns true.

Is the result being wrong without presolve a bug or am I trying
something stupid here without noticing? Also Cbc returning "optimal"
in all ways I know to check but still returning an incorrect result is
unsettling. Did I miss some indicator Cbc gave me?

Thanks a lot.

Regards,
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: model.lp
Type: application/octet-stream
Size: 384 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20161116/b88cd264/attachment.obj>


More information about the Cbc mailing list