[Couenne-tickets] [Couenne, a solver for non-convex MINLP problems] #21: optimal solution wrong when using CPLEX as LP solver (optimal values is ok)
Couenne, a solver for non-convex MINLP problems
coin-trac at coin-or.org
Mon Jul 23 09:48:51 EDT 2012
#21: optimal solution wrong when using CPLEX as LP solver (optimal values is ok)
-------------------------+----------------------
Reporter: stefan | Owner: somebody
Type: defect | Status: new
Priority: critical | Milestone:
Component: component1 | Version:
Resolution: | Keywords:
-------------------------+----------------------
Comment (by stefan):
Hi,
OK, it seems like I can reproduce this.
But why I get a garbage solution from bb.bestSolution(), where bb is a
!CouenneBab object?
From looking at the code I thought that {{{CouenneBab::bestSolution()}}}
has extra been overwritten to take this !CouenneRecordBestSol into
account:
{{{
const double * CouenneBab::bestSolution() const {
if(!problem_ ||
!(problem_ -> getRecordBestSol ()) ||
!(problem_ -> getRecordBestSol () -> getHasSol()) ||
(((fabs (bestObj_) < COUENNE_INFINITY / 1e4) &&
(problem_ -> getRecordBestSol () -> getVal () > bestObj_))))
return bestSolution_;
return problem_ -> getRecordBestSol () -> getSol ();
}
}}}
It's probably because the solution stored in !CouenneBab has the same
objective (and thus is not considered worse than the one in
!CouenneRecordBestSol).
But why the object stores an infeasible point in bestSolution_ at all?
Stefan
--
Ticket URL: <https://projects.coin-or.org/ticket/21#comment:4>
Couenne, a solver for non-convex MINLP problems <https://projects.coin-or.org/Couenne>
Couenne, a solver for non-convex MINLP problems
More information about the Couenne-tickets
mailing list