网络流算法【信息技术】.docVIP

  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文档。上传文档
查看更多
第三节 网络流算法 一、网络流的基本概念 先来看一个实例。 现在想将一些物资从S运抵T,必须经过一些中转站。连接中转站的是公路,每条公路都有最大运载量。如下图: 每条弧代表一条公路,弧上的数表示该公路的最大运载量。最多能将多少货物从S运抵T? 这是一个典型的网络流模型。为了解答此题,我们先了解网络流的有关定义和概念。 若有向图G=(V,E)满足下列条件: 有且仅有一个顶点S,它的入度为零,即d-(S) = 0,这个顶点S便称为源点,或称为发点。 有且仅有一个顶点T,它的出度为零,即d+(T) = 0,这个顶点T便称为汇点,或称为收点。 每一条弧都有非负数,叫做该边的容量。边(vi, vj)的容量用cij表示。 则称之为网络流图,记为G = (V, E, C) 譬如图5-1就是一个网络流图。 1.可行流 对于网络流图G,每一条弧(i,j)都给定一个非负数fij,这一组数满足下列三条件时称为这网络的可行流,用f表示它。 每一条弧(i,j)有fij≤cij。 除源点S和汇点T以外的所有的点vi,恒有: 该等式说明中间点vi的流量守恒,输入与输出量相等。 对于源点S和汇点T有: 这里V(f)表示该可行流f的流量。 例如对图5-1而言,它的一个可行流如下: 流量V(f) = 5。 2.可改进路 给定一个可行流f={fij}。若fij = cij,称vi, vj为饱和弧;否则称vi, vj为非饱和弧。若fij = 0,称vi, vj为零流弧;否则称vi, vj为非零流弧。 定义一条道路P,起点是S、终点是T。把P上所有与P方向一致的弧定义为正向弧,正向弧的全体记为P+;把P上所有与P方向相悖的弧定义为反向弧,反向弧的全体记为P-。 譬如在图5-1中,P = (S, V1, V2, V3, V4, T),那么 P+ = {S, V1, V1, V2, V2, V3, V4, T} P- = {V4, V3} 给定一个可行流f,P是从S到T的一条道路,如果满足: 那么就称P是f的一条可改进路。(有些书上又称:可增广轨)之所以称作“可改进”,是因为可改进路上弧的流量通过一定的规则修改,可以令整个流量放大。具体方法下一节会重点介绍,此不赘述。 3.割切 要解决网络最大流问题,必须先学习割切的概念和有关知识。 G = (V, E, C)是已知的网络流图,设U是V的一个子集,W = V\U,满足SU,TW。即U、W把V分成两个不相交的集合,且源点和汇点分属不同的集合。 对于弧尾在U,弧头在W的弧所构成的集合称之为割切,用(U,W)表示。把割切(U,W)中所有弧的容量之和叫做此割切的容量,记为C(U,W),即: 例如图5-1中,令U = {S, V1},则W = {V2, V3, V4, T},那么 C(U, W) = S, V2 + V1, V2 + V1, V3+V1, V4=8+4+4+1=17 定理:对于已知的网络流图,设任意一可行流为f,任意一割切为(U, W),必有:V(f) ≤ C(U, W)。 通俗简明的讲:“最大流小于等于最小割”。这是“流理论”里最基础最重要的定理。整个“流”的理论系统都是在这个定理上建立起来的,必须特别重视。 下面我们给出证明。 证明 对任意一个中间点(即非S、也非T的点)vi,恒有: (1) 当vi = S时有 (2) 从(1)、(2)对i∈U求和得 因为:V = U∪W,所以 又因: 即 故有: 所以 即V(f) ≤ C(U,W) 命题得证。 网络流、可改进路、割切都是基础的概念,应该扎实掌握。它们三者之间乍一看似乎风马牛不相干,其实内在联系是十分紧密的。 二、求最大流 何谓最大流?首先它必须是一个可行流;其次,它的流量必须达到最大。这样的流就称为最大流。譬如对图5-1而言,它的最大流如下: 下面探讨如何求得最大流。 在定义“可改进路”概念时,提到可以通过一定规则修改“可改进路”上弧的流量,可以使得总流量放大。下面我们就具体看一看是什么“规则”。 对可改进路P上的弧vi, vj,分为两种情况讨论: 第一种情况:vi, vj∈P+,可以令fij增加一个常数delta。必须满足fij + delta ≤ cij,即delta ≤ cij – fij。 第二种情况:vi, vj∈P-,可以令fij减少一个常数delta。必须满足fij - delta ≥ 0,即delta ≤ fij 根据以上分析可以得出delta的计算公式: 因为P+的每条弧都是非饱和弧,P-的每条弧都是非零流弧,所以delta 0。 容易证明,按照如此规则修正流量,既可以使所有中间点都满足“流量守恒”(即输入量等于输出量),又可以使得总的流量有所增加(因为delta

文档评论(0)

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

1亿VIP精品文档

相关文档