So right now I'm doing LMR for depths >=4 and FP for depths <= 3. I do futility outside the move testing loop.
I wanted to increase the maximum futility depth to 4. Simply increasing the depth failed, but what seems to work is testing that at the last depth (4) there was no hash hit. IOW: for depths 1, 2, 3 no change; for depth 4 enable futility when there is no hash hit.
Why does this work? I expected the reverse to be true. A hash hit means we already have a good move so weak moves can be prunned.
brtzsnr wrote:
Why does this work? I expected the reverse to be true. A hash hit means we already have a good move so weak moves can be prunned.
Maybe is related to that not having a hash move means more probabilities to be the first time you arrive to the node, and following searches will take care of the node if is really more important. So first time nodes are less probable to be good because there are a lot of them. This gives me a lot of ideas to test
As sure yo know the increasing of this type of parameters tend to become possible when the engine gets stronger, and as a consequence orders better the moves and allows more pruning.
I tried your approach in Andscacs and it didn't work, but I have such pruning at depth 6. Also I tried some derived ideas without luck.