RRT家族和 A* 家族的共性是:都是生成一棵不断靠近目标的路径树。只是生成的方式不同,RRT家族通过随机采样结点来拓展路径树, A* 家族则基于贪心策略在规划问题图(graph)上搜索叶点来拓展路径树。RRT家族与 A* 家族的共性确定了它们的发展路线惊人的相似。RRT-Connect是在双向RRT算法的基础上增加了一个贪心策略,其本质上还是一个改进版本的双向RRT算法。说到这儿,还没想起什么吗?对的,A* 算法也有个双向的版本。不多说,我们开始进入正题。
一、先从双向RRT说起
A* 家族中的双向 A* 算法是为了解决起点与终点位置互换引起路径搜索效率差异很大的问题。如果严格按所占用的计算资源来算,双向 A* 算法并不一定会比原始 A* 算法的效率高。那如果从可并行计算角度来看,双向 A* 算法的确能够做出比原始 A* 算法耗费更低的时间成本。就像两头开工的隧道工程的确会比一头开工的要快,我们需要注意的是那快出来的效率主要是因为那多出的一半人力。
其实,双向RRT的目的和双向 A* 算法一致,具体参见基于图搜索的规划算法之 A* 家族(二):双向 A* 算法中的背景。
但是,