第二讲搜索专题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二讲 搜索专题 一道题目——街道赛跑 下图给出一个沿街赛跑路线。图中有许多点标以0, 1, …, N(下图N=9),0为起点,N为终点,箭头表示可以前进的方向,运动员可以选择前进路线 任务A:输出所有必经点 任务B:输出所有分裂点 宽度优先搜索 BFS 也叫广度优先搜索 是很多重要的图的算法的原型 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想 BFS的全部运行时间为O(V+E),宽度优先搜索的运行时间是图的邻接表大小的一个线性函数 下面看一个宽度优先搜索的例子: procedure BFS(G,S); begin 1. for 每个节点u∈V[G]-{s} do begin 2. color[u]←White; 3. d[u]←∞; 4. π[u]←NIL; end; 5. color[s]←Gray; 6. d[s]←0; 7. π[s]←NIL; 8. Q←{s} 9. while Q≠φ do begin 10. u←head[Q]; 11. for 每个节点v∈Adj[u] do 12. if color[v]=White then begin 13. color[v]←Gray; 14. d[v]←d[u]+1; 15. π[v]←u; 16. Enqueue(Q,v); end; 17. Dequeue(Q); 18. color[u]←Black; end; end; 宽度优先搜索 BFS的性质 对于一个图G=(V,E),定义从源结点s∈V到每个可达结点的最短路径长度δ(s,v)为从顶点s到顶点v的路径中具有最少边数的路径所包含的边数,若从s到v没有通路则为∞ 引理1 设G=(V,E)是一个有向图或无向图,s∈V为G的任意一个结点,则对任意边(u,v)∈E, δ(s,v)≤δ(s,u)+1 证明: 如果从顶点s可达顶点u,则从s也可达v。在这种情况下从s到v的最短路径不可能比从s到u的最短路径加上边(u,v)更长,因此不等式成立;如果从s不可达顶点u,则δ(s,v)=?,不等式仍然成立。 试图说明对每个顶点v∈V,BFS过程算出的d[v]=δ(s,v),下面我们首先证明d[v]是δ(s,v)的上界 引理2 设G=(V,E)是一个有向或无向图,并假设算法BFS从G中一已知源结点s∈V开始执行,在执行终止时,对每个顶点v∈V,变量d[v]的值满足:d[v]≥δ(s,v) 证明: 归纳前假设在所有顶点v∈V,d[v]≥δ(s,v)成立 归纳的基础是BFS过程第8行当结点s被放入队列Q后的情形,这时归纳假设成立,因为对于任意结点v∈V-{s},d[s]=0=δ(s,s)且d[v]=∞≥δ(s,v) 进行归纳,考虑从顶点u开始的搜索中发现一白色顶点v,按归纳假设,d[u]≥δ(s,u)。从过程第14行的赋值语句以及引理1可知d[v]=d[u]+1≥δ(s,u)+1≥δ(s,v) 然后,结点v被插入队列Q中。它不会再次被插入队列,因为它已被置为灰色,而第13-16行的then子句只对白色结点进行操作,这样d[v]的值就不会改变,所以归纳假设成立 BFS算法 为了证明d[v]=δ(s,v),首先精确展示BFS执行过程中对队列如何进行操作: 引理3 假设过程BFS在图G=(V,E)之上的执行过程中,队列Q包含如下结点v1,v2,...,vr,其中v1是队列Q的头,vr是队列的尾,则d[vi]≤d[v1]+1且d[vi]≤d[vi+1], i=1,2,..,r-1 证明略 定理1 宽度优先搜索的正确性 设G=(V,E)是一个有向图或无向图,并假设过程BFS从G上某顶点s∈V开始执行,则在执行过程中,BFS可以发现源结点s可达的每一个结点v∈V,在运行终止时,对任意v∈V,d[v]=δ(s,v)。此外,对任意从s可达的节点v≠s,从s到v的最短路径之一是从s到π[v]的最短路径再加上边(π[v],v) 引理4 当过程BFS应用于某一有向或无向图G=(V,E)时,该过程同时建立的π域满足条件:其先辈子图Gπ=(Vπ, Eπ)是一棵宽度优先树 证明从程序推导,参考讲义,这里略 最小生成树的形成和求解 已知一无向连通图G=(V,E),其加权函数为w:E→R,我们希望找到图G的最小生成树 Prim算法

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档