我在两种不同的启发式算法上使用A *搜索算法。我已经做过其中一个,现在我需要实现并使用另一个。我想使用曼哈顿距离,并且有一个定义,因此应该如何计算启发式,但是我不确定它是否正确。一切编译正常,没有错误等。
我的代码:
function dist = distance(x1, y1, x2, y2)
dist = abs((x1 - x2) + (y1 - y2));
对我来说似乎正确,但我只是想确定一下。
当我运行它时,启发式值从大开始,随着探索更多的节点,并且它越接近目标位置,启发式值变小,直到达到0,我假设这是应该发生的情况