<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:85.05pt 56.7pt 85.05pt 56.7pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks for the reply. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Yes, but the fact is actually that we do a less aggressive presolve
the second time with:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoDual(false);            <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoSingleton(false);       <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoDoubleton(false);       <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoTripleton(false);       <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoImpliedFree(false);      <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoDupcol(false);          <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>setDoSingletonColumn(false);<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>This has to do with computing the non-linear objective efficiently
for variables in the presolved model. We would like to keep the most aggressive
presolve for initially solving the LP. My understanding is that after model.initalSolve(),
model has a feasible basis ready for a warm start. Doing presolve on it
maintains the optimal basis, so setting up the tableau for pivoting should be an
operation with low complexity. Thus, I would expect running presolveModel-&gt;primal()
or presolveModel-&gt;dual() basically just would confirm optimality and return
fast. But they don’t. They behave as solving the problem from scratch with primal
and dual infeasibilities. Why does this happen? Is there any way for me to
setup the tableau of presolvedModel fast for pivoting?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks a lot for any help on this!<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Best,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Rune Møller Jensen<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> John J Forrest
[mailto:jjforre@us.ibm.com] <br>
<b>Sent:</b> Wednesday, January 20, 2010 7:11 PM<br>
<b>To:</b> Rune Møller Jensen<br>
<b>Subject:</b> Re: [Clp] Correct setup for individual pivots though OSI
interface<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p style='margin-bottom:12.0pt'>model.initialSolve() is probably doing
presolve, solving, postsolving and then possibly doing primal to clean up any
glitches.<br>
<br>
why not omit model.initialSolve() and try presolvedModel-&gt;dual() instead.
That could easily be faster as you are just doing one presolve not two and one
solve not two<br>
<br>
John Forrest<br>
<br>
<img width=16 height=16 id="_x0000_i1193"
src="cid:image001.gif@01CA9A81.D785CF90"
alt="Inactive hide details for Rune Møller Jensen ---01/20/2010 10:58:02 AM---Hi,"><span
style='color:#424282'>Rune Møller Jensen ---01/20/2010 10:58:02 AM---Hi,</span><o:p></o:p></p>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%"
 style='width:100.0%'>
 <tr>
  <td width="1%" valign=top style='width:1.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=96 height=1 id="_x0000_i1194"
  src="cid:image003.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt;color:#5F5F5F'>From:</span><o:p></o:p></p>
  </td>
  <td width="100%" valign=top style='width:100.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=1 height=1 id="_x0000_i1195"
  src="cid:image004.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt'>Rune Møller Jensen &lt;rmj@itu.dk&gt;</span><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width="1%" valign=top style='width:1.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=96 height=1 id="_x0000_i1196"
  src="cid:image003.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt;color:#5F5F5F'>To:</span><o:p></o:p></p>
  </td>
  <td width="100%" valign=top style='width:100.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=1 height=1 id="_x0000_i1197"
  src="cid:image004.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt'>&lt;Clp@list.coin-or.org&gt;</span><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width="1%" valign=top style='width:1.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=96 height=1 id="_x0000_i1198"
  src="cid:image003.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt;color:#5F5F5F'>Date:</span><o:p></o:p></p>
  </td>
  <td width="100%" valign=top style='width:100.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=1 height=1 id="_x0000_i1199"
  src="cid:image004.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt'>01/20/2010 10:58 AM</span><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width="1%" valign=top style='width:1.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=96 height=1 id="_x0000_i1200"
  src="cid:image003.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt;color:#5F5F5F'>Subject:</span><o:p></o:p></p>
  </td>
  <td width="100%" valign=top style='width:100.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=1 height=1 id="_x0000_i1201"
  src="cid:image004.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt'>[Clp] Correct setup for individual pivots
  though OSI interface</span><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width="1%" valign=top style='width:1.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=96 height=1 id="_x0000_i1202"
  src="cid:image003.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt;color:#5F5F5F'>Sent by:</span><o:p></o:p></p>
  </td>
  <td width="100%" valign=top style='width:100.0%;padding:0in 0in 0in 0in'>
  <p class=MsoNormal><img width=1 height=1 id="_x0000_i1203"
  src="cid:image004.png@01CA9A83.10D10ED0"><br>
  <span style='font-size:10.0pt'><a href="mailto:clp-bounces@list.coin-or.org">clp-bounces@list.coin-or.org</a></span><o:p></o:p></p>
  </td>
 </tr>
</table>

<div class=MsoNormal>

<hr size=2 width="100%" noshade style='color:#8091A5' align=left>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><br>
<br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Hi,</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>We first solve a Clp model to
optimality</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>ClpSimplex model</span><br>
<span style='font-family:"Calibri","sans-serif"'>… code loading problem</span><br>
<span style='font-family:"Calibri","sans-serif"'>model.initalSolve()</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>We then want to make a couple
of pivots to reduce a slightly changed non-linear objective (which we compute
on the side)</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>We first presolve</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>ClpPresolve presolveInfo; </span><br>
<span style='font-family:"Calibri","sans-serif"'>ClpSimplex * presolvedModel =
presolveInfo.presolvedModel(model); </span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Then setup an Osi interface to
do individual pivots</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;OsiClpSolverInterface
presolveModelOsi(presolvedModel);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;presolveModelOsi.enableSimplexInterface(1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>And finally do individual
pivots</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>while (running)<br>
&nbsp;&nbsp; …</span><br>
<span style='font-family:"Calibri","sans-serif"'>&nbsp;
presolveModelOsi.pivot(colIn,colOut,outStatus);<br>
&nbsp; …</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Unfortunately pivots only
seems to be carried out correctly if we resolve the presolved model
(e.g.,&nbsp; by executing presolveModel.primal() before making the Osi
interface). The problem seems to be that not all necessary status variables of
the tableau are instantiated in presolveModel to do individual pivots, but is
there a less time consuming way to get the tableau ready for individual pivots?
</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Any help on this is greatly
appreciated. &nbsp;&nbsp;&nbsp;&nbsp;</span><br>
<br>
<span style='font-family:"Calibri","sans-serif"'>Best,</span><br>
<span style='font-family:"Calibri","sans-serif"'>Rune M. Jensen</span><br>
<br>
<br>
<tt><span style='font-size:10.0pt'>_______________________________________________</span></tt><span
style='font-size:10.0pt;font-family:"Courier New"'><br>
<tt>Clp mailing list</tt><br>
<tt>Clp@list.coin-or.org</tt><br>
<tt><a href="http://list.coin-or.org/mailman/listinfo/clp">http://list.coin-or.org/mailman/listinfo/clp</a></tt><br>
<br>
</span><o:p></o:p></p>

</div>

</body>

</html>