更好的游戏启发功能(AI Minimax)

Mas*_*ter 5 artificial-intelligence heuristics evaluation-function minimax alpha-beta-pruning

有一个我用java编程的游戏.游戏很简单(参见下图).有4只鸟和1只幼虫.这是一个2人游戏(AI vs Human).

在此输入图像描述

  • 幼虫可以沿对角线向前和对角向后移动
  • 鸟只能向前倾斜
  • 幼虫如果可以到达第1行(围栏)则获胜
  • 如果鸟类没有动作,幼虫也会获胜
  • 鸟不能"吃掉"幼虫.
  • 如果幼虫没有向左移动(根本无法移动),鸟类会获胜

在此输入图像描述

当比赛开始时,幼虫开始,然后一只鸟可以移动(任何一只),然后是幼虫等......


我已经实现了MiniMax(Alpha Beta Pruning),我使用了以下的evaluate()函数(启发式函数).

让我们给板上的每个方块提供以下数字.

在此输入图像描述

因此,我们的评估功能将是

h(n)=幼虫的位置值 - 鸟的位置值1 - 鸟的位置值2 - 鸟的位置值3 - 鸟的位置值4

幼虫将尝试最大化启发式值,而鸟类将尝试最小化它

例:

在此输入图像描述

但是,这是一个简单而天真的启发式方法.它不会以聪明的方式行事.我是AI的初学者,我想知道如何改进这个启发式功能?

什么是好的/知情的启发式?