Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: another hashing question

Author: martin fierz

Date: 12:46:53 11/22/00

Go up one level in this thread


On November 22, 2000 at 13:58:28, Robert Hyatt wrote:

>On November 22, 2000 at 12:28:05, martin fierz wrote:
>
>>On November 22, 2000 at 10:06:24, Robert Hyatt wrote:
>>
>>>On November 22, 2000 at 05:38:32, martin fierz wrote:
>>>
>>>>hi,
>>>>
>>>>i was wondering about this PV-hashtable thing: in my checkers program, i do not
>>>>generate a separate PV. i have two hashtables, a 'shallow' and a 'deep' one,
>>>>positions close to the root of the tree are stored in shallow, the rest in deep.
>>>>in shallow, i take care not to fill the table and not to overwrite entries. i
>>>>took this idea from the crafty source code. in deep i overwrite everything
>>>>without looking twice. question: i have no PV, but i have a guarantee that for
>>>>the first 10 ply i have a hash move - because thats about what fits in shallow.
>>>>for the next 10 ply i won't have a hash move. do you think that this is a
>>>>serious problem? should i be generating a PV and stuffing hash moves back in the
>>>>table (that surely costs some speed...)? typical search depths are 15-19 ply in
>>>>a couple of seconds. do these last 5-9 ply really matter?
>>>>
>>>>cheers
>>>>  martin
>>>
>>>
>>>They are often important for debugging, more than anything else.  IE the goal
>>>is to play the right move.  Nothing says you have to have the right PV, when
>>>playing a game.  But if you can't see the PV when testing, you have a harder
>>>problem to understand what is going on and why.
>>>
>>>DB didn't have a separate PV because the hardware didn't support the idea.  They
>>>seemed to play just fine.  So yes, it can work...
>>
>>thanks for the answer. of course i can get a PV from the hashtable this way, as
>>long as the position is still in the hashtable, which it is for the first 10
>>ply. but i see what you mean, i could get the whole PV to see which position
>>determines the final evaluation and also to see if the quiescense search is
>>performing properly. i suppose i should implement it :-)
>>
>>cheers
>>  martin
>
>
>Remember that hashing is all about probability and distribution.  There is
>absolutely no guarantee that you will get all 10 PV moves for ply 1 through
>10, even if you have 1 million entries in that hash table.  You can still get
>overwrites that clobber the positions.  The larger the tree, the greater the
>probability that your PV will come up 'short' on occasion.

this is true if you overwrite your entries. in the hashtable for the positions
close to the root i avoid overwriting and in case of collisions do some ugly
stuff which puts the colliding position in another place, where it can be found
again. of course there is still a minute probability that more positions than i
thought would get the same hashkey, but that is really small.




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.