图论的基本思想及方法.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文档。上传文档
查看更多

可知,点v一定是边(u,v)所在域的极低点。根据DFS中点的状态和指针pre就可以按如下方法确定图G中的域:当检查点u的某条边时,发现边的另一个顶点v已经被扩展完毕。而pre[v]和u最近公共祖先点一定是域的极高点。vpre[v]uvh极高点极低点算法设计——DFS寻找pre[v]和u的最近公共祖先,只需要利用pre回溯寻找v的祖先,第一个未被扩展完毕的祖先便是域的极高点。从v到pre[v]再回溯到vh的路径便是域的左边界。从极高点到u再到v的路径便是域的右边界。vpre[v]uvh极高点极低点算法设计——DFSvlvh极高点极低点找到域之后,域左边界上的边都被遍历过,f函数都已经求出。Ff(x)=max{f(y)}+1可见,DFS寻找图G的域的同时,已经完成f函数的求解。问题解决算法设计——DFSf(y)f(x)算法二的复杂度对每一个点进行DFS遍历,复杂度为O(|E|);回溯寻找每个域边界上的边,并且进行递推求解。由于是平面图,每条边最多属于两个不同域的边界,因此这一步的复杂度为O(|E|+|F|)。因为原题给出的图是平面图,根据欧拉定理,边数|E|和域数|F|都是O(n)级别的。总的复杂度为O(n)算法一直接根据题目描述建立了网络流模型,体现了原题的网络有向无环图特性。总结没有利用图G平面图的性质解法具有一般性,适用任何有向无环图算法一的效率不是最优直接从定义下手的思考方式值得借鉴总结算法二很好的利用偏序集模型实现了问题目标的转变,从原来的网络流问题回归到问题本身的平面图上,完整的揭示了问题的本质。*图论的基本思想及方法由一道题目浅谈——概述信息学中的图论问题层出不穷,变化多端,惟有掌握其基本思想和方法,才能以不变应万变!下面通过实例主要从两方面论述图论的基本思想:一、合理选择图论模型二、充分挖掘和利用图的性质雪山上有一个滑雪场。滑雪场由平台和滑道组成。每个平台有不同的高度,有一个最高点和一个最低点。滑道连接着两个不同的平台,方向是从较高点到较低点。一些工人要检查滑道。每个工人从最高点滑到最低点,滑行路径上的滑道便都被检查了。每个工人只能滑行一次。不同工人的滑行路径可以有相同的滑道。例题:滑雪者(POI2002)问题:最少要多少个工人才能检查完所有的滑道呢?Nar.in622323424516246Nar.out4顶点个数n(1≤n≤5000)从左到右描述第i个顶点发出边的另一个端点例题:滑雪者(POI2002)123456选择模型(1)——网络流模型最高点最低点每条滑道可以多次通过每条滑道必须被检查有向无环图——网络的源点s——网络的汇点t——边下界l为1——边上界u为∞分析样例,发现问题中有如下关键点:很容易想到建立一个网络流模型:最高点最低点st1,∞1,∞1,∞1,∞1,∞1,∞1,∞1,∞1,∞确定所求目标建立模型后,可以确定要求的目标:求图G中一个最小可行流,满足:st213122111a)每条边的流量大于等于下界b)从源点流出的总流量最小求最小流的方法如何求图G的最小流呢求最小流可以分成两步:1)求出图G上的可行流f2)将可行流f转化成最小流对于有上下界的网络,通常用构造附加网络的方法求可行流。但是观察图G可以发现,边的上界都是无穷大,也就是说没有流量上限。jistui,j=∞因此可以利用这个性质构造可行流求可行流的方法jist求可行流的方法枚举每条流量为0的边,设为(i,j)任意找到一条从s到i的路径和一条从j到t的路径那么s–i–j–t便是一条可行的流,将这条路径上的边流量加1,便满足了边(i,j)的容量下界fi,j=0fi,j=1+1+1f可行jist求最小流设用上法求出的可行流的总流量为F,这个可行流可能“过剩”。因此要将多余的流从汇点“退回”到源点。f最小求最小流sjit在新图中,原图G的边(i,j)拆成两条边:边(i,j),ui,j=fi,j–li,j,li,j=0边(j,i),uj,i=ui,j–fi,j,lj,i=0fi,jfi,j–li,jui,j–fi,j回退“过剩”流量可以用如下方法:求最小流在新图中,从t到s求出一个最大流,令这个最大流的总流量为F。sjitfi,j–li

文档评论(0)

雨中人 + 关注
实名认证
文档贡献者

这一世渡尽红尘,若有来生,不再为人。

1亿VIP精品文档

相关文档