网络最大流问题

合集下载

网络最大流

网络最大流

容量为20 容量为
• 最小截集: • 容量最小截集的称为网络G的最小截集。 • 最大流-最小截集定理: • 在任一个网络D中,从vs到vt的最大流的 流量等于分离的最小截集的容量。
(二)、 求最大流的标号法
标号过程: 1. 给发点vs 标号(0,+∞)。 2. 取一个已标号的点vi,对于vi一切未标号的邻 接点vj 按下列规则处理: (1)如果边 (v j , vi ) ∈ E ,且 f j i > 0 ,那么给vj 标 号 (−vi , δ j ) ,其中: δ j = min( f j i , δ i ) (2)如果边 (vi , v j ) ∈ E ,且 f ij < cij,那么给vj 标号 ( +vi , δ δ j = min(ci j − f i j , δ i ) ,其中:j ) 3.重复步骤2,直到vt被标号或标号过程无法进 行下去,则标号结束。若vt被标号,则存在一条增广 链,转调整过程;若vt未被标号,而标号过程无法进 行下去,这时的可行流就是最大流。
2.去掉所有标号,回到第一步,对可行流 重新标号。
求下图所示网络中的最大流,弧旁数为
v2 (3 , 3) vs (5 , 1) (1 , 1) v1 (-v1, 1) ) v2 (3 , 3) (0,+∞) , ) vs (5 , 1) v1 (+ vs , 4) ) (2 , 2) (1 ,1) (1 , 1) (3 ,0) (2 ,1) v3 (-v2 ,1) ) (2 , 2) (4 ,3) (1 ,1) (3 ,0) (2 ,1) v3 (+v2,1) ) v4 (5 ,3) v4 (5 ,3) vt
f = f (v i , v j ) = { f i j }

最大流问题的求解方法及应用

最大流问题的求解方法及应用

最大流问题的求解方法及应用
最大流问题,是指在一个有向图中,从源点 s 到汇点 t 的最大
流量。

在实际应用中,最大流问题往往用于描述网络传输、油管输送等流量分配问题。

求解最大流问题的方法包括以下几种:
1. 网络流算法:这是一种基于图论和线性规划的算法。

通过构建网络流图,将最大流问题转化为最小割问题,再利用线性规划求解最小割问题的对偶问题来求解最大流问题。

2. 增广路算法:这是一种经典的最大流算法,其基本思想是不断找到增广路径,即从源点 s 到汇点 t 的一条路径,沿途边权
均有剩余容量,使得该路径上的边的剩余容量中的最小值最大化,最终得到最大流。

3. 矩阵树定理:这是一种基于图论和矩阵运算的算法,适用于有向图和无向图。

通过计算图的拉普拉斯矩阵的行列式等方法,求得图的生成树个数,从而计算最大流。

4. Dinic算法:是对增广路算法的改进。

在增广路算法中,每
次查找增广路径的过程需要遍历整个图,为了提高效率,
Dinic算法引入了分层图的概念,将图分层之后只在图的一层
中查找增广路径,最终求得最大流。

这些方法在实际应用中常常被用来解决路由选择、网络流量优化、模拟电路分析等问题。

例如,最大流可以被用来优化数据传输、流水线设计、流量管道的运营和管理,提高资源利用率和数据传输速度。

最大流问题解题步骤

最大流问题解题步骤

最大流问题解题步骤一、什么是最大流问题?最大流问题是指在一个有向图中,给定源点和汇点,每条边都有一个容量限制,求从源点到汇点的最大流量。

该问题可以用于网络传输、电力调度等实际应用中。

二、最大流问题的解法1. 增广路算法增广路算法是最基本的解决最大流问题的方法。

其基本思想是不断地寻找增广路,并将其上的流量加入到原来的流中,直到不存在增广路为止。

具体步骤如下:(1)初始化网络中各边上的流量均为0;(2)在残留网络中寻找增广路;(3)如果存在增广路,则将其上的最小剩余容量作为增量加入到原来的流中;(4)重复步骤2和步骤3,直到不存在增广路。

2. Dinic算法Dinic算法是一种改进型的增广路算法,其核心思想是通过层次分析和分层图来减少搜索次数,进而提高效率。

