广度优先搜索(Breadth-First Search)
Posted 五指拈花
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了广度优先搜索(Breadth-First Search)相关的知识,希望对你有一定的参考价值。
关键词:广度优先搜索,最短路径,图论
广度优先搜索算法(BFS),是一个基础的寻找连通图最短路径的方法。
基本思路:从根节点出发,每次标记可到达的节点,记录在open集,并将已经遍历过的节点放置在close集,遍历树的每一层,直至得到最优解。
由于该算法是先遍历完每一层的节点后,再检查子节点,因此称之为广度优先。
代码结构:
1. 初始化open,close,path
2. 当open不为空时:
a. 将open中第一个节点取出,移到close
b. 对于该节点,找到其有效的子节点,如果不在open或close中,则放置在open
c. 当目的节点出现在open中,停止
优劣:
该算法本质还是穷举,所以对于小规模问题,效果良好,得到的也是全局最优解。但是对于稍大规模,算法会变得非常的慢! 并不适用于大规模或实际问题。
reference:
https://blog.csdn.net/raphealguo/article/details/7523411
https://en.wikipedia.org/wiki/Breadth-first_search
https://www.hackerearth.com/practice/algorithms/graphs/breadth-first-search/tutorial/
以上是关于广度优先搜索(Breadth-First Search)的主要内容,如果未能解决你的问题,请参考以下文章