[Coin-discuss] CLP dual ray value 100000 - magic number?

Matthew Galati magh at lehigh.edu
Tue May 27 21:39:11 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.

u[0 ]: -19948086.12
u[1 ]: 62691148.33
u[2 ]: 42453349.28
u[3 ]: -119773684.21
u[5 ]: 21301674.64
u[6 ]: 8089712.92
u[7 ]: 6124401.91
u[8 ]: 14075837.32
u[9 ]: 143725358.85
u[18 ]: 92318421.05
u[33 ]: 60311961.72
u[56 ]: 100000.00
u[58 ]: -100000.00
u[64 ]: -100000.00
u[98 ]: -100000.00
u[110 ]: 100000.00
u[145 ]: -100000.00
u[178 ]: 100000.00
u[185 ]: 864127511.96
u[197 ]: -100000.00
....






More information about the Coin-discuss mailing list