<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.
Abandoned may be "best" return setting - it really should
be "unknown" (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. So problem
is still primal feasible but complementarity has gone. Code knows
it has to be at bound but might put it to wrong bound. 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 <stefan@mathematik.hu-berlin.de></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>
> In my understanding the two methods you mention will re-compute the<br>
> reduced costs and duals for a new objective BUT it would be up to
the user<br>
> to check whether the solution is still optimal. The simplest
function to<br>
> use is Clp's checksolution method. If you modify the problem
in any way<br>
> and then use getModelPtr() to get a Clp pointer then after<br>
> clpPpointer->checkSolution() you can check if the problem is still
optimal<br>
> (and returned as such by OsiSolverInterface::isProvenOptimal). You
could<br>
> also interrogate such ClpSimplex functions as numberDualInfeasibiliies()<br>
> or sumDualInfeasibilities() or their primal counterparts for more
subtle<br>
> 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>