<br><font size=2 face="sans-serif">Esben,</font>
<br>
<br><font size=2 face="sans-serif">Presolve tries to update basis as it
reduces the size of the problem but it does have a much better chance of
doing this correctly with the column solution as you suggest. &nbsp;If
you start with a basis of full rank then every time a row is removed something
has to leave basis - but where to? &nbsp;If the solution value is 7.0 and
the removed row puts an upper bound of 7.0 on the variable then it is a
good guess to put the variable at its upper bound. &nbsp;Without solution
values the code has no idea which bound to put it to.</font>
<br>
<br><font size=2 face="sans-serif">John</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Esben Mose Hansen &lt;esben@ange.dk&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: coin-discuss-bounces@list.coin-or.org</font>
<p><font size=1 face="sans-serif">07/18/2007 11:10 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Discussions about open source software for Operations Research &nbsp; &nbsp;
&nbsp; &nbsp;&lt;coin-discuss@list.coin-or.org&gt;</font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Discussions about open source software
for Operations Research &lt;coin-discuss@list.coin-or.org&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[Coin-discuss] Warmstart/basis reuse</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Hi,<br>
<br>
I'm trying to implement warmstart in my solver that uses <br>
OsiClpSolverInterface::initialSolve() as it's solver. Only, it doesn't
work <br>
like I would expect.<br>
<br>
These are the steps I use:<br>
<br>
1. Solve a problem using OsiClpSolverInterface::initialSolve() <br>
2. Read the basis with solver.getWarmStart()<br>
3. Load the same problem with (with readMps())<br>
4. Set the basis with solver.setWarmStart()<br>
5. solve the problem again.<br>
<br>
<br>
In my opinion 5 should be quite fast, but it is in reality slower than
the <br>
original solving, by 30 seconds or so. Any clue to what I am doing in wrong?
<br>
I inserted some getBasis()-&gt;print() in intialSolve(), and could verify
that <br>
the basis on the solved ClpSimplex model was indeed the same as was set
on <br>
the ClpSimplex when solving 5. I even checked that the presolved ClpModel
<br>
(called model model2 in the code) matched.<br>
<br>
What have I missed? Does the solver need additional information in step
5, <br>
such as the column solution from step 1?<br>
<br>
Thanks for reading :)<br>
<br>
-- <br>
regards, Esben<br>
_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
</font></tt>
<br>