Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash move question

Author: Robert Hyatt

Date: 22:21:30 08/17/01

Go up one level in this thread


On August 18, 2001 at 00:27:04, Bob Green wrote:

>I'm confused.  Should the sequence be:
>
> generate movelist
> for each move in movelist
>   apply move
>   generate hash
>   checkHash
>   if [depth enough&cutoff]
>     break
>   evaluate
>   etc.
> endfor
>
>or should the sequence be:
>
>  generate hash
>  check hash
>  if [hashExists && depth enough && cutoff]
>    don't generate movelist
>  else
>    do movelist
>    for each move in movelist
>       evaluate
>       alphabeta , etc.
>    endfor
>  endif
>
>Or, most likely, I have it totally fubar'd and neither is right.
>
>Bob "neophyte" Green


None of the above.  :)

first, check hash entry to see if you can avoid searching, by looking at
the draft, the bount stored, etc.  If you can stop searching, then you are
done.

If the draft is insufficient, or the bound is useless, then you look to see if
a move (best move) was stored in the table.  If so, make it and search, without
doing a move generation.  If that move causes a cutoff, then you just got a
cutoff without using your move generator at all, which is a significant savings
of computation operations.  If you don't get a cutoff, then you generate
captures and try the good ones,  etc...

The trick is all about avoiding the move generation...



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.