<br><font size=2 face="sans-serif">Stefan,</font>
<br>
<br><font size=2 face="sans-serif">Will look into it in the next few days.
&nbsp;Abandoned may be &quot;best&quot; return setting - it really should
be &quot;unknown&quot; (Clp problem status -1).</font>
<br>
<br><font size=2 face="sans-serif">Could be something simple such as slack
is at ub, ub is increased but value of slack stays same. &nbsp;So problem
is still primal feasible but complementarity has gone. &nbsp;Code knows
it has to be at bound but might &nbsp;put it to wrong bound. &nbsp; As
I said I can try and look at it soon.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Stefan Vigerske &lt;stefan@mathematik.hu-berlin.de&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: coin-lpsolver-bounces@list.coin-or.org</font>
<p><font size=1 face="sans-serif">03/09/2006 06:50 AM</font>
<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">coin-lpsolver@list.coin-or.org</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">Re: [Coin-lpsolver] optimality of a
dual solution after rhs change</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Hi,<br>
<br>
Thanks a lot for your help. I've never tried these methods before.<br>
But now I've a problem that after changing the bounds of a row of the problem,
<br>
the dual solution becomes infeasible. From my understanding of duality
<br>
theory, changing a right-hand-side shouldn't affect the feasibility space
of <br>
the dual problem, since the right-hand-side of the primal is the objective
of <br>
the dual.<br>
I tried this on a small example (see appendix). After increasing an upper
<br>
bound, there is a dual infeasibility reported which is exactly the value
of <br>
the dual variable for the row which bound had been changed.<br>
Also isProvenAbandoned() returns true, while isProvenOptimal() returns
false. <br>
I know that the last primal point might be not feasible or not optimal
after <br>
a change of the bounds of a row, but the dual point should stay feasible,
and <br>
I'm only interested whether it is still optimal.<br>
Is there a way to check only if the dual solution is still optimal after
a <br>
change of the bounds, like a isProvenDualOptimal() ?<br>
<br>
&gt; In my understanding the two methods you mention will re-compute the<br>
&gt; reduced costs and duals for a new objective BUT it would be up to
the user<br>
&gt; to check whether the solution is still optimal. &nbsp;The simplest
function to<br>
&gt; use is Clp's checksolution method. &nbsp;If you modify the problem
in any way<br>
&gt; and then use getModelPtr() to get a Clp pointer then after<br>
&gt; clpPpointer-&gt;checkSolution() you can check if the problem is still
optimal<br>
&gt; (and returned as such by OsiSolverInterface::isProvenOptimal). &nbsp;You
could<br>
&gt; also interrogate such ClpSimplex functions as numberDualInfeasibiliies()<br>
&gt; or sumDualInfeasibilities() or their primal counterparts for more
subtle<br>
&gt; information.<br>
<br>
Thanks again :-),<br>
Stefan<br>
<br>
-- <br>
Stefan Vigerske<br>
Humboldt University Berlin, Numerical Mathematics<br>
http://www.math.hu-berlin.de/~stefan<br>
_______________________________________________<br>
Coin-lpsolver mailing list<br>
Coin-lpsolver@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/coin-lpsolver<br>
</font></tt>
<br>