Unity人工智能实战(原书第2版)
上QQ阅读APP看书,第一时间看更新

2.6 用广度优先搜索在网格中找到最短路径

广度优先搜索(BFS)算法是另一个用于图遍历的基础技术,目的是用尽可能最少的步骤获取最短路径,并且权衡内存方面的消耗,尤其针对高端主机和计算机的游戏。

准备工作

广度优先搜索是上层算法,依赖于每个图的通用函数的实现,所以这个算法在Graph类中实现。

操作步骤

虽然本节只定义一个函数,但是请注意代码中的注释,以便更好地理解代码逻辑:

1. 声明GetPathBFS函数:

2. 声明并初始化在算法中需要用到的变量:

3. 实现查找路径的BFS算法:

运行原理

BFS算法与DFS算法相似,因为它也基于图的顺序遍历,但是不像DFS那样用栈,BFS使用队列存储访问过的节点。

延伸阅读

你可能没有注意到这里没有实现BuildPath方法,因为在2.5节已经讨论过。