Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Pawn Hashkey Size

Author: David Rasmussen

Date: 18:35:42 12/03/01

Go up one level in this thread


On December 03, 2001 at 20:18:36, Sune Fischer wrote:

>On December 03, 2001 at 18:36:50, David Rasmussen wrote:
>
>>
>>Mmm.. But I use a wellknown good PRNG, the avg. hamming distance of the keys is
>>good, the distribution of the keys is good, and I have no collisions at all
>>using this PRNG for generating my 64-bit keys for the trans/ref table. So how to
>>find my bug... I seriously doubt that there's a bug, but one always does... :)
>>Any ideas of how to find such a bug?
>
>heh, not really I have a bug myself, been looking for it for 2 months, I'm
>really stuck.. :(
>

I know that feeling. It feels _so_ good when you finally nail down the bug.

>Using large hamming distances for the zobrist table sound very "okay", but when
>you say 60,000,000 probes have you testet how many of these are successful?

The 60,000,000 probes were the ones that were successful out of who knows how
many probes in total. Of these 60,000,000 successful probes, about 300 were
detected to be collisions, but there might be many more, as I am only checking
to see if the score matches given that the hashkeys matches. If not, we
definately have a collision.

>My numbers are something like this:
>Average Node-Speed:.......  177.54 kNs
>Total Nodes Reached:......  11364494
>Total Evaluations:........  7414407
>Total Pawn Evaluations:...  5062
>
>the pawn eval() is part of the standard eval(), but most of the time the pawn
>hash has the score, so the function was only called 5062 times in that game.
>I currently use 64 bit keys, but I think 32 bit is okay because...
>
>The probability of none of the 5062 will collide is:
>x = (2^32-1)*(2^32-2)*...(2^32-5062)/(2^32)^5062 ~= ((2^32-3000)/2^32)^5062 ~=
>0.9965
>so the probability of a collision is 1-x=0.004 ~= 1/200.
>

These things are not evenly distributed. There is a lot of redundancy in the
sequence of positions in a chess game. They are not random.

>So in ball park figures thats 1 in every 200th games.
>So I think the 300 sounds a little high.
>

I disagree with your statistics, but 300 may sound high, I don't know. I think I
will check with Crafty.

>Maybe you can debug by putting more position knowledge into the hash, I have
>been debugging by storing the _full_ position info in the hash. I found that
>there where collisions if I didn't do en-passent flags, so I'm now doing that
>too.
>Mayby castle rights needs to be added too, but I haven't seen a collision there
>yet.
>
>-S.

En-passant and castling is not important for the pawn hashtable, but I have both
en-passant and castling in my trans/ref table. Correctness is most important, if
it can be achieved.

/David



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.