[Coin-lpsolver] tableau column for artificials

magh at lehigh.edu magh at lehigh.edu
Mon Dec 6 11:05:47 EST 2004


I understand now... I am calling getBInvACol through Osi (see below). The direct
CLP call has a different check, which does allow for getting artificial columns.

void 
ClpSimplex::getBInvACol(int col, double* vec)
...

#ifndef NDEBUG
  int n = numberColumns_+numberRows_;
  if (col<0||col>=n) {
    indexError(col,"getBInvACol");
  }
#endif

Is the implementation in OsiClp and Clp significantly different? If not, perhaps
having the implementation in Clp and a simple wrapper call from OsiClp would be
cleaner?

Matt




> Hi John, 
> 
> Your unitTest does seem to pass. I am not quite sure why... below is the
> check
> for col < numCols, that I hit if I try to get an artifical column using index
> =
> numCols + i. 
> 
> void 
> OsiClpSolverInterface::getBInvACol(int col, double* vec)
> ...
> #ifndef NDEBUG
>   int n = modelPtr_->numberColumns();
>   if (col<0||col>=n) {
>     indexError(col,"getBInvACol");
>   }
> #endif
> 
> Matt
> 
> 
> 
> 
> > Matt,
> > 
> > I am confused by your notes.  getBInvACol(numberColumns+i,..) should get 
> > the ith artificial and should not throw an exception.  The coding at line 
> > 698 of Test/unitTest.cpp is an example.
> > 
> > Partly on this topic, I am in the middle of making changes to Clp so that 
> > repeated calls are faster and so that the factorization is not deleted 
> > etc.  These are designed to make the CBC->OSI->CLP combination faster but 
> > may be useful in other contexts.  If anyone is brave enough to help me 
> > test these changes over the next few months can they contact me and say 
> > what they would want and whether they are using Clp via Osi or directly.
> > 
> > John Forrest
> > 
> > 
> > 
> > magh at lehigh.edu 
> > Sent by: coin-lpsolver-bounces at list.coin-or.org
> > 12/03/2004 04:34 PM
> > 
> > To
> > coin-lpsolver at list.coin-or.org
> > cc
> > 
> > Subject
> > Re: [Coin-lpsolver] tableau column for artificials
> > 
> > 
> > 
> > 
> > 
> > 
> > Sorry for posting to my own post (twice)... I often find myself having
> > conversations with myself through email. It keeps me entertained. :)
> > 
> > Can't I just use getBInvCol(r, vec), where r is the row index of the 
> > artificial
> > variable?
> > 
> > Thanks,
> > Matt
> > 
> > 
> > > Sorry - I meant,
> > > 
> > > "column of the tableau for an artificial (non-basic) variable"
> > > 
> > > Thanks,
> > > Matt
> > > 
> > > 
> > > > Hi CLP,
> > > > 
> > > > In getBInvARow, you return a structural and artificial section from 
> > the
> > > > tableau.
> > > > Is it possible to get a column of the tableau for an artificial 
> > (basic)
> > > > variable? 
> > > > 
> > > > Currently, getBInvACol throws an error if you ask for any column index
> 
> > >
> > > > numberColumns().
> > > > 
> > > > Thanks,
> > > > Matt
> > > > 
> > > > 
> > > > 
> > > > -------------------------------------------------
> > > > This mail sent through IMP: http://horde.org/imp/
> > > > _______________________________________________
> > > > Coin-lpsolver mailing list
> > > > Coin-lpsolver at list.coin-or.org
> > > > http://list.coin-or.org/mailman/listinfo/coin-lpsolver
> > > > 
> > > 
> > > 
> > > 
> > > 
> > > -------------------------------------------------
> > > This mail sent through IMP: http://horde.org/imp/
> > > _______________________________________________
> > > Coin-lpsolver mailing list
> > > Coin-lpsolver at list.coin-or.org
> > > http://list.coin-or.org/mailman/listinfo/coin-lpsolver
> > > 
> > 
> > -------------------------------------------------
> > This mail sent through IMP: http://horde.org/imp/
> > _______________________________________________
> > Coin-lpsolver mailing list
> > Coin-lpsolver at list.coin-or.org
> > http://list.coin-or.org/mailman/listinfo/coin-lpsolver
> > 
> > 
> 
> 
> 
> 
> -------------------------------------------------
> This mail sent through IMP: http://horde.org/imp/
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
> 

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/



More information about the Clp mailing list