Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Pseudo-code for verification search. - something similar(?)

Author: Jeremiah Penery

Date: 05:09:35 11/06/99

Go up one level in this thread


On November 06, 1999 at 07:19:19, Dan Homan wrote:

>Ok,  your standard null-move code looks something like this....
>
>  search(position current, int alpha, int beta, int depth) {
>
>    .....
>    position next;
>    int score;
>
>    /* null move */
>    if( /* conditions to decide if null-move is appropriate */ ) {
>      next = makeNull(current);
>      if(depth >= R+1) {
>        score = -search(next, -beta, -beta+1, depth-R-1);
>      } else {
>        score = -Qsearch(next, -beta, -beta+1);
>      }
>      if(score >= beta) return(beta);
>    }
>
>    .....
>
>  }
>
>I simply modified the null move code to look like
>
>    /* null move */
>    if( /* conditions to decide if null-move is appropriate */ ) {
>      next = makeNull(current);
>      if(depth >= R+1) {
>        score = -search(next, -beta, -beta+1, depth-R-1);
>      } else {
>        score = -Qsearch(next, -beta, -beta+1);
>      }
>      /* verification search */
>      if(score >= beta && depth >= R+1) {
>        next = current;
>        set flag for no null move on next search;
>        score = search(next, beta-1, beta, depth-R-1);
>      }
>      if(score >= beta) return(beta);
>    }
>
>You can see that the verification search is just 3 or 4 lines of code.
>All it does is search the current position to a reduced depth with
>no null move.... this only happens when the null move is going to force
>a fail high, and it should confirm that we are not in zug.  The time spent
>doing these verification searches is very small, so I think this might
>be a good addition.  I still have to do tests on those positions you
>posted.

I have done something also quite simple to solve this problem (in Crafty).  I
simply put "if (depth>6)" before the null-move section of the code, so that the
first 6 plies of depth will not use null-move.  I may try to vary this a bit.
Your verification search probably is much better, though, so I will try to
implement it. My approach does allow Crafty to solve this position, however. :)

Jeremiah



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