图搜索、A*算法(待补充)

图,图的遍历,在二维运动规划中应用普遍

1、DFS深度优先搜索,栈、递归

stack

2、BFS广度优先搜索,队列

图搜索中,广度优先搜索,可以找到最短路径吗?

Queue

Visited列表

同心圆扩散

3、贪心(启发式)

改变原来队列的FIFO模式,给不同的节点加入优先级(距离终点最近的节点),使用PriorityQueue

4、Dijkstra(最短路径)

记录每个节点到起点的当前最短路径消耗Cost(长度),并将Cost作为该节点在PriorityQueue中的优先级

5、A star

这种 A* 算法的约束用公式表示为:

f(n)=g(n)+h(n)

对应到代码中, 也就指代以下代码:

priority =​​​​​​​ new_cost +heuristic (goal, next)

其中, f(n) 是指从起点到当前节点的代价值, 也就是 priority, 总代价越低, priority 越小, 优先级越高, 越早被 frontier. get()遍历到。 g(n) 指 new_cost, 从起点到当前节点 已知的代价值, h(n)是指从当前节点到终点所需代价的最终估算代价。


A*算法主要维护两个列表:Open List 和 Close List 。 Open List 指的是 Frontier,表示接下来有可能要遍历的一系列节点。Close List 包含所有已经遍历过了的节点。

部分思路参考《无人驾驶原理与实践》

Apollo 6.0 的 A star planner - 知乎

路径规划之 A* 算法

百度Apollo中的A*算法实现笔记_robinvista的博客-CSDN博客

Apollo项目Routing模块A*算法剖析_知行合一2018的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛仔很忙^

雪中送炭者,定当铭记在心!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值