Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Avoiding Null Move based on Hash

Author: Volker Böhm

Date: 21:53:31 09/21/04

Go up one level in this thread


On September 21, 2004 at 22:42:59, Stuart Cracraft wrote:

>Hi -- trying to avoid doing a null move based on draft from the
>hash table and R based on something some postings here from 1998.
>
>Have a look and see if this is accurate. I tried the same flag ==
>UBOUND code from the first block at (1) over at (2). Both separately showed
>worse results in testing than having neither.

Hi,

I do not understand your hashing code, comments following:


>
>#ifdef TT
>  // Probe hash table. If seen before with equal or greater draft, return.
>  // Otherwise, set alpha and beta bounds if available.
>  // Last, if alpha exceeds or equals beta, return.
>  if (retrieve(&length, &score, &flag, &hashmv)) {
>(1)    if (flag == UBOUND && depth-R <= length && score < beta) donull = 0;

     // What is "depth", why not using "sdepth"
     // depth should be the REMAINING search depth

>    if (length >= sdepth) {

       // What is "length"? the stored remaining search depth?
       // Name it hdepth then or something like this
       // What is sdepth? the REMAINING search depth?

>      if (flag == VALID) {

        // The Exact score! Why naming it VALID but not EXACT?

>	if (!(flags&NOTHING)) {

           // What is "flags & NOTING" for?
           // Hope it tests the presence of a hashmv

>          savemove(&npv[ply][ply],hashmv);
>          for (j=ply+1;j<pvl[ply+1];++j) {
>	    savemove(&npv[ply][j],npv[ply+1][j]);
>          }
>          pvl[ply]=pvl[ply+1];
>	}
>        return(score);
>      }
>      if (flag == LBOUND) alpha = MAX(alpha, score);
>      if (flag == UBOUND) {
>(2)      if (depth-R <= length && score < beta) donull = 0;
>         beta = MIN(beta, score);
>      }
>      if (alpha >= beta) return(score);

       // why not applying the "savemove-stuff" here ?

>      if (legalmove2(bd,hashmv)) hashed = 1;
>    }
>  }
>#endif

The donull flag is set correctly. Hope the donull = 0 will result in not doing
donull. Do you make sure that donull != 0 otherwise?

I had the problem myself that with depth - R I´ve got some more nodes in the
search tree. Try depth instead of depth - R

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.