⛄一、Dijkstra算法机器人编队路径规划简介
1 传统Dijkstra算法步骤
Dijkstra算法是一种经典的求解最短路径的算法,用于计算一个节点去往其他各个不相关节点的最小移动代价。本思想是把在图中无论如何出现的所有节点分离为2组,第1组包含被准确认定是最短路径的节点,第2组存放待检查的不确定的节点。根据最小移动代价逐渐增大的顺序,逐个将第2组需要检查的节点加入到第1组中,一直到从起始点出发可以到达的所有节点都包含在第1组中。Dijkstra算法运行的主要特征是以机器人抽象的出发点为中心向外层层延伸,直到延伸到整个区域的末端为止。Dijkstra算法一般能够在最终得到最优的路径,但是这个路径偶尔会出现冗余拐点,由于其遍历节点多,所以有时算法的效率不高。Dijkstra算法流程如图2所示。
分别创建2个表,为:START与FINISH。START表中存放环境中已经生成存在但是未经计算的节点,FINISH表中存放所有经过计算考察的节点。
(1)观测寻找在环境路网中离起始源点近而且是没有被计算过的点,把满足调节的点放在START数组中等待检查。
(2)从START表中找出距离起始点最小的点,然后把该点放进FINISH表中。
(3)遍历去寻找考察当前此点的子节点,计算出起始源点到这些子节点的距离值&