具体步骤如下:(1)构建分层图;(2)在分层图上进行BFS搜索寻找增广路径;(3)计算路径上可行流量并更新残留网络;(4)重复步骤2和步骤3,直到不存在增广路。

3. Ford-Fulkerson算法Ford-Fulkerson算法是一种基于增广路的算法,其核心思想是不断地寻找增广路,并将其上的流量加入到原来的流中,直到不存在增广路为止。

具体步骤如下:(1)初始化网络中各边上的流量均为0;(2)在残留网络中寻找增广路;(3)如果存在增广路,则将其上的最小剩余容量作为增量加入到原来的流中;(4)重复步骤2和步骤3,直到不存在增广路。

三、最大流问题解题步骤1. 确定源点和汇点首先需要确定问题中的源点和汇点,这是解决最大流问题的前提条件。

2. 构建残留网络在有向图中,每条边都有一个容量限制。

我们可以将这些边看作管道,容量看作管道的宽度。

在实际传输过程中,某些管道可能已经被占用了一部分宽度。

因此,在求解最大流问题时,需要构建一个残留网络来表示哪些管道还能够继续传输数据。

具体方法是:对于每条边(u,v),分别构造两条边(u,v)和(v,u),容量分别为c(u,v)-f(u,v)和f(u,v),其中c(u,v)表示边的容量,f(u,v)表示当前流量。

最大流常见算法

最大流常见算法

最大流常见算法最大流问题是图论中的一个重要问题,其求解方法有多种,本文将介绍最常见的几种算法。

一、最大流问题简介最大流问题是在一个网络中寻找从源点到汇点的最大流量的问题。

网络是由一些节点和连接这些节点的边构成的,每条边都有一个容量,表示该边所能承载的最大流量。

源点是流量的起点,汇点是流量的终点。

在网络中,还可能存在其他节点和边。

二、Ford-Fulkerson算法Ford-Fulkerson算法是最早用于解决最大流问题的算法之一。

该算法基于增广路径来不断增加流量,直到无法再找到增广路径为止。

1. 算法步骤(1)初始化:将所有边上的流量设为0。

(2)寻找增广路径:从源点开始进行深度优先或广度优先搜索,在搜索过程中只选择剩余容量不为0且没有被标记过的边,并记录路径上容量最小值min。

(3)更新路径上各个边上的流量:将路径上各个边上的流量加上min。

(4)返回第二步,直到无法找到增广路径为止。

2. 算法分析Ford-Fulkerson算法可以保证在有限步内求解出最大流,但是其时间复杂度与增广路径的选择有关,最坏情况下可能需要指数级的时间复杂度。

三、Edmonds-Karp算法Edmonds-Karp算法是基于Ford-Fulkerson算法的一种改进算法。

该算法使用BFS来寻找增广路径,可以保证在多项式时间内求解出最大流。

1. 算法步骤(1)初始化:将所有边上的流量设为0。

(2)寻找增广路径:从源点开始进行BFS,在搜索过程中只选择剩余容量不为0且没有被标记过的边,并记录路径上容量最小值min。

(3)更新路径上各个边上的流量:将路径上各个边上的流量加上min。

(4)返回第二步,直到无法找到增广路径为止。

2. 算法分析Edmonds-Karp算法相对于Ford-Fulkerson算法来说,在同样的网络中,其时间复杂度更低,可以保证在O(VE^2)的时间内求解出最大流。

但是在某些特殊情况下仍然可能需要指数级时间复杂度。

最大流的概念

最大流的概念

最大流的概念最大流(Maximum Flow)是指在一个有向图中,给每条边一个容量限制,然后寻找一条从源点到汇点的路径,使得路径上的每条边的流量都不超过其容量限制的最大值。

最大流问题是网络流理论中的一种经典问题,具有广泛的应用领域,如网络优化、流量分配、资源调度等。

最大流问题可以用图论中的图来进行模型表示,其中图中的节点表示流经的位置,边表示流量通路,每条边还有一个容量值,表示该边所能承载的最大流量。

图中通常包括一个源点(Source)和一个汇点(Sink),各个节点与源点和汇点之间的连接关系构成了一个流量网络。

