[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