第4节 网络最大流问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5
v2
3 4 1
5 2
非零流弧 fij≠0
v4
11 6
v1
8 3
2 1 3 3
v6
2 17
5
6 3
v3
v5
2. 增广链
f为一可行流,u为vs至vt的链,令 u+={正向弧}, u-={反向弧}。若u+中弧 皆非饱和,且u-中弧皆非零,则称u为关于f 的一条增广链。
10 5
v2
3 4 1
5 2
v4
11 6
v2
(4,4)
v4
Vs
Vt
[0, +∞]
v1
(2,2)
v3
[vs , 3] 此时标号无法进行,当前流为最大流,最大流量为5; 最小截为{(vs,v2), (v1,v3)},截量为:5
课堂练习
有三个发电站v1,v2,v3,发电能力分别为15、10和 40兆瓦,经输电网可把电力送到8号地区,电网能力如 图所示。求三个发电站输到该地区的最大电力。
v5
2. 增广链 f为一可行流,u为vs至vt的链,令 u+={正向弧}, u-={反向弧}。若u+中弧 皆非饱,且u-中弧皆非零,则称u为关于f的 一条增广链。
10 5
v2
3 4 1
5 2
v4
11 6
v1
8 3
2 1 3 3
v6
1 17
5
6 3
v3
v5
2. 增广链 f为一可行流,u为vs至vt的链,令 u+={正向弧}, u-={反向弧}。若u+中弧 皆非饱,且u-中弧皆非零,则称u为关于f的 一条增广链。
Vs
Vt
[0, +∞]
[vs, 4]
v1
(2,2)
v3
(4) 重复(2),(3),依次进行的结局可能为 vt已标号,得到一条增广链u(反向追踪),转(5); vt未标号,且无法再标号,此时的流为最大流,此时的截集为最小截。
[-v1, 1]
v2
(4,3)
v4
[v2 , 1] [v4 , 1]
Vs
Vt
④VA={vs ,v3},截集为{……},截量为:12
⑤VA={vs ,v1,v2},截集为{……},截量为:5
v1
vs
v2 (2,2) v3
vt
(1)所有的截集: ①VA={vs},截集为{(vs,v1), (vs,v2)},截量为:6
②VA={vs ,v1},截集为{(vs,v2), (v1,vt)},截量为:7

网络中存在流量限制时,求解一条线路使 得从起点与终点之间可通过的流量最大。
10 5 v1 8 3
v2 3 4 1 v3
5 2 2
v4 11 6 3 3 v5 17
5
1
6 3
v6
2
一、一般提法:
设有网络D=(V, A, C),其中C={cij}, cij为弧(vi,vj) 上的容量,现在D上要通过一个流f={fij}, fij为弧
10 5
v2
3 4 3
5 2
v4
11 6
v1
8 3
0 1 3 3
v6
2 17
5
6 5
v3
v5
3. 截集与截量
把V分成两部分:VA和VB(VA ∩VB= φ, VA ∪VB= V) 且vs∈ VA、 vt∈ VB,则弧集(VA,VB)称为D的截集。
截集上的容量和称为截量,记为C(VA,VB) 。
例 若VA={vs,v1},则 截集为:{(vs,v2), (v1,v2), (v1,v3), (v1,v4)}; 截量为: C(VA,VB) =8+4+5+3=20
v1
8 3
2 1 3 3
v6
2 17
5 6 3
v3
v5
2. 增广链 f为一可行流,u为vs至vt的链,令 u+={正向弧}, u-={反向弧}。若u+中弧 皆非饱,且u-中弧皆非零,则称u为关于f的 一条增广链。
10 5
v2
3 4 1
5 2
v4
11 6
v1
8 3
2 1 3 3
v6
2 17
5
6 3
v3
一旦vt被标号,表明得到一条从vs到vt的增广链,转入
2.调整过程 如果所有标号已检查过,而标号不能进行下去,则算法 结束,这时可行流为最大流。
网络最大流问题—标号法

