[SCIP] Get the branch decision on binary variables

Gregor Hendel hendel at zib.de
Fri Jun 28 13:03:08 CEST 2019


Hi Lidung,

you should catch the event SCIP_EVENTTYPE_NODEBRANCHED. At this point, 
you can access the newly created nodes via SCIPgetChildren(). Make sure 
that SCIPgetNChildren() is positive, but that should always be the case.
You can query the domain change at a node via SCIPnodeGetDomChgs(), and 
then query the bound changes via SCIPdomchgGetBndChg. Note that the 
branching bound change should always be the first in the list, that is, 
at position 0.

Happy branching,
Gregor

Am 28.06.19 um 11:53 schrieb liding xu:
> Hello,
>    I am experimenting with branch and price algorithm, and I use the 
> internal branch rules of scip. I want to detect which binary variable 
> is fixed to zero in current node. Therefore, I implemented an event 
> handler catching the tightening of local upper bound of variable list.
>    However, after the LP solved at the root node, the event handler 
> detects many binary variables' local upper bounds are 0s (because of 
> propagators?). More confusingly after the first branch, the solver 
> calls pricing plugin afterwards, and only one variable is fixed to 1.
>    (1).There is no branch in the root at all, why does local upper 
> bound change in here ?
>    (2). How can the event handler catch the 'real' fixed variable of 
> the current node after branch?
>
> Best,
> Liding XU
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190628/7fd19ba9/attachment.html>


More information about the Scip mailing list