基本的に、ゲームの評価を得るために行う最善の方法は次のとおりです。
- ゲームをプレイしてください - どのような状況を回避しようとしているのか、どのような状況が良いのかを確認してください。これらの状況を一般的な評価にまとめてみてください。
- 研究- 誰かがすでにこの問題または同様の問題を研究している可能性があります。もしそうなら、何らかのヒューリスティック関数を示唆する記事またはその他の資料があるかもしれません。
私がすることは次のとおりです。
- それぞれがゲームの 1 つの側面 (最も近い敵からの距離、敵への射線、私のヘルス バーなど) を記述するヒューリスティック関数のセットを作成します。私はこのリストを可能な限り拡大するためにゲームをプレイし、もちろん、他の人がこの/類似のゲームで見つけた可能性のあるアイデアをオンラインで探します.
- ステップ 1 から、実際に一連の関数を取得しました:
h_1(board),h_2(board),...,h_n(board)
- しかし、ヒューリスティック関数が何であるかはまだわかりません
- いくつかのパラメーターを見つけて
a_1,a_2,...,a_n
、ヒューリスティック関数を作成しようとします
h(board) = a_1 * h_1(board) + a_2 * h_2(board) + ... + a_n * h_n(board
。問題は、これらのパラメーターを取得する方法です。ここで、最適化の問題があることに注意してください。
この特定の問題に対する 1 つの解決策は、モンテカルロ学習です。
モンテカルロ学習:
モンテカルロ学習の考え方は、エージェント (AI) のリストを作成し、それぞれをa_1,...,a_n
- のランダムな値で初期化し、それらの間でトーナメントを行うことです。
トーナメントが終了したら、最高の成績を収めたエージェントに基づいて各エージェント
の の値を変更し、トーナメントを再実行します。(これを行う 1 つの方法は、遺伝的アルゴリズムa_1,...,a_n
の「生成」ステップに似ています- 交差と突然変異ですが、他の方法もあります)。
最後に、モンテカルロ学習プロセスはa_1,...,a_n
、ボードの優れたヒューリスティック関数を提供するための適切な値を提供する必要があります。