1

各ボードの状態が与えられると、私の AI は移動する正確な場所を 1 つ返します。

また、AI で作成されたすべての可能なプレイをループする関数も作成しました。

したがって、これは AI が特定のボードに対して移動できるようにする再帰関数であり、次に他のプレイにすべての可能な移動を行わせ、可能な移動ごとに新しいボードで再帰関数を呼び出します。

これを AI が先に行った場合と、他の AI が先に行った場合に行い、これらを足し合わせます。最終的に、418 回の勝利と 115 回の引き分け、そして 0 回の敗北が可能になりました。

しかし今、私の問題は、どうすれば勝利数を最大化できるかということです。この統計を何かと比較する必要がありますが、何と比較すればよいかわかりません。

4

1 に答える 1

0

これは、最適解が不明な最適化問題として扱うことができます。次に、何らかの形式のメタヒューリスティックアルゴリズム (遺伝的アルゴリズムPSOなど) を使用して、最適なものが見つかるまで AI にバリエーションを適用できます。興味深いことに、これらのアルゴリズムは必ずしも「最高」を返すとは限りませんが、以前のものよりも優れたものを取得することは依然として有用です。

通常、メタヒューリスティック アルゴリズムには、基本的にソリューションを比較して最適なソリューションを見つけるフィットネス関数が必要です。あなたの場合、勝率をフィットネス関数として使用できます。すでに 418/115 の比率を達成しているので、これを「ベースライン」として使用して、将来のソリューションを比較できます。

残念ながら、私が提案していることはあまりにも大げさであるか (もっと単純なものを探しているかもしれません)、または一般的すぎる可能性があることは理解しています。

残念ながら、それが完璧かどうかを確認するために使用できる統計についてはわかりません. 私がすぐに思いついたアイデアの 1 つは、次のように仮定することです。

あなたの再帰アルゴリズムはすでにこれを返しています。ここで問題は、勝利の量を増やすことは可能ですか? 次に、次の仮定を立てることができます: - 両方のプレイヤーが完全にプレイした場合、結果は常に引き分けになります (猫のゲーム)。

この仮定と前の仮定の評価に基づいて、AI (ボブと呼びましょう) が完璧である場合、ボブ対ボブのゲームでは、結果は常に引き分けでなければならないことを意味します。

これでも勝利数を増やすのに役立たないことは承知していますが(可能であれば)、使用できる別のメトリックを提供します-少なくともボブ対ボブのゲームで、エッジケースが存在しないことを確認します勝者です (これは、AI が完璧ではないことを意味します)。

于 2013-01-28T12:23:29.597 に答える