[Osi] issue in OsiCbc - corrupting bounds

Laszlo Ladanyi ladanyi at us.ibm.com
Mon Aug 9 13:00:32 EDT 2010


> Matt,
>
>    As far as I know this is a feature of cbc.  There's a thread in the
cbc
> mailing list (`More problem with re-solving a model', 6 Apr 2009) that
talks
> about just this issue.  The solution proposed there (dating back to 2008)
is to
> use the saveReferenceSolver() and resetToReferenceSolver() methods from
> CbcModel.
>
>    Hard to say why this developed as it did, except that it's clearly
more
> efficient in a single-solve use to leave the problem representation in
whatever
> state it's in at the conclusion of the solve.

It's easy to say why is this there: John Forrest wrote cbc, and that's
how it was in OSL. Now why it was this way in OSL...

Anyway, to achieve solver independence it should be OsiCbc's job to
hide this from the user: either
- save the lb/ub vector just before it calls cbc to optimize and restore
  them after the call is done. (And make this in a fashion that every
  result is still accessible.); or
- keep a cached copy of lb/ub, update its cached copy when necessary and
  return those when the user queries.

--Laci

>
>                   Lou
>
> _______________________________________________
> Osi mailing list
> Osi at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/osi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/osi/attachments/20100809/e1d466cb/attachment.html>


More information about the Osi mailing list