最大流问题

网络最大流问题

一 产生背景

流量问题在实际中是一种常见的问题,在许多实际的网络系统中都存在着流

量和最大流问题。例如铁路运输系统中的车辆流,城市给排水系统的水流问题,

控制系统中的信息流问题,常见的人流,物流,水流,气流,电流,现金流等。

在一定条件下,求解给定系统的最大流量,就是网络最大流问题.网络系统最大流

问题是图与网络理论中十分重要的最优化问题,它对于解决生产实际问题起着十

分重要的作用。

二 基本概念与定理

设cij为弧(i,j)的容量,fij为弧(i,j)的流量。容量是弧(i,j)单位

时间内的最大通过能力,流量是弧(i,j)单位时间内的实际通过量,流量的集

合f={fij}称为网络的流。发点到收点的总流量记为v=v(f)。

设D=(V,A)是一有向图且对任意E均有容量cij =(vi,vj),记C={cij︱(vi,

vj)∈A},此外D中只有一个源vs和汇vt( 即D中与vs相关联的弧只能以 vs为

起点,与vt相关联的弧只能以 vt为终点),则称D=(V,A,C, vs,vt)为一网络。

引例1:图1给出了一张网络,其中:vs为源,vt为汇,弧旁的数字为该段

弧的容量cij与流量fij,则显然有0≤fij ≤ cij 。

(3,3 )

vt

v3

图1

最大流问题可以建立如下形式的线性规划数学模型。图1最大流问题的线性

规划数学模型为

maxvfs1fs2

fijfij0(is,t)ji0fijcij所有弧(i,j)

由线性规划理论知,满足式上式的约束条件的解{fij}称为可行解,在最大流

问题中称为可行流。

可行流满足下列三个条件:

(1)0fijc

jiijim(2)fmjf

vsvt(3v)fsjfit

条件(2)和条件(3)也称为流量守恒条件。

另外对有多个发点和多个收点的网络,可以另外虚设一个总发点和一个总收

点,并将其分别与各发点、收点连起来(图*),就可以转换为只含一个发点和一

个收点的网络。

S T

T*

图*

所以一般只研究具有一个发点和一个收点的网络

在图D中,从发点到收点的一条路线称为链,从发点到收点的方向规定为

链的方向。与链的方向相同的弧称为前向弧,前向弧集合记为u+ ,与链的方向

相反的弧称为后向弧,后向弧集合记为u-。

设f是一个可行流,如果存在一条从发点vs到收点vt到的链u满足:

(1)所有前向弧上fij<cij

(2) 所有后向弧上fij>0 ,则称链u为增广链.

设S,TV,ST,vsS,vtT则称

(S,T)(vi,vj)|viS,vjT

C(S,T)

为图D的一个割集;称 (vi,vj)(s,t)c(vi,vj) 为割集(S,T)的容量。

显然对任意可行流f及任意割集(S,T)总有V(f)=C(S,T)。故有某个可行

流f*及某一割集(S*,T*)使得V(f*)= C(S*,T*),则f*为D的最大流,(S*,

T*)为最小容量割集。

定理1 图D上的可行流f*是最大流的充要条件是D上不存在关于f*的增

广链。

三 求解网络最大流的方法(标号法)

标号法是一种图上迭代计算方法,该算法首先给出一个初始可行流,通过标

号找出一条增广链,然后调整增广链上的流量,得到更大的流量。再用标号找出

一条新的增广链,再调整直到标号过程不能进行下去为止,这时的可行流就是最

大流。

标号法步骤如下:

第一步 找出一个初始可行流fij(0),例如所有弧的流量fij(0) =0.

第二步 对点进行标号找出一条增广链。

(1) 起点标号(∞)

(2) 选一个点vi已标号且另一端未标号的弧沿着某条链向收点检查

(a)如果弧是前向弧且有fij<cij,则vj标号

jcijf ij

(b)如果弧是后向弧且有fij﹥0,则vj标号jfij

当收点已得到标号时,说明已找到增广链,依据v的标号反向追踪得到一条

增广链。当收点不能得到标号时,说明不存在增广链,计算结束

第三步 调整流量

(1) 求增广链上点的vi标号的最小值,得到调整量号

jminjj

(2) 调整流量

fij(vi,vj)uf1fij(vi,vj)u

fij(vi,vj)u

得到新的可行流f1,去掉所有标号,返回到第二步从发点重新标号寻找增广

链,直到收点不能标号为止。

四 例题应用

例2:用标号法求网络最大流(图1),弧旁数字为(cij ,fij(0))。

解 (1) 标号过程。见图2。

(v,v),(v,v)u32 (2) 增广链为{vs,v1,v2,v3,vt} (注意21)。

(3)调整量θ=2调整后得图3。

(4) 二次标号过程。见图3。

标号无法进行下去,最大流流量V(f*)=3+6=9,最小割集(S*,T*), S*={vs},

T*={ v1,v2,v3,v4,vt}。

(-v1,2)

(vs 2,2) 2,2) 2,2) vt (v3,2) v2 (3,3) (5,5)

