[Coin-lpsolver] determining infeasibility in ClpInterior
Kish Shen
kish.shen at crosscoreop.com
Tue Nov 21 20:38:39 EST 2006
John,
Thanks again for your reply!
On Friday 17 November 2006 09:40, John J Forrest wrote:
> It is a known defect that the Clp barrier does not detect infeasibility or
> unboundedness correctly. It is on my list of the 100 things most wanted
> :-)
>
> On getting solutions use dualRowSolution() and/or primalColumnSolution()
> and check feasibility (either by hand or by checkSolution();
>
I looked at ClpInterior's checkSolution(), which does not take any arguments, and have
a void return type. It seems to update sumPrimalInfeasibilities_ and sumDualnfeasibilites_.
If I use this function, do I still need to calld primalColumnSolution() first?
I am a bit confused: ClpInterior's has sumDualInfeasibilities(), which I assume should indicate
if the problem is feasible or not (if the sum < 1e-5 or something like that). Can I just call
sumDualInfeasibilities() to check the feasibility?
On a related question: if I get the dual solution values using dualRowSolution(), is there anyway
I can get the dual objective value from this? Or is there an easier way to get the dual objective
value?
Thanks and cheers,
Kish
> messages should be out by default on trunk and branches/devel
>
> John Forrest
>
>
>
> Kish Shen
> <kish.shen at crossc
> oreop.com> To
> Sent by: coin-lpsolver at list.coin-or.org
> coin-lpsolver-bou cc
> nces at list.coin-or
> .org Subject
> [Coin-lpsolver] determining
> infeasibility in ClpInterior
> 11/16/06 07:49 PM
>
>
>
>
>
>
>
>
>
> Hi,
>
> I have been testing out ClpInterior with some test cases, and for the
> following simple problem:
>
> objective: min(X)
>
> subject to:
>
> X + Y >= 3
> X + Y <= 2
> X - Y = 0
>
> which is obviously infeasible, and when I solve the problem with Clp's
> Simplex, this is indeed
> what I get. However, when I solve the problem with ClpInterior, I get a
> solution (with X and
> Y = 1).
>
> Looking at the code:
>
> lpd->lp->interiormodel->setCholesky(cholesky);
> lpd->lp->interiormodel->primalDual();
> // Barrier done
>
> if (lpd->lp->interiormodel->isProvenOptimal())
> {
> // Do crossover if optimal...
> .....
> }
>
> where lpd->lp->interiormodel is a ClpInterior *, the isProvenOptimal()
> method returns true.
> I assume it should not?
>
> --Kish Shen
>
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
>
>
> _______________________________________________
> Coin-lpsolver mailing list
> Coin-lpsolver at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-lpsolver
>
More information about the Clp
mailing list