运筹学

陈建华

目录

  • 1 第一章    绪论
    • 1.1 第一节 运筹学的定义与发展简史
    • 1.2 第二节 运筹学的基本特点和工作步骤
    • 1.3 第三节 运筹学的主要分支
    • 1.4 第四节 运筹学的应用
  • 2 第二章  线性规划
    • 2.1 第一节 线性规划概述
    • 2.2 第二节 线性规划问题及其数学模型
    • 2.3 第三节 线性规划图解法及其几何意义
    • 2.4 第四节 线性规划单纯形法与单纯形表
    • 2.5 第五节 单纯形法的矩阵描述
    • 2.6 第六节 人造基下的单纯形法
    • 2.7 第七节 线性规划典型例题及应用
  • 3 第三章 运输问题
    • 3.1 第一节 运输问题的数学模型及其特征
    • 3.2 第二节 运输模型的求解---表上作业法
    • 3.3 第三节 运输问题的推广
  • 4 第四章 整数规划
    • 4.1 第一节 整数规划概念与特点
    • 4.2 第二节 分枝定界法
    • 4.3 第三节 割平面法
    • 4.4 第四节 0—1规划与隐枚举法
    • 4.5 第五节 指派问题与匈牙利法
    • 4.6 第六节 典型例题及应用
  • 5 第五章 图与网络
    • 5.1 第一节 图的基本概念
    • 5.2 第二节 树
    • 5.3 第三节 最短路问题
    • 5.4 第四节 网络最大流问题
    • 5.5 第五节 Euler图
    • 5.6 第六节 中国邮递员问题
  • 6 第六章 网络计划
    • 6.1 第一节 网络计划图
    • 6.2 第二节 网络计划图的时间参数
    • 6.3 第三节 网络计划的优化
  • 7 第七章 排队论
    • 7.1 第一节 排队论的基本概念
    • 7.2 第二节 排队系统常用分布
    • 7.3 第三节 单服务台模型
  • 8 第八章 存储论
    • 8.1 第一节 存储论基础
    • 8.2 第二节 确定性库存模型
    • 8.3 第三节 确定性库存模型的参数分析
    • 8.4 第四节 随机型存储模型
  • 9 第九章 决策论
    • 9.1 第一节 决策论基本问题
    • 9.2 第二节 完全不确定型决策
    • 9.3 第三节 风险型决策
    • 9.4 第四节 效用理论在决策中的应用
第四节 网络最大流问题
  • 1
  • 2

第四节网络最大流问题

许多系统包含了流量问题。例如,公路系统中有车辆流,控制系统中有信息流,供水系统中有水流,金融系统中有现金流等。

5-15是联结某产品产地和销地的交通网,每一弧()代表从的运输线,产品经这条弧由输送到,弧旁的数字表示这条运输线的最大通过能力。产品经过交通网从输送到。现在要求制定一个运输方案使从运到的产品数量最多。

5-16给出了一个运输方案,每条弧旁的数字表示在这个方案中,每条运输线上的运输数量。这个方案使8个单位的产品从运到,在这个交通网上输送量是否还可以增多,或者说这个运输网络中,从的最大输送量是多少呢?本节就是要研究类似这样的问题。

5-15

5-16

5.4.1基本概念与基本定理

1)网络与流

定义:给一个有向图,在V中指定了一点称为发点(记为),而另一点称为收点(记为),其余的点叫中间点。对于每一个弧()∈A,对应有一个c()≥0(或简写为),称为弧的容量。通常我们就把这样的D叫作一个网络。记作

所谓网络上的流,是指定义在弧集合A上的一个函数={()},并称()为弧()上的流量(有时也简记作)

例如图5-14就是一个网络,指定是发点,是收点,其他的点是中间点。弧旁的数字为

5-15所示的运输方案,就可看作是这个网络上的一个流,每个弧上的运输量就是该弧上的流量,即=5=2=3=1等。

2)可行流与最大流

在运输网络的实际问题中可以看出,对于流有两个明显的要求:一是每个弧上的流量不能超过该弧的最大通过能力(即弧的容量);二是中间点的流量为零。因为对于每个点,运出这点的产品总量与运进这点的产品总量之差,是这点的净输出量,简称为是这一点的流量;由于中间点只起转运作用,所以中间点的流量必为零。易见发点的净流出量和收点的净流入量必相等,也是这个方案的总输送量。因此有:

定义5-4满足下述条件的流称为可行流:

容量限制条件:对每一弧()∈A

0≤

平衡条件:

对于中间点流出量等于流入量,即对每个(≠s)有:

对于发点,有:

对于收点,有:

式中称为这个可行流的流量,即发点的净输出量(或收点的净输入量)

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

最大流问题就是求一个流{}使其流量达到最大,并且满足:

0≤   ()∈A                  ①

          

最大流问题是一个特殊的线性规划问题。即求一组{},在满足条件下使达到极大。将会看到利用图的特点,解决这个问题的方法较之线性规划的一般方法要方便、直观得多。

