快速搜索随机树算法(RRT)和A*算法

1.快速搜索随机树算法

1.1 简述快速搜索随机树算法

快速生长随机树算法需要知道整个环境信息,通过随机采样的方法并通过一系列判断来找到起点和终点之间的一条可行路线。这种方法在概率上是可以找到一条可行路线的,但是需要足够长的时间,使用快速搜索随机树找出的路径一般不是最优路径,路线跳跃有时候比较明显。

1.2 快速搜索随机树工作过程

1)初始化

刚开始需要将地图提供给快速搜索随机树,让树知道整个环境信息和起点、终点。

2)随机采样

按照自己设定的规则随机树可能自由的朝着终点或者其他方向随机运动。

3)路径选择

随机产生一个点,这个点有一点几率是终点或者是除终点外的任意一个点,在随机树中找到距离这个点最近的一个点,并生成随机树中点和随机生成点之间的路径,如果这个路径没有经过障碍物也没有被搜集过,那么就将这个路径加入到快速搜索随机树中,否则重新生成一个随机点。

4)终止条件

我们在开始的时候会设置一个步长,因为最后一次延伸不能保证我们设置的步长刚好到达终点,所以只要距离终点的距离小于某个长度就判断路径寻找成功,或者设置一个迭代次数,当达到迭代次数时就结束。

2. A*算法

起始点为S,终点为E

1)初始化

 <1>首先把需要搜寻的区域划分成一个一个的小格子(正方形或其它图像),这样可以把每个小格子简化为一个有无障碍物的二值

<2>创建两个列表分别是open列表(存储着带判断的节点)和close列表(open中判断完之后的节点放入close表中)

<3>将初始节点放入open列表中

2)进行搜索

<1>首先去open列表中找待判断的点,如果列表为空那么就搜索不到到目的点的路径;如果带判断点事目的点那么则搜索成功;如果不是以上两种情况则进行第<2>步

<2>找出一个路径F值最小的点A(起点到A的距离+终点到A的距离是列表中最小的),然后对A相邻的节点进行判断并将A放入close列表中

  • 如果相邻节点B在open列表中,如果S-A-E的距离大于S-A-B-E的距离,那么就将F值更新并将B的父节点设置为A
  • 如果相邻节点B在close列表中,则B点直接忽略掉不做考虑
  • 如果相邻节点不在上述两个列表中则将B加入open列表中并将A设置为它的父节点

<3>继续执行<2>直到找到路径或者搜索失败为止

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值