I agree with Daniel here, the BF is basically the BF and has little to do with the quies.Daniel Shawul wrote:Why should qsearch nodes be excluded from EBF calculations or are you suggesting the depth be taken to MAX_PLY if one check-evade route reaches there? In literature EBF is defined as the equivalent depth a uniform tree would have so that it can contain all the nodes explored by any search methodology (alpha-beta, SSS, A* etc).The one we know as sqrt(d) for alpha-beta is the limit of the above at Infinite depth.
Code: Select all
EBF = (Total nodes searched) ^ (1/d)
Someone asked how can the BF be so low. Let's consider a brute force program which would have a branching factor of something like 6. Such a program will always see 1 ply deeper with each iteration without exception and it's easy to calculate whether it will see a given tactic if you understand the extension rules and other details of the search including how the quies might resolve things.
A program that is very agressive with LMR, null move pruning and other tricks and forward pruning is different though. When you add 1 extra ply to the search you are not guaranteed to see 1 ply of extra tactics. You are taking some liberties and HOPING that you see what is important 1 extra ply deeper. So even though you are doing 1 more ply of search, you are probably only really effectively getting the equivalent of 0.8 ply deeper. The 0.8 figure is arbitrary and probably wrong but illustrates the point. In other words we are cheating a little and so 1 ply is not really 1 ply.
Of course the better we do it, the more likely we are seeing everything a full width program would see at the same depth but in practice some position take an extra ply to solve. So even if your BF is 2.0 and that seems pretty impressive on paper, at least a little of that is a cleverly concealed sham.