ブロックス・デュオ全数探索はやっぱり無理っぽい……

昨日のエントリは「ブロックス・デュオを2手目まで探索してみて、ちょっと全数探索するのは厳しそうな雰囲気やなあ」というところまで。
ここはひとまず3手目以降の総局面数の見積もりが欲しい。
というわけで各局面で可能な手を数え上げながら、ランダムな手を選んで手詰まり(どちらかのプレイヤーがパス)になるまで進める、というのを1000回やってみた。この結果から、(3手目での可能な手の数の平均)×(4手目での可能な手の数の平均)×……で、とてもおおざっぱながらも局面数の見積もりが得られるはず*1


というわけで以下が結果。
"estimate" のところが3手目以降の局面数の見積もり。これに前回の 86346 通りを掛ければ全局面数の見積もりとなるが、まあそれ以前の問題。

3: 536.179 (536179/1000, max: 904)
4: 516.143 (516143/1000, max: 904)
5: 543.944 (543944/1000, max: 928)
6: 493.939 (493939/1000, max: 877)
7: 491.801 (491801/1000, max: 843)
8: 435.732 (435732/1000, max: 887)
9: 410.996 (410996/1000, max: 822)
10: 360.382 (360382/1000, max: 855)
11: 330.437 (330437/1000, max: 741)
12: 277.403 (277403/1000, max: 668)
13: 241.777 (241777/1000, max: 583)
14: 201.657 (201657/1000, max: 482)
15: 167.17 (167170/1000, max: 405)
16: 133.225 (133225/1000, max: 384)
17: 107.453 (107453/1000, max: 374)
18: 81.9219219219219 (81840/999, max: 315)
19: 62.0220440881764 (61898/998, max: 346)
20: 46.4187689202825 (46001/991, max: 180)
21: 33.5223577235772 (32986/984, max: 198)
22: 25.3354231974922 (24246/957, max: 149)
23: 17.2868217054264 (15610/903, max: 122)
24: 13.4443084455324 (10984/817, max: 91)
25: 9.2431654676259 (6424/695, max: 57)
26: 8.03724394785847 (4316/537, max: 56)
27: 5.60574412532637 (2147/383, max: 36)
28: 5.39754098360656 (1317/244, max: 30)
29: 4.11363636363636 (543/132, max: 18)
30: 3.34782608695652 (231/69, max: 13)
31: 3.52941176470588 (120/34, max: 17)
32: 2.29411764705882 (39/17, max: 5)
33: 1.5 (3/2, max: 2)
34: 2.0 (2/1, max: 2)
estimate: 883586246344447668847298428561454899663647269222195314

8.8*10^53 ということで、まあ誤差はきっとずいぶんあるんだろうけど、全数探索はとてもとても無理なようだ。攻め方をいろいろ考えなくては。


手数の分布からいくつか気がついたこと。

  • 10手目あたりまでは定石ベースか?
  • 10手目以降はn手先読み+評価関数
  • 20手目以降なら、かなり先読みできそう。25手目以降なら全数探索もあり?
  • ブロックス・デュオの実際のプレイの「棋譜」が欲しいなあ。対戦サイトのログとか分けてくれないかな?w

*1:同じ局面でも手の順番が違えば別々に数えることになるので、実際はこれより小さいことを期待したいが……