Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help stuffing PV into Hash Table

Author: Robert Hyatt

Date: 05:19:16 10/08/99

Go up one level in this thread


On October 08, 1999 at 04:44:23, Inmann Werner wrote:

>On October 07, 1999 at 21:33:12, Robert Hyatt wrote:
>
>>Bob Hyatt wrote
>>
>>The only time I stuff the hash is at the end of an iteration, before starting
>>the next, as it is very probable that part of the PV was overwritten by the
>>searches that followed the PV move.
>
>why should it be overwritten?
>It only can happen with collisions, or am I wrong?
>
>Werner


No.  You have some sort of replacement strategy, correct?  After searching the
PV, you do lots of other searching on the remaining N-1 root moves.  And those
drive the search just as deeply as the PV search did.  What do you do when one
of those searches wants to store on top of the same entry left when searching
the PV?  use the classic 'depth-preferred replacement' idea?  Some of those
N-1 moves could have pathways that have more checks than the best move.  So
that the depth along the path is deeper, and you overwrite some of the PV
entries.

here is the easy way to see this happen:  write the "PV move stuffer" code that
takes the PV and stuffs it into the hash at the end (or at the beginning) of
each iteration.  But before you stuff a move, do a probe for that position to
see if the move is already there.  Then you'll see just how many times the full
PV is _not_ in the hash table, particularly at deeper depths with smaller
tables.

I did this a couple of months ago, just to see what was happening, as it would
be nice to avoid the PV array altogether and retrieve it from the hash table
but that is an ineffective way of doing it, generally.  Because in most cases,
all of the PV won't be found...



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.