モンテカルロ将棋教入信のお誘い
某掲示板からの流れでLS3600さんにid:GMA0BN:20100108の中でモンテカルロ将棋についてコメントいただいたわけだが、最後の方でテキトーなレスを返してしまったので訂正およびモンテカルロ将棋の話題のプレースホルダとする意味でここに記事を起こしてみたい。
なお当記事において当blog主GMA0BNはGMA0BNに把握できた範囲でモンテカルロ将棋解説を行うだけであって発明者の権利を有さないことを宣言する。(ただしこの宣言の適用範囲について万が一紛争が生じたりしたらそのときはそのときである。)また当記事にミスがあればそれはGMA0BNの責任である。
と仰々しく書き出しては見たものの、GMA0BNがあまり理解できていないから書くこともあまり無い罠ww
基本事項
対策
- play outまでの手数上限を決め打ち(ただし十分大きい値)にして着手をランダムに生成し、第一義的にはその手数内で勝つ頻度の高いものを良い次手とする。
ただし、決めた手数上限に達するまでに勝てないケースを判断するために評価関数を用意する。
この解釈は、id:GMA0BN:20100108におけるLS3600さんのコメント
とても大きな副作用のある評価関数、例えば、「王の価値=∞点、他の駒の価値 = -1点」で、50手読んだときに強くなるのか弱くなるのかモンテカルロ型の将棋で評価してみると面白いでしょうね。
の解釈を私がどうもミスったぽいので考えてみたものです。上記の評価関数前提で50手までモンテカルロすると、
- 50手以内に決着がつく手筋においては、王の価値のみで評価値が決まります。
- 50手以内に決着がつかない手筋においては、手の内にある駒(置駒と持駒の合計)の多い方が不利と判断されます。
2.は直感的には「良い次手を見つける」という目的とは正反対に見えますが、ここでの手筋が探索して得たものでなく、ランダムな着手の結果である、なおかつ多数回試行する、というのがミソです。多数回試行する結果、任意の次手について、評価値の分布が得られます。得られた分布を見て、例えば次手xについて、次の頻度が高いことがわかったとしましょう。
- 次手xを選ぶと「たくさん駒を持っていながら所定の手数で勝ちを収められない」という結果になる
ならば、
- 次手xは駒を持っててもそれをなかなか生かせないから悪手である
と言えそうです…
…まとまらないorz
個人的には、駒割に敏感と言われる将棋において、上のような方法による悪手の抽出が高いS/N比で本当に可能か疑問な感じ。つまり「駒数が相手より優越していながら勝ちを収められない」なんてケースは相当レアなんではなかろうかと。
まあ上記評価関数の例は単なるサンプルだとしても、一般に、評価値から「勝ち」「負け」以上の意味をくみ取れるようにするには、それはそれで評価関数の設計がノウハウや微調の塊になりそうな気がします…