3)增广链

若给一个可行流={},我们把网络中使=的弧称为饱和弧,使<的弧称为非饱和弧。使=0的弧称为零流弧,使>0的弧称为非零流弧。

在图5-15中,()是饱和弧,其他的弧为非饱和弧。所有弧都是非零流弧。

是网络中联结发点和收点的一条链,我们定义链的方向是从,则链上的弧被分为两类:一类是弧的方向与链的方向一致,叫做前向弧。前向弧的全体记为。另一类弧与链的方向相反,称为后向弧。后向弧的全体记为

5-15中,在链=()

={()()()()}

={()}

定义:设是一个可行流,是从的一条链,若满足下列条件,称之为(关于可行流)增广链。

在弧()∈上,0≤<,即中每一弧是非饱和弧。

在弧()∈上,0<,即中每一弧是非零流弧。

10-24中,链=()是一条增广链。因为中的弧满足增广链的条件。比如:

()∈=5<=10

()∈=3>0

4)截集与截量

SVS∩=∅,我们把始点在S中,终点在中的所有弧构成的集合,记为(S)

定义:给网络,若点集V被剖分为两个非空集合,使,则把弧集()称为是(分离)截集。

显然,若把某一截集的弧从网络中丢去,则从便不存在路。所以,直观上说,截集是从的必经之道。

定义5-5给一截集(),把截集()中所有弧的容量之和称为这个截集的容量(简称为截量),记为c(),即

c()=Σ()∈()

不难证明,任何一个可行流的流量都不会超过任一截集的容量。即≤c()

显然,若对于一个可行流,网络中有一个截集(),使v()=c(),则必是最大流,而()必定是D的所有截集中,容量最小的一个,即最小截集。一般地有如下结论:

(1)可行流是最大流,当且仅当不存在关于的增广链。

(2)任一个网络D中,从的最大流的流量等于分离的最小截集的容量。

(1)为我们提供了寻求网络中最大流的一个方法。若给了一个可行流,只要判断D中有无关于的增广链。如果有增广链,改进,得到一个流量增大的新的可行流。如果没有增广链,则得到最大流。

5.4.2寻求最大流的标号法

从一个可行流出发(若网络中没有给定,则可以设是零流),经过标号过程与调整过程。

1)标号过程

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

标号过程开始,总先给标上(0+),这时是标号而未检查的点,其余都是未标号点。一般地,取一个标号而未检查的点,对一切未标号点

若在弧()上,<,则给标号(())。这里()=[()-]。这时点成为标号而未检查的点。

若在弧()上,>0,则给标号(-()),这里()=[()]。这时点成为标号而未检查的点。

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

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

2)调整过程

首先按及其他点的第一个标号,利用反向追踪的办法,找出增广链。例如设的第一个标号为(-),则弧()(或相应地())上的弧。接下来检查的第一个标号,若为(-),则找出()(或相应地())。再检查的第一个标号,依此下去,直到为止。这时被找出的弧就构成了增广链。令调整量(),即的第二个标号。令:

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

5.7】用标号法求图5-17所示网络的最大流,弧旁的数是()

解:

(1)标号过程

1首先给标上(0+)

5-17

检查,在弧()上,,不满足标号条件。弧()上,<,则的标号为(()),其中

()=[()(-)]=[+5-1]=4

检查,在弧()上,=2=2,不满足标号条件。

在弧()上,=1>0,则给记下标号为(-()),这里

()=[()]=[41]=1

检查,在弧()上,=3=4<,则给标号(()),这里

()=[()(-)]=[11]=1

在弧()上,=1>0,给标号:(-()),这里

()=[()]=[11]=1

中任选一个进行检查。例如

在弧()上,=1=2<,给标号为(()),这里

()=[()(-)]=[11]=1

有了标号,故转入调整过程。

(2)调整过程

按点的第一个标号找到一条增广链,如图5-18中双箭头线表示。

5-18

易见={()()}

={()()}

=1上调整

+=1+1=2

+=1+1=2

-=1-1=0

-=1-1=0

其余的不变。

调整后得如图5-19所示的可行流,对这个可行流进入标号过程,寻找增广链。

5-19

开始给标以(0+),于是检查,给标以(3),检查,弧()上,=,弧()上,=0,均不符号条件,标号过程无法继续下去,算法结束。

这时的可行流(5-18)即为所求最大流。最大流量为:

=+=+=5

与此同时可找到最小截集(),其中为标号点集合,为未标号点集合。弧集合()即为最小截集。

上例中,={}={},于是()={()()}是最小截集,它的容量也是5

由上述可见,用标号法找增广链以求最大流的结果,同时得到一个最小截集。最小截集容量的大小影响总的输送量的提高。因此,为提高总的输送量,必须首先考虑改善最小截集中各弧的输送状况,提高它们的通过能力。另一方面,一旦最小截集中弧的通过能力被降低,就会使总的输送量减少。