步骤
1. 从起点开始S,计算相邻点A的代价值。f = g + h:代价值 f = 从起点到当前点的代价值 g + 从当前点到终点的代价值 h 。
2. 选择代价值 f 最小的点为下一个节点。
3. 直至到达终点E。
举例
伪代码:
* 初始化open_set和close_set;
* 将起点加入open_set中,并设置优先级为0(优先级最高);
* 如果open_set不为空,则从open_set中选取优先级最高的节点n:
* 如果节点n为终点,则:
* 从终点开始逐步追踪parent节点,一直达到起点;
* 返回找到的结果路径,算法结束;
* 如果节点n不是终点,则:
* 将节点n从open_set中删除,并加入close_set中;
* 遍历节点n所有的邻近节点:
* 如果邻近节点m在close_set中,则:
* 跳过,选取下一个邻近节点
* 如果邻近节点m也不在open_set中,则:
* 设置节点m的parent为节点n
* 计算节点m的优先级
* 将节点m加入open_set中
图示
特点
1. 启发式搜索,启发项影响效果
2. 搜索时间较短
其他路径规划算法: 路径规划算法总览