Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Repitition detection

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.