运筹学-4最大流
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当收点已得到标号时,说明已找到增广链。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 8 of 12
3. 依据vi 的第一个标号反向跟踪得到一条增广链; 依据vi 的第二个标号求最小值得到调整量θ
4. 调整流量
截量C(V1,V1) 4 2 6 9 21
44 ②
6 6
11
④
76
① 3
8
40 2
2
60
⑥ 91
③
上图所示的截集为
22
⑤
(V1,V1) (2,4), (2,5), (3,4), (3,5) 截量C(V1,V1) 4 1 2 2 9
所有截量中此截量最小且等于最大流量,此截集称为最小截集。
后向弧:与链的方向相反的弧称为后向弧。
增广链 设 f 是一个可行流,如果存在一条从vs到vt的链,满足:
1.所有前向弧上fij<Cij 2.所有后向弧上fij>0 ②
43
想一想,这 ④ 是一条增广
链吗?
则该链称为增广链
容量
①
4 2 前向弧 64
⑥
流量
85
③
后向弧 ⑤
96
§7.4 最大流问题
Maximum Flow Problems
【定理】最大流量等于最小截集的截量。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 5 of 12
链:从发点到收点的一条路线(弧的方向不一定都同向)称为链。 从发点到收点的方向规定为链的方向。 前向弧:与链的方向相同的弧称为前向弧。
__
截集 将图G=(V,E)的点集分割成两部分 V1、V 1 并且
__
__
__
vs V1及vt V 1,则箭尾在V1箭头在V 1的弧集合(V1,V 1〕
称为一个截集,截集中所有弧的容量之和称为截集的截量。
下图所示的截集为 (V1,V1) (1,2), (3,4), (3,5) 截量C(V1,V1) 6 2 2 10
容量:在某时期内弧(i,j)上的最大通过能力。记为C (i,j)或Cij 在上图中,C12=4,C13=8,C23=4等,怎样安排运输方案,
才能使在某一时期内从v1运到v6的物资最多,这样的问题就是最大 流问题,
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 2 of 12
流量:弧(i,j)的实际通过量,记为f (i,j)或f ij
可行流:如果f ij满足: 1.对于所有弧(i,j)有0≤f ij≤Cij
2.对于发点vs有: fsj fis v
j
i
3.对于收点vt有:
fit ftj v
i
j
4.对于中间点点vm有:
Ch7 Graph and Network
2020年6月20日星期六 Page 9 of 12
2.标号 3. 得到增广链
∞①
64 82
2
② 42
③
Ch7 Graph and Network
2020年6月20日星期六 Page 6 of 12
【定理】设网络G的一个可行流f,如果存在一条从vs到vt的增广链, 那么就可改进一个值更大的可行流f1,并且val f1>val f
【证】设val f=v
令1 min C(i, j)-f (i, j) | (i, j)是前向弧 2 min f (i, j) | (i, j)是后向弧 =min 1,2 | 无前向弧时1 ,无后向弧2
基本概念
§7.4 最大流问题
Maximum Flow Problems
②
4
4
1
Ch7 Graph and Network
2020年6月20日星期六 Page 1 of 12
④ 7
①
4
6
⑥
网络中所有流起源于一 8
2
个叫做发点的节点(源)
③
2
所有的流终止于一个叫做收点的节点
9 ⑤
其余所有的节点叫做中间点(转运点) 通过每一条弧的流只允许沿着弧的箭头方向流动 目标是使得从发点到收点的总流量最大
6 6 ①
3 8
② 41
44 11
2 2
③
22
请看演示
④
76
60 ⑤
⑥ 93
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 4 of 12
又如下图所示的截集为 (V1,V1) (2,4), (3,4), (5,4),(5,6)
fim
f mj
i
j
则称流量集合{f ij}为网络的一个可行流,简记为 f , v称为可 行流的流量或值,记为v(f).
以下假设网络是一个简单连通图。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 3 of 12
f (i, j)
f1 (i,
wenku.baidu.com
j)
f
(i,
j)
f
(i,
j)
(i, j)不在增广链上 (i, j)是前向弧 (i, j)是后向弧
得到新的可行流,去掉所有标号,从发点重新标号寻 找增广链,直到收点不能标号为止。
进入演示和练习
§7.4 最大流问题
Maximum Flow Problems
【例】求下图v1 到v6 的最大流及最大流量 【解】1. 通过观察得到初始可行流
对改进的可行流f1 :
f (i, j)
f1 (i,
j)
f
(i,
j)
f
(i,
j)
(i, j)不在增广链上 (i, j)是前向弧 (i, j)是后向弧
则有v( f1) v( f ) v( f )
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 7 of 12
【定理】可行流是最大流当且仅当不存在发点到收点的增广链
最大流的标号算法
步骤 1. 找出第一个可行流,例如所有弧的流量fij =0 2. 用标号的方法找一条增广链 A1:发点标号(∞), A2:选一个点 vi 已标号并且另一端未标号的弧沿着某 条链向收点检查: 如果弧的方向向前并且有fij<Cij,则vj标号(Cij-fij) 如果弧的方向指向vi并且有fji>0,则vj标号(fji) 当收点不能得到标号时,说明不存在增广链,计算结束。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 8 of 12
3. 依据vi 的第一个标号反向跟踪得到一条增广链; 依据vi 的第二个标号求最小值得到调整量θ
4. 调整流量
截量C(V1,V1) 4 2 6 9 21
44 ②
6 6
11
④
76
① 3
8
40 2
2
60
⑥ 91
③
上图所示的截集为
22
⑤
(V1,V1) (2,4), (2,5), (3,4), (3,5) 截量C(V1,V1) 4 1 2 2 9
所有截量中此截量最小且等于最大流量,此截集称为最小截集。
后向弧:与链的方向相反的弧称为后向弧。
增广链 设 f 是一个可行流,如果存在一条从vs到vt的链,满足:
1.所有前向弧上fij<Cij 2.所有后向弧上fij>0 ②
43
想一想,这 ④ 是一条增广
链吗?
则该链称为增广链
容量
①
4 2 前向弧 64
⑥
流量
85
③
后向弧 ⑤
96
§7.4 最大流问题
Maximum Flow Problems
【定理】最大流量等于最小截集的截量。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 5 of 12
链:从发点到收点的一条路线(弧的方向不一定都同向)称为链。 从发点到收点的方向规定为链的方向。 前向弧:与链的方向相同的弧称为前向弧。
__
截集 将图G=(V,E)的点集分割成两部分 V1、V 1 并且
__
__
__
vs V1及vt V 1,则箭尾在V1箭头在V 1的弧集合(V1,V 1〕
称为一个截集,截集中所有弧的容量之和称为截集的截量。
下图所示的截集为 (V1,V1) (1,2), (3,4), (3,5) 截量C(V1,V1) 6 2 2 10
容量:在某时期内弧(i,j)上的最大通过能力。记为C (i,j)或Cij 在上图中,C12=4,C13=8,C23=4等,怎样安排运输方案,
才能使在某一时期内从v1运到v6的物资最多,这样的问题就是最大 流问题,
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 2 of 12
流量:弧(i,j)的实际通过量,记为f (i,j)或f ij
可行流:如果f ij满足: 1.对于所有弧(i,j)有0≤f ij≤Cij
2.对于发点vs有: fsj fis v
j
i
3.对于收点vt有:
fit ftj v
i
j
4.对于中间点点vm有:
Ch7 Graph and Network
2020年6月20日星期六 Page 9 of 12
2.标号 3. 得到增广链
∞①
64 82
2
② 42
③
Ch7 Graph and Network
2020年6月20日星期六 Page 6 of 12
【定理】设网络G的一个可行流f,如果存在一条从vs到vt的增广链, 那么就可改进一个值更大的可行流f1,并且val f1>val f
【证】设val f=v
令1 min C(i, j)-f (i, j) | (i, j)是前向弧 2 min f (i, j) | (i, j)是后向弧 =min 1,2 | 无前向弧时1 ,无后向弧2
基本概念
§7.4 最大流问题
Maximum Flow Problems
②
4
4
1
Ch7 Graph and Network
2020年6月20日星期六 Page 1 of 12
④ 7
①
4
6
⑥
网络中所有流起源于一 8
2
个叫做发点的节点(源)
③
2
所有的流终止于一个叫做收点的节点
9 ⑤
其余所有的节点叫做中间点(转运点) 通过每一条弧的流只允许沿着弧的箭头方向流动 目标是使得从发点到收点的总流量最大
6 6 ①
3 8
② 41
44 11
2 2
③
22
请看演示
④
76
60 ⑤
⑥ 93
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 4 of 12
又如下图所示的截集为 (V1,V1) (2,4), (3,4), (5,4),(5,6)
fim
f mj
i
j
则称流量集合{f ij}为网络的一个可行流,简记为 f , v称为可 行流的流量或值,记为v(f).
以下假设网络是一个简单连通图。
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 3 of 12
f (i, j)
f1 (i,
wenku.baidu.com
j)
f
(i,
j)
f
(i,
j)
(i, j)不在增广链上 (i, j)是前向弧 (i, j)是后向弧
得到新的可行流,去掉所有标号,从发点重新标号寻 找增广链,直到收点不能标号为止。
进入演示和练习
§7.4 最大流问题
Maximum Flow Problems
【例】求下图v1 到v6 的最大流及最大流量 【解】1. 通过观察得到初始可行流
对改进的可行流f1 :
f (i, j)
f1 (i,
j)
f
(i,
j)
f
(i,
j)
(i, j)不在增广链上 (i, j)是前向弧 (i, j)是后向弧
则有v( f1) v( f ) v( f )
§7.4 最大流问题
Maximum Flow Problems
Ch7 Graph and Network
2020年6月20日星期六 Page 7 of 12
【定理】可行流是最大流当且仅当不存在发点到收点的增广链
最大流的标号算法
步骤 1. 找出第一个可行流,例如所有弧的流量fij =0 2. 用标号的方法找一条增广链 A1:发点标号(∞), A2:选一个点 vi 已标号并且另一端未标号的弧沿着某 条链向收点检查: 如果弧的方向向前并且有fij<Cij,则vj标号(Cij-fij) 如果弧的方向指向vi并且有fji>0,则vj标号(fji) 当收点不能得到标号时,说明不存在增广链,计算结束。