[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