最佳优先搜索算法(Best-First-Search)

1、算法原理

最佳优先搜索算法是一种启发式搜索算法(Heuristic Algorithm),其基于广度优先搜索算法,不同点是其依赖于估价函数对将要遍历的节点进行估价,选择代价小的节点进行遍历,直到找到目标点为止。BFS算法不能保证找到的路径是一条最短路径,但是其计算过程相对于Dijkstra算法会快很多。

2、启发函数

f(n) = h(n)

n表示当前的点,g(n)为从起始点到点n的实际代价,h(n)为从点n到目标点的估价。

3、探索过程

(1)BFS没有障碍物时的寻路


BFS没有障碍物时的寻路

(2)BFS遇到障碍物时的寻路


BFS遇到障碍物时的寻路

结论:
(1)BFS算法通过估价函数,会将探测快速的导向目标点的方向,其不能够保证寻找到一条最短路径的点,但是其搜索的效率上相对于Dijestra算法会快上很多。
(2)在地图上有障碍物的情况,BFS寻找的路径一般都不是最短路径,在寻路过程中可以尝试配合其他的方法,对寻路进行修正。