TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

floodgateの棋譜の詰みの手数

拡散モデルで将棋の方策の学習を試しているが、詰みの手順も学習できるか試したいと考えている。
そのために、floodgateの棋譜から詰みの局面を抽出した。
また、詰みの手数の統計を調査した。

抽出方法

詰みの局面かの判定には、「KomoringHeights」v1.0.0を使用した。

投了で終局しているfloodgataの棋譜を、終局の1手前の局面から2手ずつ巻き戻しながら詰み探索を行い、詰みが見つからない局面の2手前の局面を詰みの局面とした。

詰み探索は30秒思考した。

対象期間

2018年から2023年の全棋譜を調査した。

棋譜

年毎の投了で終局している棋譜数は以下の通り。

year count
2018 32260
2019 79497
2020 108392
2021 92473
2022 40577
2023 57503

詰みの手数

統計量
count    410702.000000
mean         10.970110
std           7.566758
min           1.000000
5%            1.000000
10%           3.000000
25%           5.000000
50%           9.000000
75%          15.000000
90%          21.000000
95%          25.000000
99%          33.000000
max          69.000000
ヒストグラム(対数)


※偶数の手数もカウントされているが、詰みを見逃して逆に詰まされている棋譜である。

考察

手数と棋譜数は指数的に減少する関係にあることがわかった。

統計量は、
平均:19.97手
中央値:9手
最頻値:5手
99%は、33手以下である。

最大の69手詰めの局面は、以下の局面である。
棋譜:2020/wdoor+floodgate-300-10F+DEAD_SILENCE+elmo_WCSC27_479_4t_10m+20200814050004.csa
局面:

startpos moves 2h7h 5a4b 7g7f 3c3d 7i6h 2b8h+ 7h8h 3a3b 1g1f 1c1d 5i4h 7a6b 4h3h 4c4d 7f7e 4b3a 8g8f 6a5b 8f8e 6b5a 3h2h 5a4b 6i5h 4b3c 5g5f 3a2b 6h5g 3d3e 8i7g 2c2d 8h8f 3b2c 7g6e 4a4b 5g6f 2d2e 3i3h 4d4e 8f8i 6c6d 6e7c+ 8a7c 7e7d 7c6e 7d7c+ 8b8a 8i7i 8a3a 7c7d B*8h 7i7e 8h9i+ 7d6d N*2d 6d6e 3e3f 2h3i 3f3g+ 3h3g L*3d 3i4h 9i8h 7e7b+ 8h8g P*3f 3d3f 3g2h P*3g 2i3g 3f3g+ 2h3g P*3f 3g2h N*5d 6e5d 8g5d 7b7e 5d4d 6f5e 4d3d P*3h 5b4c 5h6h 5c5d 5e6f 4c4d 4h5h 4d3e 5h6i 3d4d 4i5h 2c3d 7e7b 2b2c B*6d 3a7a 7b8c 4b3b 6d8b+ 3b2b P*7d 7a6a 6i7h P*8f L*6e 6a6e 6f6e L*7e N*7f 2d1f 2h1g 4e4f 4g4f P*7c 8b7c 4d9i 7c6d 7e7f 6e7f 5d5e R*4a N*4c 7d7c+ 5e5f L*8h P*6c 7c6c 9i9h 7h7g 9h9g 8h8f 9a9b 6c5c 3f3g+ 3h3g P*7e 6d7e 4c5e 7g6f 1a1b 6f5e 2e2f 2g2f 1f2h+ 1g2h 1d1e 8c9b 1e1f 5c4c 9g8h N*6f 8h6f 5e6f N*4b

ただし、より長時間探索したところ61手詰めの手順が見つかった。

まとめ

floodgateの棋譜の詰みの手数を調べた。
手数と棋譜数は指数的に減少する関係にあり、中央値は9手で、33手以上の詰みは1%以下でめったに現れないことがわかった。