Author: Dann Corbit
Date: 22:05:46 02/13/04
Go up one level in this thread
I think the interesting thing about null move is that it is easy to figure out if a move is really bad -- which is the main reason why it causes a benefit. A tempo advantage is easily calculated by just switching sides. But the idea can be generalized nicely. Suppose that you have a seven ply search performed and it is time to do an 8 ply search. Suppose (further) that from the root node only you never analyze the root itself but instead analyze all of the child nodes of the root and save the values. Now, you have some sort of estimate for the "goodness" of each move. Things might get reversed on the next ply, but it isn't terribly likely. After all, we look at crappy moves and search them less deeply with the null move heuristic. Now, suppose that we have 10 moves available: move 0 has an evaluation of +100 centipawns move 1 has an evaluation of +80 centipawns move 2 has an evaluation of +77 centipawns move 3 has an evaluation of +60 centipawns move 4 has an evaluation of +53 centipawns move 5 has an evaluation of +19 centipawns move 6 has an evaluation of +5 centipawns move 7 has an evaluation of -10 centipawns move 8 has an evaluation of -110 centipawns move 9 has an evaluation of -910 centipawns Will we (knowing this) want to search them all the same? Why not use a logarithmic scale based on the difference between the best possible move and the move under consideration? Another advantage: Zugzwang sorts itself out. We can also add refinements like increasing the shear with mobility increase (greater reductions if I have 90 choices than if I have 12). Using estimates from a database also works nicely. Unfortunately, hash table estimates have not worked out well for me (for attempts using other than the root).
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.