第四节 网络系统最大流问题
- 格式:ppt
- 大小:1.40 MB
- 文档页数:22
网络最大流问题一产生背景流量问题在实际中是一种常见的问题,在许多实际的网络系统中都存在着流量和最大流问题。
例如铁路运输系统中的车辆流,城市给排水系统的水流问题,控制系统中的信息流问题,常见的人流,物流,水流,气流,电流,现金流等。
在一定条件下,求解给定系统的最大流量,就是网络最大流问题.网络系统最大流问题是图与网络理论中十分重要的最优化问题,它对于解决生产实际问题起着十分重要的作用。
二基本概念与定理设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 。
v2 (3,3) v4(3,3)(5,5)vt (2,2) (2,2) (2,2) vt(6,4) (6,2)v1 (6,6) v3图1最大流问题可以建立如下形式的线性规划数学模型。
图1最大流问题的线性规划数学模型为12max 0(,)0s s ij ij j i ij ij v f f f f i s t f c =+⎧-=≠⎪⎨⎪≤≤⎩∑∑所有弧(i,j)由线性规划理论知,满足式上式的约束条件的解{fij}称为可行解,在最大流问题中称为可行流。
可行流满足下列三个条件:(1)0(2)(3)i j i j m j i m j i sj it vs vt f cf fv f f ≤≤===∑∑∑∑条件(2)和条件(3)也称为流量守恒条件。
专题六图与网络分析Graph & Network Analysis 6.1 图与网络的基本知识6.2 树6.3 最短路问题6.4 网络最大流问题6.4 网络最大流问题如何充分利用和有效提升现有网络资源的能力,使系统的流量达到最大并有效运行?➢引例如图是连结某物资产地至销地的铁路运输网,弧上的数字表示该路段的最大通过能力,现在要求制定一个运输方案,使从运到的该物资数量最多。
v 5v 3v sv 2v 4v 6v t43103854317493283532140581313s v t v s v t v➢基本概念与基本定理:◆网络与流网络:,其中; ;,称为弧的容量,为中间点集流:定义在网络弧上的一个函数或(),,D V A C ={},,=s t Vv I v (){},i j A v v ={}|0ij ij C c c =≥ij c I(),i j f v v ijfGP/ORv 5v 3v sv 2v 4v 6v t43103854317493283532140581313◆可行流与最大流可行流:满足以下条件的流为可行流。
(1)容量限制条件:(2)中间点的平衡条件:流入量=流出量(3)发点的总发量最大流:网络D 上流量最大的可行流称为最大流。
f 0ij ijf c ≤≤s v ()()()()t v f =v 收点的总收量-v fGP/OR()()()(),()0(,)()0(,1,2,,1;2,3,,)ij i j ij ij ji j j ijM ax v f A v f i s st i s t v f i t i s t j t f c v v f f f ⎧≤∈⎪⎪=⎧⎪⎪⎪−=≠⎨⎨⎪⎪−=⎩⎪⎪≥=−=⎪⎩∑∑◆可行流与最大流的关系:最大流问题实际上是一个特殊的线性规划问题,即求一组,在满足可行流的条件下使得达到最大,其数学模型:{}ij f ()v fGP/ORv 5v 3v sv 2v 4v 6v t4310385431749328353214058◆增广链(增流链)【术语】若给一个可行流,则有饱和弧﹠非饱和弧零流弧﹠非零流弧{}ij f f =()ij ij f c =()ij ij f c <()0ij f =()0ij f >v 5v 3v sv 2v 4v 6v t4310385431749328353214058若 是网络D 中从起点到终点的一条链,链上的弧分为两类:前向弧:弧的方向与链的方向一致后向弧:弧的方向与链的方向相反s v t v◆增流链:设是一个可行流,μ是一条从到的链,若μ上所有的前向弧均为不饱和弧,所有的后向弧均非零流弧,则μ称为关于可行流的增流链(增广链)。
最大流问题算法最大流问题算法介绍最大流问题是在网络流中的一个重要问题,它是指在一个有向图中,给定一个源点和汇点,每条边都有一个容量上限,求从源点到汇点的最大流量。
最大流问题有很多应用,如交通网络、电力系统、通信网络等。
本文将介绍最大流问题的算法。
Ford-Fulkerson算法Ford-Fulkerson算法是最早提出的解决最大流问题的方法之一。
该算法通过不断地增广路径来寻找增广路,并更新残留网络中的边权值。
具体步骤如下:1. 初始化残留网络:对于原图G(V, E),构造残留网络Gf(V, Ef),其中Ef包含所有满足c(u, v)>0或f(u, v)>0的(u, v)。
2. 寻找增广路:在残留网络中寻找从源点s到汇点t的增广路。
3. 更新残留网络:根据增广路更新残留网络中的边权值。
4. 重复步骤2和3直到不存在增广路为止。
该算法存在多种实现方式,如DFS、BFS等。
Edmonds-Karp算法Edmonds-Karp算法是Ford-Fulkerson算法的一种特殊实现方式,使用BFS来寻找增广路。
该算法的时间复杂度为O(VE^2),其中V和E分别为原图G(V, E)的顶点数和边数。
Dinic算法Dinic算法是一种基于分层图的最大流算法,它通过构造分层图来寻找增广路。
该算法的时间复杂度为O(V^2E),其中V和E分别为原图G(V, E)的顶点数和边数。
Push-Relabel算法Push-Relabel算法是一种基于预流推进的最大流算法,它通过不断地调整节点之间的流量来求解最大流。
该算法存在多种实现方式,如FIFO、HL等。
其中HL算法是一种比较优秀的实现方式,它将节点按照高度进行划分,并使用桶来管理节点。
总结以上介绍了最大流问题的四种常见算法:Ford-Fulkerson、Edmonds-Karp、Dinic和Push-Relabel。
这些算法各有优缺点,在实际应用中需要根据具体情况选择合适的算法。
给定一个有向图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)则称为一个可行流,称为这个可行流的流量。
注意,我们这里所说的出发点是指只有从发出去的弧,而没有指向的弧;收点是指只有弧指向,而没有从它的发出去的弧。