中学生论文-网络流与其算法的异同和联系.pptVIP

中学生论文-网络流与其算法的异同和联系.ppt

  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文档。上传文档
查看更多
中学生论文-网络流与其算法的异同和联系

南京外国语学校 初三(7)王悦同 【网络流】 网络流算法诞生于20世纪60年代,距今已有五十年左右了。最早,网络流算法仅仅是用来处理物流等领域的实际问题,但几十年来,这个算法获得了巨大的发展,它可以脱离图论成为单独的一种算法,甚至是一个领域。网络流越来越多的应用被开发出来,网络流和其它算法的联系正在变得越来越紧密。 【联系越来越紧密!】 【网络流和图论算法】 【我们来看一个问题】 【POJ1966 Cable TV Network】 题目大意: 给出一个n个点m条边的无向图(n=50),问最少需要删掉几个点才能使整个图不连通。 【POJ1966 Cable TV Network】 数据范围N=50? 可以删除多个点? 传统的DFS树只能解决删除 的问题… 【POJ1966 Cable TV Network】 我们尝试变换题目中的条件: 整个图不连通?有那么两个点不连通就行了 我们只要枚举不连通的两个点,然后想着如何删掉最少的点将它们割开就行了 【你想到了什么?】 以最少的代价割开两个点! 最少代价割开两点?最小割! 【进一步分析…】 把一个点拆成两个点u和u,中间连一条容量为1的边,其它边u--v改成u--v,容量无穷。这样的话,原图中的所有边都是不会被割掉的,“割掉尽可能少的点”就变成了“割掉尽可能少的连接同一个点的两部分的边”;而只有这种边可能满流(无穷容量的边不可能满流),所以就是割掉最少的边了。 【SHTSC2010 最小生成树】 题目大意:给一个n个点m条边的带权图(n=500,m=800),每次操作可以将图中固定任意一条边,其它边权值减少1。现在要求用最少的操作次数,保证指定的某一条边在所有最小生成树中。 【无从下手?】 先看奇怪的条件: “固定任意一条边,其它边权值减少1” 给指定的边增加1 【之所以可以这样做…】 …是因为题目中并没有说所有边权必须是正整数,要看一条边在不在最小生成树里,只要关心他和其它边的大小关系。 显然我们不会增加那条必须在最小生成树里的边。 【继续分析…】 但是到了这里,我们仍然不好处理“在最小生成树中”这一条件。我们试着分析:一条边满足什么条件,才会必定出现在最小生成树中? 【SHTSC2010 最小生成树】 一个图求最小生成树的时候,如果遇到了割边,那么割边显然要在所有的生成树中。那么在最小生成树中呢?其实一样的,我们保留所有边权小于等于当前边的边,删掉其他的。这时候所有孤立的点都不必考虑了,因为连接他们的边大于当前边,不会影响当前边在最小生成树中。如果这时候该边是图的割边,那么它一定在最小生成树中。 【SHTSC2010 最小生成树】 如果它不是割边,那么我们无视这条边,依然可以做出新图的最小生成树。新图中所有边的权值都不大于我们指定的边,所以新的最小生成树至少不会更劣。 【SHTSC2010 最小生成树】 【SHTSC2010 最小生成树】 割掉一条边:不断增加其权值直至大于指定边。 代价:假设指定的边权值为k,那么对于一条权值为w的边,将它从图中删掉的代价为k-w+1。 【简单总结一下】 看似难以下手 但都和“割”有紧密联系 通过“割”入手 通过最小割模型转化为了网络流模型 【网络流和动态规划算法】 先看一道简单题: 【NOIP2008 传纸条】 题目大意:给一个n*n(n=50)的矩阵,每个格子有一个数,求两条不相交的长度为(n-1)*2的连接(1,1)和(n,n)的路径,使经过的格子的数之和最大。 【NOIP2008 传纸条】 这是一道NOIP级别难度的题,相信在座各位都很熟悉动态规划做法了。 F[i,j,k]表示处理到第i行,两个格子分别是(i,j)和(i,k)的最大和。转移有些复杂,不是本文重点,在此略去。容易看出转移只和两个格子的相邻格子有关,是O(1)的。 因此整个算法是O(n^3)的。 【另一种做法…】 它除了具有动态规划的特性(比如最优子结构、明显的阶段性)以外,也具有不少网络流的特点。 比如…. “每个格子只能经过一次” 【另一种做法…】 于是我们可以尝试用网络流解决这个问题。每个点拆成两个点,容量为1,费用为该点的权值;(1,1)和(n,n)拆成的两个点之间流量应当为2,因为有两条路径。费用可以认为是0,反正最后加上去就好了。 这样问题就变成了一个最大费用最大流模型了。 【新的道路~】 【加强版】 【POJ3422 Kakas Matrix Travels】 题目大意:给一个n*n(n=50)的矩阵,每个格子有一个数,求K(K=10)条长度为(n-1)*2的连接(1,1)和(n,n)的路径,使经过的格子的数之和最大。重

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档