Computer Chess Club Archives




Subject: Re: Nullmove: when to avoid it?

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.

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

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, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.