1.标号过程 2.调整过程 利用反向追踪法找出增广链。调整量为 θ= l(vt)
* fij * * fij fij f* ij vi , v j
[-v1 , 1]
v2
(4,3)
v4
Vs [0 , +∞] (2,2)
Vt v1 v3
[vs , 4]
(3)考虑所有弧(vi , vj)或(vj , vi) ,其中vi∈ VA, vj∈ VB,若该弧为
流出未饱弧,则给vj标号[vi , θj],其中θj=min{θi, cij- fij}
流入非零弧,则给vj标号[-vi , θj] ,其中θj= min{θi, fij}
10
0
1515
10
v2
40 10
v5
v4
10 10 10 20
v0
10 15 15 40 10
v1 15
15
v6
15 15 45
v8
25
v3 30
10
v7
实际应用
例1、图中A、B、C、D、E、F分别表示陆地和岛屿,① ②……⒁表示桥梁及其编号。河两岸分别互为敌对的双方 部队占领,问至少应切断几座桥梁(具体指出编号)才能 达到阻止对方部队过河的目的。试用图论方法进行分析。 ② ① ④ B C ⑥ A ⑿
例. 如图所示的网络中,弧旁数字为(cij ,fij)
v1
vs
(2,2)
vt
v2
v3
(1)确定所有的截集; (2)求最小截集的容量; (3)证明图中的流为最大流;
v1 vs
vt (2,2)
v2
v3
(1)所有的截集:
① VA={vs},
截集为{(vs,v1), (vs,v2)},截量为:6
v1
vs
流出未饱和弧(vs , vj) ,给vj标号[vs ,θj],其中θj=csj- fsj 或流入非零弧 (vj , vs) ,给vj标号[-vs, θj] ,其中θj=fsj
v2
(4,3)
v4
Vs
Vt
[0 , +∞]
[vs, 4]
v1
(2,2)
v3
(2)把节点集V分为
VA:已标号点集 VB:未标号点集
求最大流方法 ——Ford and Fulkerson标号法 理论依据:定理8 可行流f是最大流 不存在关于f的增广链
网络中的所有点:标号点和未标号点。 标号点:已检查和未检查点。 标号点包括两部分:第一个标号表明它的标 号的来源,以便找出增广链;第二个标号是 为确定增广链的调整量用。
标号法的思路

v , v v , v
i j i j

,
l vt
去掉所有的标号,对新的可行流f*重新进行标号过程。
例. 图中网络弧旁数字为(cij ,fij),用标号法求最大流。
v2
(4,3)
v4
Vs
Vt v1 (2,2) v3
[0,+∞] [vs, 4]
步骤: (1)给vs标号为[0,+∞], 选与vs关联的
Vi 所有点
未标号 未检查
Vi
标号 未检查
标号 考查 (Vi, Vj) 检查 Vj 标号 未检查
所有
标号点 检查
注: 给发点Vs标上(0,+∞),则Vs成为标号未检查
网络最大流问题—标号法
1.标号过程 给vs标上(0,+∞),这时vs是标号而未检查点,其余为 未标号点。 若在弧(vi,vj)上,fij<cij,则给vj标(vi,l(vj)), 其中 l v j min l vi , cij fij 若在弧(vj,vi)上,fji>0,则给vj标(-vi,l(vj)), 其中l v j min l vi , f ji vi成为标号而已检查过的点,重复上述步骤,
10 5 5 2 3 4 1 3
v1
v3
11 6
vs
8
2 1
5
6 3
3 3
vt
2 17
v2
v4
4. 流量与截量的关系
v1 vs v2 v3 vt
任一可行流的流量都不会超过任一截集的截量

v(f)=f (VA,VB) - f (VB,VA) ≤ f (VA,VB) ≤ C (VA,VB) )
最大流最小截定理:网络的最大流量等于最小截量。
[-v1 , 1]
v2
(4,3)
v4
Vs [0 , +∞] (2,2)
Vt
[vs , 4]
v1
v3
(4) 重复(2),(3),依次进行的结局可能为 vt已标号,得到一条增广链u(反向追踪),转(5); vt未标号,且无法再标号,此时的流为最大流,此时的截集为最小截。
[-v1, 1]
v2
(4,3)
vt
v2
(2,2)
v3
(1)所有的截集:
① VA={vs},截集为{(vs,v1), (vs,v2)},截量为:6
②VA={vs ,v1},截集为{(vs,v2), (v1,vt)},截量为:7
v1
vs
v2 (2,2) v3
vt
(1)所有的截集:
① VA={vs},截集为{(vs,v1), (vs,v2)},截量为:6
[vs, 4]
v1
(2,2)
v3
(5) 调整。取 l (vt ) min{,令 j}
v j u
[-v2, 1]

