Javaでプログラミングしたゲームがあります。ゲームはシンプルです(下図参照)。4羽の鳥と1匹の幼虫がいます。2 人用ゲーム (AI 対人間) です。
- 幼虫は斜め前方と斜め後方に移動できます
- 鳥は斜め前方にのみ移動できます
- ライン1(フェンス)までたどり着ければ幼虫の勝ち
- 鳥の動きが残っていない場合も幼虫が勝ちます
- 鳥は幼虫を「食べる」ことはできません。
- 幼虫に移動が残っていない場合(まったく移動できない場合)、鳥が勝ちます
ゲームが始まると、幼虫が始まり、次に 1 羽の鳥 (任意の 1 羽) が移動できるようになり、次に幼虫、など...
MiniMax (Alpha Beta Pruning) を実装し、次の evaluate() 関数 (ヒューリスティック関数) を使用しています。
ボード上の各マスに次の数字を割り当てましょう。
したがって、評価関数は
h(n) = 幼虫の位置の値 - 鳥の位置の値 1 - 鳥の位置の値 2 - 鳥の位置の値 3 - 鳥の位置の値 4
幼虫はヒューリスティック値を最大化しようとしますが、鳥はそれを最小化しようとします
例:
ただし、これは単純でナイーブなヒューリスティックです。それは賢明な方法で行動しません。私は AI の初心者ですが、このヒューリスティック関数を改善するために何ができるか知りたいですか?
良い/情報に基づいたヒューリスティックとは何ですか?