[Coin-lpsolver] determining infeasibility in ClpInterior

John J Forrest jjforre at us.ibm.com
Wed Nov 22 04:14:54 EST 2006



coin-lpsolver-bounces at list.coin-or.org wrote on 11/21/2006 08:38:39 PM:

> 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?

It does update sum..Infeasibilities etc and primal solution value.  You
only need to use primal solution if you want to finetune things.
>
> 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?

Infeasibilities are treated very differently in Simplex and Interior -
Simplex on an individual basis, Interior on a norm basis.
sumDualInfeasibilities was mainly meant for internal use but will tell you
if you are approximately dual feasible.
>
> 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?

I have just added dualObjective() and primalObjective() to trunk - hope it
helps.  Otherwise it is fixed part of objective value and then add duals
times rhs and reduced costs times bounds with correct signs.
>
> 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
> >
> _______________________________________________
> 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