【规划】关于A*、LPA*、D* Lite算法的小结

原文来自于知乎 搬砖的旺财

  1. A*、LPA*以及D* lite都可以用于静态环境下移动机器人的路径规划,此时三者计算效率都相差不大,都利用了启发式搜索来提高效率,LPA*和D* Lite的增量式搜索在这时没有任何帮助,但对于动态环境的路径规划,A*算法却有心无力,但是对于动态环境下进行二次搜索,LPA*和D* Lite效率明显高于A*。
  2. LPA*以及D* lite原理大体类似,都是基于这样一个思想:发生变化后的环境与最初的地图信息相差不大,可以利用增量式搜索利用先前存储信息来提高二次、三次及以后的搜索效率。
  3. A*算法的代价函数为f=g+h,其各个网格点的优先权也是用f来衡量。
    而LPA*和D* Lite都引入rhs变量并作为代价函数,key作为优先权的比较基准,而且key有两 个元素[k1;k2],打破A*算法出现“平级”的局面;由于D*Lite算法Start点一直在移动,故引入km来提高计算效率。
  4. LPA*和D* Lite引入局部一致性的概念来描述网格点的状态以代替A*的Closedlist、Openlist,即所有Openlist的点都局部不一致,所有局部不一致的点都在Openlist列表上,减轻了储存负担,提高算法效率。
  5. LPA*和D* Lite大致流程图是一致的,如图 1所示。

【规划】关于A*、LPA*、D* Lite算法的小结_第1张图片

主要区别在于LPA*是在反复规划着起始网格点和目标点之间的最短路径,起始点Start是固定不变的,所以当移动机器人移动后,在环境信息改变后规划出的路径对于当前时刻的移动机器人来讲并非最优的,D* Lite在此基础上做了改进,将当前位置点视为新的Start网格点,反复计算着Goal点与新的Start点的最短路径。所以D* Lite第一次搜索是规划从Goal到Start点的反向的搜索(正向搜索的话,由于Start点在变动,相关变量需要重新计算),一些变量例如h,g,rhs的定义也与LPA*恰好相反。

你可能感兴趣的:(规划,自动驾驶)