当前位置:文档之家› 6-4最大流问题

6-4最大流问题

(2 ,2)
(3 , 3) (0,+∞)
vs
v2
(4 ,3) v4
(1 ,0)
(1 , 0)
(3 ,0)
(5 , 2) v1
(2 , 2) v3
(+ vs , 3)
(5 ,3) vt
(2 ,2)
图6
截集
{(vs , v2 ) , (v2 , v3, v4 , vt )}
谢谢!
9 (5)
v1
4 (1)
v4
4 (2)
v7
5 (2)
4 (1)
9 (3)
v3
5 (0)
图1
v6
10 (1)
v 1 , ( v 1 , v 2 ), v 2 , ( v 3 , v 2 ), v 3 , ( v 3 , v 6 ), v 6 , ( v 6 , v 7 ), v 7
( v 1 , v 2 ), ( v 3 , v 6 ), ( v 6 , v 7 ) ( v 3 , v 2 )
vs和一个收点vt ,其它的点叫做中间点。对于D中的每一个弧 (vi , vj)∈E ,都有一个非负数cij叫做弧的容量。把这样的图
D叫做一个容量网络,简称网络,记做 D=(V,E,C)。网络 D上的流,是指定义在弧集合E上的一个函数f={f(vi,vj)}, 并称
f(vi ,vj) =fij 叫做弧(vi,vj)上的流量。
西安邮电大学 现代邮政学院
Xi'an post and telecommunications university modern post College
第六章 最大流问题
主讲教师 武小平
主要内容
1 最大流问题相关概念
2 最大流标号算法


3 最大流问题算例

1 最大流问题相关概念
1、 设一个赋权有向图D=(V, E),在V中指定一个发点
f 是一个可行流,如果满足:
0 fi j ci j 0 fi j ci j
(vi , v j ) 即 中的每一条弧都是非饱和弧 (vi , v j ) 即 中的每一条弧都是非零流弧
则称 为从vs到vt的关于f 的一条增广链。
5 (3)
v2
v5
13 (5)
6(3)
5 (2)
而 (v3 , v2 ) 和 (v4 , v5 ) 不 是 该 集 合 中 的 弧
2 最大流标号算法
最大流的标号过程如下:
1. 给发点vs 标号(0,+∞)。
2. 取一个已标号的点vi,对于vi一切未标号的邻接点vj 按下列 规则处理:
(1)如果边 (v j ,vi ) E,且 f j i 0 ,那么给vj 标号 (vi , j ) ,其中: j min( f ji , i )
是一个增广链 显然图中增广链不止一条
4、容量网络G =(V,E,C),vs为始点,vt为终点。 如果把V分成两个非空集合 S , S , 使得 v s S , v t S,则所 有始点属于S,而终点属于 S 的弧的集合,称为由S决定的 截集,记作 (S , S )。截集 (S , S )中所有弧的容量之和,称为
2.去掉所有标号,回到第一步,对可行流 重新标号。
3 最大流问题算例
v2
(4 ,3) v4
(3 , 3) vs
(1 ,1)
ቤተ መጻሕፍቲ ባይዱ(1 , 1)
(3 ,0)
(5 ,3)
vt 图3
(5 , 1)
v1
(-v1, 1) v2
(2 , 2) (4 ,3)
(2 ,1) v3
(+v2,1) v4
(3 , 3) (0,+∞v)s
这个截集的容量,记为C ( S , S )。
v1 5
S (vs , v2 ) S (v1 , v3 , v4 , vt )
7
(S , S ) (vs ,v1 ) , (v2 ,v4 ) , (v2 , v3 )
vs
45
C(S , S ) ls1 l24 l23 7 6 5 18
3
(2)如果边 (vi ,v j ) E 且 fij cij ,那么给vj 标号 (vi , j ) , 其中: j min(ci j fi j , i )
3.重复步骤2,直到vt被标号或标号过程无法进行下去 ,则标号结束。若vt被标号,则存在一条增广链,转调整 过程;若vt未被标号,而标号过程无法进行下去,这时的 可行流就是最大流。
S
v2 6
v3
7
3
vt
8 v4
图2
5 (3)
v2
v5
13 (5)
6(3)
5 (2)
9 (5)
v1
4 (1)
v4
4 (2)
v7
5 (2)
4 (1)
9 (3)

v3
S v1,v2 ,v5
5 (0)

_
S
图1
v6
v3,v4 ,v6 ,v7
10 (1)
则截集为
(S, S) (v1v3), (v2, v4 ), (v5, v7 ) 容量为24
5 (2)
9 (3)
v3
5 (0)
图1
4 (2) 4 (1)
v6
v7
10 (1)
图1中 (v3 , v6 ) 为零流弧,其余为非饱和弧。
3、容量网络G,若 为网络中从vs到vt的一条链,给 定
向为从vs到vt, 上的弧凡与方向相同的弧称为前向弧,凡 与其方向相反的弧称为后向弧,其集合分别用 和 表示。
调整过程
设 1 min{ci j fi j (vi , v j ) }
2 min{ fi j (vi , v j ) } min(1 , 2 )
1.令
f ij
fi fi
j j
f
i
j
(vi , v j ) (vi , v j ) (vi , v j )
2、称满足下列条件的流为可行流:
(1)容量条件:对于每一个弧(vi ,vj)∈E,有 0 ≤ fij ≤ cij 。
(2)平衡条件:
对于发点vs, 有
fsj
f js W
(vs , v j )E
(v j , vs )E
对于收点vt ,有
ft j
f jt W
(vt , v j )E
(v j , vt )E
(1 ,1)
(1 , 1)
(3 ,0)
(5 ,3)
(+ vt
v3
,1)
(5 , 1) (+ vvs 1, 4)
(2 ,1) (2 , 2) (-vv23 ,1)
图4
v2
(4 ,3) v4
(3 , 3) vs
(1 ,0)
(1 , 0)
(3 ,0)
(5 , 2) v1
(2 , 2) v3
(5 ,3)
vt 图5
对于中间点,有
fi j
f ji 0
(vi , v j )E
(v j , vi )E
可行流中 fij=cij 的弧叫做饱和弧,fij<cij的弧叫做非饱和弧。 fij>0 的弧叫做非零流弧,fij=0 的弧叫做零流弧。
5 (3)
v2
v5
13 (5)
6(3)
5 (2)
9 (5)
v1
4 (1)
v4
相关主题