Posts

My quest for deeper perft numbers for 8x8 checkers using has reached depth 28. Below you see the perft(28) breakdown per move, called "divide". As stated before, the numbers were computed on a cluster of machines, optimized with a "hard collision"-free transposition table as well as bulk counting. The move generator does not eliminate duplicate captures.
At this point, the limits of 64-bit unsigned integers have been reached. Although there are obvious ways around these restrictions, this seems a very good time to give this (by now probably insane) project a rest. I have updated this OEIS entry up to depth 26, and may add the higher depths also when I am a bit more comfortable with these most recent results. divide(28)12-16 = 240070833985819919111-16 = 243138619671261187811-15 = 223178752933125981010-15 = 218644635681176173710-14 = 1872427919495823777 9-14 = 2285893686261887442 9-13 = 2969067990365356900 -------------------------- perft(28) = 16377718018836900735

With the new improvements in place, it would almost be a waste not to go deeper with my perft for checkers computation. Therefore, I computed perft(27) from the initial position of 8x8 checkers. Below you see the perft breakdown per move, called "divide". As stated before, these numbers were computed on a cluster of machines, further optimized with a "hard collision"-free transposition table as well as bulk counting. The move generator does not eliminate duplicate captures. move divide(27)------------------------------- 12-16 = 516399283859880203 11-16 = 519502096014967805 11-15 = 476666239516455180 10-15 = 468705060101275533 10-14 = 400425747281243848 9-14 = 486493422418651579 9-13 = 631652334435528457 -------------------------------perft(27) = 3499844183628002605
The implementation is "fault tolerant" against machine failures. Nevertheless, since I saw a few of these recoveries in this particular run, I may …

I made some improvements to my distributed implementation for computing perft and divide numbers for 8x8 checkers, and now computed depth 26 from the initial position, shown below. As reported earlier, the numbers were computed on a cluster of machines, further optimized with a "hard collision"-free transposition table as well as bulk counting. The move generator does not eliminate duplicate captures (viz. the situation where a king can capture the same pieces in different directions; a situation that starts to occur at depth 12 and up). move divide(26) ----------------------------12-16: 11136267843523175211-16: 11259025776842051511-15: 10135264999388692610-15: 10055264699674929310-14: 86312674861234785 9-14: 103811787278058952 9-13: 136189763354484914 ----------------------------perft(26) 752172458688067137