每个节点上的流量是指通过该节点的流量总和,而边上的流量是指该边上的实际流量。

最大流问题的求解可以采用不同的算法,其中最常见的是Ford-Fulkerson算法和Edmonds-Karp算法。

下面将对这两种算法进行详细介绍。

1. Ford-Fulkerson算法Ford-Fulkerson算法是最大流问题的经典算法,它的思想是不断寻找增广路径,并通过增加该路径上各边的流量来增加整个流量网络的流量。

算法的基本步骤如下:(1) 初始化流量网络的流量为0。

(2) 通过任意的路径查找算法(如深度优先搜索)找到一条从源点到汇点的增广路径。

(3) 在该增广路径上增加流量的值为该路径上残余容量的最小值。

(4) 更新整个流量网络中各边的残余容量和反向边的流量。

(5) 重复步骤2至4,直到无法找到增广路径为止。

2. Edmonds-Karp算法Edmonds-Karp算法是Ford-Fulkerson算法的一种改进,它通过使用广度优先搜索来寻找增广路径,使得算法的时间复杂度优于Ford-Fulkerson算法。

算法的具体步骤如下:(1) 初始化流量网络的流量为0。

(2) 通过广度优先搜索查找一条从源点到汇点的最短增广路径。

(3) 在该增广路径上增加流量的值为该路径上残余容量的最小值。

(4) 更新整个流量网络中各边的残余容量和反向边的流量。

5-4 最 大 流 问题

5-4 最 大 流 问题

(2)标号过程 标号过程
给起点v 标上标号( , 1给起点 s标上标号(-,+∞); ); (表示 s是源点(起点),能够得到任意多的量。 表示v 是源点(起点),能够得到任意多的量。 ),能够得到任意多的量 表示 vs称为已标记的点。让S表示已标记点的集合 S 表示 称为已标记的点。 表示已标记点的集合, 表示已标记点的集合 未标记点的集合, 未标记点的集合 VS ∈ S ) 2考察起点的所有相邻未标号点: 考察起点的所有相邻未标号 所有相邻未标号点 若存在以S中的点为起点, 若存在以 中的点为起点,以 S 中的点为终点的非饱 中的点为起点 [vi+ , ε j ] ,否则不加标记。 和弧( 否则不加标记。 和弧(vi,vj)则vj可标记为
从S出发到 S 终止的所有边的集合即割集。 终止的所有边的集合即割集。
v2
e1
e3 e6
v4
e8
v1
e2
e4 e7
v6
e5
v3
v5
e9
不包括从 S 出发到S终 止的边!
4、弧的分类
(1)在可行流X={xij}中,按流量的特征 在可行流X 分有: 分有: ①饱和弧——xij=bij 饱和弧 ②非饱和弧——xij<bij 非饱和弧 ③零流弧——xij=0 零流弧 ④非零流弧——xij>0 非零流弧
顶点3的标记化 顶点 的标记化: 的标记化 ∵ x s 3 = bs 3 , 但
正向饱和 弧 ∴不能从v 不能从
得到标记; 标记 s得到标记;
x
32
得到标记 标记。 > 0,故可从v2得到标记。
反向非零流
于是
ε ε3 = min { 2 , x 32 } = min {6 , 4 } = 4

8.4 网络最大流问题

8.4 网络最大流问题

所有指向为vs→vt的弧,称为前向弧,记作μ +;
所有指向为vt →vs的弧,称为后向弧,记做μ
-,
增广链:设 f 是一个可行流,μ是从vs 到 vt 的一条链,若μ满 足下列条件,称之为(关于可行流 f 的)增广链。
1)在(vi , vj)∈μ+上,0≤fij<cij,即μ+中的弧都是非饱和弧。
2)在(vi,vj)∈μ-上,0<fij≤cij,即μ-中的弧都是非零流弧。
§8.4 网络最大流问题
Page 22
(3) 检查与v3点相邻的未标号的点,因f3t<c3t,故对vt 标 l(vt)=min{l(v3), c3t-f3t } =min{1, 1}= 1 找到一条增广链 vs→v1→v2 →v3 →vt ( v , 1) 2 (-v v12, 1) (4,3) v4 (3,3) (5,3) (1,1) (1,1) (3,0)
v ( f ) f s1 f s 2 f 4 t f 3 t 5
§8.4 网络最大流问题
Page 25
例8.10 用标号算法求下图中vs→vt的最大流量,并找出最小 截。 v1 9(3) v3 8(7)
5(4) 5(4)
2(0)
vs
7(5)
6(1)

