<br><font size=2 face="sans-serif">Sebastian,</font>
<br>
<br><font size=2 face="sans-serif">With finite accuracy, it is possible
for Clp to think it is feasible when starting from one solution/basis and
not from another.</font>
<br>
<br><font size=2 face="sans-serif">Normally variables which are not in
the basis should be at a bound. However it is possible with your
program that you are introducing problems for yourself by adding and deleting
constraints as you are doing. If the initial basis is non-singular
then adding constraints will keep it non-singular as the slack on each
new constraint will be put in basis. However, when the constraints
are deleted some of the constraints will probably be tight. So you
will have more variables in basis than there are rows. On the next
pass some variables will be thrown out of basis and the basis may be singular.
If a variable is -1.0e-8 when in basis and leaves basis it may still
be set to -1.0e-8 which could lead to rounding errors.</font>
<br>
<br><font size=2 face="sans-serif">If you do an initial solve, save the
basis and column solution then you could set these back each time. This
may avoid the problem.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr>
<td><img src=cid:_1_0EDCC2040EDCBE1C006360068525763A>
<td width=100%>
<table width=100%>
<tr valign=top>
<td width=100%><font size=2 face="sans-serif"><b>[Clp] Accumulating rounding
errors cause solution to become infeasible</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">09/23/2009 01:19 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>
<table width=100%>
<tr valign=top>
<td><img src=cid:_1_0EDF1DF80EDF1A3C006360098525763A>
<td width=100%>
<td>
<tr>
<td valign=top><font size=1 color=#8f8f8f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">"Sebastian Theophil" <stheophil@think-cell.com></font>
<td valign=top>
<div align=right></div>
<tr valign=top>
<td>
<td>
<td>
<tr>
<td valign=top><font size=1 color=#8f8f8f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif"><clp@list.coin-or.org></font>
<td valign=top>
<tr valign=top>
<td>
<td>
<td>
<tr valign=top>
<td><font size=1 color=#8f8f8f face="sans-serif">Sent by:</font>
<td><font size=1 face="sans-serif">clp-bounces@list.coin-or.org</font>
<td></table>
<br>
<br>
<hr>
<br>
<br>
<br><tt><font size=2>Hi,<br>
<br>
in our application we solve a linear constraint system many times with<br>
little changes. Very roughly, it looks like this:<br>
<br>
OsiClpSolverInterface solver;<br>
<br>
AddConstraints(solver);<br>
<br>
while( something ) {<br>
AddMoreConstraints( solver );<br>
solver.initialSolve() / resolve();<br>
...<br>
<br>
RemoveConstraints( solver ); // undo all changes performed<br>
_inside_ loop<br>
}<br>
<br>
Now I have a reproducible scenario in which the problem becomes<br>
infeasible during the second run of the while loop but not in the first.<br>
I've seen that some primal solution values have nudged below the lower<br>
bound by just a little bit more than the tolerance (about 10e-7). <br>
<br>
The problem disappears if I save the problem to an mps file after<br>
AddConstraints(solver) and if I reinitialize the solver at the beginning<br>
of each while loop.<br>
<br>
How can I debug the problem? The sequence of solver operations during<br>
the first loop is very long, so it isn't practical to create a complete<br>
driver for the problem. Is there some magic setting that forces the<br>
solver to set variables to their precise lower bounds?<br>
<br>
Of course, I hesitate to just increase the feasibility tolerance unless<br>
someone recommends to do that for a reason :-) <br>
<br>
Thanks for the help<br>
Sebastian<br>
<br>
--<br>
Sebastian Theophil . stheophil@think-cell.com<br>
Software Engineer<br>
<br>
think-cell Software GmbH . Invalidenstr. 34 . 10115 Berlin, Germany <br>
http://www.think-cell.com . phone +49-30-666473-10 . toll-free (US) +1-800-891-8091<br>
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl . Amtsgericht Berlin-Charlottenburg,
HRB 85229<br>
<br>
<br>
_______________________________________________<br>
Clp mailing list<br>
Clp@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/clp<br>
</font></tt>
<br>