当前位置:文档之家› 第四节 最大流问题

第四节 最大流问题

f3t<c3t, 给vt标号 (3, l(vt)), 这里
(5)检查v3,在弧(v3,vt)上,f3t=1, c3t=2,
l ( vt ) minl ( v3 ),( c3t f 3t ) min ,1 1, 1
vt得到标号,标号过程结束。
19ห้องสมุดไป่ตู้
(二)调整过程 :从vt 开始逆向追踪,找到增广链。
v1
(8,4)
(6,0)
v2
v3
(6,5)
v4
(3,3)
v5
(5,4)
v6
10
(6). 截集与截量 对于有向网络G=(V,A,C) ,若S为V的子集,S=V - S , 则称弧集 (S,S)= a|a=(u,v),u S,v S 为网络G的一个截集,并将截集中所有弧容量之和称为截容量, ( ( 为截集 (S,S ) 的截容量(简称为截量)。 即 C S, S)= C a)
v4
(11,6)
v1
(3,3)
(17 ,2)
v6
v5
8
v3
(6,3)
v2
(10,5) (3,2) (4,1) (8,3) (5,1)
(5,2)
v4
(11,6)
v1
(3,3)
(17,2)
v6
v5
µ = (v1,v2,v3,v4,v5,v6 )
+ µ ={(v1,v2) ,(v2,v3), (v3 , v4),(v5,v6)}
1 (-2, l(v3)), 这里 l (v3 ) minl (v2 ), f32 min ,1 1,
18
在弧(v1,v3)上,f13=2, c13=2,不满足标号条件。 (4)检查v2,在弧(v3,v2)上,f32=1>0, 给v3标号
(-v1,1)
v2
(4,3) (1,1)
( vi , v j ) A

f ij
sj
( v j , vi ) A

f ji 0
js
vs : vt :
( v s , v j )A
f

