Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hashtable and avoid null move

Author: Robert Hyatt

Date: 12:26:18 05/11/04

Go up one level in this thread


On May 10, 2004 at 07:56:47, Volker Böhm wrote:

>>
>>      if (type == UPPER && depth-R <= draft && tableval < beta)
>>        avoid_null = 1;
>>
>Hi,
>
>I don´t understand the "depth-R" part, I would have written "... && depth <=
>draft && ...".

That is too conservative.  Remember we are trying to determine if a null-move
search will fail high or not.  After a null, we will do a search to depth-R-1
plies and the first thing we'll do is a hash probe using _that_ draft.  If it
will fail low according to the hash table, then the null-move can't fail high
and we should avoid doing it...

If you leave out the -R, you are more conservative and the test will fail more
often, and you'll try null move where it won't work more often.

>
>You use the nullmove to predict if a search at current position with depth
>"depth" will bring a score >= beta. If so, you are finished. If now the hash
>tells you that a search with "depth" will not bring a score >= beta (upperbound
>< beta) you shouldn´t do null moves. In the best case the nullmove is just waist
>of time, in the worst it gets a wrong cutoff. Agree?
>
>Even if a search of depth "depht-R" does not give a score >= beta a search with
>depth "depth" could. Don´t you miss valueable nullmove cuttoffs if you use
>depth-R hash entries to predict that nullmove will not be effective?
>
>Is "depth-R" systematically the best solution or "just" a little optimizaion
>that could change for other engines?
>
>Greetings Volker



This page took 0 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.