Author: Gerd Isenberg
Date: 03:05:33 12/29/02
Go up one level in this thread
On December 28, 2002 at 18:46:59, Dieter Buerssner wrote:
>On December 28, 2002 at 18:43:33, Dieter Buerssner wrote:
>
>>Gerd, do you have one such table or 2? It sounds to me, as you only had one.
>
>Ahh, I guess, you hash side to move ...
>
>Cheers,
>Dieter
Hi Dieter,
Yes, but that doesn't matter much?!
Due to the leading condition, repetition hash probes only occur, if at least
four reversible moves are done i a row. Most often tryRepCount is less than
5-10% of total nodecount, in fine70 ~40%.
if ( Count50 + 4 <= GameCount ) {
tryRepCount++;
if ( RepetitionHash[RepeHashIdx()] > 1 ) {
mayRepCount++;
if ( Repetition() > 0 ) // iterate over move list
RealRepCount++;
I played a bit around with the size of RepetitionHash and the Hashing function.
Considering the side to move in RepeHashIdx() has only negligible effect.
But if i switch Nullmove off, the collision rate becomes dramatically better
(more than factor 10). Also if i skip the leading conditions of course ;-)
With a size of 4KByte (12bit index) i have about 80-90% collisions, RealRepCount
is only 10-20% of mayRepCount. With a size of 8KByte i have about 60-70%
collisions, with 16KByte (14bit index) less than 50%.
Surprisingly the 4KByte table seems to be the fastest in average (i guess due to
cache effects, i still have slow SDRAM), but only tried with some testpositions.
The ratio mayRepCount/tryRepCount is even < 10% here. May be 16KByte is
favorable (for real games), as suggested in Kervinck's Master's Thesis.
Regards,
Gerd
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.