Author: Robert Hyatt
Date: 07:10:48 02/28/01
Go up one level in this thread
On February 28, 2001 at 05:56:36, Leen Ammeraal wrote: >I am not sure about when to avoid nullmoves. >I omit it: >a. when in check >b. when there are less than 5 pieces (including pawns) on the board >c. when the last move was a nullmove >d. at the root node >Should I also omit it in some other cases, >for example, when any hashmove (even with a low draft) was found, >or when beta = alpha + 1? >Thanks in advance for any help. >Leen B is dangerous. You should probably begin to control / limit null-move if there is a rook or less on the board + any number of pawns. In such positions zugzwang is likely and will cause null-move to fail improperly. your last question is easier. Don't avoid null move just because a low-draft position was found. Look at the stored bound and the draft. Compare the draft to the draft you would be using if you played a null-move to see if this draft is deep enough there (IE with R=2, you would be probing with depth-3 at the next ply). If you have enough draft for this test, then see if the score is < beta. If so, this is probably the same score that null-move search would return since this is the score _before_ you make a move at this ply, and if you make a null-move the position won't change. If the hash score is < beta, then a null-search won't fail high, and you can avoid doing it and save the nodes. Look at crafty source, hash.c file, "HashProbe()" procedure in that file to see exactly how I do this...
This page took 0.02 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.