<br><font size=2 face="sans-serif">Jan-Willem,</font>
<br>
<br><font size=2 face="sans-serif">isDualObjectiveLimitReached is more
complex. It is possible that the current coding is incorrect but
it may break people's code if it is changed.</font>
<br>
<br><font size=2 face="sans-serif">Clp returns the same primal infeasible
code when it is primal infeasible and when it is infeasible because dual
limit exceeded. When that code was written there was no secondary
status to tell the difference. The primal version checks to see if
an objective limit was set - if not it returns false. At present
the dual version always returns true if primal infeasible, even if the
dual limit has not been set.</font>
<br>
<br><font size=2 face="sans-serif">I am quite happy to make changes but
I am worried that people may just be doing a single test on dual limit
rather than a test on dual limit and a test for primal infeasible, in which
case their code will break.</font>
<br>
<br><font size=2 face="sans-serif">I will sit back for a day or two and
see if I get any comments.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>"Jan-Willem Goossens"
<j.goossens@t75.nl></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">03/14/2006 12:04 PM</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
<coin-discuss@list.coin-or.org></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" <coin-discuss@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-discuss] osiclpsolver optimal
for infeasible problem?</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Hi,<br>
<br>
John, thanks for the immediate fix!<br>
<br>
This little problem is part of my own unit tests, which I only just<br>
implemented. I 'borrowed' the example from<br>
http://www.mosek.com/products/3/tools/doc/html/tools/node13.html#sec-priduainf-expdinf<br>
<br>
I tested the new sources, and, indeed, the problem doesnt show up as<br>
IsProvenOptimal anymore.<br>
<br>
Now, however, next to IsProvenPrimalInfeasible, also<br>
IsDualObjectiveLimitReached is "true". Since the dual of the
problem is<br>
infeasible, this doesnt seem right.<br>
<br>
<br>
Jan-Willem<br>
<br>
<br>
> Rather embarrassing.<br>
><br>
> The problem started on this tiny example because it is also unbounded
on<br>
> x2 but it could have happened on other problems - the code somehow
forgot<br>
> that it was modifying an infeasibility weight and thought it had got
in a<br>
> loop! Even then it should not said optimal.<br>
><br>
> I should have it fixed now. Jan-Willem, I hope that fixes your
problems<br>
> and thanks for taking the time to create such a small example.<br>
><br>
> John<br>
><br>
><br>
><br>
> "Jan-Willem Goossens" <j.goossens@t75.nl><br>
> Sent by: coin-discuss-bounces@list.coin-or.org<br>
> 03/13/2006 10:43 AM<br>
> Please respond to<br>
> Discussions about open source software for Operations Research<br>
> <coin-discuss@list.coin-or.org><br>
><br>
><br>
> To<br>
> coin-discuss@list.coin-or.org<br>
> cc<br>
><br>
> Subject<br>
> [Coin-discuss] osiclpsolver optimal for infeasible problem?<br>
><br>
><br>
><br>
><br>
><br>
><br>
> Hi all,<br>
><br>
> I tried to enter the following simple problem through the<br>
> OsiClpSolverInterface:<br>
><br>
> min x1 - x2<br>
> s.t. x1 == -1<br>
><br>
> x1 >= 0, x2 >= 0<br>
><br>
> This problem is primal infeasible and also dual infeasible.<br>
> I enter it as follows<br>
><br>
><br>
> OsiClpSolverInterface
*s = new OsiClpSolverInterface();<br>
><br>
> double
inf = s->getInfinity();<br>
> CoinPackedVector
empty;<br>
><br>
> s->addCol(empty,
0.0, inf, 1.0);<br>
> s->addCol(empty,
0.0, inf, -1.0);<br>
><br>
> CoinPackedVector
r0;<br>
> r0.insert(0,
1);<br>
> s->addRow(r0,
-1.0, -1.0);<br>
><br>
> s->setObjSense(1);<br>
><br>
> s->initialSolve();<br>
><br>
> So the "x1 == -1" is entered as -1 <= x1 <= -1.<br>
><br>
> The output is as follows:<br>
><br>
> Coin0508I Presolve thinks problem is unbounded<br>
> Clp3003W Analysis indicates model infeasible or unbounded<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0006I 0 Obj 0 Primal inf 1 (1) Dual inf 1 (1)<br>
> Clp0032I Optimal objective 0 - 0 iterations time 0.052<br>
><br>
> The s->getColSolution() shows x1 = x2 = 0.0, and of all the "s->is...()"<br>
> functions, only s->isProvenOptimal() returns true.<br>
><br>
><br>
> Not unimportantly, I'm running this using Visual Studio .NET 2003,
so<br>
> there might be something there.<br>
> I'm wondering if others get the same results?<br>
> Or am I missing something?<br>
><br>
> Regards,<br>
><br>
> Jan-Willem Goossens<br>
><br>
><br>
><br>
> _______________________________________________<br>
> Coin-discuss mailing list<br>
> Coin-discuss@list.coin-or.org<br>
> http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
><br>
> _______________________________________________<br>
> Coin-discuss mailing list<br>
> Coin-discuss@list.coin-or.org<br>
> http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
><br>
<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>