[Coin-lpsolver] determining infeasibility in ClpInterior

Kish Shen kish.shen at crosscoreop.com
Wed Nov 22 09:31:43 EST 2006


HI,

On Wednesday 22 November 2006 09:14, John J Forrest wrote:

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

Sorry, I mistyped -- I meant sumPrimalInfeasibilities() -- from what you said, I think calling 
checkSolution() will finetune the primal infeasibilities (by solution value here do you mean
the objective value or the solution values for the variables?). Do I need to call checkSoution()
first (before calling sumPrimalIneasibilities()) if I just want to check if the solution is feasible 
or not? [I assume checkSolution() can get expensive if I have a large problem?]

Erling Andersen mentioned that primal-dual algorithm cannot deal with primal/dual 
infeasibilities in a theoretically sound way -- does this affect CLP's Interior algorithm?

Am I correct in thinking that currently isProvenOptimal() just means that the Interior solve
was completed, with either an optimal solution or is infeasible, i.e. the problem is not
unbounded or the solve aborted early? This is what I am assuming in my code.

Is there anyway currently I can detect that a problem is definitely unbounded with 
ClpInterior's API? I guess for me this is less critical than not detecting infeasibility, as we
do provide an `unknown' state where the problem can be either infeasible or unbounded.
  
> > 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! I will try it out.

Cheers,

Kish



More information about the Clp mailing list