网络系统的最小费用最大流问题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 )叫做这个可行流的流量,即发点的净输出量(或收点的
相关文档
最新文档