网络最大流问题 PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例如:
3
vs
1
1
v4 5
3
vt
5
2
v1
2 v3
7.4.1 网络的最大流的概念 • 网络流一般在有向图上讨论
B(vi)
vi
A(vi)
• 定义网络上弧的容量为其最大通过能力,记为 cij ,弧 上的实际流量记为 fij
• 图中规定一个发点s,一个收点t
• 节点没有容量限制,流在节点不会存储
• 容量限制条件:0 fij cij
[,v s ]vs•
(1,1)(1,10)(3,0)
• vt
[1,v ] 3
[,v ] s
(5,1) 2
v1•
0 (2,2)
v• 3
(2,1) 2
[4,v ] s
[3,v ] s
[1,v ] 2
解:第一次标号及所得可增值链如图,调量q =1,调后进
行第二次标号如图。第二次标号未进行到底,得最大流如
图,最大流量v=5,同时得最小截
V5
考虑加边的圈:V1, V2, V9, V8 中,加边的长度是 4+6=10,而不加边的长度是4+5=9 ,故需改进如下。
考虑加边的圈:v4,v5,v6,v9 中,加边的长度是
3+5=8,而不加边的长度是4+2=6 ,故需改进如下。
V1
4 V8
4
V7
5
4
4
V2
6
V9
4
V6
5
2
3
V3
9
V4
5
V5
图中已无奇点,可得最优投递路线:
v2
(s,2)
v 3 (v1,2)
5(5)
6(1)
10(8)
v4 (v3 ,1)
t(v4 ,1)
v
(v2
1
,1)
9(5)
v 3 (v1,1)
8(8)
s 5(3)
(0,)
7(6)
v2 ( s ,1)
5(5) 2(0)
6(0)
9(9)
k
10(9)
v4 (v3 ,1)
k
t(v4 ,1)
该网络的最小割为
(V,V)(3,t),(2,4),最小割的5容 9量 14.为
图中的顶点都是 奇点,没有偶点,则 该图不能一笔画出。
图中的顶点有二 个是奇点,其它是偶 点,则从任一奇点出 发,则该图可以一笔 画出。从任一偶点出 发,则该图不能一笔 画出。
二、中国邮递员问题。
解中国邮递员问题的奇偶点图上作业法:具体 步骤如下:
1. 通过加重复边,消灭图中的奇点。将奇点两 两配对,在每一对奇点的通路上,均加上重复边。
(16,15)
(s+,3)(3,1)
(13,12) 6
2 (12,12) 55
(6,1)
(5,5)
(6,5)
(9,9)
33
(2,3)
(4,4)
44
(7,5)
(22,22)
tt
(19,13)
例.3:求下图中的最大流:
v2
44..04
v4
4.40
x
4.0
8.024
v3 解:增广链:
2.02 1.0 2.02
3、重复步骤 2,可能出现两种情况: (1) 节点 t 尚未标号,但无法继续标记,说明网路中已不存在 增广链,当前流 v(f) 就是最大流;所有获标号的节点在 V 中, 未获标号节点在 V 中,V 与 V 间的弧即为最小截集;算法结 束 (2)节点 t 获得标号,找到一条增广链,由节点 t 标号回溯可 找出该增广链;到第二步 第二步:增广过程
v( f ) i s
• 平衡条件:
fij
f
ji
0
i s,t
v jA(vi )
v jB(vi )
v( f ) i t
• 满足上述条件的网络流称为可行流,总存在最大可行流
(1弧 ) 按流量未 饱 分饱 和 为和 弧 fij 弧 : ficjij: cij 零流弧fij: 0
Βιβλιοθήκη Baidu
如:在前面例举的网络流问题中,若已给定一个可行流 (如括号中后一个数字所示),请指出相应的弧的类型。
2。删除过多的重复边。如果图中某条边的重复 边多于一条,则可将它的重复边删除偶数条。
3。优化重复边。使所加的重复边的总长度最小。
下面通过具体例子来说明具体计算过程:
例6.7 设有街道图如下:假如邮递员从V1点出 发,求他的最优投递路线。
解:
V1
4 V8
4
V7
5
V2
6
4
4
V9
4
V6
5
2
3
V3
9
V4
5
2
v5
感谢您的聆听!
v2 (4,3) v4
(3,3)
(5,3)
vs
(1,1)(1,1)(3,0) vt
(5,1)
(2,1)
(2v)1 可增(值2,链2()增广v3链)
D 中vs至 由 vt的, 链 记 : : 中 中的 的反 正 , 向 向 若 中 中弧 弧 弧 弧, 集 集 皆 皆则 为 非 未 D 中 称 零 饱 关于 f的
s2
13
C ( V ,V ) 3 2 5 11
(4) 流量与截量的关系
v( f) C( V1,V1)
v2 (4,3) v4
(3,3)
(5,3)
vs
(1,1)(1,1)(3,0)
vt
(5,1)
(2,1)
v1 (2,2) v3
最大流最小割定理: M( a f) x M v( iV n ,V ) C 11
§6.5 中国邮递员问题
一个邮递员从邮局出发分送邮件,要走完他负 责的所有街道,最后再返回邮局。应如何选择路线, 才能使所走的路线最短,这就是中国邮递员问题。 1962年,管梅谷先生提出中国邮递员问题。
中国邮递员问题用图论的观点来看就是: 在 一个赋权连通图中,找一个过每边至少一次的闭链 (圈),并且使闭链的权最小。它的算法与一笔画 问题有关。
1、对增广链中的前向弧,令 f=f+q(t),q(t) 为节点 t 的
标记值
2、对增广链中的后向弧,令 f=fq(t)
3、非增广链上的所有支路流量保持不变
第三步:抹除图上所有标号,回到第一步
例1 用标号法求下面网络的最大流。
[1,v ]
[1,v ]
1
2
(3,3) v2• (4,3) v•4 (5,3)
网络最大流问题
第四节 网络最大流问题
问题 已知网络D=(V,A,C),其中V为顶点
集,A为弧集,C={cij}为容量集, cij 为弧(vi,vj ) 上的容量。现D上要通过一个流f={fij},其中fij 为弧 (vi,vj )上的流量。问应如何安排流量fij可使D上 通过的总流量v最大?
v2
4
截量:截集上所有弧的容量和,记C(V, 。V)
1
1
例4 对于下图,若V1={vs,v1},请指出相应的截集与截量。
v2 (4,3) v4
(3,3)
(5,3)
vs
(1,1) (1,1)
(3,0)
vt
(5,1)
(2,1)
解:
v1 (2,2) v3
( V ,V ) ( v,v)v, ,v) , (
11
一条可增值 v 链 (4。 ,3) v
(3,3) 2
4 (5,3)
vs
(1,1)(1,1)(3,0)
vt
(5,1)
v
(2,2) v
(2,1)
(3) 截集与截量
截集(割集 V分) 为: 二将 非空 V1与 V 互 1,补 使 vs 集 V1,vt V1。
称弧 ( v集 i,vj) viV1,vjV1为 D的一个截集 V1,, V1)记 。为
一、一笔画问题
有关一笔画问题有如下结论:
1. 一个连通图中的顶点都是偶点, 没有奇点, 则该图可以一笔画出。
2. 一个连通图中的顶点恰有两个奇点,其余都 是偶点,则从任一奇点出发,则可以一笔画出该图。
3. 一个连通图中的顶点有两个以上是奇点,则 该图不能一笔画出。
图中的顶点都 是偶点,没有奇点, 则该图可以一笔画 出。
奇偶点图作业法步骤
• 构造初始可行方案:由于奇点个数必为偶数,因 此奇点必成对出现;同时由于图是连通的,因此 每一对奇点之间必存在一条链,在这条链上的各 边都加上重复边而成为新图,必定是无奇点的欧 拉图。
• 寻找改进可行方案:在两奇点间检查所有链,若 某链的长度小于已加重复边的长度,则在该链的 每边加上重复边,去掉原重复边。
– (2) (i, j)是前向弧且未饱和,则节点 j 标号为[i+,q(j)], 表示从节点 i 正向流出,可增广 q(j)=min[q(i),cijfij] ;
– (3) (j, i)是后向弧,若 fji=0,则节点 j 不标号;
– (4) (j, i)是后向弧,若 fji>0,则节点 j 标号为[i,q(j)], 表示从节点j 流向i,可增广 q(j)=min[q(i),fji] ;
(4+,2)
最大流最小截集的标号法举例
(9,9)
(14,14) 11
(15,10) s
33
(6,5)
(16,15)
(3,1)
(13,12) 66
2 (12,10) 55
(6,3)
(5,5)
44
(4,4)
(7,5)
(22,22)
t
(4+,2)
(19,11)
最小截集
(14,14)
11
(s+,) s (15,12)
(7,5)
(22,22)
tt
(19,10)
(4+,1)
(9,9)
(14,14) 11
(s+,) s (15,10)
3
(6,5)
(16,15)
(3,1)
(s+,5)
2 (12,10)
(13,12) 66 55
(22,22)
tt
(7,5)
(5,5() 2+,2)
(6,3)
(19,11)
44
(4,4)
(5,2)
• 重复以上步骤,直到任意两奇点间加重复边的链 是最短的为止。
求解中国邮递员问题:例子
v2
1 2
v3 4
5 1
v1
3 22
v6
6 v4 3 2
v5
例子的初始可行解
v2
5
1 2
v3 4
5 1
v1
3 22
v6
6 v4 3 2
2
v5
例子的修正解
v2
1
1 2
v3 4
5 1
v1
3 22
v6
6 v4 3 2
7.046
6.0 y
9.20
v5
(1) (2)
v2
4
x
x 8 v3
(3)
x
6
v3
4
v4 7
y
2
v4
3
y
2 v5 9 y
Vf ;最大流 4+4= 8 6+2=8
练习 用标号法求下面网络从s到t的最大流量,并找出该网络的 最小割.
v
(v2,2)
1
9(4)
8(8)
2(0)
s 5(4)
(0,)
7(5)
9(9)
(5) 最大流的判别条件
可行f是 流最大流的充D中 要不 条存 件在 是 f的 关
可增广链。
7.4.2 确定网络最大流的标号法
最大流最小截的标号法步骤
• 第一步:标号过程,找一条增广链
– 1、给源点 s 标号[s+,q(s)=],表示从 s 点有无限流出潜力
– 2、找出与已标号节点 i 相邻的所有未标号节点 j,若 – (1) (i, j)是前向弧且饱和,则节点 j 不标号;
( V ,V ) ( v,v)v, ,v) 。 (
11
s2
13
例2 最大流最小截集的标号法举例
(s+,)
(14,14) 11 ss (15,9)
(16,15)
(3,1)
(s+,6)
22 (12,10)
(13,12) 66
5
(6,3)
(5,5)
(6,6)
(9,9)
33
(2,6)
(4,3)
44
(3+,1)