At the Draughts Forum, Aart Bik has published the perft(23) results for checkers. See http://laatste.info/bb3/viewtopic.php?f=53&t=2889 The result is 7437536860666213 (about 7.4e+15, an order of magnitude smaller than perft(12) for chess). Aart used a cluster of computers and didn't give a time to depth for his result. I computed perft(22) on an old P4 machine and that took 3 days, so I believe perft(23) to take about 10 days and perft(24) about 3 weeks. The perft method was of course accelerated by bulk-counting and hashing. If you can run on an i7 or better, and do some parallel stuff, you might pull off perft(24) in a few days.murraycash wrote:How did you detect false positive matches on the signature? If you are trailblazing new ply depths no-one has done before, can you know for sure you have avoided all false positive matches?The only change I made was to increase the hash signature length from (about) 56 bits to (about) 120 bits due to a couple of false positive matches in the early test runs.
PS Not calling into question your results but I am doing something similar in checkers. There is always a small chance false positive signatures can happen and wreck the exactness of the results. I'm concluding the entire board position must be stored in the hash table to avoid this (96 bits in checkers).
I don't quite understand how you can store the entire checkers position in 96-bits (16-bytes). Do you leave out the kings bitboard? I suppose that would not make 100% that your hash signature is unique.
My hash entries are 32 bytes: 24 bytes of position info (3 bitboards storing white and black pieces, and kings) plus 8 bytes of perft info (59 bits for the count and 5 bits for the depth). Furthermore, I split my hash table into a wtm and a btm table, so that I don't need to store the side to move. This format will scale to perft(25), for which the estimated count is 1.6e+17, and this fits within 59 bits =5.6e+17. An alternative that scales to perft(28) is to use 64 bits for the count and to let the hash table be an array of mini tables (one per depth) so that you can then drop the color altogether (because side to move is completely determined by the depth).