[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