vt
10(8) v2 9(9) v4
§8.4 网络最大流问题
基本方法: (1)找出第一个可行流(例如所有弧的流量fij =0);
Page 14
(2)用标号的方法找一条增广链:
首先给发点vs标号(0,+∞),第一个数字表示标号从哪一点得到;
第二个数字表示允许的最大调整量。
选择一个点 vi 已标号且另一端未标号的弧沿着某条链向收

运筹学第7章 最大流问题(精简)

运筹学第7章 最大流问题(精简)

对最大流问题有下列定理:
定理1 容量网络中任一可行流的流量 不超过其任一割集的容量。
定理2(最大流-最小割定理)任一容 量网络中,最大流的流量等于最小割集 的割量。
推论1 可行流f*={fij*}是最大流,当且 仅当G中不存在关于f.*的增广链。
求最大流的标号法
标号法思想是:先找一个可行流。 对于一个可行流,经过标号过程得到 从发点vs到收点vt的增广链;经过调整 过程沿增广链增加可行流的流量,得 新的可行流。重复这一过程,直到可 行流无增广链,得到最大流。
.
标号过程:
(1)给vs标号(,+∞),vs成为已标号未检查的点,其 余都是未标号点。
(2)取一个已标号未检查的点vi,对一切未标号点vj: 若有非饱和边(vi,vj),则vj标号(vi,l(vj)),其中l(vj)= min[l(vi),cij – fij],vj成为已标号未检查的点;若有非 零边(vj,vi),则vj标号(-vi,l(vj)),其中l(vj)=min[l(vi), fji], vj成为已标号未检查的点。vi成为已标号已检查的点 。
最大流问题
.
基本概念
v2 3
4
v4
5
vs
1
1
3
vt
5
2
v1
2
v3
给定一个有向图G=(V,E),其中仅有一个点的入次
为零称为发点(源),记为vs,仅有一个点的出次为零 称为收点(汇),记为vt,其余点称为中间点。
对于G中的每一条边(vi,vj),相应地给一个数cij (cij≥0),称为边(vi,vj)的容量。我们把这样的网络 G称为容量网络 ,记为G=(V,E,C)。
但利用它与图的密切关系,可以利用图直观简便地求 解。
  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所表示的网络最大流问题的线性规划模型。

解设,则其线性规划模型为max3、增广链在网络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=5<c s2=13;而μ-上的弧为非零流弧,如(v3,v2)∈μ-,f32=1>0,。

显然这样的增广链不止一条。

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,令(7、20) 不难验证就是一个可行流,且有这与f*就是最大流的假定矛盾。

再证充分性:即证明设D中不存在关于f*的增广链,f*就是最大流。

用下面的方法定义:令若,且有,则令;若,且有,则令。

因为不存在着关于的增广链,故记,于就是得到一个截集(V*,)。

显然有所以V(f*)=c,于就是f*必就是最大流。

定理得证。

由上述证明中可见,若就是最大流,则网络必定存在一个截集,使得(7、18)式成立。

定理5(最大流——最小截集定理)对于任意给定的网络D=(V,A,C),从出发点v s到收点v t的最大流的流量必等于分割与的最小截集的容量,即由定理4可知,若给定一个可行流,只要判断网络D有无关于的增广链。

如果有增广链,则可以按定理4前半部分证明中的办法,由公式(7、19)求出调整量Q,再按式(7、20)的方法求出新的可行流。

如果流有增广链,则得到最大流。

而根据定理4后半部分证明中定义的办法,可以根据v t就是否属于来判断D中有无关于f的增广链。

在实际计算时,我们就是用给顶点标号的方法来定义的,在标号过程中,有标号的顶点表示就是中的点,没有标号的点表示不就是中的点。

