[Coin-discuss] OsiOsl bug ?

Tim Hultberg thh at mat.ua.pt
Fri May 30 13:56:14 EDT 2003


Thanks John,
   this helped, but I still have some questions. 

I would not have expected  information from the previous problem to survive 
after a second call to loadProblem. But I guess that what I have learned is 
that an OSI solver interface is supposed to be used for one problem only?

I was solving a sequence of problems from a FLOPC++ model using the same Osi- 
SolverInterface. Setting  Solver->setDblParam(OsiDualObjectiveLimit,1.0e50 ); 
after each solve was not enough to make it work properly, but making a new 
clone of the Solver each time did the trick. So I guess that more information 
than only OsiDualObjectiveLimit is retained when calling loadProblem (but not 
when making a clone)?

Tim Hultberg


On Friday 30 May 2003 17:02, John J Forrest wrote:
> Tim,
>
> It is a "feature" - there may be a bug but not where you think.
>
> When Osl finds a solution it sets a "bound" of solution - epsilon (default
> 1.0e-5).  OsiOsl picks up this and stores it so in this case it is as if
>
> Solver->setDblParam(OsiDualObjectiveLimit,-1.0e-5);
>
> After second branch and bound the test for provenOptimal etc tests
> objective value of 0.0 against -1.0e-5 and says not optimal which is
> correct.
>
> To get the behavior you want add this before second solve.
>
> Solver->setDblParam(OsiDualObjectiveLimit,1.0e50);
>
> The bug?  Osl seems to say that it found an optimal solution when it
> should not have.  I will look into it to see if OsiDualObjectiveLimit is
> not being passed in to Osl correctly.
>
> John Forrest

-- 

Tim Hultberg



More information about the Coin-discuss mailing list