<br><font size=2 face="sans-serif">Sebastian,</font>
<br>
<br><font size=2 face="sans-serif">Not sure it will solve your problem,
but it will do no harm to replace asserts by return -1 (to signal that
basis would be singular).</font>
<br>
<br><font size=2 face="sans-serif">In trunk pivot now returns -1 on small
pivot.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr>
<td><img src=cid:_1_2368FC382368F85000761CCA85257568>
<td width=100%>
<table width=100%>
<tr valign=top>
<td width=100%><font size=2 face="sans-serif"><b>[Clp] Necessary preconditions
for manually calling &nbsp; &nbsp; &nbsp; &nbsp;OsiSolverInterface::pivot(int,
int, int)</b></font></table>
<br>
<table width=100%>
<tr>
<td><font size=2 color=#e26200 face="sans-serif"><b>Sebastian Theophil
</b></font>
<td><font size=2 color=#8f8f8f face="sans-serif">to:</font>
<td><font size=2 face="sans-serif">clp</font>
<td>
<div align=right><font size=1 face="sans-serif">02/25/2009 12:42 PM</font></div></table>
<br>
<table width=100%>
<tr>
<td>
<table width=100%>
<tr>
<td><font size=2 color=#8f8f8f face="sans-serif">Sent by:</font>
<td width=100%><font size=2 color=#e26200 face="sans-serif"><b>clp-bounces@list.coin-or.org</b></font></table>
<br>
<td>
<div align=right></div></table>
<br></table>
<br>
<br>
<hr>
<br>
<br>
<br><font size=2 face="Calibri">Dear CLP users,</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">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_)&gt;1e-12.</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">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 </font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Courier New">factorization_-&gt;updateColumnFT(rowArray_[2],rowArray_[1])</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">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?</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">I'd appreciate any help in this matter.</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">Thanks in advance,</font>
<br><font size=2 face="Calibri">Sebastian</font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">Some more background information on what
I am trying to achieve: </font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">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. </font>
<br><font size=2 face="Calibri">&nbsp;</font>
<br><font size=2 face="Calibri">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. </font>
<br><font size=2 face="Calibri">&nbsp;</font>
<p><font size=2 face="Tahoma">--<br>
Sebastian Theophil (</font><a href="mailto:stheophil@think-cell.com"><font size=2 color=blue face="Tahoma"><u>stheophil@think-cell.com</u></font></a><font size=2 face="Tahoma">)<br>
Software Engineer </font>
<p>
<table width=100%>
<tr>
<td width=44%><font size=2 face="Tahoma">think-cell Software GmbH</font>
<td colspan=2><a href="http://www.think-cell.com/"><font size=2 color=blue face="Tahoma"><u>http://www.think-cell.com</u></font></a>
<tr>
<td><font size=2 face="Tahoma">Invalidenstr. 34</font>
<td><font size=2 face="Tahoma">phone</font>
<td><font size=2 face="Tahoma">+49-30-666473-10</font>
<tr valign=top>
<td><font size=2 face="Tahoma">10115 Berlin, Germany</font>
<td><font size=2 face="Tahoma">toll-free (US)</font>
<td><font size=2 face="Tahoma">+1-800-891-8091</font>
<tr>
<td colspan=3><font size=2 face="Tahoma">Directors: Dr. Markus Hannebauer,
Dr. Arno Schoedl</font>
<tr>
<td colspan=3><font size=2 face="Tahoma">Amtsgericht Charlottenburg, HRB
85229</font></table>
<br><tt><font size=2>_______________________________________________<br>
Clp mailing list<br>
Clp@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/clp<br>
</font></tt>
<br>