[Coin-discuss] CLP dual ray value 100000 - magic number?
Matthew Galati
magh at lehigh.edu
Wed May 28 11:06:52 EDT 2008
> I have an infeasible LP where I want to use the dual ray to price out
> a new column.
>
> Using CLP, I solve with resolve( ), then if found infeasible, I
> resolve with presolve off to make sure I get dual ray.
>
> else if(m_masterSI->isProvenPrimalInfeasible()){
> status = STAT_INFEASIBLE;
>
> //---
> //--- it is possible that presolver determined infeasibility
> //--- but, we will need a dual ray, so we should resolve with
> //--- presolve off
> //---
> m_masterSI->setDblParam(OsiDualObjectiveLimit, DecompInf);
> m_masterSI->setHintParam(OsiDoPresolveInResolve, false, OsiHintDo);
> m_masterSI->resolve();
> m_masterSI->setHintParam(OsiDoPresolveInResolve, true, OsiHintDo);
> }
>
> After this, I get dual ray(s). It really only returns 1.
>
> vector<double*> rays = m_masterSI->getDualRays(maxNumRays);
>
> I checked and the ray is a valid infeasibility ray -- in that it
> satisfies the Farkas lemma. However, I get some errors later in my
> program that make me question the values in the dual ray.
>
> Looking at the values that come back... I am seeing a lot of 100,000
> and -100,000. I suppose it could just be dumb luck -- but it looks a
> little like a magic number to me. Any thoughts? I will do my best to
> come up with an independent test to show this.
FYI. This problem seems to have been fixed at Clp trunk - perhaps
related to the bug fix John just posted for Ticket 21.
More information about the Coin-discuss
mailing list