应用三:网络流问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cij=5 fij=0 v2
(v1,v2)是0流弧
4、如果fij>0,该弧是非0弧; v1
cij=5 fij>0 v2 (v1,v2)是非0弧
v2
13 (5)
5 (3) 6(3) 5 (2)
v5
4 (2)
4 (1)
9 (5)
v1
9 (3)
4 (1) 5 (2)
Leabharlann Baiduv4
5 (0)
v7
10 (1)
v3
v6
数学建模
图论方法专题
网络流问题
把一种产品从产地通过铁路或公路网运往市场, 交通网络中每一段的运输能力有一定限度,问如 何安排,使得运输最快? 这个问题在运输调度工作中是重要内容之一,同 时也是运筹学许多问题的模型。
中转站a 4 2 3 中转站b 2 1 2 4 3
产地
3
4
市场
中转站c 2 中转站d
c' ( y, t ) , y Y
对有多个发点和多个收点的网络, 可以另外虚设一个总发点 和一个总收点, 并将其分别与各发点、收点连起来(见图) ,就可以转换为只含一个发点和一个收点的网络。
s t
s’
t’
所以一般只研究具有一个发点和一个收点的网络
x1
1,1 2, 2
6,1 3, 0
v1
4, 0
基本概念
定义1:称N=(V,E,c,X,Y)为一个网络,如果: (1)G=(V,E)是一个有向图;
(2)c是E上的非负函数,称为容量函数,对每条边e,c(e) 称为边e的容量(最大通过能力);
(3)X与Y是V的两个非空不交子集,分别称为G的发点集 与收点集,I=V\(XUY) 称为的中间点集。X的顶点称为发点或 源,Y的顶点称为收点或汇,I的顶点称为中间点。 若|X|>1,|Y|>1称为多源多汇网络;若|X|=1,|Y|=1称为单源 单汇网络。
割集的意义:若把某一割集的弧从网络中丢去,则 从vs到vt 便不存路,即割集是从vs到vt的必经之道!
A1 {vs , v1 , v2 }, A {v3 , v4 , vt }
割集 {(v1 , v3 ),(v2 , v4 )} 割集的容量为 9+9=18
A
8(8)
v1
5(4)
K
9(4)
v3
下图所示就是一个网络流图:
容量 a 源点 s 4 2 3 4 1 3 b 2 3
汇点 t
4
2
2 d
c
中间点
定义2:设网络N中任一条边e有流量 f(e)(实际通过能力), 称集合 f ={f(e)}为网络N上的一个流. 满足下述条件的流 f 称为可行流: ① (容量限制条件)对每一边e ,有0≤ f(e)≤C(e); ② (流量守衡条件)对于中间点v有流入该结点的流量和等
定义4:设f是网络N的一个流,则f的流的价值Valf定义为
Valf =
即流的价值是发点集的流出量,也是收点集的流入量。 即总流量=发点的净输出量=收点的净输入量 注:任何一个多源多汇网络N=(V,E,c,X,Y)都等价与一个单源单
eN ( X )
f (e)
eN (Y )
f (e)
A {s}
A
割集
割集容量 15 21 17 18 19
24 14 25 15
最大流与最小割的关系:
定理 1:设 f 是 N 的流, ( A, A) 是一个割,则: (1) Val f f (e) f (e)
eN ( A) eN ( A)
(2) Val f C( A, A) 。 式(1)表明运输网络的一个自源 s 到汇 t 的流值,等于任何分离 s 和 t 的割中流的净值,即割的自 A 到 A 的弧中的流减去自 A 到 A 的流的总体。 定理 2(最大流最小割定理) (1)设 f 是流,K 是割,若 Val f =C ( K ) ,则 f 是最大流,K 是 最小割。 (2)网络 N 的最大流的价值等于最小割的容量。 上述定理是图论的重要核心,关于图的许多结果,在适当的选择 网络后,应用这个定理往往能够轻易地获得解决。
即 P 中的每一条弧都是非饱和弧
(v i , v j ) P 即 P 中的每一条弧都是非零流弧
则称P为从vs到vt 的关于f 的一条增广链。
f2>0 s f4<c4 t
f1<c1
f3>0
f5<c5
v2
10,5 3,2 4,1 8,3 5,1
5,2
3,3
v4
11, 6
v1
v6
17,2
1, 0 5, 3
5,1
1, 0 2,1
y1
2, 2
v4
3, 2
3,1
s
4, 4
6, 0 6, 4
y2
x2
v3
y3
x1
,2
6,1
v1
3,0
5,1 4,0
1,0
y1
2,1
1,1
2,2
1,0
2,2
s
,4
v4
3,2
5,3
3,1
s 6,0
4,4
y2
6,4
,6
,0
t ,0
x2
v3
y3
总结:对于实际的网络系统上的流,有几个显著的特点: (1)发点的净流出量和收点的净流入量必相等。 (2)每一个中间点的流入量与流出量的代数和等于零。 (3)每一个弧上的流量不能超过它的最大通过能力(即容量)
eN - ( v )
f +(v)= f -(v)
容量 a (4,3) s (2,1) (3,0) (3,2) b (3,2)
流量fat
(2,2) (2,2) (4,4)
t
(4,3)
(1,1) c
(2,2) d
例:单源单汇网络和多元多汇网络。
a
3, 3 5, 4
c
3, 3
s
4, 4
5,1
2, 0
1,1
5, 4
t
b
3, 3
d
x1
1,1
2, 2
6,1 3, 0
v1
4, 0
1, 0 5, 3
5,1
1, 0 2,1
y1
2, 2
v4
3, 2
3,1
s
4, 4
6, 0
y2
6, 4
x2
v3
y3
f(vi,vj)为弧(vi,vj)上的流量,简记为fij.如果 f 是可行流,则对收、发点 v t、 v s 有 ∑fsi =∑fjt =Wf , 即 从vs点发出的物质总量 = vt点输入的量. Wf 称为网络流 f 的总流量. 上述概念可以这样来理解,如G是一个运输网络,则发点vs表示发 送站,收点vt表示接收站,中间点vk表示中间转运站,可行流 fij 表示某 条运输线上通过的运输量,容量Cij表示某条运输线能承担的最大运 输量,Wf 表示运输总量.
2(0)
9(9)
v1, v2 , v3 , v4 , t (s, v1 ),(s, v2 ) v2 , v3 , v4 , t {s, v1} (s, v2 ),(v1, v2 ),(v1 , v3 ) v1, v3 , v4 , t {s, v2 } (s, v1 ),(v2 , v4 ) {s, v1 , v2 } v1, v3 , v4 , t (v1, v3 ),(v2 , v4 ) {s, v1 , v3} v2 , v4 , t (s, v2 ),(v1 , v2 ),(v3 , v2 ),(v3 , t ) {s, v2 , v4 } v1, v3 , t (s, v1 ),(v4 , v3 ),(v4 , t ) {s, v1 , v2 , v3} v1, v2 , v3 , v4 , t (v2 , v4 ),(v3 , t ) {s, v1 , v2 , v4 } (v1, v3 ),(v4 , v3 ),(v4 , t ) v4 , t {s, v1 , v2 , v3 , v4 } {(v3 , t ), (v4 , t )} t
可行流总是存在的.比如所有边的流量 fij = 0就是一个可行流(称 为零流).
AV
定义3:设f是网络N的一个流, A V ,则称 f +(A)
- f -(A)为流出A的净流量
f -(A)
注:
- f +(A)为流入A的净流量。
(1)流入、流出任何中间点的净流量为0; (2)流出发点集 的净流量等于流入收点集 的净流量。
正向弧 正向弧:弧的方向与链的方向一致,正向弧的全体记作 P+; 反向弧 反向弧:弧的方向与链的方向相反,反向弧的全体记作P 。
非饱和弧 非0流弧 增广链:f 是一个可行流,如果满足:
0 f i j ci j 0 f i j ci j (v i , v j ) P
8(8)
v1
5(4)
9(4) 2(0)
v3
6(1)
5(5)
vs
7(5)
vt
10(8)
v2
9(9)
v4
最大流问题
所谓最大流问题就是在容量网络中寻找流量最大 的可行流。 最大流问题实际上是一个线性规划问题。 但利用它与图的密切关系,可以利用图直观简便 地求解。
最大流问题
最大流:设N=(V,E,c,X,Y)是一个网络,f是一个流,若不 存在流f ’,使Val f ’> Val f ,则称f为的最大流。 割:给定网络N=(V,E,c,X,Y) ,若点集V被划分为两个非空 互补集合A和A,使 s∈A ,t∈A,记以A中的点为始点, A中的点为终点的弧集(A,A)称为(分离s和t的)割集(又 称截集)。 割集的容量:是割集中各弧的容量之和,记作:cap(A,A) 最小割:容量最小的割
汇网络N’=(V’,E’,c,X’,Y’) 。在解决实际问题时,常把多源多汇
网络转化为单源单汇网络。 (1) V ' V { s, t } ,s,t分别是N’的发点与收点;
(2) E' E {( s, x) | x X } {( y, t ) | y Y }
(3) c' (e) c(e), e E c' ( s, x ) , x X
图中 ( v 3 , v 6 ) 为零流弧,都是非饱和弧。
链及可增广链 •链
8(8)
v1
5(4)
9(4) 2(0)
v3
6(1)
5(5)
在最大流问题中,研究的是有向网络图。但是在求最大流 7(5) 10(8) 的方法中,则要使用无向网络中的链。 v2 v4
9(9)
vs
vt
链的方向:若P是网络中从源vs到汇vt的一条初等链(点、边 不重复的有向路),定义链的方向为从vs到vt ,则链上的弧 (有向边)分为两类:
v3
P=(v1,v2,v3,v4,v5,v6)
6,3
v5
反向弧
P+={(v1,v2) ,(v2,v3), (v3 , v4),(v5,v6)}
P- ={(v5,v4)}
v2
13 (5)
5 (3)
6(3) 5 (2)
v5
4 (2)
4 (1)
9 (5)
v1
9 (3)
4 (1) 5 (2)
v4
5 (0)
于流出该结点的流量和, f (e)
eN ( v )
其中:N+(v)表示v的所有出弧的集, N -(v)表示v的所有入弧的 f (e) 流出点v的流量, f -(v)= f (e)流入 集。记 f +(v)= 点v的流量,则
eN ( v )
eN ( v )
f (e), v I ,
6(1)
5(5) A
vs
7(5)
2(0)
vt
10(8)
v2
K
9(9)
v4
这里(v3,v2) 不属于此割集
考虑割线的不同画法
8(8)
v1
9(4)
v3
5(5)
6(1) v 由于有限网络的割集只有有限多个,则割集容量的集 vs 5(4) t C0 min{C( A, A)} 合C ( A1 , A) 是有限的实数集合,令 7(5) 10(8) v v 称割集容量为C0的割集为D的最小割集。(瓶颈 2 4 )
v7
10 (1)
v3
v6
P v1v 2 v 3 v 6 v 7
P ( v1 , v 2 ), ( v 3 , v 6 ), ( v 6 , v 7 ) P ( v 3 , v 2 )
P 是一个增广链
显然图中增广链不止一条
所谓可增广链,是指这条路径上的流可以修改,通过修改, 使得整个网络的流值增大。 可增广调整: (1)不属于可增广路P的弧(vi,vj)上的流量一概不变,即f 'ij=fij (2)可增广路P上的所有弧(vi,vj)上的流量按下述规则变化; , 在前向弧(vi,vj)上,f 'ij=fij + q 在后向弧(vi,vj)上, f 'ij=fij - q q称为可增广量,它应该按照下述原则确定: q 既要取得尽量 大,又要使变化后的fij仍满足可行流的两个条件——容量限制条 件和平衡条件。
弧关于流的分类
设 f { fij }是网络N的一个可行流
1、如果fij=cij,该弧是饱和弧;
v1
cij=5 fij=5
v2
(v1,v2)是饱和的
2、如果0≤fij<cij,该弧是非饱和弧; v1
cij=5 fij=3
v2 (v1,v2)是不饱和的
间隙为12=c12-f12=5-3=2
3、如果fij=0,该弧是0流弧; v1
(v1,v2)是0流弧
4、如果fij>0,该弧是非0弧; v1
cij=5 fij>0 v2 (v1,v2)是非0弧
v2
13 (5)
5 (3) 6(3) 5 (2)
v5
4 (2)
4 (1)
9 (5)
v1
9 (3)
4 (1) 5 (2)
Leabharlann Baiduv4
5 (0)
v7
10 (1)
v3
v6
数学建模
图论方法专题
网络流问题
把一种产品从产地通过铁路或公路网运往市场, 交通网络中每一段的运输能力有一定限度,问如 何安排,使得运输最快? 这个问题在运输调度工作中是重要内容之一,同 时也是运筹学许多问题的模型。
中转站a 4 2 3 中转站b 2 1 2 4 3
产地
3
4
市场
中转站c 2 中转站d
c' ( y, t ) , y Y
对有多个发点和多个收点的网络, 可以另外虚设一个总发点 和一个总收点, 并将其分别与各发点、收点连起来(见图) ,就可以转换为只含一个发点和一个收点的网络。
s t
s’
t’
所以一般只研究具有一个发点和一个收点的网络
x1
1,1 2, 2
6,1 3, 0
v1
4, 0
基本概念
定义1:称N=(V,E,c,X,Y)为一个网络,如果: (1)G=(V,E)是一个有向图;
(2)c是E上的非负函数,称为容量函数,对每条边e,c(e) 称为边e的容量(最大通过能力);
(3)X与Y是V的两个非空不交子集,分别称为G的发点集 与收点集,I=V\(XUY) 称为的中间点集。X的顶点称为发点或 源,Y的顶点称为收点或汇,I的顶点称为中间点。 若|X|>1,|Y|>1称为多源多汇网络;若|X|=1,|Y|=1称为单源 单汇网络。
割集的意义:若把某一割集的弧从网络中丢去,则 从vs到vt 便不存路,即割集是从vs到vt的必经之道!
A1 {vs , v1 , v2 }, A {v3 , v4 , vt }
割集 {(v1 , v3 ),(v2 , v4 )} 割集的容量为 9+9=18
A
8(8)
v1
5(4)
K
9(4)
v3
下图所示就是一个网络流图:
容量 a 源点 s 4 2 3 4 1 3 b 2 3
汇点 t
4
2
2 d
c
中间点
定义2:设网络N中任一条边e有流量 f(e)(实际通过能力), 称集合 f ={f(e)}为网络N上的一个流. 满足下述条件的流 f 称为可行流: ① (容量限制条件)对每一边e ,有0≤ f(e)≤C(e); ② (流量守衡条件)对于中间点v有流入该结点的流量和等
定义4:设f是网络N的一个流,则f的流的价值Valf定义为
Valf =
即流的价值是发点集的流出量,也是收点集的流入量。 即总流量=发点的净输出量=收点的净输入量 注:任何一个多源多汇网络N=(V,E,c,X,Y)都等价与一个单源单
eN ( X )
f (e)
eN (Y )
f (e)
A {s}
A
割集
割集容量 15 21 17 18 19
24 14 25 15
最大流与最小割的关系:
定理 1:设 f 是 N 的流, ( A, A) 是一个割,则: (1) Val f f (e) f (e)
eN ( A) eN ( A)
(2) Val f C( A, A) 。 式(1)表明运输网络的一个自源 s 到汇 t 的流值,等于任何分离 s 和 t 的割中流的净值,即割的自 A 到 A 的弧中的流减去自 A 到 A 的流的总体。 定理 2(最大流最小割定理) (1)设 f 是流,K 是割,若 Val f =C ( K ) ,则 f 是最大流,K 是 最小割。 (2)网络 N 的最大流的价值等于最小割的容量。 上述定理是图论的重要核心,关于图的许多结果,在适当的选择 网络后,应用这个定理往往能够轻易地获得解决。
即 P 中的每一条弧都是非饱和弧
(v i , v j ) P 即 P 中的每一条弧都是非零流弧
则称P为从vs到vt 的关于f 的一条增广链。
f2>0 s f4<c4 t
f1<c1
f3>0
f5<c5
v2
10,5 3,2 4,1 8,3 5,1
5,2
3,3
v4
11, 6
v1
v6
17,2
1, 0 5, 3
5,1
1, 0 2,1
y1
2, 2
v4
3, 2
3,1
s
4, 4
6, 0 6, 4
y2
x2
v3
y3
x1
,2
6,1
v1
3,0
5,1 4,0
1,0
y1
2,1
1,1
2,2
1,0
2,2
s
,4
v4
3,2
5,3
3,1
s 6,0
4,4
y2
6,4
,6
,0
t ,0
x2
v3
y3
总结:对于实际的网络系统上的流,有几个显著的特点: (1)发点的净流出量和收点的净流入量必相等。 (2)每一个中间点的流入量与流出量的代数和等于零。 (3)每一个弧上的流量不能超过它的最大通过能力(即容量)
eN - ( v )
f +(v)= f -(v)
容量 a (4,3) s (2,1) (3,0) (3,2) b (3,2)
流量fat
(2,2) (2,2) (4,4)
t
(4,3)
(1,1) c
(2,2) d
例:单源单汇网络和多元多汇网络。
a
3, 3 5, 4
c
3, 3
s
4, 4
5,1
2, 0
1,1
5, 4
t
b
3, 3
d
x1
1,1
2, 2
6,1 3, 0
v1
4, 0
1, 0 5, 3
5,1
1, 0 2,1
y1
2, 2
v4
3, 2
3,1
s
4, 4
6, 0
y2
6, 4
x2
v3
y3
f(vi,vj)为弧(vi,vj)上的流量,简记为fij.如果 f 是可行流,则对收、发点 v t、 v s 有 ∑fsi =∑fjt =Wf , 即 从vs点发出的物质总量 = vt点输入的量. Wf 称为网络流 f 的总流量. 上述概念可以这样来理解,如G是一个运输网络,则发点vs表示发 送站,收点vt表示接收站,中间点vk表示中间转运站,可行流 fij 表示某 条运输线上通过的运输量,容量Cij表示某条运输线能承担的最大运 输量,Wf 表示运输总量.
2(0)
9(9)
v1, v2 , v3 , v4 , t (s, v1 ),(s, v2 ) v2 , v3 , v4 , t {s, v1} (s, v2 ),(v1, v2 ),(v1 , v3 ) v1, v3 , v4 , t {s, v2 } (s, v1 ),(v2 , v4 ) {s, v1 , v2 } v1, v3 , v4 , t (v1, v3 ),(v2 , v4 ) {s, v1 , v3} v2 , v4 , t (s, v2 ),(v1 , v2 ),(v3 , v2 ),(v3 , t ) {s, v2 , v4 } v1, v3 , t (s, v1 ),(v4 , v3 ),(v4 , t ) {s, v1 , v2 , v3} v1, v2 , v3 , v4 , t (v2 , v4 ),(v3 , t ) {s, v1 , v2 , v4 } (v1, v3 ),(v4 , v3 ),(v4 , t ) v4 , t {s, v1 , v2 , v3 , v4 } {(v3 , t ), (v4 , t )} t
可行流总是存在的.比如所有边的流量 fij = 0就是一个可行流(称 为零流).
AV
定义3:设f是网络N的一个流, A V ,则称 f +(A)
- f -(A)为流出A的净流量
f -(A)
注:
- f +(A)为流入A的净流量。
(1)流入、流出任何中间点的净流量为0; (2)流出发点集 的净流量等于流入收点集 的净流量。
正向弧 正向弧:弧的方向与链的方向一致,正向弧的全体记作 P+; 反向弧 反向弧:弧的方向与链的方向相反,反向弧的全体记作P 。
非饱和弧 非0流弧 增广链:f 是一个可行流,如果满足:
0 f i j ci j 0 f i j ci j (v i , v j ) P
8(8)
v1
5(4)
9(4) 2(0)
v3
6(1)
5(5)
vs
7(5)
vt
10(8)
v2
9(9)
v4
最大流问题
所谓最大流问题就是在容量网络中寻找流量最大 的可行流。 最大流问题实际上是一个线性规划问题。 但利用它与图的密切关系,可以利用图直观简便 地求解。
最大流问题
最大流:设N=(V,E,c,X,Y)是一个网络,f是一个流,若不 存在流f ’,使Val f ’> Val f ,则称f为的最大流。 割:给定网络N=(V,E,c,X,Y) ,若点集V被划分为两个非空 互补集合A和A,使 s∈A ,t∈A,记以A中的点为始点, A中的点为终点的弧集(A,A)称为(分离s和t的)割集(又 称截集)。 割集的容量:是割集中各弧的容量之和,记作:cap(A,A) 最小割:容量最小的割
汇网络N’=(V’,E’,c,X’,Y’) 。在解决实际问题时,常把多源多汇
网络转化为单源单汇网络。 (1) V ' V { s, t } ,s,t分别是N’的发点与收点;
(2) E' E {( s, x) | x X } {( y, t ) | y Y }
(3) c' (e) c(e), e E c' ( s, x ) , x X
图中 ( v 3 , v 6 ) 为零流弧,都是非饱和弧。
链及可增广链 •链
8(8)
v1
5(4)
9(4) 2(0)
v3
6(1)
5(5)
在最大流问题中,研究的是有向网络图。但是在求最大流 7(5) 10(8) 的方法中,则要使用无向网络中的链。 v2 v4
9(9)
vs
vt
链的方向:若P是网络中从源vs到汇vt的一条初等链(点、边 不重复的有向路),定义链的方向为从vs到vt ,则链上的弧 (有向边)分为两类:
v3
P=(v1,v2,v3,v4,v5,v6)
6,3
v5
反向弧
P+={(v1,v2) ,(v2,v3), (v3 , v4),(v5,v6)}
P- ={(v5,v4)}
v2
13 (5)
5 (3)
6(3) 5 (2)
v5
4 (2)
4 (1)
9 (5)
v1
9 (3)
4 (1) 5 (2)
v4
5 (0)
于流出该结点的流量和, f (e)
eN ( v )
其中:N+(v)表示v的所有出弧的集, N -(v)表示v的所有入弧的 f (e) 流出点v的流量, f -(v)= f (e)流入 集。记 f +(v)= 点v的流量,则
eN ( v )
eN ( v )
f (e), v I ,
6(1)
5(5) A
vs
7(5)
2(0)
vt
10(8)
v2
K
9(9)
v4
这里(v3,v2) 不属于此割集
考虑割线的不同画法
8(8)
v1
9(4)
v3
5(5)
6(1) v 由于有限网络的割集只有有限多个,则割集容量的集 vs 5(4) t C0 min{C( A, A)} 合C ( A1 , A) 是有限的实数集合,令 7(5) 10(8) v v 称割集容量为C0的割集为D的最小割集。(瓶颈 2 4 )
v7
10 (1)
v3
v6
P v1v 2 v 3 v 6 v 7
P ( v1 , v 2 ), ( v 3 , v 6 ), ( v 6 , v 7 ) P ( v 3 , v 2 )
P 是一个增广链
显然图中增广链不止一条
所谓可增广链,是指这条路径上的流可以修改,通过修改, 使得整个网络的流值增大。 可增广调整: (1)不属于可增广路P的弧(vi,vj)上的流量一概不变,即f 'ij=fij (2)可增广路P上的所有弧(vi,vj)上的流量按下述规则变化; , 在前向弧(vi,vj)上,f 'ij=fij + q 在后向弧(vi,vj)上, f 'ij=fij - q q称为可增广量,它应该按照下述原则确定: q 既要取得尽量 大,又要使变化后的fij仍满足可行流的两个条件——容量限制条 件和平衡条件。
弧关于流的分类
设 f { fij }是网络N的一个可行流
1、如果fij=cij,该弧是饱和弧;
v1
cij=5 fij=5
v2
(v1,v2)是饱和的
2、如果0≤fij<cij,该弧是非饱和弧; v1
cij=5 fij=3
v2 (v1,v2)是不饱和的
间隙为12=c12-f12=5-3=2
3、如果fij=0,该弧是0流弧; v1