[Clp] Necessary preconditions for manually calling OsiSolverInterface::pivot(int, int, int)

Sebastian Theophil stheophil at think-cell.com
Wed Feb 25 12:26:25 EST 2009


Dear CLP users,

 

I have a problem using the pivot method correctly. Basically, I try to
find out how I can decide a priori if a pivot step is possible or not
instead of stumbling over the assert that fabs(alpha_)>1e-12.

 

Given the outgoing variable in sequenceOut_, ClpSimplex::pivot seems to
use the pivotVariable_ array to to find the pivot element. Apparently I
could check pivotVariable_ before calling pivot() to find the pivot
element. Additionally, I'd have to check the value of the pivot element
alpha_. It seems to me that the value of alpha_ is the result of the
factorization done in 

 

factorization_->updateColumnFT(rowArray_[2],rowArray_[1])

 

Without doing this factorization I cannot decide if the pivot can be
done or not. Am I correct? Should I do this calculation beforehand to
implement a test? Since the pivot() function already exists, I thought
there must be a way to do what I am trying to do that is conformant with
the OSI interface, am I right?

 

I'd appreciate any help in this matter.

 

Thanks in advance,

Sebastian

 

Some more background information on what I am trying to achieve: 

 

I'm trying to solve LP problems that are highly degenerate. Thus, my
optimal primal basis contains slack variables with value 0. As far as I
understand, this basic slack variable can be made non-basic and another
slack variable can be made basic in its place without changing the
values of basic non-slack variables. 

 

I'd like to pivot out each basic slack variable with value 0. I would
like to pivot in a non-basic slack variable instead. For now, any
non-basic slack variable would do. In the end, I would prefer to pivot
in a non-basic slack variable that leads to a different dual solution.
The goal is to enumerate (possibly all) dual solutions that belong to
the same primal solution. 

 


--
Sebastian Theophil . stheophil at think-cell.com
Software Engineer
 
think-cell Software GmbH . Invalidenstr. 34 . 10115 Berlin, Germany 
http://www.think-cell.com . phone +49-30-666473-10 . toll-free (US) +1-800-891-8091
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl . Amtsgericht Charlottenburg, HRB 85229

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20090225/f3618488/attachment.html>


More information about the Clp mailing list