(Sorry for the long output of this post).sje wrote:After 20 weeks, the run has produced 331,403 draft 8 records, about 40% of the total needed.
Mean time per draft 8 record: ca. 36 seconds
Most recent output:Code: Select all
rnbqk1nr/ppppbppp/8/4p3/8/3P3N/PPPBPPPP/RN1QKB1R b KQkq - 2 3 8 439081704189 rnbqkbnr/pppp1p1p/6p1/4p3/P5P1/3P4/1PP1PP1P/RNBQKBNR b KQkq - 0 3 8 651089951521 rnbqkbnr/pppp1pp1/7p/4p3/5P2/2N1P3/PPPP2PP/R1BQKBNR b KQkq - 0 3 8 1022847249810 r1bqkbnr/pppp1ppp/n7/4p3/8/N2BP3/PPPP1PPP/R1BQK1NR b KQkq - 2 3 8 978461221829 rnbqkbnr/pppp1p1p/8/4p1p1/1P6/3P4/P1PQPPPP/RNB1KBNR b KQkq - 1 3 8 452030463425 rnbqkbnr/pppp1p1p/6p1/4p3/P7/3P3P/1PP1PPP1/RNBQKBNR b KQkq - 0 3 8 546602581638 r1bqkbnr/pppp1ppp/2n5/4p3/8/3P1N2/PPPQPPPP/RNB1KB1R b KQkq - 2 3 8 1169896133141 rnbqk1nr/ppppbppp/8/4p3/8/3PB2N/PPP1PPPP/RN1QKB1R b KQkq - 2 3 8 500525923972 rnbqkbnr/pppp2pp/5p2/4p3/3P4/P7/1PPQPPPP/RNB1KBNR b KQkq - 1 3 8 572130843907 rnbqkbnr/pppp1ppp/8/8/3p2P1/1P6/P1P1PP1P/RNBQKBNR b KQkq - 0 3 8 793609133355
It seems that Perft(13) count goes in the correct path. This is good!
I want to congratulate Peter Österlund for sharing his MonteCarlo Perft method, which is great. I also congratulate the rest of people that contributed to estimate Perft(13) with their methods. Simply thanks to all of you.
I tried MonteCarlo Perft implemented in GNU 5.07.173b (32 bits) for the first time in this week. Astonishing is what it comes to my mind. I was unable of set a different position from the initial one, but finally I managed it. I have taken this FEN string:
Code: Select all
rnbqk1nr/ppppbppp/8/4p3/8/3P3N/PPPBPPPP/RN1QKB1R b KQkq - 2 3
Comparing with the exact value:Initializing 32 bit magics...
Transposition table: Entries=2048K Size=49152K
Pawn hash table: Entries=1K Size=32K
No 3-pc GTBs available
No 4-pc GTBs available
No 5-pc GTBs available
GNU Chess 5.07.173b-libgtb-32
pgnload a.pgn
HashKey=463b96181691fc9c
Repeat=0
FEN=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
white KQkq
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
stack[0]=0000000000000000
stack[1]=0000000000000000
HashKey=3468ae52d10b0731
Repeat=0
FEN=rnbqk1nr/ppppbppp/8/4p3/8/3P3N/PPPBPPPP/RN1QKB1R b KQkq - 2 3
black KQkq
r n b q k . n r
p p p p b p p p
. . . . . . . .
. . . . p . . .
. . . . . . . .
. . . P . . . N
P P P B P P P P
R N . Q K B . R
perftmc 8
m=4.389710e+011 sd=1.078699e+008 ci(99%)=[4.386932e+011,4.392489e+011] n=4893760
sdn=2.386281e+011 t=77.69s
m=4.389946e+011 sd=6.658383e+007 ci(99%)=[4.388231e+011,4.391661e+011] n=7340646
sdn=1.803997e+011 t=116.98s
m=4.390173e+011 sd=5.226561e+007 ci(99%)=[4.388826e+011,4.391519e+011] n=9787534
sdn=1.635131e+011 t=155.89s
m=4.390215e+011 sd=4.070511e+007 ci(99%)=[4.389167e+011,4.391264e+011] n=1223442
3 sdn=1.423773e+011 t=194.41s
m=4.390096e+011 sd=3.532241e+007 ci(99%)=[4.389186e+011,4.391005e+011] n=1468129
6 sdn=1.353420e+011 t=233.97s
m=4.390432e+011 sd=4.501471e+007 ci(99%)=[4.389273e+011,4.391592e+011] n=1712818
3 sdn=1.862988e+011 t=272.39s
m=4.390167e+011 sd=4.717747e+007 ci(99%)=[4.388951e+011,4.391382e+011] n=1957507
3 sdn=2.087307e+011 t=312.83s
m=4.390330e+011 sd=4.468849e+007 ci(99%)=[4.389179e+011,4.391481e+011] n=2202195
5 sdn=2.097122e+011 t=352.25s
m=4.390487e+011 sd=4.296597e+007 ci(99%)=[4.389381e+011,4.391594e+011] n=2446884
4 sdn=2.125355e+011 t=391.72s
m=4.390583e+011 sd=4.001693e+007 ci(99%)=[4.389552e+011,4.391614e+011] n=2691572
4 sdn=2.076093e+011 t=431.34s
m=4.390313e+011 sd=4.541986e+007 ci(99%)=[4.389143e+011,4.391483e+011] n=2936260
7 sdn=2.461178e+011 t=471.81s
m=4.390340e+011 sd=4.187134e+007 ci(99%)=[4.389262e+011,4.391419e+011] n=3180948
9 sdn=2.361539e+011 t=512.53s
m=4.390480e+011 sd=4.120716e+007 ci(99%)=[4.389419e+011,4.391542e+011] n=3425638
2 sdn=2.411812e+011 t=553.92s
m=4.390584e+011 sd=3.973539e+007 ci(99%)=[4.389560e+011,4.391607e+011] n=3670326
9 sdn=2.407298e+011 t=596.31s
m=4.390668e+011 sd=3.810917e+007 ci(99%)=[4.389686e+011,4.391650e+011] n=3915016
2 sdn=2.384494e+011 t=635.22s
m=4.390737e+011 sd=3.646673e+007 ci(99%)=[4.389798e+011,4.391677e+011] n=4159704
7 sdn=2.351950e+011 t=674.45s
m=4.390743e+011 sd=3.438621e+007 ci(99%)=[4.389858e+011,4.391629e+011] n=4404393
0 sdn=2.282062e+011 t=714.12s
m=4.390767e+011 sd=3.261246e+007 ci(99%)=[4.389927e+011,4.391607e+011] n=4649082
5 sdn=2.223654e+011 t=755.78s
m=4.390698e+011 sd=3.169603e+007 ci(99%)=[4.389882e+011,4.391515e+011] n=4893771
8 sdn=2.217311e+011 t=796.73s
m=4.390618e+011 sd=3.119453e+007 ci(99%)=[4.389815e+011,4.391422e+011] n=5138459
1 sdn=2.236119e+011 t=839.06s
m=4.390549e+011 sd=3.053740e+007 ci(99%)=[4.389762e+011,4.391336e+011] n=5383147
7 sdn=2.240527e+011 t=884.25s
m=4.390623e+011 sd=3.010657e+007 ci(99%)=[4.389848e+011,4.391399e+011] n=5627836
4 sdn=2.258562e+011 t=929.92s
m=4.390702e+011 sd=2.987933e+007 ci(99%)=[4.389932e+011,4.391471e+011] n=5872525
2 sdn=2.289725e+011 t=985.53s
m=4.390784e+011 sd=2.982856e+007 ci(99%)=[4.390016e+011,4.391553e+011] n=6117214
5 sdn=2.332970e+011 t=1036.59s
m=4.390751e+011 sd=2.885688e+007 ci(99%)=[4.390007e+011,4.391494e+011] n=6361903
0 sdn=2.301669e+011 t=1081.48s
m=4.390816e+011 sd=2.851979e+007 ci(99%)=[4.390081e+011,4.391550e+011] n=6606592
5 sdn=2.318116e+011 t=1129.05s
m=4.390823e+011 sd=2.749272e+007 ci(99%)=[4.390115e+011,4.391531e+011] n=6851281
6 sdn=2.275640e+011 t=1176.25s
m=4.390867e+011 sd=2.688900e+007 ci(99%)=[4.390175e+011,4.391560e+011] n=7095971
1 sdn=2.265064e+011 t=1226.47s
m=4.390943e+011 sd=2.707311e+007 ci(99%)=[4.390246e+011,4.391641e+011] n=7340659
3 sdn=2.319561e+011 t=1276.88s
m=4.390981e+011 sd=2.645318e+007 ci(99%)=[4.390300e+011,4.391662e+011] n=7585348
4 sdn=2.303910e+011 t=1324.91s
m=4.390931e+011 sd=2.608782e+007 ci(99%)=[4.390259e+011,4.391603e+011] n=7830036
7 sdn=2.308446e+011 t=1372.58s
m=4.390954e+011 sd=2.538700e+007 ci(99%)=[4.390300e+011,4.391608e+011] n=8074725
9 sdn=2.281262e+011 t=1420.95s
m=4.390930e+011 sd=2.474380e+007 ci(99%)=[4.390293e+011,4.391568e+011] n=8319413
7 sdn=2.256903e+011 t=1468.47s
m=4.390862e+011 sd=2.497834e+007 ci(99%)=[4.390219e+011,4.391506e+011] n=8564102
6 sdn=2.311557e+011 t=1514.84s
m=4.390902e+011 sd=2.459824e+007 ci(99%)=[4.390268e+011,4.391536e+011] n=8808791
9 sdn=2.308672e+011 t=1561.69s
m=4.390899e+011 sd=2.392634e+007 ci(99%)=[4.390282e+011,4.391515e+011] n=9053481
6 sdn=2.276586e+011 t=1609.00s
m=4.390875e+011 sd=2.340861e+007 ci(99%)=[4.390272e+011,4.391478e+011] n=9298170
7 sdn=2.257222e+011 t=1656.38s
m=4.390864e+011 sd=2.282579e+007 ci(99%)=[4.390276e+011,4.391452e+011] n=9542858
1 sdn=2.229795e+011 t=1704.16s
m=4.390819e+011 sd=2.269434e+007 ci(99%)=[4.390235e+011,4.391404e+011] n=9787546
6 sdn=2.245198e+011 t=1752.09s
m=4.390696e+011 sd=2.532705e+007 ci(99%)=[4.390044e+011,4.391349e+011] n=1003223
57 sdn=2.536784e+011 t=1799.97s
.
Interrupted!
So, relative errors are (much) less than 0.005% (with n enough big)!rnbqk1nr/ppppbppp/8/4p3/8/3P3N/PPPBPPPP/RN1QKB1R b KQkq - 2 3 8 439081704189
Here is the divided Perft(8):
Code: Select all
rnbqk1nr/ppppbppp/8/4p3/8/3P3N/PPPBPPPP/RN1QKB1R b KQkq - 2 3
1 be7-d6 16089335029
2 be7-c5 22051013162
3 be7-b4 11918256230
4 be7-a3 17524928284
5 be7-f6 9878193292
6 be7-g5 14815955797
7 be7-h4 13466113493
8 be7-f8 17811005320
9 nb8-a6 14380211483
10 nb8-c6 16328060698
11 ng8-f6 16891252438
12 ng8-h6 16963733936
13 e5-e4 15476308128
14 a7-a6 13269413108
15 a7-a5 16512141675
16 b7-b6 15987455163
17 b7-b5 16163782384
18 c7-c6 16274011134
19 c7-c5 14546867320
20 d7-d6 19986838498
21 d7-d5 29694101608
22 f7-f6 10265632906
23 f7-f5 14586454464
24 g7-g6 13331013126
25 g7-g5 10660622715
26 h7-h6 13544906144
27 h7-h5 16714671396
28 ke8-f8 13949425258
Total: 439081704189
439,081,704,189 (move pathes after 8 half moves).
Time: 907.278 s (0:15:07.278).
Going a little off-topic: I used my Perft estimate 'method' (if it can be named method) again, now for estimate Perft(14) of the initial position of standard chess. I estimated it in August with a Casio calculator, lots of roundings and unknown Perft(13) value on that date [with my 'method' I need Perft(n-1) for estimate Perft(n)]. The result was 6.1861e+19 more less. I have used now the Windows calculator (which means almost no roundings), Perft(13) known value (hoping that the number calculated by Paul Byrne is correct) and this time I adjusted my polynomials with Lagrange interpolation. Here is what I got:
Which gives an average result of ~ 61,886,459,822,115,294,738 (slightly different from 6.1861e+19) with an interval width of ~ 0,00084505% (a very tiny interval). In fact, when ply grows, my interval widths become more and more tiny (this is a feature of my 'method'). I do not use standard variations, so please do not get confused: I estimate Perft values with two different parameters (I call them alpha and beta... I know, too original names...) and this couple of estimates are the lower bound and the upper bound of my interval. Other thing I have observed is that relative errors are greater with odd plies than with even ones, so if I had a relative error of ~ 0.03022% in my Perft(13) estimate, I expect now less than 0.03% of relative error in Perft(14) because I do not think that this pattern will change.61,885,936,850,878,128,969 < [own Perft(14) estimate] < 61,886,982,793,352,460,506
Yesterday (two days later of my Perft(14) estimate) I ran an extremely long MonteCarlo Perft(14) of the initial position of standard chess. Here is part of the output:
The complete output does not fit in the post. I uploaded it to Mediafire:Initializing 32 bit magics...
Transposition table: Entries=2048K Size=49152K
Pawn hash table: Entries=1K Size=32K
No 3-pc GTBs available
No 4-pc GTBs available
No 5-pc GTBs available
GNU Chess 5.07.173b-libgtb-32
perftmc 14
HashKey=463b96181691fc9c
Repeat=0
FEN=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
white KQkq
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
m=6.206239e+019 sd=1.708984e+017 ci(99%)=[6.162215e+019,6.250262e+019] n=3962585
sdn=3.401946e+020 t=34.19s
m=6.205078e+019 sd=9.934920e+016 ci(99%)=[6.179485e+019,6.230670e+019] n=5943900
sdn=2.422145e+020 t=51.16s
m=6.199594e+019 sd=8.911690e+016 ci(99%)=[6.176638e+019,6.222551e+019] n=7925206
sdn=2.508796e+020 t=68.06s
m=6.192672e+019 sd=9.776091e+016 ci(99%)=[6.167489e+019,6.217855e+019] n=9906578
sdn=3.076997e+020 t=84.95s
m=6.192906e+019 sd=7.985566e+016 ci(99%)=[6.172335e+019,6.213476e+019] n=1188789
1 sdn=2.753329e+020 t=102.25s
m=6.191169e+019 sd=6.968757e+016 ci(99%)=[6.173218e+019,6.209121e+019] n=1386926
8 sdn=2.595267e+020 t=119.11s
m=6.190071e+019 sd=6.134221e+016 ci(99%)=[6.174269e+019,6.205873e+019] n=1585058
2 sdn=2.442204e+020 t=135.97s
m=6.191212e+019 sd=5.528864e+016 ci(99%)=[6.176970e+019,6.205454e+019] n=1783199
9 sdn=2.334726e+020 t=153.09s
m=6.192867e+019 sd=5.214776e+016 ci(99%)=[6.179434e+019,6.206300e+019] n=1981335
7 sdn=2.321212e+020 t=170.00s
m=6.192521e+019 sd=4.729640e+016 ci(99%)=[6.180337e+019,6.204704e+019] n=2179453
7 sdn=2.208015e+020 t=186.86s
m=6.193613e+019 sd=4.453665e+016 ci(99%)=[6.182141e+019,6.205086e+019] n=2377587
3 sdn=2.171630e+020 t=203.72s
m=6.192204e+019 sd=4.332477e+016 ci(99%)=[6.181043e+019,6.203364e+019] n=2575724
6 sdn=2.198801e+020 t=220.88s
m=6.192854e+019 sd=4.063399e+016 ci(99%)=[6.182386e+019,6.203321e+019] n=2773864
0 sdn=2.140090e+020 t=237.73s
m=6.193283e+019 sd=3.807091e+016 ci(99%)=[6.183476e+019,6.203090e+019] n=2971980
7 sdn=2.075469e+020 t=254.59s
m=6.191550e+019 sd=3.960678e+016 ci(99%)=[6.181347e+019,6.201752e+019] n=3170121
9 sdn=2.230014e+020 t=271.50s
m=6.191004e+019 sd=3.760148e+016 ci(99%)=[6.181318e+019,6.200691e+019] n=3368260
8 sdn=2.182267e+020 t=288.64s
More data...
m=6.188486e+019 sd=5.283857e+015 ci(99%)=[6.187125e+019,6.189847e+019] n=1943696
535 sdn=2.329514e+020 t=36001.81s
m=6.188466e+019 sd=5.282208e+015 ci(99%)=[6.187106e+019,6.189827e+019] n=1945677
767 sdn=2.329973e+020 t=36049.72s
m=6.188448e+019 sd=5.279884e+015 ci(99%)=[6.187088e+019,6.189808e+019] n=1947659
139 sdn=2.330134e+020 t=36097.50s
m=6.188433e+019 sd=5.276738e+015 ci(99%)=[6.187074e+019,6.189792e+019] n=1949640
508 sdn=2.329929e+020 t=36145.14s
m=6.188440e+019 sd=5.271808e+015 ci(99%)=[6.187082e+019,6.189798e+019] n=1951621
930 sdn=2.328935e+020 t=36192.20s
m=6.188443e+019 sd=5.266540e+015 ci(99%)=[6.187086e+019,6.189799e+019] n=1953603
296 sdn=2.327789e+020 t=36239.84s
m=6.188422e+019 sd=5.265392e+015 ci(99%)=[6.187065e+019,6.189778e+019] n=1955584
659 sdn=2.328461e+020 t=36287.47s
m=6.188451e+019 sd=5.268238e+015 ci(99%)=[6.187094e+019,6.189808e+019] n=1957566
047 sdn=2.330900e+020 t=36335.20s
m=6.188469e+019 sd=5.266156e+015 ci(99%)=[6.187113e+019,6.189826e+019] n=1959547
313 sdn=2.331158e+020 t=36382.42s
m=6.188450e+019 sd=5.264600e+015 ci(99%)=[6.187093e+019,6.189806e+019] n=1961528
680 sdn=2.331647e+020 t=36429.84s
m=6.188437e+019 sd=5.260787e+015 ci(99%)=[6.187082e+019,6.189792e+019] n=1963509
906 sdn=2.331134e+020 t=36477.47s
m=6.188445e+019 sd=5.256033e+015 ci(99%)=[6.187091e+019,6.189799e+019] n=1965491
139 sdn=2.330202e+020 t=36525.09s
m=6.188448e+019 sd=5.250844e+015 ci(99%)=[6.187095e+019,6.189801e+019] n=1967472
424 sdn=2.329075e+020 t=36572.44s
m=6.188433e+019 sd=5.247709e+015 ci(99%)=[6.187081e+019,6.189785e+019] n=1969453
750 sdn=2.328856e+020 t=36619.84s
m=6.188431e+019 sd=5.242481e+015 ci(99%)=[6.187080e+019,6.189781e+019] n=1971435
144 sdn=2.327706e+020 t=36667.45s
m=6.188435e+019 sd=5.237390e+015 ci(99%)=[6.187086e+019,6.189784e+019] n=1973416
444 sdn=2.326614e+020 t=36715.06s
m=6.188442e+019 sd=5.232614e+015 ci(99%)=[6.187094e+019,6.189790e+019] n=1975397
869 sdn=2.325659e+020 t=36762.53s
m=6.188433e+019 sd=5.228217e+015 ci(99%)=[6.187086e+019,6.189779e+019] n=1977379
177 sdn=2.324870e+020 t=36809.70s
m=6.188450e+019 sd=5.225728e+015 ci(99%)=[6.187103e+019,6.189796e+019] n=1979360
507 sdn=2.324927e+020 t=36857.38s
m=6.188461e+019 sd=5.221738e+015 ci(99%)=[6.187116e+019,6.189806e+019] n=1981341
842 sdn=2.324314e+020 t=36905.20s
m=6.188464e+019 sd=5.216629e+015 ci(99%)=[6.187120e+019,6.189808e+019] n=1983323
185 sdn=2.323200e+020 t=36953.03s
m=6.188483e+019 sd=5.214871e+015 ci(99%)=[6.187140e+019,6.189827e+019] n=1985304
489 sdn=2.323577e+020 t=37000.16s
m=6.188477e+019 sd=5.210061e+015 ci(99%)=[6.187135e+019,6.189819e+019] n=1987285
811 sdn=2.322592e+020 t=37049.25s
m=6.188467e+019 sd=5.205901e+015 ci(99%)=[6.187125e+019,6.189808e+019] n=1989267
148 sdn=2.321895e+020 t=37101.17s
m=6.188438e+019 sd=5.208418e+015 ci(99%)=[6.187097e+019,6.189780e+019] n=1991248
452 sdn=2.324174e+020 t=37152.09s
m=6.188449e+019 sd=5.204378e+015 ci(99%)=[6.187108e+019,6.189790e+019] n=1993229
741 sdn=2.323526e+020 t=37200.89s
m=6.188425e+019 sd=5.204986e+015 ci(99%)=[6.187084e+019,6.189765e+019] n=1995210
924 sdn=2.324952e+020 t=37248.69s
m=6.188431e+019 sd=5.200230e+015 ci(99%)=[6.187092e+019,6.189771e+019] n=1997192
312 sdn=2.323980e+020 t=37296.34s
m=6.188441e+019 sd=5.195983e+015 ci(99%)=[6.187102e+019,6.189779e+019] n=1999173
685 sdn=2.323234e+020 t=37344.08s
m=6.188431e+019 sd=5.191844e+015 ci(99%)=[6.187093e+019,6.189768e+019] n=2001154
971 sdn=2.322533e+020 t=37391.12s
perftmc14_D930.txt (114.91 KB)
(The suffix of D930 is because I ran this MonteCarlo Perft in an Intel Pentium D930).
Those MonteCarlo Perfts are quite similar with my own estimate. I stopped at ~ 2e+9 visited nodes. Even with little time, MonteCarlo Perfts seem accurate... what a good idea!
Just for comparison, François Labelle's estimate for Perft(14) is 6.187e+19. We differ (more less) in 0.0266%, almost the same that in Perft(13) (around 0.0269%). Given the fact that my interval widths are so tiny, it is almost impossible that true Perft(14) value will fit in my interval... but this is not my war: I want to reduce relative errors of my estimates. For Perft(14), I would be satisfied with less than 0.02% of relative error, and extremely satisfied with less than 0.01%. Any thoughts and/or new estimates?
Regards from Spain.
Ajedrecista.