【发布时间】:2013-07-04 17:24:21
【问题描述】:
当我们将 A* 与不可允许的启发式算法一起使用时,我们有时会得到一条非最优路径。
但是当它被允许具有零成本的路径时,我想到的唯一可接受的启发式是h(x) = 0,它将 A* 变成“简单”的 Dijkstra 算法。
我说的对吗?这是唯一可能的启发式方法吗?不使用可接受的启发式算法的真正损失是什么?还有其他寻路算法更适用于零成本路径吗?
一个例子:
假设下图(边上方的数字表示成本):
1 1 0 1 1
S --> V1 --> V2 --> V3 --> V4 --> G
地点:
- S 表示起始顶点
- V 表示内部顶点
- G 表示目标顶点
通过查看图表,我们看到C(S) = 4。
我可以使用什么启发式函数h(x)?如果我使用欧几里得距离,我得到:
f(S) = g(S) + h(S)
f(S) = 0 + 5 = 5
我们可以看到,这种启发式方法高估了真实距离,因此对于更复杂的图,它可能找不到最优解。
【问题讨论】:
标签: path-finding a-star