(0,+ (6,4 (6,2)

(v1,2) (-v2,2)

图2

v2 (3,3) (5,5)

(vs 2,0) 2,0) 2,2) vt

(0,+ (6,6 (6,4)

图3

例3:在下面的有向图中1是发点, 6是收点,求最大流.

1 6

图解法如下:

2

6

6(5,2)

3(1,+5) 3

2 6(4,+1)

2 6 (3,3)

图中红色的是可增广链,可见S={1,3}, S’={2,4,5,6}, 蓝色的三条

边(1,2), (3,5),(2,3)组成的集合是最小割,割集容量为(1,2)和(3,5)两条

边的容量之和7,也就是最大流的流量.

参考文献

[1] 杨民助.运筹学[M].西安:西安交通大学出版社,2000,201-204

[2] 宁宣熙.运筹学实用教程[M].第二版.北京:科学出版社,2007,147-152

[3] 黄桐城.运筹学基础教程[M].第一版.上海:上海人民出版社,2004,124-128

网络最大流问题

一 产生背景

流量问题在实际中是一种常见的问题,在许多实际的网络系统中都存在着流

量和最大流问题。例如铁路运输系统中的车辆流,城市给排水系统的水流问题,

控制系统中的信息流问题,常见的人流,物流,水流,气流,电流,现金流等。

在一定条件下,求解给定系统的最大流量,就是网络最大流问题.网络系统最大流

问题是图与网络理论中十分重要的最优化问题,它对于解决生产实际问题起着十

分重要的作用。

二 基本概念与定理

设cij为弧(i,j)的容量,fij为弧(i,j)的流量。容量是弧(i,j)单位

时间内的最大通过能力,流量是弧(i,j)单位时间内的实际通过量,流量的集

合f={fij}称为网络的流。发点到收点的总流量记为v=v(f)。

设D=(V,A)是一有向图且对任意E均有容量cij =(vi,vj),记C={cij︱(vi,

vj)∈A},此外D中只有一个源vs和汇vt( 即D中与vs相关联的弧只能以 vs为

起点,与vt相关联的弧只能以 vt为终点),则称D=(V,A,C, vs,vt)为一网络。

引例1:图1给出了一张网络,其中:vs为源,vt为汇,弧旁的数字为该段

弧的容量cij与流量fij,则显然有0≤fij ≤ cij 。

(3,3 )

vt

v3

图1

最大流问题可以建立如下形式的线性规划数学模型。图1最大流问题的线性

规划数学模型为

maxvfs1fs2

fijfij0(is,t)ji0fijcij所有弧(i,j)

由线性规划理论知,满足式上式的约束条件的解{fij}称为可行解,在最大流

问题中称为可行流。

可行流满足下列三个条件:

(1)0fijc

jiijim(2)fmjf

vsvt(3v)fsjfit

条件(2)和条件(3)也称为流量守恒条件。

另外对有多个发点和多个收点的网络,可以另外虚设一个总发点和一个总收

点,并将其分别与各发点、收点连起来(图*),就可以转换为只含一个发点和一

个收点的网络。

S T

T*

图*

所以一般只研究具有一个发点和一个收点的网络

在图D中,从发点到收点的一条路线称为链,从发点到收点的方向规定为

链的方向。与链的方向相同的弧称为前向弧,前向弧集合记为u+ ,与链的方向

相反的弧称为后向弧,后向弧集合记为u-。

设f是一个可行流,如果存在一条从发点vs到收点vt到的链u满足:

(1)所有前向弧上fij<cij

(2) 所有后向弧上fij>0 ,则称链u为增广链.

设S,TV,ST,vsS,vtT则称

(S,T)(vi,vj)|viS,vjT

C(S,T)

为图D的一个割集;称 (vi,vj)(s,t)c(vi,vj) 为割集(S,T)的容量。

显然对任意可行流f及任意割集(S,T)总有V(f)=C(S,T)。故有某个可行

流f*及某一割集(S*,T*)使得V(f*)= C(S*,T*),则f*为D的最大流,(S*,

T*)为最小容量割集。

定理1 图D上的可行流f*是最大流的充要条件是D上不存在关于f*的增

广链。

三 求解网络最大流的方法(标号法)

标号法是一种图上迭代计算方法,该算法首先给出一个初始可行流,通过标

号找出一条增广链,然后调整增广链上的流量,得到更大的流量。再用标号找出

一条新的增广链,再调整直到标号过程不能进行下去为止,这时的可行流就是最

大流。

标号法步骤如下:

第一步 找出一个初始可行流fij(0),例如所有弧的流量fij(0) =0.

第二步 对点进行标号找出一条增广链。

(1) 起点标号(∞)

(2) 选一个点vi已标号且另一端未标号的弧沿着某条链向收点检查

(a)如果弧是前向弧且有fij<cij,则vj标号

jcijf ij

(b)如果弧是后向弧且有fij﹥0,则vj标号jfij

当收点已得到标号时,说明已找到增广链,依据v的标号反向追踪得到一条

增广链。当收点不能得到标号时,说明不存在增广链,计算结束

第三步 调整流量

(1) 求增广链上点的vi标号的最小值,得到调整量号

jminjj

(2) 调整流量

fij(vi,vj)uf1fij(vi,vj)u

fij(vi,vj)u

得到新的可行流f1,去掉所有标号,返回到第二步从发点重新标号寻找增广

链,直到收点不能标号为止。

四 例题应用

例2:用标号法求网络最大流(图1),弧旁数字为(cij ,fij(0))。

解 (1) 标号过程。见图2。

(v,v),(v,v)u32 (2) 增广链为{vs,v1,v2,v3,vt} (注意21)。

(3)调整量θ=2调整后得图3。

(4) 二次标号过程。见图3。

标号无法进行下去,最大流流量V(f*)=3+6=9,最小割集(S*,T*), S*={vs},

T*={ v1,v2,v3,v4,vt}。

(-v1,2)

(vs 2,2) 2,2) 2,2) vt (v3,2) v2 (3,3) (5,5)

