ふゆやすみのしゅくだい(じゆうけんきゅう)
正月休みも残り二日な訳ですが、以前考えてた「自己対戦の統計情報を元にした実現確率探索」を試してみようかと検討中。
んで、実現確率探索の前にGA将で実装しているHistory Heuristicに関して。
まず、純粋なHistoryではなく、確率ベースの実装になっています。つまり、最善手になった「回数」ではなく最善手になった「確率」を保存しておき、ムーブオーダリングに使います。例えば「1万回指して100回最善手になった手」より「100回指して95回最善手になった手」の方が、より「良い手」だと判断します。
手の分類には下記の項目を使っています。大体100MB前後のテーブルに収まるんで、今となってはそんなに馬鹿デカイ訳ではないです。
- 移動前の位置(盤上81マスか駒台)
- 移動後の位置(盤上81マス)
- 移動後の駒の種類(28通り)
- 成る手かどうか(2通り)
- 取る手かどうか・取った駒の種類(13+1通り)
…ここまで書くと半分書いちゃったも同然なんですが、このテーブルの中身をそのまま実現確率と見なせないかなと考えています。
自己対戦学習を10万局なり100万局なりやれば、そこそこの精度で最善手になる確率を近似出来そうな気がしますし、実装・実行コストもほとんど掛からないのでお手軽にやれそうです。
ただまぁ、今のマシンは評価項目のデバッグで絶賛フル稼働中なんで、マシンリソースの問題が…
って、そうだ。floodgate用のAtomマシンがあるから、それでやればいいのか。