一旦有了标号,就表明找到一条从v s到v t的增广链;如果标号过程无法进行下去,而v t尚未标号,则说明不存在从v s到v t的增广链,于就是得到最大流。

这时将已标号的点(至少有一个点v s)放在集合中,将未标号点(至少有一个点v t)放在集合中,就得到一个最小截集。

4、2 寻求最大流的标号法(Ford , Fulkerson)从一个可行流出发(若网络中没有给定,则可以设就是零流),经过标号过程与调整过程。

1)1)标号过程在这个过程中,网络中的点或者就是标号点(又分为已检查与未检查两种),或者就是未标号点,每个标号点的标号包含两部分:第一个标号表明它的标号就是从哪一点得到的,以便找出增广链;第二个标号就是为确定增广链的调整量θ用的。

标号过程开始,总先给v s标上(0,+∞),这时v s就是标号而未检查的点,其余都就是未标号点,一般地,取一个标号而未检查的点v i,对一切未标号点v j:(1) 在弧上,,则给v j标号。

这里。

这时点v j成为标号而未检查的点。

(2) 若在弧上,,给v j标号。

这里。

这时点v j成为标号而未检查的点。

于就是成为标号而已检查过的点,重复上述步骤,一旦被标上号,表明得到一条从到的增广链,转入调整过程。

若所有标号都就是已检查过,而标号过程进行不下去时,则算法结束,这时的可行流就就是最大流。

2)2调整过程首先按及其它点的第一个标号,利用“反向追踪”的办法,找出增广链μ。

例如设v t的第一个标号为(或),则弧(或相应地)就是μ上的弧。

接下来检查的第一个标号,若为(或),则找出(或相应地)。

再检查的第一个标号,依此下去,直到为止。

这时被找出的弧就构成了增广链。

令调整量θ就是,即的第二个标号。

令去掉所有的标号,对新的可行流,重新进入标号过程。

下面,以例题说明此算法求解过程。

例3 用标号法求图7-20所示网络最大流。

弧旁的数就是解:对图7-20中各顶点进行标号。

首先给标(0,+∞),即检查:在弧上,因为,又有,所以给标;在弧上,因为,又有,所以给标。

检查:在弧上,因为,又有,所以给标;,所以给标;在弧上,因为,又有,所以给V3标。

因为前面已给v 3标过号,这里又给标,它们分别表示两条不同的路线,这里不存在修改标号的问题(与最短路不同)。

因为我们的目标就是尽快找出一条从v s到v t 的增广链,即尽快使终点v t获得标号,所以不必在中途过多停留。

也就就是说在对已标号点v i 进行检查时,每次只检查一个相邻点v j(不论前向弧或后向弧均可),再给标号即可,而不必检查所有与v i相邻的点。

事实上,其余的相邻点也不会漏掉,因为以后还要通过检查这些点来找出新的增广链。

以下我们就按这种思路进行。

检查:在弧上,因为,又有、所以给标、至此,终点已获得标号,于就是找出一条从到的增广链。

再由标号的第一部分用反向追踪法找出路线,即(见图7-21)。

进行调查:这时的调整量、再按公式(7、20)调整。

由于上各弧均为前向弧,故得,,、(见图7-21)、其余的不变、对这个新的可行流再进入标号过程,寻找新增广链。

开始给标,检查,给标,检查:在弧上,因为(见图7-21),故该弧已饱与,标号无法进行下去。

所以给标,检查:在弧上,因为,又有所以给标,检查:在弧上,因为,又有,所以给标、于就是又得到一条增广链(见图7-22)进行调整: 这时。

调整结果如图9、28所示。

再重新标号求新的增广链、开始给标,检查,给标。

检查,给标,检查,给标,检查,因已就是饱与弧(见图7-22)。

标号无法进行。

,所以给标、于就是又得到一条增广链:、再进行调整(见图7-23)、再重新进行标号求新的增广链:开始给标(0,+),检查,给标、检查:这时弧均已饱与。

而在弧上,因,又有所以给标,表明弧为后向弧、检查,给标。

检查,给标。

于就是又得到一条增广链:、再进行调整(见图7-24)。

相关文档
最新文档