- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈强连通分量与拓扑排序的应用
浙江 唐文斌
摘要
强连通分量与拓扑排序是图论中最基础的算法之一。本文选取了两个简单但富有代表性的例子,说明这两个算法在一类图论问题中的应用。
[例一]Going from u to v or from v to u?
给定一个有向图,问是否对于图中的任意两点u、v,总是存在u到v可达或者v到u(下文中将以a(b表示a到b可达)可达。图中点数不超过1000,边数不超过6000。
算法分析
题目描述很简单,我们最直观的想法就是求一个传递闭包,然后对于任意两点a、b判断是否a(b或者b(a。然而在本题中点数多达1000,传统的求传递闭包方法Floyd是行不通的。题目中的规模很小,似乎我们可以枚举起点s,并且从s开始对图进行一次宽度优先搜索,这样我们可以在O(N*(N+M))时间内求得传递闭包。似乎这个办法可行,但事实上,在本题中虽然规模小,但是数据组数高达200组,所以这个方法也是必然超时的。
我们抛开传递闭包,重新来看问题。题目中问是否对于任意两点都在至少一个方向上可达。那么如果两个点u、v,u(v且v(u,它们当然是符合要求的。所以我们第一个想法就是找到一个点集,该点集内所有点两两可达。由于其内部两两可达,所以我们可以将其缩成一个点,仅保留连向外界的边,并不会影响问题的本质。这个点集,就是强连通分量。所以我们的第一步操作就是:求图中所有的极大强连通分量,将每一个强连通分量缩成一个点,保留不同分量间的连边信息,得到一个新图。
我们对原图进行强连通分量缩点得到新图有什么好处呢?在这个过程中,我们将一些冗余信息进行了处理,得到的新图具有一个很重要的性质:无环(拓扑有序)。因为如果有环存在,那么这些环上的点都是互相可达的,所以它们应该同属于一个极大强连通分量,将被缩成一个点。所以我们现在的问题就是对于新图——一个拓扑有序的图,判断图中是否任意两点是否在至少一个方向上可达。
如果一个拓扑有序的图满足要求,那么它将拥有一些什么性质呢?我们先来看一些小规模的情况:
如果图只有一个点,则必然满足条件
如果图中包含两个点,那么必须从一个点到另一个点有边相连。不妨设为a(b(显然b到a不可达)。
如果图中包含3个点,不妨设第三个为c。那么必须满足c(a或者b(c。
通过上面3个情况的观察,我们大致就有了一个猜想:
[猜想]:拓扑图G若满足对于图中任意两点u、v均有u(v或者v(u,则必然存在一条通过所有点的链。
[证明]:设图中的节点数目为n。
当n=1时,图满足要求且包含长度为1的链。
当n=k 1时,假设n=k-1时猜想成立,即任何满足条件的图都存在一条通过所有点的链。由于图G是拓扑有序的,所以我们总可以找到一个没有入度的点x,将点x删除之后不会影响图中其它点对之间的连通性。由于图G是满足要求的,而将x删除后其它点对间的连通性并没有被影响,则在G中删除点x后得到的图G也满足要求。由假设知,G中存在一条长度为n-1的链,不妨设这条链的起点为v。由于图G满足要求且x没有入度,所以x必须存在一条路径到达v。若x通过点y到达v,而v是一条长度为n-1的有向链的起点,则链上的v(y部分加上y(v部分就形成了一个圈,与题设G是拓扑有序的矛盾。故x到v直接有边相连,那么将x连到v的这条边加入原有路径中就得到了一条长度为n的链。
由归纳可知,对于任何一个满足条件的拓扑图G,均存在一条通过所有点的链。
问题至此,已经基本解决了。我们只需要对当前的新图寻找是否存在通过所有点的路。这个过程只需要DFS即可解决。求极大强连通分量的复杂度为O(N+M),判断是否存在通过所有点的路的复杂度也为O(N+M)。所以总时间复杂度也是O(N+M)。至此问题被完美的解决。
[例二]Pipes in factory
给定一个有向图G(V,E),问最多能从G图中删去多少条边,且删了边之后图G的连通性不变。
规模:点数不超过1000,边数不超过10000。
注:关于题目
在附录中有原题的英文描述,而原题经过抽象就是上面所提到的一个图论问题。但我认为出题者想考察的并不是这个问题,而是一个另外的类似问题的解法。
如果上面提到的问题可以在多项式时间内解决,那么哈密顿回路问题可以也多项式时间内解决。试想一个有向图存在一个哈密顿回路,它的充要条件为图中任意两点都互相可达且可以删掉|E|-|V|条边且图的连通性不变。也就是说我们可以利用上述问题的解在多项式时间判定一个有向图是否存在哈密顿回路,更进一步,我们也可以利用上述问题的解构造出这条哈密顿回路。而众所周知,哈密顿回路目前仍然找不到确定性的多项式时间算法,所以上述问题也是不可解的。
所以我猜测,出题者想考察的问题应该是这样的:
给定一个有向图G(V,E),我们可以改造这个图G中的
您可能关注的文档
最近下载
- 2023神经重症监护患者脑水肿的急性治疗指南(完整版).pdf VIP
- 2025-2026年初中信息技术安徽初二水平会考真题试卷 .pdf VIP
- (新课标)新高教版中职信息技术(基础模块)上册1.2《认识信息系统》说课稿.docx
- 高一自主招生数学试题及标准答案.docx VIP
- 四措两案标准模板.doc
- 2025年初中信息技术初二水平会考真题试卷 含答案考点及解析 .pdf VIP
- 重庆西南大学附属中学体育馆结构设计-建筑结构.PDF
- 红楼梦英文版(杨宪益译)_精品.doc
- 2025年初中信息技术初二水平会考真题含答案考点及解析 .pdf VIP
- 2024年初中信息技术会考试题含答案.doc
文档评论(0)