欢迎来到天天文库
浏览记录
ID:6650986
大小:114.50 KB
页数:5页
时间:2018-01-21
《浅谈强连通分量与拓扑排序的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、IOI2006国家集训队作业:解题报告浙江唐文斌浅谈强连通分量与拓扑排序的应用浙江唐文斌摘要强连通分量与拓扑排序是图论中最基础的算法之一。本文选取了两个简单但富有代表性的例子,说明这两个算法在一类图论问题中的应用。[例一]Goingfromutovorfromvtou?PojMonthlySpecial–Jiajia&Wind’sstory,problemG(POJ2762)给定一个有向图,问是否对于图中的任意两点u、v,总是存在u到v可达或者v到u(下文中将以aàb表示a到b可达)可达。图中点
2、数不超过1000,边数不超过6000。算法分析题目描述很简单,我们最直观的想法就是求一个传递闭包,然后对于任意两点a、b判断是否aàb或者bàa。然而在本题中点数多达1000,传统的求传递闭包方法Floyd是行不通的。题目中的规模很小,似乎我们可以枚举起点s,并且从s开始对图进行一次宽度优先搜索,这样我们可以在O(N*(N+M))时间内求得传递闭包。似乎这个办法可行,但事实上,在本题中虽然规模小,但是数据组数高达200组,所以这个方法也是必然超时的。我们抛开传递闭包,重新来看问题。题目中问是否对
3、于任意两点都在至少一个方向上可达。那么如果两个点u、v,uàv且vàu,它们当然是符合要求的。所以我们第一个想法就是找到一个点集,该点集内所有点两两可达。由于其内部两两可达,所以我们可以将其缩成一个点,仅保留连向外界的边,并不会影响问题的本质。这个点集,就是强连通分量。所以我们的第一步操作就是:求图中所有的极大强连通分量,将每一个强连通分量缩成一个点,保留不同分量间的连边信息,得到一个新图。我们对原图进行强连通分量缩点得到新图有什么好处呢?在这个过程中,我们将一些冗余信息进行了处理,得到的新图具
4、有一个很重要的性质:无环(拓扑有序)。因为如果有环存在,那么这些环上的点都是互相可达的,所以它们应该同属于一个极大强连通分量,将被缩成一个点。所以我们现在的问题就是对于新图——一个拓扑有序的图,判断图中是否任意两点是否在至少一个方向上可达。如果一个拓扑有序的图满足要求,那么它将拥有一些什么性质呢?我们先来看一些小规模的情况:(1)如果图只有一个点,则必然满足条件(2)如果图中包含两个点,那么必须从一个点到另一个点有边相连。不妨设为aàb(显然b到a不可达)。(3)如果图中包含3个点,不妨设第三个
5、为c。那么必须满足càa或者bàc。通过上面3个情况的观察,我们大致就有了一个猜想:IOI2006国家集训队作业:解题报告浙江唐文斌[猜想]:拓扑图G若满足对于图中任意两点u、v均有uàv或者vàu,则必然存在一条通过所有点的链。[证明]:设图中的节点数目为n。当n=1时,图满足要求且包含长度为1的链。当n=k>1时,假设n=k-1时猜想成立,即任何满足条件的图都存在一条通过所有点的链。由于图G是拓扑有序的,所以我们总可以找到一个没有入度的点x,将点x删除之后不会影响图中其它点对之间的连通性。由
6、于图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,均存在一
7、条通过所有点的链。问题至此,已经基本解决了。我们只需要对当前的新图寻找是否存在通过所有点的路。这个过程只需要DFS即可解决。求极大强连通分量的复杂度为O(N+M),判断是否存在通过所有点的路的复杂度也为O(N+M)。所以总时间复杂度也是O(N+M)。至此问题被完美的解决。[例二]PipesinfactoryInternationalOnlineProgrammingContest2006,problem2给定一个有向图G(V,E),问最多能从G图中删去多少条边,且删了边之后图G的连通性不变。规模
8、:点数不超过1000,边数不超过10000。注:关于题目在附录中有原题的英文描述,而原题经过抽象就是上面所提到的一个图论问题。但我认为出题者想考察的并不是这个问题,而是一个另外的类似问题的解法。如果上面提到的问题可以在多项式时间内解决,那么哈密顿回路问题可以也多项式时间内解决。试想一个有向图存在一个哈密顿回路,它的充要条件为图中任意两点都互相可达且可以删掉
9、E
10、-
11、V
12、条边且图的连通性不变。也就是说我们可以利用上述问题的解在多项式时间判定一个有向图是否存在哈密顿回路,更进一步,我们也可以利用上述
此文档下载收益归作者所有