f ij ' f ij f ij f ij
(v i , v j ) u
{ f ij' },转(1)。 (v i , v j ) u ,得新流
③VA={vs ,v2},截集为{……},截量为:7
④VA={vs ,v3},截集为{……},截量为:12
⑤VA={vs ,v1,v2},截集为{……},截量为:5
… …
v1 vs v2 (2,2) v3 vt
(2)最小截量min C (VA,VB)= 5 (3)∵v(f*)=5= min C (VA,VB) ∴ f*是最大流。
④Va={vs ,v3},截集为{……},截量为:12
v1
vs
v2 (2,2) v3
vt
(1)所有的截集:
①VA={vs},截集为{(vs,v1), (vs,v2)},截量为:6
②VA={vs ,v1},截集为{(vs,v2), (v1,vt)},截量为:7
③VA={vs ,v2},截集为{……},截量为:7
平衡约束
注:满足两约束条件的流f称为可行流,v(f)称为该可行流的流量
试分析下图是否是可行流?
v2
3 1 4 1 8 1 5 6 3 5 2
10
5
v4
11 6
v1
3
3 3
v6
2 17
v3
v5
三、基本概念与定理
饱和弧 fij=cij
1. 弧按流量分为
非饱和弧 fij<cij 零流弧 fij=0
10
②VA={vs ,v1},截集为{(vs,v2), (v1,vt)},截量为:7
③VA={vs ,v2},截集为{……},截量为:7
v1
vs
v2 (2,2) v3
vt
(1)所有的截集:
① VA={vs},截集为{(vs,v1), (vs,v2)},截量为:6
②VA={vs ,v1},截集为{(vs,v2), (v1,vt)},截量为:7 ③VA={vs ,v2},截集为{……},截量为:7
(vi,vj)上的流量。
问题:如何安排fij,可使网络D上的总流量最大?
二、最大流问题的模型
10 5 Vs v2 3 5 2 2 v4 116
8
4 1
3 v3
5
1
6 3
3 3
v5 17
Vt 2
max v=v(f)
0 f ij cij
s.t.
容量约束
f
ij j j
v( f ) i s f ji v( f ) i t 0 i s, t
v4
[v2 , 1]
Vs [0 , +∞] (2,2)
Vt
[vs, 4]
v1
v3
V3
(4) 重复(2),(3),依次进行的结局可能为 vt已标号,得到一条增广链u(反向追踪),转(5); vt未标号,且无法再标号,此时的流为最大流,此时的截集为最小截。
[-v1, 1]
v2
(4,3)
v4
[v2, 1] [v4, 1]
ຫໍສະໝຸດ Baidu(v i , v j ) u
[-v1, 1] v
Vs
(4,3)
2
[-v v4 2, 1]
Vt
[v4, 1]
[0, +∞]
[vs, 4]
v1
(2,2)
[-v2, 1]
调 整 (4,4)
v3
v2 Vs v1
v4 Vt
(2,2)
v3
v2
(4,4)
v4
Vs
Vt
[0 ,+∞]
v1
(2,2)
v3
[vs, 3]
图与网络优化
周荣喜 北京化工大学经济管理学院
§4 网络最大流问题
公路系统中的车辆流
供水系统中的水流
控制系统中的信息流
问题背景
金融系统中的现金流
网络最大流问题—问题的提出
v2
10 5
v4
11 3
3
4 5
v1
8
v6
17
v3
6
v5
例:上图为V1到V6的一交通网,权表示相应运输线的最大 通过能力,制定一方案,使从V1运到V6的产品数量最多。
[0, +∞]
[vs, 4]
v1
(2,2)
v3
(4) 重复(2),(3),依次进行的结局可能为 vt已标号,得到一条增广链u(反向追踪),转(5); vt未标号,且无法再标号,此时的流为最大流,此时的截集为最小截。
[-v1, 1]
v2
(4,3)
v4
[v2, 1] [v4 , 1]
Vt
Vs
[0, +∞]
相关文档
最新文档