[Scip] Retrieving current restricted master optimal value to compute a lagrangian bound at the end of pricing
Gerald Gamrath
gamrath at zib.de
Tue Feb 4 23:38:53 CET 2014
Dear Xavier,
SCIPgetLPObjval() probably returns 1e+20, because the LP solver hit the
objective limit. You can check this using SCIPgetLPSolstat(). In this
case, the LP was solved with the dual simplex (e.g., after branching),
and objective value became larger than the cutoff bound, so LP solving
was interrupted. For a branch-and-cut algorithm, you can just cut off
the node, in case of branch-and-price, you can use the current dual
solution to generate new columns. However, this is a somehow strange
behavior and you need to reoptimize the LP from scratch after adding
columns, so we added a new parameter to turn off the cutoff bound for LP
solving. It will be part of the new release which will probably be
finished within the next two weeks (per default, the cutoff bound will
be turned off as soon as there is a pricer present). I will send a patch
to you directly in case you want to try it before the release is finished.
Besides, you can always use the lowerbound pointer in the PRICERREDCOST
callback to provide a valid dual bound like the Lagrangian bound. SCIP
will check whether it improved the current node lowerbound and update
the latter, if possible. But I guess you want to use the dual vector
later on, e.g., for stabilization, so it makes sense to store it anyway.
Best,
Gerald
On 31.01.2014 12:22, Xavier Schepler wrote:
> Hello,
>
> I'm coding a branch-and-price and I need to compute a lagrangian bound
> at the end of pricing.
> I want to keep trace of the dual vector which provided the best
> lagrangian bound.
> This lagrangian bound equals: current restricted master optimal value
> + sum over all subproblems of their optimal values.
> SCIPgetLPObjVal is called in my scip_redcost function. The lp solver
> is SoPlex.
> Once in a while, it returns 1e20, even if the problem is feasible.
> In fact, artificial variables guarantee the master problem to be
> always feasible.
> The problem is bounded, and its objective value cannot be equal to 1e20.
> Maybe SCIPgetLPObjVal shouldn't be called in scip_redcost.
>
> What should I do ?
>
> Best regards,
>
> Xavier Schepler
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list