(0,+ (6,4 (6,2)

(v1,2) (-v2,2)

图2

v2 (3,3) (5,5)

(vs 2,0) 2,0) 2,2) vt

(0,+ (6,6 (6,4)

图3

例3:在下面的有向图中1是发点, 6是收点,求最大流.

1 6

图解法如下:

2

6

6(5,2)

3(1,+5) 3

2 6(4,+1)

2 6 (3,3)

图中红色的是可增广链,可见S={1,3}, S’={2,4,5,6}, 蓝色的三条

边(1,2), (3,5),(2,3)组成的集合是最小割,割集容量为(1,2)和(3,5)两条

边的容量之和7,也就是最大流的流量.

参考文献

[1] 杨民助.运筹学[M].西安:西安交通大学出版社,2000,201-204

[2] 宁宣熙.运筹学实用教程[M].第二版.北京:科学出版社,2007,147-152

[3] 黄桐城.运筹学基础教程[M].第一版.上海:上海人民出版社,2004,124-128


相关文章

  • 二次函数求最大利润问题的教学设计
  • 二次函数求最大利润问题的教学设计 范亚书 一.学生知识状况分析 学生的知识技能基础:由简单的二次函数y =x 2开始,然后是y =ax 2,y =ax 2+c,最后是y=a(x-h)2,y =a(x-h)2+k,y =ax 2+bx+c,学 ...查看


  • 基于蚁群算法求解最大团问题
  • 第27卷第10期2010年10月 计算机应用与软件 ComputerApplicationsandSoftware V01.27No.10 Oct.2010 基于蚁群算法求解最大团问题 王会颖耿家礼 (安徽财贸职业学院计算机系安微合肥230 ...查看


  • 求最大乘积
  • <求最大乘积>的教学与思考 沪科版数学七年级下册整式乘法和因式分解这章p 67页,安排了一个数学活动--求最大乘积.教材提出如下四个问题: 1. 将数字1,2,3,4,5组成一个3位数和一个2位数,每个数字仅用一次,怎样分这5个 ...查看


  • 二次函数教案(第一课时)
  • 21.4 二次函数的应用 第1课时 二次函数的应用(1) 教学目标: [知识与技能] 经历探究图形的最大面积问题的过程,进一步获得利用数学方法解决实际问题的经验. [过程与方法] 经历探索问题的过程,获得利用数学方法解决实际问题的经验,感受 ...查看


  • 基于最小最大后悔值准则的供应链鲁棒协调模型
  • 第20卷第3期 2011年5月 系统管理学报 JournalofSystems&Management Vol.20No.3 May2011 文章编号:1005 2542(2011)03 0296 07 基于最小最大后悔值准则的供应链 ...查看


  • 求最大公因数
  • 最大公因数 教学内容:教材第60.第61页的内容及练习十五第1~6题. 教学目标:1. 结合问题, 理解公因数和最大公因数的意义, 学会求两个数的最大公因数的方法. 2. 学会用公因数.最大公因数的知识解决简单的实际问题, 体验数学与生活的 ...查看


  • 高中数学最值问题大盘点(作者赵先举)
  • 最值问题大盘点 (作者 赵先举 ) 最值问题一直是高中数学的重要内容之一, 也是高考的热点问题. 它综合性强, 且在生产与生活中有这广泛的应用. 因此, 求最值问题是我们在高中阶段必须掌握的内容. 下面结合具体例子来说明, 不同条件下求最值 ...查看


  • 汽车发动机的两个参数马力和扭矩,哪个更能体现动力性?
  • [鱼非鱼的回答(63票)]: 本题目底下大部分的回答或者是错的,或者根本无助于大家理解这个问题.比如 @李捷 的回答,虽然没有任何错误,但是还是会给大家以误导. 我先说这个问题的正确答案,对于发动机来说,汽车的最大加速度理论上只与最大马力有 ...查看


  • 高一数学必修一函数的最值问题试题(1)
  • 函数的最值问题(高一) 一.填空题: 1. f (x ) =3x +5, x ∈[3,6]的最大值是.f (x ) = 1 x ,x ∈[1,3]的最小值是 2. 函数y =,最大值是 3. 函数y = 1 2x 2-8x +10的最大值是 ...查看


热门内容