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.