In BugChess2 I am using something like this. I have a hash table that keep the ordered moves for PV nodes. The improvement was not huge but significant. Of course it also helps LMR in PV nodes. I still have to try to order the moves by number of searched nodes.Tord Romstad wrote:Because good move ordering at the root is far more important than at any other node. You don't want to just search the move with the biggest probability of being the best move first, you want to search all the moves in descending order of probability of being best, because every fail-high followed by a re-search with a big window will be very expensive. At most internal nodes, you search with a zero window, and the most important thing is whether the first move causes a beta cutoff. If it does, you have finished searching the node, and it doesn't really matter much whether one of the remaining moves would theoretically have been even stronger. If the first move doesn't cause a beta cutoff, the remaining moves probably also won't, and move ordering at this node isn't very important.AndrewShort wrote:I am curious why many (all?) engines sort the root differently from other plies.
On the other hand, you may argue that internal PV nodes should be handled in the same way as the root node. Using the same move ordering strategy at internal PV nodes (at least at PV nodes with a big remaining depth) as at the root node makes a lot of sense, and experimenting with this has been on my todo list since a long time. I'm not sure whether it has already been tried by somebody else.
Tord
François