おがみたは衰退しました

プログラミング系の備忘録など

Unityでガイスターを作って、原始モンテカルロ法のAIを実装した

ドイツで考案されたボードゲームであり、ゲーム理論において二人零和有限確定不完全情報ゲームに分類されるガイスターをUnityで作りました。
このページで遊べます→ガイスター(Geister) | UnityGameUploader

f:id:ogamita777:20150608020816p:plain

今回、合法手の中からランダムで1つ選択するAIと思考時間が1秒と5秒の原始モンテカルロ法のAIの計3つを実装し、100回ずつ対戦させてみました。原始モンテカルロ法は簡単に言うと、ランダムなシミュレーションを用いて最も勝つ確率が高そうな手を算出するアルゴリズムです。

対戦結果

先手 対戦結果 後手
ランダム 53 - 47 ランダム
原始モンテカルロ法(1秒) 82 - 18 ランダム
原始モンテカルロ法(5秒) 92 - 8 ランダム
原始モンテカルロ法(1秒) 21 - 79 原始モンテカルロ法(5秒)

考察と展望

原始モンテカルロ法のAIは思考時間が数秒単位の間は時間が長いほど強くなりそうです。思考時間を長くしても強くならない頭打ちがあると考えられますが、それを調べようとすると膨大な時間が掛かりそうなのでやりません(原始モンテカルロ法(1秒) VS 原始モンテカルロ法(5秒) の結果を出すのに半日ほど掛かってます..)。
時間があれば、原始モンテカルロ法を発展させたUCT*1などのアルゴリズムを実装したAIを作ってみたいと思います。