全局路径规划:图搜索算法介绍2(A star)

接下来要介绍的是基于贪心算法的图搜索算法Dja, 和 A*

什么是贪心算法?意思就是我们总是向离终点最近的搜索方向去搜索:
在这里插入图片描述
Dja 算法的原理就是通过对搜索点构造cost function, 搜索方向总是朝向cost function 最低的方向。而这个cost function 直接就是从起点到当前点的代价总和:
在这里插入图片描述
在这里插入图片描述
举个简单的例子:
在这里插入图片描述
如图,起点是S, 从S 往后拓展,有 dep三个点,代价函数最低的是P, 把P拿出来,对P进行拓展,子节点就是q, 一起类推,不断地进行循环,一直到找到终点为止。

但是Dja的问题还是效率问题。

对于A来说,这个算法就是带了启发函数的Dja:我们的cost function 不再是g, 而是外加了一个启发项h, 表示当前的节点与终点的远近。
在这里插入图片描述
与Dja相比,唯一的区别就是cost function 的计算不同:
在这里插入图片描述
还是举一个简单的例子:
在这里插入图片描述
我们从起点a开始,进行拓展,获得三个子节点,bed, 计算cost function, 这是g and h 的总和,最低的是d, 接下来对d进行拓展,子节点是G, 正好就是终点,最后对这一分支进行回溯,将路线回溯到起点,就是我们的最优路径了。
但是需要注意的是,A
算法不一定能够保证路径的全局最优性。

我们说到,启发函数的这个远近是可以任意设定的,只要保证 h<=h*, 意思是,这个设定的距离要小于等于两点之间的真实距离,所以L2 norm 是肯定可以保证的,而L1 norm 则不一定能保证。
在这里插入图片描述
L infinite norm是肯定可以保证的,0 也是可以保证的,极端情况下,这个H = 0, A* 就变成了Dja.
在这里插入图片描述
对于两种算法的效率对比, 直接从搜索空间上就可以看出区别:
在这里插入图片描述
很显然,在二维超平面上,A* 算法的下界条件数是高于Dja的,因此收敛效率也更高,这也是对最优解出Hessian 矩阵的条件数的几何解释。

最后还有个一个问题, 如何跳出局部最优解,这个问题可以通过引入松弛因子 epsilon来解决:
在这里插入图片描述
我们对h进行一个处理,来缩小或者放大启发函数对总的cost function 的影响。epsilon越大,则算法就越贪心,越有可能陷入局部最优解。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全局路径规划和局部路径规划都是移动机器人在导航过程中进行路径规划的两种方法。 全局路径规划是在机器人开始移动之前进行的路径规划。在全局路径规划中,机器人可以获得完整的环境信息作为先验知识,包括地、障碍物位置等。基于这些信息,机器人可以使用各种算法来计算一条从起点到目标点的最优路径。常见的全局路径规划算法包括A-star(A*)算法、Dijkstra算法、遗传算法、蚁群算法等。全局路径规划适用于静态环境,机器人可以提前计算出一条完整的路径,并按照该路径依次前进。 局部路径规划是在机器人实时运动过程中进行的路径规划。在局部路径规划中,机器人只能获取到部分环境信息,无法提前知道障碍物的位置等先验信息。因此,机器人需要具备实时导航和避障能力。局部路径规划算法通过识别环境的动态条件和建立各要素之间的位置关系来处理移动过程中的避障问题。常见的局部路径规划算法包括人工势场法、模糊逻辑、强化学习、动态窗口法等。局部路径规划适用于动态环境,机器人需要不断感知环境的变化并及时调整路径,以避免碰撞或遇到新的障碍物。 全局路径规划和局部路径规划在移动机器人导航中起到了不同的作用。全局路径规划用于计算整个行程的最优路径,而局部路径规划用于实时调整机器人的行进路线以应对动态环境。两者相互补充,共同实现机器人的高效导航和避障能力。 希望对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值