[Coin-discuss] osiclpsolver optimal for infeasible problem?

Jan-Willem Goossens j.goossens at t75.nl
Tue Mar 14 12:04:42 EST 2006


Hi,

John, thanks for the immediate fix!

This little problem is part of my own unit tests, which I only just
implemented. I 'borrowed' the example from
http://www.mosek.com/products/3/tools/doc/html/tools/node13.html#sec-priduainf-expdinf

I tested the new sources, and, indeed, the problem doesnt show up as
IsProvenOptimal anymore.

Now, however, next to IsProvenPrimalInfeasible, also
IsDualObjectiveLimitReached is "true". Since the dual of the problem is
infeasible, this doesnt seem right.


Jan-Willem


> Rather embarrassing.
>
> The problem started on this tiny example because it is also unbounded on
> x2 but it could have happened on other problems - the code somehow forgot
> that it was modifying an infeasibility weight and thought it had got in a
> loop!  Even then it should not said optimal.
>
> I should have it fixed now.  Jan-Willem, I hope that fixes your problems
> and thanks for taking the time to create such a small example.
>
> John
>
>
>
> "Jan-Willem Goossens" <j.goossens at t75.nl>
> Sent by: coin-discuss-bounces at list.coin-or.org
> 03/13/2006 10:43 AM
> Please respond to
> Discussions about open source software for Operations Research
> <coin-discuss at list.coin-or.org>
>
>
> To
> coin-discuss at list.coin-or.org
> cc
>
> Subject
> [Coin-discuss] osiclpsolver optimal for infeasible problem?
>
>
>
>
>
>
> Hi all,
>
> I tried to enter the following simple problem through the
> OsiClpSolverInterface:
>
> min  x1 - x2
> s.t. x1 == -1
>
> x1 >= 0, x2 >= 0
>
> This problem is primal infeasible and also dual infeasible.
> I enter it as follows
>
>
>                  OsiClpSolverInterface *s = new OsiClpSolverInterface();
>
>                  double inf = s->getInfinity();
>                  CoinPackedVector empty;
>
>                  s->addCol(empty, 0.0, inf, 1.0);
>                  s->addCol(empty, 0.0, inf,  -1.0);
>
>                  CoinPackedVector r0;
>                  r0.insert(0, 1);
>                  s->addRow(r0, -1.0, -1.0);
>
>                  s->setObjSense(1);
>
>                  s->initialSolve();
>
> So the "x1 == -1" is entered as -1 <= x1 <= -1.
>
> The output is as follows:
>
> Coin0508I Presolve thinks problem is unbounded
> Clp3003W Analysis indicates model infeasible or unbounded
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0006I 0  Obj 0 Primal inf 1 (1) Dual inf 1 (1)
> Clp0032I Optimal objective 0 - 0 iterations time 0.052
>
> The s->getColSolution() shows x1 = x2 = 0.0, and of all the "s->is...()"
> functions, only s->isProvenOptimal() returns true.
>
>
> Not unimportantly, I'm running this using Visual Studio .NET 2003, so
> there might be something there.
> I'm wondering if others get the same results?
> Or am I missing something?
>
> Regards,
>
> Jan-Willem Goossens
>
>
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
>




More information about the Coin-discuss mailing list