广度优先搜索及其应用.doc
《广度优先搜索及其应用.doc》由会员分享,可在线阅读,更多相关《广度优先搜索及其应用.doc(13页珍藏版)》请在三一办公上搜索。
1、广度优先搜索在图论中的应用摘要:本文详细地分析了广度优先搜索算法,重点研究了该算法在图论中的应用,尤其是在最短路径问题中的应用。通过与其它最短路搜索算法的比较分析,本文得到了这些最短路算法之间的关系。关键词:广度优先搜索,最短路径,图论。Abstract:this paper gives a detailed analysis of the breadth-first search algorithm, and emphasis on the algorithm in the application of graph theory, especially in the shortest pat
2、h problem in the application. Through the comparative analysis with the other shortest path search algorithm, this paper obtains these relationships between these shortest path algorithms.Keywords: breadth first search, shortest path, graph theory.目录摘要0Abstract0一、引言2二、广度优先搜索算法2(一)基本思想2(二)算法结构4(三)算法特
3、性5(四)广度优先搜索算法在图论中的应用6三、广度优先搜索算法在图论中应用的具体分析7(一)寻找连接元件7(二)测试是否二分图7(三)寻找非加权图中任两点的最短路径7四、最短路中常用算法的比较9五、总结10参考文献10附件11一、 引言使用计算机求解的问题中,有许多问题是无法用数学公式进行计算推导和采用模拟方法来找出答案的。这样的问题往往需要我们根据问题所给定的一些条件,在问题的所有可能解中用某种方式找出问题的解来,这就是所谓的搜索法或搜索技术。常见的搜索算法有广度优先搜索法(简称为BFS)、深度优先搜索法、双向广度优先搜索法,A*算法、回溯法、枚举法、分支定界法等。图论是数学的一个分支,以图
4、为研究对象。这种图由若干给定的点和连接两点的线构成,借以描述某些事物之间的关系。用点代表事物,用连接两点的线表示两个事物之间具有特定关系。图论起源于18世纪,追朔到1736年瑞士数学家L.Euler出版第一本图论著作,提出和解决著名Konigsberg七桥问题。从那时以来,图论不仅在许多领域,如计算机科学,运筹学,心理学等方面得到了广泛的应用,而且学科本身也获得长足发展,形成了拟阵理论,超图理论,代数图论,拓扑图论等新分支。本文讨论广度优先搜索在图论中的应用。二、 广度优先搜索算法(一) 基本思想采用广度优先搜索算法解答问题时,需要构造一个表明状态特征和不同状态之间关系的数据结构,这种数据结构
5、称为结点。根据问题所给定的条件,从一个结点出发,可以生成一个或多个新的结点,这个过程通常称为扩展。结点之间的关系一般可以表示成一棵树,它被称为解答树。搜索算法的搜索过程实际上就是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的结点的过程。广度优先搜索算法中,解答树上结点的扩展是沿结点深度的“断层”进行,也就是说,结点的扩展是按它们接近起始结点的程度依次进行的。首先生成第一层结点,同时检查目标结点是否在所生成的结点中,如果不在,则将所有的第一层结点逐一扩展,得到第二层结点,并检查第二层结点是否包含目标结点,.对长度为n +1的任一结点进行扩展之前,必须先考虑长度为n的结点的每种可能的状态
6、。因此,对于同一层结点来说,求解问题的价值是相同的,我们可以按任意顺序来扩展它们。这里采用的原则是先生成的结点先扩展。广度优先搜索算法的搜索顺序如下图:A B C D E F GH I J K L M广度优先搜索顺序如下:A-B-C-D-E-F-G-H-I-J-K-L-M广度优先搜索算法中,为了便于进行搜索,要设置一个表存储所有的结点,为了满足先生成的结点先扩展的原则,存储结点的表一般设计成队列的数据结构。搜索过程中不断地从队列头取出结点进行扩展。对生成的新结点,要检查它是否已在队列中存在,还要检查它是否目标结点。如果新结点是目标结点,则搜索成功,程序结束;若新结点不是目标结点,并且未曾在队列
7、中出现过,则将它加入到队列尾,否则将它丢弃,再从队列头取出结点进行扩展.。最终可能产生两种结果:找到目标结点,或扩展完所有结点而没有找到目标结点。如果目标结点存在于解答树的有限层上,广度优先搜索算法一定能保证找到一条通向它的最佳路径,因此广度优先搜索算法特别适用于只需求出最优解的问题。当问题需要给出解的路径,则要保存每个结点的来源,也就是它是从哪一个节点扩展来的。对于不同的问题,用广度优先搜索法的算法基本上都是一样的。但表示问题状态的结点数据结构、新结点是否目标结点和是否重复结点的判断等方面则有所不同,对具体的问题需要进行具体分析。(二) 算法结构数据初始化;设队列首指针CLOSED:=0;队
8、尾指针OPEN:=1; 初始结点入队; REPEAT CLOSED:=CLOSED+1; 取下一个CLOSED所指结点; FOR R:=1 TO MAXR DO 共有MAXR种操作方法,试第R种 BEGIN IF 子结点符合条件 THEN BEGIN OPEN:=OPEN+1;把新结点存入队列; IF 新结点与原有结点重复 THEN OPEN:=OPEN-1删去刻结点 ELSE IF 新结点是目标结点 THEN BEGIN 输出结果并退出; END; END; END; UNTIL CLOSEDOPEN队列空(三) 算法特性1、空间复杂度因为所有节点都必须被储存,因此广度优先搜索算法的空间复杂
9、度为 O(|V| + |E|),其中 |V| 是节点的数目,而 |E| 是图中边的数目。注:另一种说法称广度优先搜索算法的空间复杂度为 O(BM),其中 B 是最大分支系数,而 M 是树的最长路径长度。由于对空间的大量需求,因此广度优先搜索算法并不适合解非常大的问题。2、时间复杂度最差情形下,广度优先搜索算法必须寻找所有到可能节点的所有路径,因此其时间复杂度为 O(|V| + |E|),其中 |V| 是节点的数目,而 |E| 是图中边的数目。3、完全性广度优先搜索算法具有完全性。这里指无论图形的种类如何,只要目标存在,则广度优先搜索算法一定会找到。然而,若目标不存在,且图为无限大,则广度优先搜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广度 优先 搜索 及其 应用

链接地址:https://www.31ppt.com/p-2394552.html