网络系统的最小费用最大流问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可以得到网络中的一个最大流。
•
用给顶点标号的方法来定义V1*.在标号过程中,有标
号的顶点是V1*中的点,没有标号的点不是V1*中的点。如果
vt有了标号,表示存在一条关于f 的增广链。如果标号过
程无法进行下去,并且vt未被标号,则表示不存在关于f
的增广链。这样,就得到了网络中的一个最大流和最小截
集。
15
11
网络系统的最大流问题
设图D=(V,A,C),点集S ,T V ,S ∩T=ф中,将 起点在S,终点在T 的所有弧构成的集合,记做(S,T)。
• 定义8.8 设一个网络D=(V,A,C)。如果点集V被剖分 为两个非空集合V1和V1,发点vs∈V1,收点vt∈V1,那么将弧 集(V1,V1)叫做是分离vs和vt的截集。
为标号未检查的点。(考虑前向弧)
2) 如 果 在 弧 ( vj ,vi ) 上 , fji>0, 那 么 给 vj 标 号 ( -vi , l(vj)),其中l(vj)=min[l(vi),fji].这时,vj成为标号未检
查点。(考虑后向弧)
于是vi成为标号已检查的点。重复以上步骤,如果所有的标
号都已经检查过,而标号过程无法进行下去,则标号法结束。这时
8
网络系统的最大流问题
• 设μ是网络D中连接发点νs和收点vt的一条链。 定义链的方向是从vs到vt,于是链μ上的弧被
分为两类:一是弧的方向与链的方向相同,叫
做前向弧,前向弧的集合记做μ+。二是弧的方
向与链的方向相反,叫做后向弧,后向弧的集
合记做μ-。
9
0
网络系统的最大流问题
在下图(图8.23与8.24合并图)中,(v4,v3)是饱和 弧,其他的弧是非饱和弧,并且都是非零流弧。
而未检查的点,其他都是未标号点。一般地,取一个标号
未检查点vi,对一切未标号点vj:
16
网络系统的最大流问题
1) 如 果 在 弧 ( vi ,vj ) 上 , fij<cij , 那 么 给 vj 标 号 (vi ,l(vj)),其中l(vj)=min[l(vi),cij -fij].这时,vj 成
净输入量)
7
网络系统的最大流问题
• 任意一个网络上的可行流总是存在的。例如零流v(f )=0,
就是满足以上条件的可行流。 • 网络系统中最大流问题就是在给定的网络上寻求一个可行
流f ,使其流量v(f )达到最大值。 • 设流f={fij}是网络D上的一个可行流,我们把D中fij=cij的
弧叫做饱和弧,fij<cij的弧叫做非饱和弧,fij>0的弧为非 零流弧,fij=0的弧叫做零流弧。
网络D上的流,是指定义在弧集合A上的一个函数 f={f(vi,vj)}={fij} f(vi,vj)=fij叫做弧在(vi,vj)上的流量。
4
网络系统的最大流问题
网络系统上流的特点: (1)发点的总流出量和收点的总流入量必相等; (2)每一个中间点的流入量与流出量的代数和等于零; (3)每一个弧上的流量不能超过它的最大通过能力(即
网络中的最小费用最大流问题
一、引言 二、基本概念与基本定理 三、寻求最大流的标号法 四、最小费用最大流问题
网络系统的最大流问题
一、引言 在许多实际的网络系统中都存在着流量和
最大流问题。例如铁路运输系统中的车辆流,城 市给排水系统的水流问题等等。而网络系统流最 大流问题是图与网络流理论中十分重要的最优化 问题,它对于解决生产实际问题起着十分重要的 作用。
• 定义8.9 设一个截集(V1, V1),将截集(V1,V1)中所有 的 弧 的 容 量 的 和 叫 做 截 集 的 截 量 , 记 做 c(V1,V1), 亦 即 c(V1,V1)=∑cij , (vi ,vj)∈(V1,V1)
12
网络系统的最大流问题
•
下面的事实是显然的:一个网络D 中,任何一个可行
(Cij,fij)
(3,3)
Vs
(1,1) (1,1)
(5,3)
(3,0)
Vt
(5,1)
V1
(2,1)
(2,2)
V3
图8.21 20
网络系统的最大流问题
例8.8 求图8.21的网络最大流,弧旁的权数表示(cij,fij)。
解:用标号法。 1.标号过程。
(1)首先给vs标号(0,+∞)
(2)检查vs :在弧(vs,v2)上,fs2=cs2=3,不具备标号条件。在
22
网络系统的最大流问题
2.调整过程。
从vt 开始,按照标号点的第一个标号,用反向追踪的方法, 找出一条从vs 到vt 的增广链μ={vs ,v1,v2 ,v3,vt },如图8.22中双箭
线所示。
不难看出, μ+={(vs ,v1),(v3 ,vt)}, μ-={(v2 ,v1),(v3 ,v2)},
网络系统的最小费用最大流问题
取θ=l(vt)=1,在μ上调整f,得到 在μ+上, fs1+θ=1+1=2
在μ+上 , f3t+θ=1+1=2
在μ-上 , f21 -θ=1-1=0
在μ-上 , f32 -θ=1-1=0
其他的fij 不变。
23
网络系统的最大流问题
• 调整后的可行流f *,如图8.23所示,再对这个可行流重新进行标号
流f的流量v(f )都小于或等于这个网络中任何一个截集
(V1,V1)的截量。并且,如果网络上的一个可行流f*和网络 中的一个截集(V1*,V1*),满足条件v*(f*)=c(V1*,V1*),那 么f *一定是D上的最大流,而(V1*,V1*)一定是D的所有的
截集中截量最小的一个(即最小截集)。
13
网络系统的最大流问题
增广链,如果链μ 满足以下条件: 1.在弧(vi ,vj)∈μ+上,有0≤fij<cij,即μ+中
的每一条弧是非饱和弧。
2.在弧(vi ,vj)∈μ-上,有0<fij ≤cij ,即μ-
中的每一条弧是非零流弧。
例如在图8.24中,链μ=(vs ,v1 ,v2 ,v3 ,v4 ,vt)就是一条增广链。
18
网络系统的最大流问题
令f'ij =
fij +θ,当(vi ,vj)∈μ+
fij -θ, 当(vi ,vj)∈μ-
fij ,
当(vi ,vj)|μ
• 再去掉所有的标号,对新的可行流f'={f'ij },重新 进行标号过程,直到找到网络D 的最大流为止。
19
网络系统的最大流问题
V2 (4,3)
V4
过程,寻找增广链:
首先给vs标号(0,+∞),检查vs ,给v1标号(vs ,3)。检 查v1,在弧(v1,v3)上,f13=c13 ,弧(v2 ,v1)上,f21=0,均不符合标 号过程(1)的条件。因此标号过程无法进行下去,不存在从VS到Vt的增
广链,算法结束。
这 时 , 网 络 中 的 可 行 流 f* 即 是 最 大 流 , 最 大 流 的 流 量 V(f*)=fs1+fs2=5.同时,也找出D的最小截集(V1,V1),其中V1是标号的
的可行流就是最大流。但是,如果vt被标上号,表示得到一条增广
链μ,转入下一步调整过程。
17
网络系统的最大流问题
2. 调整过程
首先按照vt和其他点的第一个标号,利用“反向追 踪”的办法,找出增广链 。例如,令vt的第一个标号是vk, 则弧(vk,vt)在μ上。再看vk的第一个标号,若是vi,则 弧(vi,vk)都在μ上。依次类推,直到vs为止。这时,所找 出的弧就成为网络D的一条增广链μ。取调整量θ= l(vt), 即vt的第二个标号,
集合,V1是未标号的集合。
25
网络系统的最大流问题
V V 2
(4,3)
4
(Cij,fij)
(3,3)
Vs
(0,+∞)
(5,2)
(1,0) (1,0)
V1
(2,2)
(vs,3)
(5,3)
百度文库
(3,0)
Vt
(2,1)
V3
图8.23
26
网络系统的最小费用最大流问题
四、最小费用最大流问题
在实际的网络系统中,当涉及到有关流的问题 的时候,我们往往不仅仅考虑的是流量,还经常要考 虑费用的问题。比如一个铁路系统的运输网络流,即 要考虑网络流的货运量最大,又要考虑总费用最小。 最小费用最大流问题就是要解决这一类问题。
的增广链 。如果没有增广链,那么f一定是最大流。如有增广链,
那么可以按照定理8.9,不断改进和增大可行流f的流量,最终可以
得到网络中的一个最大流。 14
网络系统的最大流问题
三、寻求最大流的标号法
•
从网络中的一个可行流f 出发(如果D中没有f,可
以令f 是零流),运用标号法,经过标号过程和调整过程,
v1 (5,2)
v3
fij
(10,5)
(3,2)
(11,6)
vs
(4,1)
(3,3)
vt
(8,3)
(5,1)
(17,2)
v2
v (6,3)
4
如图,在链(vs ,v1 ,v2 ,v3 ,v4 ,vt)中, μ+={(vs ,v1),(v1,v2),(v2 ,v3),(v4 ,vt)}, μ-={(v4 ,v3)}.
2
网络系统的最大流问题
v1
5
v3
Cij
10
3
11
vs
4
5
8
3
vt
17
v2
6
v4
图8.23是一个网络
每一个弧旁边的权就是对应的容量(即最大通过能力)。要求指
定一个运输方案,使得从vs到vt的货运量最大,这是寻求网络系
统的最大流问题。 3
网络系统的最大流问题
二、基本概念与基本定理
定义8.5 设一个赋权有向图D =(V,A),在v中指定一个发 点(或源点)vs和一个收点(或汇点)vt,其他的点叫做中 间点。对于D中的每一个弧(vi,vj)∈A,都有一个权 cij 叫做弧的容量。我们把这样的图 D 叫做一个网络系统,简 称网络,记做D =(V,A,C)。
( 5 ) 在 v3,v4 中 任 意 选 一 个 , 比 如 v3, 在 弧 ( v3,vt ) 上 , f3t=1<c3t=2, 故 给 vt 标 号 (v3,l(vt)), 其 中 l(vt)=min[l(v3),(c3tf3t)]=min[1,1]=1.因为vt 被标上号,根据标号法,转入调整过程。
27
网络系统的最小费用最大流问题
•
设 一 个 网 络 D= ( V , A , C ) , 对 于 每 一 个 弧
(vi,vj)∈A,给定一个单位流量的费用bij ≥0,网络系
统的最小费用最大流问题,是指要寻求一个最大流f,
使流的总费用b(f )= ∑
bijfij 达到最小。
(Vi,Vj)∈A
28
21
网络系统的最大流问题
( 4 ) 检 查 v2 : 在 弧 ( v2,v4 ) 上 , f24=3<c24=4, 故 给 v4 标 号 (v2 ,l(v4)),其中l(v4)=min[l(v2),(c24 -f24)]=min[1,1]=1.
在弧(v3 ,v2)上,f32=1>0,故给v3标号(-v2,l(v3)),其 中l(v3)=min[l(v2),f32]=min[1,1]=1。
网络系统的最大流问题
• 定理8.8 网络中的一个可行流f*是最大流的充要条 件是不存在关于f * 的增广链。
• 定理8.9 在一个网络D 中,最大流的流量等于分离 vs 和vt 的最小截集的截量。
•
定理8.8实际上提供了一个寻求网络系统最大流的方法:如
果网络D 中有一个可行流f,只要判断网络是否存在关于可行流f
网络系统的最大流问题
1.标号过程 在标号过程中,网络中的点或者是标号点(分为已
检查和未检查两种)或者是未标号点。每个标号点的标号 包含两部分:第一个标号表示这个标号是从哪一点得到的, 以便找出增广链。第二个标号是为了用来确定增广链上的
调整量θ。 标号过程开始,先给vs标号(0,+∞)。这时,vs是标号
弧 (vs,v1) 上 ,fs1=1<cs1=5, 故 给 v1 标 号 (vs , l(v1)), 其 中 l(v1)=min[l(vs),(cs1-fs1)]=min[+∞,5-1]=4.
(3)检查v1 :在弧(v1,v3)上,f13=c13=2,不具备标号条件.在
弧 (v2,v1) 上 ,f21=1>0, 故 给 v2 标 号 ( -v1, l(v2) ) , 其 中 l(v2)=min[l(v1),f21]=min[4,1]=1.
容量)。
6
网络系统的最大流问题
定义8.6 网络上的一个流 f 叫做可行流,如果 f 满足以下条
件
(1)容量限制条件:对每一弧(vi ,vj)∈A,有 0 fij cij.
(2)平衡条件:
对于发点vs,有∑fsj -∑fjs =v (f ) 对于收点vt,有∑ftj -∑fjt =-v(f ) 对于中间点,有∑fij -∑fji =0 式中v(f )叫做这个可行流的流量,即发点的净输出量(或收点的