元気にしていることを願います。私は現在、Mcts (モンテカルロ木探索) を使用して connect4-agent を実装する必要があるプロジェクトに取り組んでいます。私が理解している限り、mcts は基本的に 4 つの段階で構成されています。
1) ツリーの構築
2) 葉ノードに到達するまでの Ucb1 値による選択
3) 葉ノードが訪問された場合の展開
4) ロールアウト = 最終状態に到達するまでのランダムなシミュレーションと、この最終状態のスコア付け (例: 勝った --> スコア =1、負けた --> スコア = -1、引き分け --> スコア = 0)
5) スコア値のバックプロパゲーションを行い、訪問したノードに 1 回の訪問を追加します。
6) 1 レベルのスコア値に応じて Move を決定します。
私たちのコードはかなりうまく機能しています。それにもかかわらず、拡張ステージを実行する方法がわかりません。すでにアクセスしたリーフ ノードに到達した場合、このノードからツリーを展開する必要があることがわかります。考えられる手は 3 つあるとします。move=1、move =2、または move = 3 でツリーを展開するかどうかをどのように決定しますか?
現在、アルゴリズムはこれらの動きのいずれかをランダムに選択して拡張しますが、これは最適とはほど遠いと思います.
よろしく、 アルベルト