TonyYin's Blog

Back

网络流

网络流简介#

容量网络#

网络:指一个有向图 G(V,E)G(V,E).

容量:在 GG 中,称每条边 (u,v)(u, v) 的权值 c(u,v)c(u, v),为这条边的容量;特殊的,若 (u,v)E(u,v)\notin Ec(u,v)=0c(u, v)=0.

源点和汇点VV 中的两个特殊点。一般记 ss 为源点,tt 为汇点,sts\neq t.

#

流函数#

网络 GG流函数是定义在二元组( uV,vVu\in V, v\in V )上的实数函数 f(u,v)f(u, v).

f(u,v)={f(u,v),(u,v)Ef(v,u),(v,u)E0,(u,v)E,(v,u)Ef(u,v)= \left\{ \begin{aligned} &f(u,v),&(u,v)\in E\\ &-f(v,u),&(v,u)\in E\\ &0,&(u,v)\notin E,(v,u)\notin E \end{aligned} \right.

定义#

对于 (u,v)E(u, v)\in Ef(u,v)f(u, v) 称为边的流量c(u,v)f(u,v)c(u, v)-f(u, v) 称为边的剩余流量

整个网络的流量(s,v)Ef(s,v)\sum_{(s, v)\in E} f(s, v),也就是从源点出发的所有流量的和

性质#

f(u,v)f(u, v) 满足以下三条性质:

  1. 容量限制:对于每条边,流经该边的流量不得超过该边的容量,即 f(u,v)c(u,v)f(u,v)\leq c(u,v);
  2. 斜对称性:每条边的流量与其相反边的流量之和为 00,即 f(u,v)=f(v,u)f(u,v)=-f(v,u);
  3. 流守恒性:从源点流出的流量等于汇点流入的流量,即 xV{s,t},(u,x)Ef(u,x)=(x,v)Ef(x,v)\forall x\in V\setminus\{s,t\},\sum_{(u,x)\in E}f(u,x)=\sum_{(x,v)\in E}f(x,v).

最大流#

概述#

在一个流量网络中,求从源点 ss 流向汇点 tt 的最大流量。流量定义为:从源点出发的所有流量的和

Ford-Fulkerson 增广路算法#

通过寻找增广路来更新最大流。注意:这里的增广路与二分图中的增广路定义不同。

残量网络#

残量:给定容量网络 G(V,E)G(V, E) 及可行流 ff(u,v)(u, v) 上的残量记为 cf(u,v)=c(u,v)f(u,v)c_f(u, v)=c(u, v)-f(u, v).

对于每条边而言,残量为这条边可以增加的容量。

残量网络:对于容量网络 G(V,E)G(V, E) 及其上的网络流 ffGG 关于 ff 的残量网络为 Gf(Vf,Ef)G_f(V_f, E_f). (u,v)Ef(u, v)\in E_f 的边权记为 cf(u,v)c_f(u, v) . 残量网络 GfG_f 满足:

  • Vf=VV_f=V
  • 对于任意 (u,v)E(u, v)\in E,如果 f(u,v)<c(u,v)f(u, v) < c(u, v),那么 (u,v)Ef(u, v)\in E_fcf(u,v)=c(u,v)f(u,v)c_f(u, v) = c(u, v) - f(u, v).
  • 对于任意 (u,v)E(u, v)\in E,如果 f(u,v)>0f(u, v) > 0 ,那么 (v,u)Ef(v, u)\in E_fcf(v,u)=f(u,v)c_f(v, u)=f(u, v).

通俗的来说,比如对于一条边 (u,v)(u, v)f(u,v)=3f(u, v)=3c(u,v)=5c(u, v)=5。这条边的流量最多可以再增加 22,所以残量网络中 cf(u,v)=2c_f(u, v)=2;同时,这条边的流量最多可以减少 33,又因为 vvuu 增加流量,等价于 uuvv 减少流量,所以在残量网路中的体现就是 cf(v,u)=3c_f(v, u)=3

无标题

因此,残量大于 00 的边有可能不在原图 GG 中(但这条边的反向边在原图 GG 中)。

增广路#

在原图 GG 中,若一条从源点到汇点的路径满足:路径上所有边的剩余容量都大于 00,那么这条路被称为增广路。

或者说,在残量网络 GfG_f 中,能找到的从源点到汇点的路径,都是增广路。

参考资料#

网络流简介 - OI Wiki

网络流 - 计蒜客 Level 6 课程

https://github.com/MadMaxChow/VLOOK

https://www.jisuanke.com/course/4728

网络流-最大流
https://www.tonyyin.top/blog/oi-notes/max-flow
Author TonyYin
Published at January 20, 2021
Comment seems to stuck. Try to refresh?✨