网络最大流问题

  • 格式:doc
  • 大小:403.00 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

给定一个有向图D=(V,A),在V中指定一点称为发点(记为),该点只有出发去的弧,指定另一点称为收点(记为),该点只有指向它的弧,其余的点叫做中间点。对于A中的每一条弧,对应一个数(简记),称之为弧的容量。通常我们把这样的D叫做网络,记为D=(V,A,C)。

(2)网络流:在弧集A上定义一个非负函数。是通过弧的实际流量,简记,称是网络上的流函数,简称网络流或流,称为网络流的流量。

§4 网络最大流问题

网络最大流问题是网络的另一个基本问题。

许多系统包含了流量问题。例如交通系统有车流量,金融系统有现金流,控制系统有信息流等。许多流问题主要是确定这类系统网络所能承受的最大流量以及如何达到这个最大流量。

4.1 基本概念与定理

1.1.网络与流

定义14 (1)网络:

例1如图7-20是连结某产品产地和销地的交通图。弧表示从到的运输线,弧旁的数字表示这条运输线的最大通过能力,括号内的数字表示该弧上的实际流。现要求制定一个运输方案,使从运到的产品数量最多。

可行流与最大流

在运输网络的实际问题中,我们可以看出,对于流有两个基本要求:

一是每条弧上的流量必须是非负的且不能超过该弧的最大通过能力(即该弧的容量);

二是起点发出的流的总和(称为流量),必须等于终点接收的流的总和,且各中间点流入的流量之和必须等于从该点流出的流量之和,即流入的流量之和与流出的流量之和的差为零,也就是说各中间点只起转运作用,它既不产出新的物资,也不得截留过境的物资。

因此有下面所谓的可行流的定义。

定义14对于给定的网络D=(V,A,C)和给定的流,若满足下列条件:

(1)容量限制条件:对每一条弧,有

(7.9)

(2)平衡条件:

对于中间点:

流出量=流入量,即对于每一个i (i≠s,t),有

(7.10)

对于出发带点,有

(7.11)

对于收点,有

(7.12)

则称为一个可行流,称为这个可行流的流量。

注意,我们这里所说的出发点是指只有从发出去的弧,而没有指向的弧;

收点是指只有弧指向,而没有从它的发出去的弧。

可行流总是存在的。例如令所有弧上的流,就得到一个可行流,(称为零流),其流量。

如图7-20中,每条弧上括号内的数字给出的就是一个可行流,它显然满足定义中的条件(1)和(2)。其流量。

所谓网络最大流问题就是求一个流,使得总流量达到最大,并且满足定义15中的条件(1)和(2),即

max

(7.13)

网络最大流问题是一个特殊的线性规划问题。我们将会看到利用图的特点,解决这个问题的方法较直线性规划的一般方法要简便和直观的多。

例2写出图7-20所表示的网络最大流问题的线性规划模型。

解设,则其线性规划模型为

max

3. 增广链

在网络D=(V,A,C)中,若给定一个可行流,我们把网络中使的弧称

为饱和弧,使的弧称为非饱和弧。把的弧称为零流弧,把

的称为非零流弧。

如图7-20中的弧都是非饱和弧,而弧为零流弧。

,若是网络中联结发点和收点的一条链,我定义链的方向是从到

S

则链上的弧被分为两:

一类是:弧的方向与链的方向一致,我们称此类和为前向弧,所有前向弧的集合记为。

另一类是:弧的方向与链的方向一致,我们称此类弧为后向弧,所有后向弧的集合记为。

如图7-20中,设

是一条从到的链,则

,

定义15设是网络D=(V,A,C)上的一个可行流,是从到的一条链,若满足下列条件:

(1)在弧(v i,v j)∈μ+上,即中的每一条弧都是非饱和弧;

(2)在弧上,即中的每一条弧都是非零流弧。

则称是关于的一条增广链。

如前面所说的链就是一条增广链。因为其中μ+上的弧均非饱和,如(v s,v2)∈μ+,f s2=50,。显然这样的增广链不止一条。

4.截集与截量

定义16给定网络D=(V,A,C),若点集V被分割成两个非空集合V1和V2,使得V=V1+V2,V1∩V2=φ(空集),且v s∈V1,v t∈V2,则把始点在V1,终点在V2的弧的集合称为分离v s和v t的一个截集,记为(V1,V2)。

如图9.26中,设V1={v s,v2,v5},V2={v3,v4,v6,v t}则截集为

,

而弧(v3,v2)和(v4,v5)不是该集中的弧。因为这两条弧的起点在V2中,与定义17不符。

显然,一个网络的截集是很多的(但只有有限个),例如在图7-20中,还可以取,,则截集为

另外,若把网络D=(V,A,C)中某截集的弧从网络D中去掉,则从v s到v t便不存在路,所以直观上说,截集是从v s到v t的必经之路。

定义17在网络D=(V,A,C)中,给定一个截集(V1,V2),则把该截集中所有弧的容量之和,称为这个截集的容量,简称为截量,记为c(V1,V2),即

C(V1,V2)=(7.16) 例如在上面我们所举的两个截集中,有

显然,截集不同,其截量也不同。由于截集的个数是有限的,故其中必有一个截集的容量是最小的,称为最小截集,也就是通常所说的“瓶颈”。

不难证明,网络D=(V,A,C)中,任何一个可行流f={f ij}的流量V(f),都不会超过任一截集的容量,即

v( f ) ≤ c(V1,V2) (7.17) 如果存在一个可行流f*={f*ij},网络D=(V,A,C)中有一个截集,使得

(7.18) 则必是最大流,而必是D中的最小截集。

为了求网络最大流f*,我们也说明下面的重要定理。

定理4在网络D=(V,A,C)中,可行流是最大流的充要条件是D中不存在

关于f*的增广链。

证先证必要性。用反证法。若f*是最大流,假设D中存在着关于f*的增广链μ,令

(7.19) 由增广链的定义可知θ>0,令