( v j , v s )A
f
V( f )
可行流总是 存在的
( v t ,v j )A
f
tj
( v j , v t )A
f
jt
a S, S) (


(7)最小截与最小截量 若 (S*,S*) 是容量网络中所有截集中截量最小的截集,即
C S*,S*)= min C S,S)|(S,S)为网络G的一个截量 ( (
( C ( 则称 S*,S*)为G上的最小截, S*,S*) 为上的最小截量。
11
性质 任何一个可行流的流量V(f)都不会超过任一截集的容 量。即 V ( f ) C(V ,V 1 )
1
可行流f*,截集(V1*,V1*), 若V(f*)=C( V1*,V1*),
则f*必是最大流, (V1*,V1*) 必是D的最小截集。
定理 若f*是网络G=(V,A,C)上的可行流,则
可行流f*为最大的充要条件为μ中不存在关 于f*的增广链。 最大流最小截量定理。任一个网络D中,从vs 到 vt的最 大流的流量等于分离vs,vt的最小截集的容量。
如所有fij=0, V( f ) 零流。
V( f ) 称为可行流 f 的流量,即发点的净输出量。
6
(3). 最大流
若 V(f *) 为网络可行流,且满足: V(f *)=Max{V(f )∣f }为网络D中的任意 一个可行流,则称f *为网络的最大流。
(4).前向弧与后向弧 设μ=(x,…,u,v,…A)是网络G中的一条初等链并且 定义链的方向是从x到A。若D中有弧(u,v),与μ方向 一致,则称(u,v)为链μ的前向弧,若D中有弧(u, v),与μ方向相反,则称(v, u),为链μ的后向弧。
第4节
网络最大流问题
例 连接某产品产地vs和销地vt的交通网如下: v1 v3 4
3 5 1 5 2 1 2
vs
vt v4
v2
2
弧(vi,vj):从vi到vj的运输线,
弧旁数字:这条运输线的最大通过能力,
制定一个运输方案,使从vs到vt的产品数量最多。
1
v1
3
4
2
v3
5
弧旁数字:
运输能力。
vs
5
1
(0, +∞)
vs
(6,3) (2,0) (5,2)
vt
(v3,2)
(6,2)
(vs,4)v2
23
(-v2,2) v1
(5,1) (2,2) (2,2)
v3 (v1,2)
(6,3) (2,0) (5,2)
(3,3)
(0, +∞)
vs
(6,2)
vt
(v3,2)
(vs,4)
v2
(3,2)
v4
(v2,1)
24
(-v2,2)v1
(5,1)
(2,2) (2,2) (3,2)
v3
(v1,2)
(3,3)
v4
(v2,1) (5,3)
(3,3) (0,∞)
vs
(5,1)
(1,1)
(3,0)
vt
(v3,1)
(2,1)
在弧(v2,v4)上,f24=3,c24=4,f24<c24, 给v4标号 (2, l(v4)), 其中
(vs,4)
v1
(2,2)
v3
(-v2,1)
l ( v4 ) min l ( v2 ),( c24 f 24 ) min ,1 1, 1
(5,3) (3,0)
(3,3) (0,∞) vs (5,1) (vs,4)
(1,1)
vt
(2,1)
v1
(2,2)
(-v2,1)
v3
(3)检查v1,在弧(v2,v1)上,f21>0, 给v2标号
(-1, l(v2)), l ( v2 ) min l ( v1 ), f 21 min 4 ,1 1,
l ( v1 ) min l ( vs ),( cs1 f s1 ) min ,5 1 4
17 在弧(vs,v2)上, fs2=cs2=3, 不满足标号条件。
fs1<cs1, 给v1标号(s, l(v1)), 其中
(-v1,1)
v2
(4,3) (1,1)
v4
(-v1,1)
v2
(4,3)
(1,1)
v4
(v2,1) (5,3)
(3,3) (0,∞)
vs
(5,1)
(1,1)
(3,0)
vt
(v3,1)
(2,1)
µ s,v1,v2,v3,vt) (v =1, 在µ 上进行流量
(vs,4)
v1
(2,2)
v3
(-v2,1)
v2
(3,3)
(4,3)
v4
(5,3)
(3,0)
(2,2)
v1
(2,2) (vs,3)
v3
V(f ′)=3+2=5
V1=(vs,v1)
V1=(v2,v3,v4, vt)
截集:[V1,V1]=[(vs,v2),(v1,v3)] V(f ′)=C[V1,V1]=5
问题:(v2,v1)是不是截集[V1,V1]中的弧?
21
例 用标号法求下图网络的最大流。弧旁的数字是( cij , fij)。
v1
(3,3)
(5,1) (2,2) (2,2)
v3
(6,3) (2,0)
(5,2)
vs
(6,2)
vt
v2
(3,2)
v4
22
解: 第一轮 标号过程 (1)vs标(0,+∞),vs为已标号未检查点。 v 6 (2)检查vs,给v2标号(vs,l(v2))l( 2 ) min , - 2 4 ,vs成为已标号已检查的点,v2成为已标号未检查的点。 v (3)检查v2,给v1标号(-v2,l(v1)) l( 1 ) min 4,2 2 。同理给v4标号为(v2,1),v2成为已标号已检查的 点,v1,v4成为已标号未检查的点。 (4)检查v1,给v3标号为(v1,2),v3成为已标号未检 查的点。 (5)检查v3,给vt标号为( v3 ,2)。 因为vt已被标号,所以说明找到一条增广链。 调整过程 按点的第一个标号,以vt点开始,回溯找到一条增广 链, 如下图红线所示:
=1的调整,得
可行流 f ′ 如右
(1,0)
(1,0)
vs
(5,2)
vt
20
(2,2)
图所示:
v1
(2,2)
v3
去掉各点标号,从vs开始,重新标号。
v2
(3,3) (0,∞)vs (5,2)
(4,3) (1,0) (1,0)
v4
(5,3)
点v1:标号过程
(3,0)
vt
无法进行,所以
f ′即为最大流。
v3
(6,3)
µ - ={(v4,v5)}
9
增广 链 设 f 是一个可行流, µ 是从vs 到vt 的一条链,若µ 足下 满 列条件,称之为关于可行流 f 的一条增广 链。
+ (vi , vj ) ∈ µ (vi , vj ) ∈ µ
0≤ fij <cij 0 < fij ≤ cij
前向弧是 非饱和弧, 后向弧 是非零流弧,
12
7.4.2寻求最大流的标号法(Ford—Fulkerson) 从任一个可行流 f 出发(若网络中没有给定 f , 则从零流开始),经过标号过程与调整过程。 (一)标号过程
相关主题