难题中a *搜索算法的深度

时间:2018-11-29 10:36:35

标签: java algorithm 8-puzzle

我正在尝试使用A *搜索算法实现4 * 4难题求解器。我知道totalDistance f(n)= g(n)+ h(n),而g(n)是从根到当前节点的路径成本。但是,当为每个节点设置总成本时,如何为每个级别计算深度感到困惑。希望有人能解释。

1 个答案:

答案 0 :(得分:1)

A *算法实际上没有“深度”的概念。取而代之的是,该想法是记录从头到所有访问节点的成本。访问新节点时,到达新节点的成本是当前节点的成本+从当前节点到新节点的成本。

总成本启发式方法仅用于1个目的:选择要考虑的下一个节点。如您所说,通常是节点成本+到目的地的估计成本。

关于代码更改,我建议您要么将“得分”存储为节点的成本(忽略估算值),然后在排序比较器中计算启发式算法,要么将成本和估算值分别存储(如果出于任何原因计算估算费用昂贵)。