はじめに AlphaZero 深層学習・強化学習・探索 人工知能プログラミング実践入門 以上の本を参考にさせていただき、モンテカルロ木探索(MCTS)を Python で実装しました。 実装リポジトリは以下です。 今回は、 MCTS を書くときに気をつけたことなどを将来の自分に向けてまとめておこうと思います。 局面に対するお気持ち MiniMax や MCTS の実装や本を読むときに以下のような悩みが発生すると思います。 二人でプレイしているけど、現在見ている state オブジェクトの turn プロパティって先手と後手のどっちを表しているんだ? そもそも MiniMax や MCTS ってどっちの視点で考えればいいんだ? 上記のような部分は、本ではかなり省略されることが多いです。 視点の考え方 まず、どっちの視点で考えればよいかですが、stateの局面でこれから打つ側の視点に立って考え
