834 最大流最小割定理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最大流最小割定理Max-flow Min-cut Theorem
在网络 G =(V , E , s , t , c ) 中,任何一个满足 s ∈S ,t ∈T =V -S 的顶点 V 的划分 {S , T } 称作一个 s -t 割(s -t cut ),简称割(cut )
一个 s -t 割的容量(capacity )定义为 , 记为 cap (S , T )
如果图 G 的 s -t 割 (S , T ) 使得任意一个 G 的
s -t 割 (S ’, T ’) 都有 cap ( S , T )≤cap (S ’, T ’),则称 ( S , T ) 是图 G 的一个最小s -t 割,简称最小割(minimum cut ) (),,uv u S v T
u v E c ∈∈∈∑
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
一般而言,网络的最小 s -t 割不唯一
s
a
b
t
1
1
1
1
s
a
b t
1
1
1
1
s
a
b
t
1
1
1
1
下面建立流与割之间的关系,首先引入一些符号的定义
在网络 G =(V , E , s , t , c ) 中,假设 A , B 都是 V 的非空子集,定义
,即从 A 穿出进入 B 的边的总流量
,即从 A 穿出进入 B 的边的总容量
()(),,,uv
u A v B
u v E
f A B f ∈∈∈=
∑()(),,,uv
u A v B
u v E
c A B c ∈∈∈=
∑
T ’
S ’
T S 定理1
假设 G =(V , E , s , t , c ) 是一个网络,令 f 是一个流,(S , T ) 是一个 s -t 割,则通过该割的流量等于由源 s 发出的流量。
即 f (S , T ) - f (T , S ) = | f | 。
特别地有 f (∙, t )=| f |
证明(大意) 对 |S | 进行归纳证明。
S ={s } 时明显成立
假设定理对于 |S |<k 时都成立
当 |S |=k 时,任取 v ∈S -{s },令 S ’=S -{v },T ’=T ∪{v },则由 |S ’|=k -1 可知 f (S ’, T ’)-f (T ’, S ’) = | f |
s
v
t
T S 将顶点 v 添加到 S ’ 后, f ( S , T )-f ( T , S )
= f ( S ’, T ’)- f (T ’, S ’)+f (v , ∙)-f (∙, v ) = f ( S ’, T ’)-f (T ’, S ’)
表明 f (S , T )- f (T , S ) 是不变量,值必定是 | f |
T ’
S ’
s
v
t
将顶点v添加到S’后,
f ( S, T )-f ( T, S )
= f ( S’,T ’)-f (T ’,S’)+f (v, ∙)-f (∙, v)
= f ( S’,T ’)-f (T ’,S’)
表明f (S, T)-f (T, S) 是不变量,值必定是| f | 特别是f (∙, t) = f (V-{t}, {t})-f ({t}, V-{t})=| f |
T
S
s v
t
s
a
b
c
d
e
f
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
4
10
11
3
11
1
8
6
6
8
10
10+3+11=24
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
4
10
11
3
11
1
8
6
6
8
10
6+0+8+11-1=24
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
4
10
11
3
11
1
8
6
6
8
10
10+8+10-4-0=24
定理2
设 G 是一个网络,令 f 是 G 的一个流,( S , T ) 是 G 的一个 s -t 割,则
| f | ≤ cap ( S , T )
证明
| f | = f ( S , T )-f ( T , S ) ≤ f ( S , T ) = = cap ( S , T )
()(),,,,uv uv
u S v T u S v T
u v E u v E f c ∈∈∈∈∈∈≤∑∑
推论
设G是一个网络,f是一个流,( S, T )是一个s-t割,则若| f | = cap( S, T ),则f是一个最大流且( S, T )是一个最小s-t 割
证明
是任意一个流,则有
假设f
1
| f1 | ≤cap ( S, T ) = | f |,
因此f是一个最大流
, T1 ) 是任意一个s-t割,则
假设( S
1
cap ( S, T ) = | f | ≤cap ( S1, T1 ),
因此( S, T )是一个最小s-t 割
福特和福尔克森(Ford-Fulkerson)1956年得到了可增广道路定理和最大流最小割定理(max-flow min-cut theorem)
定理3
假设f是网络G=(V, E, s, t, c) 的一个流,则以下陈述等价:
(a)f 是一个最大流
(b) 当前f的剩余图中不存在可增广道路
(c) 存在G的一个s-t割(S, T)使得
| f | = cap( S, T )
定理3
假设f是网络G=(V, E, s, t, c) 的一个流,则以下陈述等价:
(a)f 是一个最大流
(b) 当前f的剩余图中不存在可增广道路
(c) 存在G的一个s-t割(S, T)使得
| f | = cap( S, T )
证明
(a)⇒(b) 如果当前关于f的剩余图中存在可增广道
路,则可以通过这条道路扩大流,与f是最大流矛盾
(c)⇒(a) 由定理2的推论即得
S
(b) 当前 f 的剩余图中不存在可增广道路
(c) 存在 G 的一个 s -t 割 (S , T ) 使得 | f | = cap ( S , T )
证明 (b)⇒(c)
假设 f 是不存在可增广道路的流。
设 S 是在当前剩余图中由 s 可达的顶点之集合,则显然 s ∈S ,且 t ∉S —— 否则存在可增广道路,令 T =V -S 。
10 10 8 4 10 10
9 9 9
10 7 0 G: 6
s
2
3
4 5
t
1 9
7
1
10
1 6 2
G f :
1
9
9 3
证明 (b)⇒(c)
假设 u ∈S ,v ∈T
若 (u , v )∈E 则必然有 f uv =c uv ,否则 (u , v )∈E f ,v 也由 s 可达,与 S 的定义矛盾
若 (v , u )∈E 则必然有 f vu =0,否则 (u , v )∈E f ,v 也由 s 可达,与 S 的定义矛盾
因此有 | f | = f ( S , T )-f ( T , S ) = c ( S , T )-0 = cap ( S , T )
S
1 7
1
1 G f :
1
9
9 3
s
2
3
4 5
t
10 10 9
8 4 10
10 6 2
10
9 9 9
10 7 0 G: 6
S 是在当前剩余图中 由 s 可达的顶点之集合
“(b) (c)”部分的证明也给出了由最大流构造最小割的方法
s
a
b
c
d
e
f
t 15
5
30
15
10
8
15
6 10
10
10
15
4
4
9
10
14
4
14
4
8
1
9
9
9
10
E nd。