[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