私は現在、カード ゲームウィザードの AI に取り組んでいます。ウィザードは、実際のゲームが始まる前に、各プレーヤーが自分が取ると信じているトリックの数を宣言するトリックテイキング ゲームです。
いくつかの論文と人工知能のいくつかの部分を読んだ後、各プレイヤーが完全な情報を得られるように、最初にオープンカードを使用してゲームのアルゴリズムを設計することにしました。そこで、UCB 選択ポリシーを使用して、モンテカルロ ツリー検索アルゴリズムを開始し、実装しました。Java ですべてを実装しましたが、かなりうまく動作しているように見えますが、ボットはまだ最適に動作していません。特にトリック予想は難しそうなので、プレイと同じMCTSを使いました。
したがって、基本的に私のアルゴリズムは、ゲームの現在の状態 (たとえば、2 人のプレーヤーが入札した) を拡張し、1 つの新しいノード (たとえば、3 人のプレーヤーが入札した) を作成し、ゲームが終了するまでランダムにプレイします。次に、スコアが評価され、ノードを通じてバックアップされます。
アルゴリズムを改善するための次のステップは、ツリー検索にヒューリスティックを追加して、損失をもたらす可能性が最も高い分岐が最初から無視されるようにすることだと思います。
私の質問は次のとおりです。これは良いアプローチだと思いますか? 他に有望なアプローチはありますか、または他にヒントはありますか?