[SCIP] Does node expansion automatically update pseudo-costs using parent LP?

Gerald Gamrath gamrath at zib.de
Sat Oct 10 15:06:41 CEST 2020


Hi Jim,

you are correct, SCIP will update pseudo-costs every time the initial LP 
of a node (!= the root node) was solved. This happens in 
solveNodeInitialLP() in solve.c, which calls the static method 
updatePseudocost(), which will then call SCIPvarUpdatePseudocost(). The 
API method SCIPupdateVarPseudocost() is essentially a wrapper for 
SCIPvarUpdatePseudocost().

Best,

Gerald


Am 10.10.20 um 12:30 schrieb Gui Jun Ye:
> Dear all,
>
> I intend to use a custom branching rule, then switch to the default 
> reliability branching rule after a restart. I would like reliability 
> branching to be able to use the pseudo-costs learned in the custom 
> rule (from LP of parent node; no strong branching is performed in the 
> custom rule).
>
> Do I need to call `SCIPupdateVarPseudocost()` explicitly in the custom 
> branching rule, or does SCIP already update the pseudo-cost after the 
> LP solution of the current node?
>
> Looking at Doxygen, not all branching rules refer to 
> `SCIPupdateVarPseudocost()` ( e.g. `branch_relpscost.c` uses it after 
> strong branching gives more information), which suggests that the 
> pseudo-cost update from LP objective value occurs elsewhere; however 
> if such an update exists it seems to not use this API.
>
> I'm leaning towards the belief that this pseudo-cost update is being 
> handled by SCIP after node expansion, but I would like confirmation 
> that this is the case. I would also like to verify is that 
> pseudo-costs are kept after a restart using `SCIPrestartSolve()`.
>
> Many thanks,
>
> Jim
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip


More information about the Scip mailing list