- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于强连通分量和拓扑排序的应用
浅谈强连通分量与拓扑排序的应用
浙江 唐文斌
摘要
强连通分量与拓扑排序是图论中最基础的算法之一。本文选取了两个简单但富有代表性的例子,说明这两个算法在一类图论问题中的应用。
[例一]Going from u to v or from v to u? Poj Monthly Special
Poj Monthly Special – JiajiaWind’s story , problem G (POJ2762)
给定一个有向图,问是否对于图中的任意两点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 International Online Programming Contest
International Online Programming Contest 2006 , problem 2
给定一个有向图G(V,E),问最多能从G图中删去多少条边,且删了边之后图G的连通性不变。
规模:点数不超过1000,边数不超过10000。
注:关于题目
在附录中有原题的英文描述,而原题经过抽象就是上面所提到的一个图论问题。但我认为出题者想考察的并不是这个问题,而是一个另外的类似问题的解法。
如果上面提到的问题可以在多项式时间内解决,那么哈密顿回路问题可以也多项式时间内解决。试想一个有向图存在一个哈密顿回路,它的充要条件为图中任意两点都互相可达且可
您可能关注的文档
最近下载
- 初中英语AI辅助阅读理解能力提升策略研究教学研究课题报告.docx
- 人教版部编版统编版六年级上册语文期中复习课件.pptx VIP
- 链家大区商圈经理述职.pptx VIP
- 2025年天津市农机拆解产业园区规划建设可行性研究报告.docx
- 《反对本本主义》课件.ppt VIP
- 北师大三年级下册第七单元《小小鞋店》教学设计含教学反思 .pdf VIP
- 卫生政策学 期末复习小抄.docx VIP
- 房地产成品住房装修技术标准.pdf VIP
- 电力系统北斗短报文业务消息报文传输流程、消息报文编码示例.pdf VIP
- 考研题库 《认知心理学》(第7版)(真题 课后习题 章节题库 模拟试题).docx VIP
原创力文档


文档评论(0)