我已经实施并使用了A *几次,并且认为我知道有关A * ...的所有信息。直到我遇到这个例子:
该图由4个节点和6个有向加权边组成。每个节点用H=…
表示启发式。启发式显然是可以接受的,所以我没有看到任何问题。
问题是找到从开始到目标的路线,总成本最低。正确的解决方案是采用成本36和18的边缘。
我对A *的实现执行以下步骤(省略与关闭列表相关的任何操作):
= {{G=5, H=100, F=105}, {G=36, H=100, F=136}}
。F = 105
的节点,图像中的上部节点。因此实现会产生错误的结果。这些步骤应该不会发生什么?
答案 0 :(得分:4)
对于可接受的启发式,它必须以上面的为目标的实际成本。你的启发式是不可接受的,这就是你得到错误答案的原因。例如,请参阅Wikipedia article on A*。