网络流_1_最大流与最小割定理

网络流__1

流网络

在这里插入图片描述

如图为一个流网络,边权为最大流量c,记作
G = ( V , E ) G=(V,E) G=(V,E)
其中V为点集,E为边集。

可以想象成从源点源源不断的将水流向汇点的过程
从 点 u 到 点 v 的 容 量 记 作 C ( u , v ) 从点u到点v的容量记作C(u,v) uvC(u,v)
其中,不考虑反向边,假如有反向边,可以通过加点来转化成没有反向边的情况

流量 定义:从源点往外净流出的量

可行流

即每一条边设计一个流量,记作
设 计 的 流 量 对 应 的 方 案 f { 1. 容 量 限 制 0 ≤ f ( u , v ) ≤ c ( u , v ) 2. 流 量 守 恒 : ∀ x ∈ V { s , t } ∑ ( u , x ) ∈ E f ( u , x ) = ∑ ( x , u ) ∈ E f ( x , u ) 设计的流量对应的方案f \begin{cases} 1.容量限制 \qquad 0 \le f(u,v) \le c(u,v)\\ \\ \\ 2.流量守恒 :\forall x \in V\{s,t\}\qquad\qquad \\ \quad \sum_{(u,x) \in E} f(u,x)= \sum_{(x,u) \in E}f(x,u) \end{cases} f1.0f(u,v)c(u,v)2.:xV{s,t}(u,x)Ef(u,x)=(x,u)Ef(x,u)
流量守恒即对于某个点流入的流量等于流出的流量

如图便是一个可行流,满足对于任意一点都有流出=流入:

在这里插入图片描述

对于一个可行流,每秒从源点流向汇点的流量的值/速率记作:
∣ f ∣ = 每 秒 从 源 点 流 出 的 流 / 每 秒 流 入 汇 点 的 流 量 |f|=每秒从源点流出的流/每秒流入汇点的流量 f=/
即往外流的流量流回去的流量:
∣ f ∣ = ∑ ( s , v ) ∈ E f ( s , v ) − ∑ ( v , s ) ∈ E f ( v , s ) |f|=\sum_{(s,v) \in E} f(s,v)- \sum_{(v,s) \in E}f(v,s) f=(s,v)Ef(s,v)(v,s)Ef(v,s)

最大流:

即所有可行流中流量值最大的可行流

残留网络

在这里插入图片描述

对于流网络的某一条可行流来说,残留网络与其一一对应,记作;
G f G_f Gf
假定流网络G=(V,E),f为图G中的一个流,定义其残存网络的残存容量
c f ( u , v ) = { c ( u , v ) − f ( u , v ) ( u , v ) ∈ E f ( v , u ) ( v , u ) ∈ E c_f(u,v)= \begin{cases} c(u,v)-f(u,v) \quad (u,v) \in E \\ \\ f(v,u) \quad\qquad \qquad (v,u) \in E \end{cases} cf(u,v)=c(u,v)f(u,v)(u,v)Ef(v,u)(v,u)E
简单来说,对于原流网络的一个流来说,其残留网络的残存容量有两种形式,一种是同向的,流网络容量-当前流量;另一种是反向的,数值等于当前流的大小

定义如下表示残留网络中一个合法流f'对于原网络中的流f的递增
( f ↑ f ′ ) ( u , v ) = f ( u , v ) + f ′ ( u , v ) − f ′ ( v , u ) ( u , v ) ∈ E (f \uparrow f' )(u,v)=f(u,v)+f'(u,v)-f'(v,u) \quad (u,v) \in E (ff)(u,v)=f(u,v)+f(u,v)f(v,u)(u,v)E
较为直观:f'(v,u)=f(u,v)

引理1

设G=(V,E)为一个流网络,源点为s,汇点为t,设fG中的一个流。设Gf是由流f所有道德G的残留网络,设f’为Gf中的一个流,那么有:
∣ f ↑ f ′ ∣ = ∣ f + f ′ ∣ = ∣ f ∣ + ∣ f ′ ∣ , 且 f + f ′ 也 为 G 中 的 一 个 可 行 流 |f \uparrow f'|=|f+f'|=|f|+|f'|,且f+f'也为G中的一个可行流 ff=f+f=f+f,f+fG
证明:

f+f'也为G的一个可行流,即从容量限制和流量守恒来证明
对 于 同 向 的 f ′ , f ( u , v ) + f ′ ( u , v ) ≤ f ( u , v ) + c ( u , v ) − f ( u , v ) = c ( u , v ) 对于同向的f',f(u,v)+f'(u,v)\le f(u,v)+c(u,v)-f(u,v)=c(u,v) f,f(u,v)+f(u,v)f(u,v)+c(u,v)f(u,v)=c(u,v)

对 于 反 向 的 f ′ , 0 = f ( u , v ) − c f ( u , v ) ≤ f ( u , v ) − f ′ ( u , v ) ≤ f ( u , v ) ≤ c ( u , v ) 对于反向的f',0=f(u,v)-c_f(u,v) \le f(u,v)-f'(u,v)\le f(u,v) \le c(u,v) f,0=f(u,v)cf(u,v)f(u,v)f(u,v)f(u,v)c(u,v)

推论:

  • 可行流的残留网络内求得的任何一个值大于0的可行流都可以增加原网络的可行流
  • 若原网络对应的残留网络的可行流的流量大于0,则原网络必定不是最大流,反之可证明是最大流

增广路径

对于给定流网络G=(V,E)和流f,增广路径p是其残存网络Gf中一条从源结点s到汇点t的简单路径,其中每一条边的容量都大于0.

对于对于G(V,E)的某一可行流 f 的残留网络上的某一可行流对应一条增广路径 f’,有f+f'仍然是G中的一个可行流,因此得到定理:
对 于 当 前 可 行 流 f , 在 G f 中 无 增 广 路 径 , 则 f 为 最 大 流 对于当前可行流f,在G_f中无增广路径,则f为最大流 f,Gf广f

增广路径的残存容量:

在这里插入图片描述

我们称增广路径p上能够为每条边增加的流量的最小值为残存容量,即:
c f ( p ) = m i n { c f ( u , v ) : ( u , v ) 属 于 路 径 p } c_f(p) = min\{c_f(u,v):(u,v)属于路径p \} cf(p)=min{cf(u,v):(u,v)p}
此处定义的残存容量与残留网络中的残存容量稍微不同,即最小值

对于一个流网络G=(V,E),可将其点集V分成两个不重不漏的集合ST,有
S ∪ T = V S ∩ T = ∅ S \cup T =V\\ S \cap T= \varnothing\\ ST=VST=
其中有以下限制:
源 点 s ∈ S , 汇 点 t ∈ T 源点s\in S,汇点t \in T sS,tT

割的容量 c(S,T)

所有从S指向T的有向的容量之和
c ( S , T ) = ∑ u ∈ S ∑ v ∈ T c ( u , v ) c(S,T)=\sum_{u \in S} \sum_{v \in T}c(u,v) c(S,T)=uSvTc(u,v)

割的流量

所有从S到T的的流量与从T到S的流量之差:
f ( S , T ) = ∑ u ∈ S ∑ v ∈ T f ( u , v ) − ∑ u ∈ T ∑ v ∈ S f ( u , v ) f(S,T)=\sum_{u \in S} \sum_{v \in T}f(u,v)-\sum_{u \in T} \sum_{v \in S}f(u,v) f(S,T)=uSvTf(u,v)uTvSf(u,v)
性质1:

设f为流网络G的一个流,该流网络的源节点为s,汇点为t,设(S,T)为流网络G的任意切割,则横跨切割(S,T)净流量
f ( S , T ) = ∣ f ∣ f(S,T)=|f| f(S,T)=f
对于每一个割的流量,都能对应一个流网络中的流量

证明:
引 理 1. f ( X , Y ) = − f ( Y , X ) 引 理 2. f ( X , X ) = 0 引 理 3. f ( Z , X ∪ Y ) = f ( Z , X ) + f ( Z , Y ) 引 理 4. f ( X ∪ Y , Z ) = f ( X , Z ) + f ( Y , Z ) 引理1.f(X,Y)=-f(Y,X)\\ 引理2.f(X,X)=0\\ 引理3.f(Z,X \cup Y)=f(Z,X)+f(Z,Y)\\ 引理4.f(X\cup Y,Z)=f(X,Z)+f(Y,Z) 1.f(X,Y)=f(Y,X)2.f(X,X)=03.f(Z,XY)=f(Z,X)+f(Z,Y)4.f(XY,Z)=f(X,Z)+f(Y,Z)
由引理1
s ( S , V ) = f ( S , S ) + f ( S , T ) s(S,V)=f(S,S)+f(S,T) s(S,V)=f(S,S)+f(S,T)
等价于:
f ( S , T ) = f ( S , V ) − f ( S , S ) = f ( S , V ) = f ( { s } , V ) + f ( S − { s } , V ) = f ( s , V ) f(S,T)=f(S,V)-f(S,S)=f(S,V)\\ =f(\{s\},V)+f(S-\{s\},V)=f(s,V) f(S,T)=f(S,V)f(S,S)=f(S,V)=f({s},V)+f(S{s},V)=f(s,V)

性质2:
∀ [ S , T ]   ∀ f   有 f ( S , T ) ≤ c ( S , T ) \forall [S,T]\ \forall f \ 有\quad f(S,T) \le c(S,T) [S,T] f f(S,T)c(S,T)
换句话来说,对于流网络任意流,都小于任意割的容积,因此就有最大流小于等于最小割。其中注意,最大流指流网络的最大流量,最小割指的是最小割的容量
最 大 流 ∣ f ∣ ≤ 最 小 割 c ( S , T ) 最大流|f|\le最小割c(S,T) fc(S,T)

最大流最小割定理

以下三个定理相互等价

  • fG中的一个最大流
  • 残留网络Gf不包括任何增广路径
  • |f|=c(S,T),其中(S,T)是流网络G的某个切割

证明:

证明思路为证明1能推出2,2能推出3,3能推出1

1=>2:
若 G f 有 ∣ f ′ ∣ > 0 , 则 ∣ f + f ′ ∣ = ∣ f ∣ + ∣ f ′ ∣ > ∣ f ∣ 矛 盾 若G_f有|f'| \gt 0,则|f+f'|=|f|+|f'| \gt |f|矛盾 Gff>0f+f=f+f>f
2=>3

使用构造法:构造一个点集S,将起点s放入S,从Gf中从s出发沿容量大于0的边走,将所有能走到的点加入S,由于不包含增广路径,所以必然有t不属于S
则 T = V − S 有 t ∈ T , 构 造 出 了 一 组 合 法 割 则T=V-S有t\in T,构造出了一组合法割 T=VStT

对 于 x ∈ S , y ∈ T 有 f ( x , y ) = c ( x , y ) , 又 a ∈ S , b ∈ T 有 f ( a , b ) = 0 对于x\in S,y\in T有f(x,y)=c(x,y),又a\in S,b\in T有f(a,b)=0 xS,yTf(x,y)=c(x,y),aS,bTf(a,b)=0

因为加入f(x,y)<c(x,y)则x可以走到y,因此y应该在S中矛盾。a,b同理
因 此 有 ∣ f ∣ = f ( S , T ) = ∑ u ∈ S ∑ v ∈ T f ( u , v ) − ∑ u ∈ S ∑ v ∈ T f ( v , u ) = ∑ u ∈ S ∑ v ∈ T c ( u , v ) = c ( S , T ) 因此有|f|=f(S,T)=\sum_{u \in S} \sum_{v \in T}f(u,v)-\sum_{u \in S} \sum_{v \in T}f(v,u)\\ =\sum_{u \in S} \sum_{v \in T}c(u,v)=c(S,T) f=f(S,T)=uSvTf(u,v)uSvTf(v,u)=uSvTc(u,v)=c(S,T)
3=>1
最 大 流 ∣ f ∗ ∣ ≥ ∣ f ∣ = c ( S , T ) ≥ 最 小 割 c m i n ( S , T ) ≥ ∣ f ∗ ∣ 最大流|f^*|\ge |f|=c(S,T)\ge 最小割c_{min}(S,T) \ge|f^*| ff=c(S,T)cmin(S,T)f

S中矛盾。a,b同理
因 此 有 ∣ f ∣ = f ( S , T ) = ∑ u ∈ S ∑ v ∈ T f ( u , v ) − ∑ u ∈ S ∑ v ∈ T f ( v , u ) = ∑ u ∈ S ∑ v ∈ T c ( u , v ) = c ( S , T ) 因此有|f|=f(S,T)=\sum_{u \in S} \sum_{v \in T}f(u,v)-\sum_{u \in S} \sum_{v \in T}f(v,u)\\ =\sum_{u \in S} \sum_{v \in T}c(u,v)=c(S,T) f=f(S,T)=uSvTf(u,v)uSvTf(v,u)=uSvTc(u,v)=c(S,T)
3=>1
最 大 流 ∣ f ∗ ∣ ≥ ∣ f ∣ = c ( S , T ) ≥ 最 小 割 c m i n ( S , T ) ≥ ∣ f ∗ ∣ 最大流|f^*|\ge |f|=c(S,T)\ge 最小割c_{min}(S,T) \ge|f^*| ff=c(S,T)cmin(S,T)f

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值