Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash move question

Author: Bo Persson

Date: 04:26:18 08/18/01

Go up one level in this thread


On August 18, 2001 at 01:21:30, Robert Hyatt wrote:

>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...

And, also:

While going thru the move list, you can look for and skip the hash move, as it
has already been tried.

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


Bo Persson
bop2@telia.com



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.