我不理解A*路径规划算法。

6
据我理解:
将当前节点添加到关闭列表中。
查找与当前节点相邻的节点,如果它们不是无法走动的节点且不在关闭列表中,则将该节点添加到开放列表中,并计算F、G和H值,其父节点为当前节点。如果该节点已经存在于开放列表中,请检查是否通过当前节点前往该节点将导致较低的G值-如果是,请将该节点的父节点设为当前节点。
在开放列表中查找F值最高的节点,并将当前节点设置为该节点。
重复以上步骤,直到到达目的地,然后遍历目的地节点的父节点,您将返回起始节点。那将是最好的路径。
因此,这对我的大脑很有意义,但当我在图表上实际尝试时,我认为自己没有正确理解它。
(来自下面的图片)从起始绿色瓷砖向下移动,具有F值60的瓷砖在开放列表中,比右下角的74个瓷砖具有较低的F值。为什么选择74而不是60?
2个回答

4
在我看来,你应该看一下Amit的A*页面。它们真的很好地解释了算法的工作原理以及如何使其工作。
至于你的情况,图表显示了从开放列表中的第一个节点开始的G分数。当你查看网站时,整个图表首先为第一个节点评估构建,并且作者展示了最佳节点在右侧。然后,向前移动使用基于当前节点分数加上下一个节点的移动成本的G分数,这在图表上没有显示出来。 尽管在网站上说过:

并且检查当前方块的正左侧的最后一个方块,以查看通过当前方块到达那里的G分数是否更低。没有骰子。

如果我没记错的话,它的G分数实际上将是24(14(当前成本)+ 10(水平移动成本)),就像它下面的方块一样。

嗯?我想现在已经明白了。60 F分是最低的,所以它成为了当前节点。然后将其添加到关闭列表中。这只是一直持续下去,直到74以下的所有节点都在关闭列表中,然后使具有74的节点成为当前方格。因为在页面的更下方,您可以看到绿色节点向下两个的G分数已更改,因此必须意味着60节点已成为当前方格。 - apscience
@gladoscc:哦,我的A*算法知识有点生疏。=/ 但是我仍然建议你阅读完整个Amit的页面系列,它们会帮助很多。 - Jesse Emond

0
你不移动到F值为60的方格的原因是它在“关闭列表”中。而F值为88和74的方格在“开放列表”中,可以被检查以进行下一步移动。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接