我正在尝试在一个简单的纸牌游戏中为 AI 玩家实现一个极小极大算法。但是,通过研究,我很困惑状态评估和启发式方法之间的主要区别是什么。
据我了解,启发式是由玩家可用的当前信息计算的(例如,在国际象棋中,棋子及其相关位置)。有了这些信息,他们得出一个基于启发式函数的结论,该函数基本上提供了“经验法则”。
状态评估是当前状态的准确值。
但是我不确定为什么这两种东西共存,因为我看不出它们之间有多大的不同。请有人详细说明,并消除我的困惑。谢谢。
我正在尝试在一个简单的纸牌游戏中为 AI 玩家实现一个极小极大算法。但是,通过研究,我很困惑状态评估和启发式方法之间的主要区别是什么。
据我了解,启发式是由玩家可用的当前信息计算的(例如,在国际象棋中,棋子及其相关位置)。有了这些信息,他们得出一个基于启发式函数的结论,该函数基本上提供了“经验法则”。
状态评估是当前状态的准确值。
但是我不确定为什么这两种东西共存,因为我看不出它们之间有多大的不同。请有人详细说明,并消除我的困惑。谢谢。
假设一个零和游戏,您可以对最终状态(从玩家 X 的角度以赢、平、输结束的游戏)进行状态评估,结果为 1,0,-1。然后,完整的树搜索将使您获得完美的发挥。
但在实践中,树很大,无法完全搜索。因此,您必须在某个时候停止搜索,这不是最终状态。没有确定的赢家或输家。现在很难用 1,0,-1 来标记这个状态,因为游戏可能过于复杂,无法轻松评估远离最终状态的某个状态的获胜者。但是你仍然需要评估这个位置,并且可以使用一些关于游戏的假设,这等于启发式信息。一个例子是国际象棋中的棋子(皇后比棋子更有价值)。这是包含在非完美评估函数(真实评估函数的近似值)中的启发式信息。您的假设/启发式方法越好,真实评估的近似值就越好!
但是还有其他部分可以包含启发式信息。一个非常重要的领域是控制树搜索。哪个先动将首先被评估,哪个最后。首先选择好的移动允许像 alpha-beta 这样的算法修剪树的大部分。但是当然你需要陈述一些假设/启发式信息来命令你的移动(例如,皇后移动比典当移动更强大;这是一个虚构的例子,我不确定这种启发式在国际象棋中的效果-AI在这里)