运筹学-网络流问题(名校讲义)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[例5-14]图5-38所示图G中,已给出现有流(边旁边的前后
两个数字分别表示容量和实际流量),试用标号法求出
最大流。
v1 • 16,15
14,14
3,1
•
x
15,9 v•2
12,10
v•513,12 v6•
6,3 7,5
22,22
9,9
5,5 6,6
•y
[解]
v•3 4,3 v•4
19,10
图 5-38
• 任意边e (S,S)为零边
定理3 设f和K分别是图G的一个流和一个割,且满足等式 V(f) = C(K)。则:f和K必分别是图G的最大流和最小割。
§2 最大流与最小割 (6)
3.增广链及应用定理 ①有关术语和定义
i) 若G中有u到v的有向边(u,v),则称(u,v)为Q的前向边。
ii)若G中有v到u的有向边(v,u),则称(v,u)为Q的后向边。
•
v2 13,7
•v5
图 5-35
知l(Q1)=0,因此,Q1为f的饱和链。
§2 最大流与最小割 (8)
2) 取Q2=xv2 v5 v4 v3y,则知: ·前向边为(x,v2),(v2,v5)和(v3,y),其l值为l(x,v2)=2,l(v2,
v5)=6,l(v3,y)=6。 ·后向边为(v4,v5)和(v3,v4),其l值为l(v4,v5)=3,l(v3,v4)=3。
其各边流量值为:
f (e) l(Q)
当 e是Q的正向边
fˆ
(e)
f
( e)
l(Q)
当e是Q的后向边
f
( e)
其它边
此时,新流值V ( fˆ) V ( f ) l(Q)
则称 fˆ 为f基于Q链的修改流,对于 fˆ 而言,Q是 fˆ 的饱和链。
§2 最大流与最小割 (10)
1) 根据图5-38所给出的初始流,为图G所有点标号,标号
过程示于表5-11中。
§3 最大流算法 (3)
表5-11
检查点
x v2 v2
v3
v5
v5
v4
新生点
x v2 v3 v5 v4 v1 v6
y
新生点标号 +∞ +6 -6 +2 +1 +2 +1 +1
v1
从表5-11中得知,Qy=xv2 v3 v4y,14,14
•v5
图 5-36
§3 最大流算法 (1)
1.算法思路 判别图G中当前给定的f是否存在的增流链,若没有,则
该流f即为最大流;否则,求出修改流fˆ,V ( fˆ) V ( f ) l(Q) 然后把 fˆ看成f,再进行判断和计算,直到找到最大流为止。
2.算法步骤(标号算法)
§3 最大流算法 (2)
若f是原图G中一个流,则可定义与此相应的新图G’中一个流f ’:
f (e)
当e E(G)
f
(e)
f
(x)
f
(x),当x
X且e
( x,x )
f
( y)
f
( y),当y Y且e
( y,y)
§1 网络流 (6)
可见,f ’便为G’定义一个相应流。反之,若定义G’上一个流f ’, 则f ’落在图G中的部分必是图G上一个相应流。可见,多源多 汇网络与单源单汇网络之间转换完全是等效变换。
问题是:
求出达到最 大运输总量 的最优运输 方案。
(+120) 70v1 •
50 • y1 (-180)
x1 •
70
v2
•
40 150
100
(-200)
• y2
130
(+240)x•2
150
• 120
v3
图 5-31
§1 网络流 (3)
②有关术语
i) 运输网络 给定有向图G=(V,E),对每条边都给出相应的非
§1 网络流 (5)
①在原图G中增加两个新的顶点x和y,令为新图G’中之单源和单 汇,则G中所有顶点V成为G’之中间顶点集。
②对x’X,用有向边(x,x’)连接顶点x与x’,边之容量命为+ 或某一具体值(根据实际情况确定)。
③同理,对y’Y,用有向边(y,y’)连接顶点y与y’,边的容量 亦可命为+或某一具体值。
[解] 1) 取S1={x,v1}, 则: K1={(v1,v3), 15
5
13
•
(v1,v2),(x,v2)}和C(K1)=10+6+9=25
x 6 v4•
2)取S2={x,v1,v2,v4},则:K2={(v1,v3),9 •
6
(v4,v5),(v2,v5)}和C(K2)=10+6+13=29 3)取S3={x,v1,v2,v4,v5},则:K3={(v1,
0 f(e) c(e),eE(约束条件)
§1 网络流 (4)
f+(v) = f-(v), vI(守恒条件) 则称f为G的一个网络流或流。 f(e)称为f在边e上的流量。任一网络G,至少存在一个流,若每 条边的f(e)=0,则称为零流。 2.单源和单汇运输网络 实际问题往往存在多源多汇网络(例如图5-31便是双源双汇网 络)。为了计算的规格化,可将多源多汇网络G化成单源单汇 网络G’。
负数c(e),且已取定V的两个非空子集X(发点集)和Y(收点 集),XY=,则称图G=(V,E,C,X,Y)为一个运输网 络。同时,称c(e)为边 e之容量,X中的顶点x为G之源,Y中顶 点y为G之汇。而顶点集合I=V-(XY)称为G之中间顶点。
ii)网络流 设f(e)为一个以E为定义域且取值为非负的函数,又记 f+(v)和f-(v)分别为以v点为始点和以v点为终点的所有有向边的 相应函数值之和,若对网络G中,f(e)满足下述条件:
为起点在S和终点在S 中的全体有向边之集合,即
K u, | u S, S,则称:
①边集合 K (S,S )为网络G的一个割。
② c(e) 为割(集)K的容量,记为C(K)。 eK
§2 最大流与最小割 (2)
[5-12]给定图G为图5-34所示,求与给定的Sj (j=1,2,3)相对应的割集容量C(Kj)。 v1 • 10 • v3
[例5-10]运输公司接受任务,需将产地x1及x2两处所存物资经由v1, v2, v3等三个中转站运往用户y1及y2两处。公司所获利润与运输总 量成正比。已知x1,x2有物资分别为120吨和240吨,y1及y2各需 180吨和200吨,全部交通网络布置及交通干线容量示于图5-31中。
§1 网络流 (2)
则知l(Q2)=20,因此,Q2为f的不饱和链。
从上面分析中看出:若Q为f的饱和链,则链中只少有一条前向 边为f饱和边或至少有一条后向边为f的零边;相反,若Q为f的 不饱和链,则链中不存在饱和前边和零后边。
§2 最大流与最小割 (9)
v) 一条从源x至汇y的不饱和链,称为f的增流链。
vi) 若网络G中存在一条f增流链,则可得到G上的一个新流fˆ ,
§2 最大流与最小割 (4)
有关其它术语:若f为图G上的一个流,对eE,则定义: 若f(e)=c(e),称边e为f的饱和边; 若f(e)<c(e),称边e为f的不饱和边; 若f(e)>0,称边e为f的正边; 若f(e)=0,称边e为f的零边。
§2 最大流与最小割 (5)
定理2 设f和K分别为图G中任一流和任一割,则必存在: i) V(f) C(K) ii) V(f) = C(K)的充要条件为: • 任意边e (S,S )为饱和边
f
(x,x1 )
f (x1,1 )
f (x1,2 )
百度文库
70 50
120
f
(
x,x2
)
f (x2,2 )
f (x2,3 ) 100 130 230
f
( y1,y)
f
(1,y1 )
f (3,y1 )
50 100
150
§4 最小费用流 (1)
1.应用背景及有关术语 ①问题的提出(应用背景) 如何求出一个流,既满足运输量又使费用最小?这就是最小 费用流问题。 ②有关术语 具有点集合V、边集合E、边容量C、源点x和汇点y的运输网 络G=(V,E,C,x,y)中,又增一项集合W。
§4 最小费用流 (2)
i)若fA为G的一个流,其流值V(f)=A,则定义W(fA)=为流fA的 费用。它表示在图G中,从x至y沿着流fA运送A个单位所需 总费用。
l(Qy)= l(y)=1,故可得基于Qy的 修改流并示于图5-39中。
•
x
15,10v•2
• 16,15
3,1 12,10
v•513,12 v6•
6,3 7,5
22,22
2)针对图5-39,在顶点继续标 9,9
5,5 6,5
•y
号,结果示于表5-12。(略)
v•3 4,4 v•4
19,11
图 5-39
例如图5-35中,Q=xv2 v5 v4 v3y是一条增
流链,其l(Q)=2,将其修改,使f变为fˆ v1 • 10,10 • v3
后,示于图5-36中。 ②有关定理
15,10 •
x
9,9
5,1
6,0 v4•
13,9
•y
6,1 10,10
定理4 流f为G的最大流的充要条件为G 中不存在f增流链。
•
v2 13,9
f ( y2,y) f (1,y2 ) f (2,y2 ) f (3,y2 ) 20 150 30 200
§1 网络流 (8)
具体结果示如图5-33中(图中,箭头旁边有两个数字,前
面表示该边容量c’(e),后边表示实际给定流量f ’)。
120,120
70,70
v2 13 图 5-34
•y
10
•v5
v3),(v5,y)}和C(K3)=10+10=20
§2 最大流与最小割 (3)
2.最大流与最小割的关系定理。
①定义:记f流的流值为V(f),则定义
i)满足下式的f*称为G的最大流V(f*) = max{ V(f)f为G的流}
ii)满足下式的K*称为G的最小割C(K*) = min{ C(K)K为G的割}
G’中每边容量C’(e)定义为:
C(e) C(e)
C
(
x,x1
)
x1的发量=120,C ( x,x2
)
x2的发量=240
C( y1,y) y1的收量=180,C( y2,y) y2的收量=200
2) 计算G’与图5-32所示的G中f流的相应流f’,则知:
f (e) f (e)
[例5-11] 将图5-31所 示图变换成单源单汇 网络G’,且将图5-32 所示的图G给定流f转 换成图G’中的相应流 f ’。
70v1 •
50 • y1
x1 •
50
v2
•
20 150
100
• y2
100
x•2
130
• 30
v3
图 5-32
§1 网络流 (7)
[解] 1) 首先给出G’的单源x和单汇y,并按规则构成新图G’,
iii)若f为G上的流,对eE(Q),则定义:
c(e) f (e)
l
(e)
f
( e)
当e是Q的前向边 当e是Q的后向边
l(Q) min l(e) eQ
iv)当l(Q)=0,称Q为f的饱和链。当l(Q)>0,称Q为f的不饱和链。
§2 最大流与最小割 (7)
[5-13]图5-35给出具有流f的图G,试分
②有关定理
定理1设f和 K (S,S )分别为图G中任一流和任一割,则必存
在:V(f)=f+(s)-f-(s) , 其中,f (s)
f (e),f (s) f (e)
e(S,S )
e(S,S )
即图G中任一截面之净流值V(f),必是任何一个横截面的输出量
减去输入量(亦即代数和)。
第二十八、二十九讲 网络流问题
§1 网络流 §2 最大流与最小割 §3 最大流算法 §4 最小费用流
§1 网络流 (1)
1.网络流的概念 ①问题的提出
简而言之,流就是将目标或对象由一个地点送至另一个地点。
希望在已有的物理网络图中,从一个地点输送至另一个地点的运 输最大,或者要求从一个地点经运输网络系统将一定数量物品送 至另一个地点所花费用达到最小。
析上述有关术语和定义。
[解] 1) 首先取Q1=xv2 v1 v3 v4,则知:
v1 • 10,10
15,10
5,3
• v3
13,7
· 前向边为(x,v2),(v1,v3)和(v3,v4),x•
其l值为l(x,v2)=2,l(v1,v3)=0,
9,7
6,0 v4•
6,3
•y
10,10
l(v3,v4)=2。 ·后向边为(v1,v2),其l(v1,v2)=0。则
x1 •
70,50
v1 • v2
•
50,50 40, 20 150,150
x•
130,100
240,230 x•2
•
150,130 v3
• y1 180,150
100,100 • y • y2 200,200
120,30
图 5-33 以后,一般以分析单源单汇网络为主。
§2 最大流与最小割 (1)
1.割的定义及特点 设S为V的一个子集,且源 x S,S=V-S,汇y S。令K=(S,S)