DFS
DFS首先从某个顶点1出发,一次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和1有路径相通的顶点都被访问到,若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问为止。
BFD
BFS从图中某顶点1出发,依次访问1的各个未曾访问过的邻接点,然后分别从这些邻接点出发,依次访问它们的邻接点,并使得‘先被访问’的顶点先于后被访问的顶点的邻接点被访问,直至图中所有已被访问的顶点的邻接点都被访问到。
Dijkstra
Dijkstra算法属于典型的广度优先算法解决有权图中的最短路径。
Floyd(弗洛伊德)
Floyd(弗洛伊德)算法是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。
特点:Floyd算法是一种动态规划算法,稠密图效果最佳,节点间的连接权值可正可负。此算法简单有效,由于三重循环结构紧凑,对于稠密图,效率要高于Dijkstra算法。
优点:容易理解,可以算出任意两个节点之间的最短距离,代码编写简单
缺点:时间复杂度比较高,对于稀疏图将会生成稀疏矩阵,极大浪费存储空间
RRT
快速搜索随机树算法,(RAPID-ExplorationRandomTree,RRT),是一种在完全已知的环境中通过随机采样扩展搜索的算法特点:RRT算法是概率完备的,如果规划时间足够长,如果确实存在一条可行的最优路径,RRT是可以找出这条路径的,但是这里存在限制条件,如果规划时间不够长,迭代次数较少,有可能无法找出实际存在的路径。
优点,最主要的优点就是快,因此在多自由度机器人的规划问题中发挥着较大的作用,比如机械臂的规划算法基本都是以RRT为基础的
缺点;规划的路径通常不最优,路径不平滑,不是最优路径,需要与其他算法结合,进行改进利用matlab自带的randi
函数,随机生成一个[1,n]范围的数,代表采样栅格.