Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: perft weirdness - getting weirder

Author: Heiner Marxen

Date: 14:25:24 01/02/03

Go up one level in this thread


On January 02, 2003 at 15:51:30, Russell Reagan wrote:

>[D]r3k2r/8/8/8/8/8/8/1R2K2R b Kkq - 0 1
>
>In the above position, I calculate perft 3:
>
>> perft 3
>26      0
>583     0
>14251   0.032
>total time: 0.032
>
>Other engines say that perft 3 is 14252, so I assume that I am wrong here and I
>went looking for the position where the error is. I wrote a function to tell me
>preft (n-1) for each of the legal moves so I can tell which branch the error is
>in, and I continue to narrow it down until I find the offending position. This
>has worked well so far, but now I'm getting this:
>
>> dperft 3
>h8h1    87      87
>a8a1    356     443
>a8a2    544     987
>a8a3    631     1618
>a8a4    631     2249
>a8a5    631     2880
>a8a6    631     3511
>a8a7    631     4142
>a8b8    524     4666
>a8c8    559     5225
>a8d8    488     5713
>h8h2    428     6141
>h8h3    547     6688
>h8h4    575     7263
>h8h5    602     7865
>h8h6    628     8493
>h8h7    650     9143
>h8f8    490     9633
>h8g8    560     10193
>e8d7    720     10913
>e8e7    742     11655
>e8f7    692     12347
>e8d8    510     12857
>e8f8    490     13347
>e8g8    474     13821
>e8c8    431     14252
>
>This function reports perft n-1 for each move, and keeps a running total on the
>right. The last number in the right column is, to my suprise, 14252, which is
>the correct perft 3.
>
>So when I calculate perft 3, it is incorrect, but when I ask it to give me a
>breakdown of perft 2 for each move, the sum (which should be the same as what I
>am getting for perft 3) is suddenly correct.
>
>Any idea what this could mean? I'm stumped...

Obviously, your two functions do _not_ do EXACTLY the same.
Wild guess: do you initialize the summing var correctly to zero?
Any other non-initialized var involved?

Try to throw in additional trace code into the otherwise unchanged "perft"
function (which gives the wrong result) to observe the partial sums
at the highest level.

Try to compile with all warnings enabled (or use some kind of "lint").

Check for global variables that may have influence on your functions...

something quite fishy is going on IMHO.

Cheers,
Heiner



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.