4

Javaでプログラミングしたゲームがあります。ゲームはシンプルです(下図参照)。4羽の鳥と1匹の幼虫がいます。2 人用ゲーム (AI 対人間) です。

ここに画像の説明を入力

  • 幼虫は斜め前方と斜め後方に移動できます
  • 鳥は斜め前方にのみ移動できます
  • ライン1(フェンス)までたどり着ければ幼虫の勝ち
  • 鳥の動きが残っていない場合も幼虫が勝ちます
  • 鳥は幼虫を「食べる」ことはできません。
  • 幼虫に移動が残っていない場合(まったく移動できない場合)、鳥が勝ちます

ここに画像の説明を入力

ゲームが始まると、幼虫が始まり、次に 1 羽の鳥 (任意の 1 羽) が移動できるようになり、次に幼虫、など...


MiniMax (Alpha Beta Pruning) を実装し、次の evaluate() 関数 (ヒューリスティック関数) を使用しています。

ボード上の各マスに次の数字を割り当てましょう。

ここに画像の説明を入力

したがって、評価関数は

h(n) = 幼虫の位置の値 - 鳥の位置の値 1 - 鳥の位置の値 2 - 鳥の位置の値 3 - 鳥の位置の値 4

幼虫はヒューリスティック値を最大化しようとしますが、鳥はそれを最小化しようとします

例:

ここに画像の説明を入力

ただし、これは単純でナイーブなヒューリスティックです。それは賢明な方法で行動しません。私は AI の初心者ですが、このヒューリスティック関数を改善するために何ができるか知りたいですか?

良い/情報に基づいたヒューリスティックとは何ですか?

4

3 に答える 3

1

幼虫がボードの側面にいる場合、鳥は幼虫よりも有利な位置にいるという事実を考慮に入れることができます。そのため、幼虫が MAX の場合は、ボードの側面のタイルの値を小さく変更します。

于 2015-11-11T05:17:00.470 に答える