HFL pruning
Posted: 19 Jul 2005, 14:47
Hi all,
I have just started experimenting with something I have wanted to do since a long time: Using the shape of the search tree to make extension and pruning decisions. During iteration N, I collect statistics about the shape of the subtree below every node, and use these statistics to decide whether this node should be pruned, extended or searched with normal depth at iteration N+1. The idea is to try to use the subtree shape to estimate the probability that adding one to the search depth would yield a different outcome.
A very simple first experiment is included in Glaurung 0.2.5j FRC: A new pruning technique which I call HFL pruning. My results so far have been very confusing and contradictory, but at least they are good enough that I think it is possible to make the idea work with some tuning and extra conditions.
First, two definitions: A move is "easily refuted" if it is refuted by the null move or the first real move searched at the child node. A fail low node is a "hopeless fail low node", or "HFL node", if all the moves at this node are easily refuted.
It seems reasonable to assume that HFL nodes will normally still fail low when searched to a deeper search depth. My experiments confirm this. In Glaurung, nodes which fail low at depth N fail high at depth N+1 in about 98.5% of the cases. For HFL nodes, the number is around 99.7%. I use this observation in the following way: My transposition table entries have an HFL flag. When I look up a position in the transposition table and the HFL flag is set, I allow an alpha hash table cutoff even if the depth of the transposition table entry is one ply left than the current search depth.
This technique saves a lot of nodes. In most positions, the difference is somewhere between 20 and 40%. It seriously hurts the tactical abilities of the program, however. Many combinations are found one or even two plies later with HFL pruning enabled. I am still not sure whether the net effect is positive or negative. If I manage to find a way to reduce the tactical defects, I think HFL pruning will be very effective.
Tord
I have just started experimenting with something I have wanted to do since a long time: Using the shape of the search tree to make extension and pruning decisions. During iteration N, I collect statistics about the shape of the subtree below every node, and use these statistics to decide whether this node should be pruned, extended or searched with normal depth at iteration N+1. The idea is to try to use the subtree shape to estimate the probability that adding one to the search depth would yield a different outcome.
A very simple first experiment is included in Glaurung 0.2.5j FRC: A new pruning technique which I call HFL pruning. My results so far have been very confusing and contradictory, but at least they are good enough that I think it is possible to make the idea work with some tuning and extra conditions.
First, two definitions: A move is "easily refuted" if it is refuted by the null move or the first real move searched at the child node. A fail low node is a "hopeless fail low node", or "HFL node", if all the moves at this node are easily refuted.
It seems reasonable to assume that HFL nodes will normally still fail low when searched to a deeper search depth. My experiments confirm this. In Glaurung, nodes which fail low at depth N fail high at depth N+1 in about 98.5% of the cases. For HFL nodes, the number is around 99.7%. I use this observation in the following way: My transposition table entries have an HFL flag. When I look up a position in the transposition table and the HFL flag is set, I allow an alpha hash table cutoff even if the depth of the transposition table entry is one ply left than the current search depth.
This technique saves a lot of nodes. In most positions, the difference is somewhere between 20 and 40%. It seriously hurts the tactical abilities of the program, however. Many combinations are found one or even two plies later with HFL pruning enabled. I am still not sure whether the net effect is positive or negative. If I manage to find a way to reduce the tactical defects, I think HFL pruning will be very effective.
Tord