オセロ研究支援AIアプリ Egaroucid 技術資料
Tweet

ここに書いた内容はかなり高度です。オセロAI初心者の方はぜひオセロAIの教科書を先にお読みください。

ボードの実装

ビットボードを使っています。

評価

評価関数は60手を4手ずつの15フェーズに分けた上で、さらに先手と後手で分けた、合計30個のモデルで構成されています。全部合わせて2300万ほどの盤面データを用いてパラメータを調整しました。

評価関数はパターン評価、着手可能位置によるパターン評価、その他特徴量評価の総和という設計になっています。合計24種類、86個の特徴量で、総パラメータ数は23,927,640個です。それぞれ解説します。

パターン評価

パターン評価は強いオセロAIでは一般的な手法です。Egaroucidでは16種類、62個のパターンを使っています。パラメータの調整には最急降下法を用いています。

パラメータ調整についてはオセロソフトThellの作者によるパラメータ調整に関する資料(PDF)に丁寧に記述されています。

着手可能位置によるパターン評価

着手可能位置をパターンとして抽出し、通常のパターン評価と同様に点数付けしています。
なお、着手可能位置については1つの場所に先手と後手の両方が着手できる場合があるので、先手と後手のそれぞれについて着手できるか否かを表すため2ビット(0から3)で状態を表しています。

その他特徴量

Egaroucidには以下の追加特徴量を点数付けして使っています。

定石
定石は本来であれば手順を保存しておいて、それをプログラム実行時に辿るのが良いのでしょうが、面倒だったのでだただた盤面と手番、そして評価値を保存するだけにしています。