网络流 计算机学院.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络流计算机学院ppt课件

网络流 计算机学院 网络流问题 由于人类对自然资源的消耗,人们意识到大约在2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。现有n个太空站位于地球与月球之间,且有m 艘公共交通太空船在其间来回穿梭。每个太空站可容纳无限多的人,而每艘太空船i 只可容纳H[i]个人。每艘太空船将周期性地停靠一系列的太空站,例如:(1,3,4)表示该太空船将周期性地停靠太空站134134134…。每一艘太空船从一个太空站驶往任一太空站耗时均为1。人们只能在太空船停靠太空站(或月球、地球)时上、下船。初始时所有人全在地球上,太空船全在初始站。试设计一个算法,找出让所有人尽快地全部转移到月球上的运输方案。 网络流问题 ?? 由文件input.txt提供输入数据。文件第1行有3 个正整数n(太空站个数),m(太空船个数)和k(需要运送的地球上的人的个数)。其中 1=m=13, 1=n=20,1=k=50。接下来的n 行给出太空船的信息。第i+1 行说明太空船pi。第1 个数表示pi 可容纳的人数Hpi;第2 个数表示pi 一个周期停靠的太空站个数r,1=r=n+2;随后r 个数是停靠的太空站的编号(Si1,Si2,…,Sir),地球用0 表示,月球用-1 表示。时刻0 时,所有太空船都在初始站,然后开始运行。在时刻1,2,3…等正点时刻各艘太空船停靠相应的太空站。只有在0,1,2…等正点时刻才能上下太空船。 ??将全部人员安全转移所需的时间输出到文件output.txt 中。如果问题无解,则输出0。 一些符号和定义 V表示整个图中的所有结点的集合. E表示整个图中所有边的集合. G = (V,E) ,表示整个图. s表示网络的源点,t表示网络的汇点. 对于每条边(u,v),有一个容量c(u,v) (c(u,v)=0) 如果c(u,v)=0,则表示(u,v)不存在于网络中。 如果原网络中不存在边(u,v),则令c(u,v)=0 对于每条边(u,v),有一个流量f(u,v). 最大流问题 定义一个网络的流量(记为|f|)= 最大流问题,就是求在满足网络流性质的情况下,|f|的最大值。 弧的分类 若给定一个可行流F=(Fij),我们把网络中Fij=Cij的弧称作饱和弧, FijCij的弧称作非饱和弧, Fij=0的弧称作零流弧, Fij0的弧称作非零流弧 若P是网络中联结源点s和汇点t的的一条路(不用管边的有向性),我们定义路的方向是从Vs到Vt,则路上的弧被分为两类:一类与路的方向一致,称为前向弧;另一类和路的方向相反,称为后向弧 残量网络 为了更方便算法的实现,一般根据原网络定义一个残量网络。其中r(u,v)为残量网络的容量。 r(u,v) = c(u,v) – f(u,v) 通俗地讲:就是对于某一条边(也称弧),还能再有多少流量经过。 Gf残量网络,Ef表示残量网络的边集. (a,b) 表示 (流量f,容量c) 从残量网络中可以清楚地看到: 因为存在边(s,v2) = 3,我们知道从S到v2还可以再增加3单位的流量; 因为存在边(v1,t) = 2,我们知道从v1到t还可以再增加2单位的流量。 为什么要建立后向弧 其中像(v1,s)这样的边称为后向弧,它表示从v1到s还可以增加4单位的流量。 但是从v1到s不是和原网络中的弧的方向相反吗?显然“从v1到s还可以增加4单位流量”这条信息毫无意义。那么,有必要建立这些后向弧吗? 为什么要建立后向弧 显然,例1中的画出来的不是一个最大流。 但是,如果我们把s - v2 - v1 - t这条路径经过的弧的流量都增加2,就得到了该网络的最大流。 注意到这条路径经过了一条后向弧:(v2,v1)。 如果不设立后向弧,算法就不能发现这条路径。 从本质上说,后向弧为算法纠正自己所犯的错误提供了可能性,它允许算法取消先前的错误的行为(让2单位的流从v1流到v2) 可改进路(增广路) 可改进路定义:在残量网络中的一条从s通往t的路径,其中任意一条弧(u,v),都有r[u,v]0。(每一条前向弧都是非饱和弧,每一条后向弧都是非零流弧) 绿色的即为一条可改进路。 可改进路算法 可改进路算法:每次用BFS找一条可改进路,然后沿着这条路径修改流量值(实际修改的是残量网络的边权),使得总流量变得更大,修正的方法是: 1、不属于可改进路P的弧一概不变 2、对于可改进路P上的所有前向弧加上a,后向弧减去a,这里a是一个可改进量。a既要尽量大,又要保证变化后0=Fij=Cij (满足容量限制和平衡条件) 。因此a=min(min(C前向弧ij-F前向弧ij),min(F

文档评论(0)

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

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

1亿VIP精品文档

相关文档