- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络流基础
网络流基础
6-4 秦政
基本概念
一个 流 网 络(flow network)G=(V,E)是一个有向图,每条边(u,v)有一个非负容量(capacity) c(u,v) = 0,对于不在E中的(u,v),规定c(u,v) = 0。有两个特殊结点:源点(source)s和汇点(sink)t。假设对于任意其他点v,存在通路s-v-t。
基本概念
可以这样抽象的理解流网络:
可以把这样的流网络看作是运送物资的交通网络,我们希望从s往t运送物品。由于对于任意点v都存在s-v-t通路,因此不用担心物品运丢。但这个过程仍然是有限制的。
基本概念
流量的性质
定义在每条边上运送物品的数量f (u,v),则:
容量限制:f (u,v) = c(u,v)
对称性:f (u,v) = -f(v,u)
收支平衡:对于不是s或t的其他点u,有sigma{f(u,v)} = 0, (u,v) in E
基本概念
定义整个网络的流量f为从s流出的流量,它也等于从t收集到的流量。
基本概念
理论上弧的两个方向可以同时有流量,但实际上这是没有必要的,我们可以用所谓的流取消(flow cancelling)方法只保留其中的一边。
残量网络(residual network)。我们常常使用残量网络来设计算法,它的基本思想是:把已有的流看作网络本身的一部分,把有流的网络转化成无流的网络。根据这个想法,定义弧(u,v)的残量容量为cf(u,v) = c(u,v) - f (u,v),它的含义是该弧的最大流增量。
基本概念
所有大于0的残量弧所构成的网络称为残量网络,由于每条弧最多可以从两边增加流量,因此|Ef| · 2|E|。残量网络的每条s-t路称为增广路,因为沿着它进行增广可以增加网络的流量。
定义增广路总残量容量最小值d为该路的残量容量,则把路上每条弧的流量增加d,反向流量减少d(由对称性)后,所得的流仍然是可行的,且流量增加了d。残量网络的好处是我们不用考虑流和真实容量。
最大流问题
求流网络中最大流量的问题叫做最大流问题。
基本定理
增广路定理:流量f是最大流当且仅当残量网络中不存在可增广路。
整流定理:如果网络中所有容量是整数,则最大流也是整数。
最大流算法
增广路算法:Ford-Fulkerson方法,Edmonds-Karp(EK)(NM^2),SAP(N^2M),Dinic(N^2M)
预流推进算法:Preflow-Push(PP)(N^2M),FIFOPP(N^3),HLPP(N^2M^1/2)
增广路算法
每次找一条增广路进行增广(Ford-Fulkerson方法)
每次用BFS找到一条增广路进行增广(Edmonds-Karp算法)
每次找到最短增广路进行增广(SAP算法)
每次找到最短路图进行增广(Dinic算法)
增广路算法
路径标号:残量网络中以s为起点的最短路径长度d(i)
如果一条弧(i,j)满足d(i) = d(j) + 1,我们说该弧是允许弧,全由允许弧组成的s-t路径称为允许路径。允许路径的重要性质是:任何s-t允许路径都是s-t最短路
Dinic算法:每次求一次最短路,然后对所有的允许路径进行增广
While (lab()) aug();
切割
给定网络G=(V,E),取C为E的一个子集,当删去C后,点A和点B不在联通,则称C为G的一个A-B切割。
C中容量之和称为切割C的容量。
最小割问题:求最小容量的切割C。
基本定理
最大流最小割定理:最大流等于最小切割的容量。
特别的,平面图的最小割等于对偶图上的最短路。
费用流问题
流网络中的每条边除了容量c还有一个参数w表示每单位流量产生的费用,一个流的费用W = sigma{f(e) * w(e)}, e in E
在最大流的基础上求最小费用的问题:最小费用最大流
在最大流的基础上求最大费用的问题:最大费用最大流
费用流算法
每次求最短路,然后增广
while (spfa()) aug();
拓展问题
多源汇的流问题 附加超级源超级汇
顶点有容量限制的流问题 拆点
无向图变有向图 拆边
有上下界的流问题
上下界的流问题
对于每条边除了有上界c(u,v),还有下界b(u,v),既满足:b(u,v) = f(u,v) = c(u,v)
构造新图:
附加超级源S,超级汇T
对于原图中的每条边,c’(u,v) = c(u,v) – b(u,v)
对于点v,记d(v) = sigma{b(u,v)} – sigma{b(v,u)},若d(v) 0,则连边S - v容量为d(v),若d(v) 0,则连边v - T容量为-d(v)
从原图的汇t向原图的源s连边容量为无穷
Drainage Ditches
在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水。这意
文档评论(0)