Perft(7) 64 bit hash mismatch set 8

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Perft(7) 64 bit hash mismatch set 8

Post by sje »

Perft(7) 64 bit hash mismatch set 8

Six false positives detected from work unit wu7.464:

Code: Select all

7281c7281
< r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13917094601 334010270424
---
> r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13917091853 334010204472
7684c7684
< r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14627045856 351049100544
---
> r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14627043566 351049045584
15499c15499
< r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 15535143176 372843436224
---
> r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 15535142260 372843414240
15900c15900
< r1bqkbnr/1pp1pppp/p1n5/3p4/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 16268943148 390454635552
---
> r1bqkbnr/1pp1pppp/p1n5/3p4/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 16268942232 390454613568
20302c20302
< r1bqkbnr/1pp1pppp/p1np4/8/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13380239576 321125749824
---
> r1bqkbnr/1pp1pppp/p1np4/8/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13380237284 321125694816
20704c20704
< r1bqkbnr/1pp1pppp/p1np4/8/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14093454234 338242901616
---
> r1bqkbnr/1pp1pppp/p1np4/8/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14093452324 338242855776
pkumar
Posts: 100
Joined: Tue Oct 15, 2013 5:45 pm

Re: Perft(7) 64 bit hash mismatch set 8

Post by pkumar »

7281c7281
< r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13917094601 334010270424
---
> r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13917091853 334010204472
7684c7684
< r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14627045856 351049100544
---
> r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14627043566 351049045584
15499c15499
< r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 15535143176 372843436224
---
> r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 15535142260 372843414240
15900c15900
< r1bqkbnr/1pp1pppp/p1n5/3p4/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 16268943148 390454635552
---
> r1bqkbnr/1pp1pppp/p1n5/3p4/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 16268942232 390454613568
20302c20302
< r1bqkbnr/1pp1pppp/p1np4/8/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13380239576 321125749824
---
> r1bqkbnr/1pp1pppp/p1np4/8/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24 13380237284 321125694816
20704c20704
< r1bqkbnr/1pp1pppp/p1np4/8/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14093454234 338242901616
---
> r1bqkbnr/1pp1pppp/p1np4/8/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24 14093452324 338242855776
What are the numbers in the last column? For perft 7 I got the following:

perft D7 r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24
D7: 13917091853

perft D7 r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24
D7: 14627043566

perft D7 r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24
D7: 15535142260

perft D7 r1bqkbnr/1pp1pppp/p1n5/3p4/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24
D7: 16268942232

perft D7 r1bqkbnr/1pp1pppp/p1np4/8/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4 24
D7: 13380237284

perft D7 r1bqkbnr/1pp1pppp/p1np4/8/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4 24
D7: 14093452324
User avatar
Ajedrecista
Posts: 1969
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Perft(7) 64 bit hash mismatch set 8.

Post by Ajedrecista »

Hello:
pkumar wrote:What are the numbers in the last column?
These numbers mean how many ways you have of reach each position in Perft(14), that is, 24 transpositions in each of these twelve positions in this certain case. Please take a look to this easier example:

Code: Select all

1. e4 e5 2. Nf3
1. Nf3 e5 2. e4
You have two possible ways of reach the typical 1. e4 e5 2. Nf3 position in three plies, so that number would be 2 in this case.

Returning back to Steve's positions, you have the following:

Code: Select all

FEN_i T_i perft&#40;7, FEN_i&#41; X_i
You can check that X_i = T_i*perft(7, FEN_i) for every i (T_i = 24 in this thread). Writing from memory, if you follow Steven's thread of Perft(14) count, you will find sum of perfts [the sum of perft(7, FEN_i)] and sum of products (the sum of X_i). It is a workaround to save time in the Perft(14) computation. Of course, Perft(14) = SUM(X_i; i = 1 to 96,400,068).

Regards from Spain.

Ajedrecista.
brtzsnr
Posts: 433
Joined: Fri Jan 16, 2015 4:02 pm

Re: Perft(7) 64 bit hash mismatch set 8

Post by brtzsnr »

First three agree with pkumar's numbers.

Code: Select all

$ go run perft.go -depth=7 -fen="r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4"                                                                                                    
Searching FEN "r1bqkbnr/1pp1pppp/2np4/p7/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4"
depth        nodes   captures enpassant castles   promotions eval  KNps   elapsed
-----+------------+----------+---------+---------+----------+-----+------+-------
    7  13917091853  936750263   1615159   5428657     176292       39562 5m51.776074461s

$ go run perft.go -depth=7 -fen="r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4"                                                                                                    
Searching FEN "r1bqkbnr/1pp1pppp/2np4/p7/8/2P1PK2/PP1P1PPP/RNBQ1BNR b kq - 3 4"
depth        nodes   captures enpassant castles   promotions eval  KNps   elapsed
-----+------------+----------+---------+---------+----------+-----+------+-------
    7  14627043566  616133496   1405853   6746224     151624       35797 6m48.609915799s

$ go run perft.go -depth=7 -fen="r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4"                                                                                                   
Searching FEN "r1bqkbnr/1pp1pppp/p1n5/3p4/6P1/4PK2/PPPP1P1P/RNBQ1BNR b kq - 0 4"
depth        nodes   captures enpassant castles   promotions eval  KNps   elapsed
-----+------------+----------+---------+---------+----------+-----+------+-------
    7  15535142260 1187837358   1585296  13230232     533468       45847 5m38.846780481s

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Perft(7) 64 bit hash mismatch set 8

Post by sje »

First six fields: FEN
Field 7: multiplier (number of times position occurs at ply 7)
Field 8: perft(7) for the position
Field 9: product of multiplier and perft(7) for the position

Sum of all products = perft(14)

So far, the sum of products is 9,998,506,775,423,605,427. This sum is increasing at a rate of about 174.81 GHz.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

The largest multipliers

Post by sje »

The largest multipliers appear at the end of the unique(7) list. Here are the last ten positions, each already analyzed:

Code: Select all

rnbqkbnr/pppp1ppp/8/4p3/4P3/6P1/PPPP1P1P/RNBQKBNR b KQkq - 2 4 2092 22236482175 46518720710100
rnbqkbnr/pppp1ppp/8/4p3/8/4P1P1/PPPP1P1P/RNBQKBNR b KQkq - 2 4 2092 27117083499 56728938679908
rnbqkbnr/pppp1ppp/4p3/8/4P3/3P4/PPP2PPP/RNBQKBNR b KQkq - 2 4 2166 30198759357 65410512767262
rnbqkbnr/pppp1ppp/8/4p3/4P3/3P4/PPP2PPP/RNBQKBNR b KQkq - 2 4 2166 25540143800 55319951470800
rnbqkbnr/ppp1pppp/3p4/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4 2248 31150577721 70026498716808
rnbqkbnr/pppp1ppp/4p3/8/3P4/4P3/PPP2PPP/RNBQKBNR b KQkq - 2 4 2258 33424915802 75473459880916
rnbqkbnr/pppp1ppp/8/4p3/3P4/4P3/PPP2PPP/RNBQKBNR b KQkq - 2 4 2258 39795827246 89858977921468
rnbqkbnr/ppp1pppp/8/3p4/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4 2368 39377074544 93244912520192
rnbqkbnr/pppp1ppp/4p3/8/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4 2600 43928908948 114215163264800
rnbqkbnr/pppp1ppp/8/4p3/3PP3/8/PPP2PPP/RNBQKBNR b KQkq - 2 4 2600 44948569301 116866280182600