A* 搜索中水壶问题的启发式函数

Heuristic function for water jug problem in A* search

我对启发值有疑问。所以,这是我的谜题:

volume of the 3 jugs = (10,6,5) initial state = (10,0,0) goal state = (8,3,0)

我选择使用 A* 搜索这个谜题。它是否类似于 h(x,y,z)=(x*a)+(y*b)+(z*c) 因为 x y z 是每个水壶中的水量,而 a b c 是水壶是否为空。如果它为空则等于0,如果不为空则等于1。因为我在互联网上搜索时感到困惑。你们可以帮助指导我吗?我也是 AI 新手。谢谢

A* 最基本的启发式算法是,不要遵循导致重复状态的分支。您保留所有先前状态的集合,如果集合中已存在下一个状态,则不遵循分支。

对于您的具体问题,可能的启发式函数可能是采用您的下一个“状态”(水壶的体积)并减去“目标”状态和 returns 基于您的接近程度的增量分数下一个状态就是你的目标。特定问题最多有 6 个来自每个唯一状态的分支,因此您可以选择遵循增量分数最低的分支。

h(state)  = dot(abs(state - goal), 1 / volume)