美文网首页
A星算法

A星算法

作者: 李云龙_ | 来源:发表于2020-09-14 17:01 被阅读0次

    完整 demo: https://github.com/dazeGitHub/AStartAlgorithm

    image.png

    参考文章:https://blog.csdn.net/hitwhylz/article/details/23089415

    算法总结

    1. 把起点加入 open list
    2. 重复如下过程:
    1. 遍历 open list ,查找 F 值最小的节点,把它作为当前要处理的节点。
    2. 把这个节点移到 close list 。
    3. 对当前方格的 8 个相邻方格的每一个方格做判断:
    • 如果它是不可抵达的或者它在 close list 中,忽略它。否则,做如下操作。
    • 如果它不在 open list 中,把它加入 open list ,并且把当前方格设置为它的父亲,记录该方格的 F , G 和 H 值。
    • 如果它已经在 open list 中,检查这条路径 ( 即经由当前方格到达它那里 ) 是否更好,用 G 值作参考。更小的 G 值表示这是更好的路径。如果是这样,把它的父亲设置为当前方格,并重新计算它的 G 和 F 值。如果你的 open list 是按 F 值排序的话,改变后你可能需要重新排序。
    3. 当满足以下条件则停止过程
    • 把终点加入到了 open list 中,此时路径已经找到了,或者
    • 查找终点失败,并且 open list 是空的,此时没有路径。
    4. 保存路径

    从终点开始,沿着每个方格的父节点移动直至起点,这就是最终的路径。

    相关文章

      网友评论

          本文标题:A星算法

          本文链接:https://www.haomeiwen.com/subject/pabzektx.html