Default SCIP branching achieving fewer nodes than FSB? #286
Replies: 2 comments 4 replies
-
Hi @cwfparsonson, I have some partial answer, hope this can help you in some way.
The configuring environment itself is pretty light. It sets parameters on the solver, and then let it run as implemented in SCIP (simply calling
There could be many difference between that enviornment and the setting of Gasse et al. (2019).
Although it is not a guarantee the FSB produce smaller tree, it is surprising. I don't have more insights to offer...
If I understand correctly, using fair node counting would result in FSB having even more node (looking at Gamrath and |
Beta Was this translation helpful? Give feedback.
-
Hi all. To me the observed numbers are not surprising. There are a few different things to keep in mind. 1) SCIP branching rule vs Ecole branching policyFrom a POMDP perspective, the internal branching rules of SCIP (or any other solver) are cheating, in the sense that they are allowed to do much more than branching:
Basically, most of the internal branching rules of SCIP will do everything they can to leverage the computations required by the branching rule, in order to speed up solving. But by doing so, they do not adhere to the POMDP framework of Ecole. As a result, the total number of nodes resulting from an internal branching rule can not be attributed solely to the branching decisions made, but also to all the other extra stuff that happened within the branching rule. This issue is very related to the fair node counting problem. Note that the 2) Full Strong Branching is not always optimalWhile everyone agrees that FSB results in general in small trees, it is also known that it is not optimal in general. There are plenty of smart things implemented in SCIP's default branching rule 3) Easy vs hard instancesLast, the experience you report seems to focus on easy instances (< 10 nodes), for which branching decisions do not have such a big impact. I would suggest repeating the experiment with more challenging ones (> 100 nodes with default SCIP) to better compare different branching rules. Hope that helps ! Maxime |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi,
I am trying to implement the default SCIP branching heuristic used as a benchmark by Gasse et al. 2019. I am using the ecole configuring environment as in the notebook example https://github.com/ds4dm/ecole/blob/master/examples/branching-imitation.ipynb. However, I am finding that the default SCIP branching heuristic is resulting in fewer nodes than full strong branching (FSB), which is different from what was reported in Table 2 of Gasse et al. Is it possible that the ecole configuring environment adds nodes to the B&B tree differently and therefore would result in a lower number of nodes than FSB? For example, I noticed that Zarpellon et al. 2021 https://arxiv.org/pdf/2002.05120.pdf refer to the 'fair number of nodes' for benchmarking relpscost branching - do I need to somehow measure the number of nodes differently to accurately benchmark the default SCIP branching heuristic?
Please let me know if it would be useful for me to post a minimal code example of my SCIP branching + FSB implementation.
Beta Was this translation helpful? Give feedback.
All reactions