I have computed the unique positions at ply N for N=0,1,2,...,11:ibid wrote:Well actually... :) Computing it directly from the unique positions at 10 plyAjedrecista wrote:Thank you very much for your great achievement. I suppose that Perft(14) (which I estimated it around 6.1861e+19 on August 4th, 2011) will wait some years.
would take about a year and a half, which is a bit much at this point.
Going to the uniq positions at 11 ply would reduce the perft time by a
factor of 3 or so, but computing those 11 ply positions would currently
require many additional months of hard drive abusing work. The current
rewrite is to add some threading and disk caching to the uniq program.
The computation will still have to be done in about 15 parts (even with
compression, a 1 TB drive only holds so much), but the current time
estimate is about 8 months for perft 14 once the code is done.
Code: Select all
ply nPositions maxCnt nMax nSing FEN
0 1 1 1 1 rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -
1 20 1 20 20 rnbqkbnr/pppppppp/8/8/8/N7/PPPPPPPP/R1BQKBNR b KQkq -
2 400 1 400 400 r1bqkbnr/pppppppp/n7/8/8/N7/PPPPPPPP/R1BQKBNR w KQkq -
3 5362 4 20 1862 r1bqkbnr/pppppppp/n7/8/8/8/PPPPPPPP/RNBQKBNR b KQkq -
4 72078 16 1 9825 rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -
5 822518 87 2 53516 rnbqkbnr/pppppppp/8/8/8/4P3/PPPP1PPP/RNBQKBNR b KQkq -
6 9417681 479 4 311642 rnbqkbnr/pppp1ppp/4p3/8/8/4P3/PPPP1PPP/RNBQKBNR w KQkq -
7 96400068 2600 2 2018993 rnbqkbnr/pppp1ppp/4p3/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq -
8 988187354 14363 1 12150635 rnbqkbnr/ppp2ppp/8/3pp3/3PP3/8/PPP2PPP/RNBQKBNR w KQkq -
9 9183421888 115066 1 69284509 rnbqkbnr/ppp2ppp/8/3pp3/4P3/8/PPPP1PPP/RNBQKBNR b KQkq -
10 85375278064 1126591 1 382383387 rnbqkbnr/pppp1ppp/8/4p3/4P3/8/PPPP1PPP/RNBQKBNR w KQkq -
11 726155461002 11783579 1 1994236773 rnbqkbnr/pppp1ppp/8/4p3/3PP3/8/PPP2PPP/RNBQKBNR b KQkq -
For a position P, let cnt(P) be the number of different sequences of N moves from the starting position that lead to position P.
maxCnt is max(cnt(P)) where the maximum is taken over all positions P at ply N.
nMax is the number of positions at ply N having cnt(P) == maxCnt.
nSing is the number of positions at ply N having cnt(P) == 1.
FEN is a position having cnt(P) == maxCnt.
These numbers need independent verification before they can be trusted. As a sanity check I have used the ply 11 data to compute perft 11, 12 and 13 and my results agree with previously published results.
Computing the unique 11 data took about 5 weeks using 2 Intel Core i7 quad core CPUs and two 8TB Buffalo LinkStation NAS units. About 3.7TiB of disk space is needed to store the result. Computing perft 13 from the unique 11 data took about 3 days using 3 Intel Core i7 quad core CPUs.
The perft 14 computation has now been running for about 18 hours and is 1.9% complete. If the current speed is representative for the whole computation, perft 14 will require about 40 days to complete.