The EBF is tied to an iterative deepening search. Because of this adhoc defintion tieing it to iterative deepening search it suffers from problems when search becomes selective. A little down the page it says.The effective branching factor (EBF) is related to iterative deepening. The EBF is the average ratio of nodes (or time used) revisited of the current iteration N versus the previous iteration N-1.
There is a definition of EBF which avoids all this problems. The EBF as defined in chess wiki is actually a ratio that measure the effort required to go from iteration N to N + 1.However, when all sorts of extensions, reductions and pruning are applied to the tree, it is not at all clear that the average branch is searched precisely one ply deeper at iteration N+1 than at iteration N, which makes this definition of effective branching factor rather meaningless [3].
The definition of "effective branching factor" as describe in many places.
http://cseweb.ucsd.edu/~elkan/250A/jan17.html
http://cs-alb-pc3.massey.ac.nz/notes/59302/l04.html
The effective branching factor b* is the branching factor that a uniform tree of depth d would have to have in order to contain N nodes.
Code: Select all
N = 1 + b* + b* ^ 2 + ... + b* ^ d
= (b* (d + 1) - 1) / (b* - 1)
The existing definition relates nodes searched N with its previous value at the last iteration, instead of a standard uniform tree. This obviously causes problem when the search is selective...
The results of these two definitions could be significantly different from one another as I tried to show in the following plots. Red is the new defintions and blue the old one. Even with a constant "width of search at each node" the result can be significantly different in the beginning.