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

John Forrest john.forrest at fastercoin.com
Thu Nov 17 06:36:32 EST 2016


Stefan,

It is a bug, but I am not sure how to fix.

The optimal continuous solution is 0.0,1.0e-9,0.0.  These values are all 
within integer tolerances so it sets to integers i.e. 0,0,0 and thinks 
that as the continuous solution is integral then the search is over and 
fixes integer variable to 0 and leaves others .  However while the 
continuous objective value was 9.0e-10, the  new solution will be 
1.0e-3,0.0,0.0 - giving an objective value of 1000.

The fixes that I can think of would affect performance too much and/or 
be complicated.
On 16/11/16 09:09, Stefan Hacker wrote:
> 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
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=js2M0T-3OIMIVDvokcKjokJbk0F8QOCd0mT4FsVFE88&m=FlCDUkCFyl6LUVRWa6Mu7ehYk1QuoUvgFPJh_u4AQ-4&s=sSI8pGvVrbw0LJd5V9yjX8yTc8fpKvA0GSiLH77xu2c&e=


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20161117/8460ba0b/attachment.html>


More information about the Cbc mailing list