运筹学图与网络分析_第1页
运筹学图与网络分析_第2页
运筹学图与网络分析_第3页
运筹学图与网络分析_第4页
运筹学图与网络分析_第5页
已阅读5页,还剩162页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章图与网络分析主要内容:§8.1图的基本概念与基本定理§8.2树和最小支撑树§8.3最短路问题§8.4最小费用流问题§8.5最大流问题§8.6网络计划§8.7中国邮递员问题§8.7指派问题§8.1图的基本概念与基本定理图论是应用非常广泛的运筹学分支,它已经广泛地应用于物理学控制论,信息论,工程技术,交通运输,经济管理,电子计算机等各项领域。对于科学研究,市场和社会生活中的许多问题,可以同图论的理论和方法来加以解决。例如,各种通信线路的架设,输油管道的铺设,铁路或者公路交通网络的合理布局等问题,都可以应用图论的方法,简便、快捷地加以解决。随着科学技术的进步,特别是电子计算机技术的发展,图论的理论获得了更进一步的发展,应用更加广泛。如果将复杂的工程系统和管理问题用图的理论加以描述,可以解决许多工程项目和管理决策的最优问题。因此,图论越来越受到工程技术人员和经营管理人员的重视。关于图的第一篇论文是瑞士数学家欧拉(E.Euler)在1736年发表的解决“哥尼斯堡”七桥难题的论文;德国的哥尼斯堡城有一条普雷格尔河,河中有两个岛屿,河的两岸和岛屿之间有七座桥相互连接,(见图8.1a)当地的居民热衷于这样一个问题,一个漫步者如何能够走过这七座桥,并且每座桥只能走过一次,最终回到原出发地。尽管试验者很多,但是都没有成功。为了寻找答案,1736年欧拉将这个问题抽象成图8.1b所示图形的一笔画问题。哥尼斯堡七桥问题图8.1aABCD哥尼斯堡七桥问题可简化为以下图形其中的四个顶点都是奇顶点ABCDCADB图8.1b即能否从某一点开始不重复地一笔画出这个图形,最终回到原点。欧拉在他的论文中证明了这是不可能的,因为这个图形中每一个顶点都与奇数条边相连接,不可能将它一笔画出,这就是古典图论中的第一个著名问题。在实际的生产和生活中,人们为了反映事物之间的关系,常常在纸上用点和线来画出各式各样的示意图。例8.1图8.2是我国北京、上海、重庆等十四个城市之间的铁路交通图,这里用点表示城市,用点与点之间的线表示城市之间的铁路线。诸如此类还有城市中的市政管道图,民用航空线图等等。石家庄太原北京天津塘沽济南青岛徐州连云港南京上海郑州武汉重庆图8.2

例8.2有六支球队进行足球比赛,我们分别用点v1,…,v6表示这六支球队,它们之间的比赛情况,也可以用图反映出来,已知v1队战胜v2

队,v2队战胜v3

队,v3队战胜v5队,如此等等。这个胜负情况,可以用图8.3所示的有向图反映出来图8.3v3v5v2v4v6v1

从以上的几个例子可以看出,我们用点和点之间的线所构成的图,反映实际生产和生活中的某些特定对象之间的特定关系。一般来说,通常用点表示研究对象,用点与点之间的线表示研究对象之间的特定关系。由于在一般情况下,图中的相对位置如何,点与点之间线的长短曲直,对于反映研究对象之间的关系,显的并不重要,因此,图论中的图与几何图,工程图等本质上是不同的。

综上所述,图论中的图是由点和点与点之间的线所组成的。通常,我们把点与点之间不带箭头的线叫做边,带箭头的线叫做弧。如果一个图是由点和边所构成的,那么,称为无向图,记作G=(V,E),其中V表示图G

的点集合,E表示图G的边集合。连接点vi,vjV的边记作[vi,vj],或者[vj,vi]。

如果一个图是由点和弧所构成的,那么称为它为有向图,记作D=(V,A),其中V表示有向图D的点集合,A表示有向图D的弧集合。一条方向从vi指向vj的弧,记作(vi,vj)。例如.图8.4是一个无向图G=(V,E),

其中V={v1,v2,v3,v4}E={[v1,v2],[v2,v1],[v2,v3],

[v3,v4],[v1,v4],

[v2,v4],[v3,v3]}v3v2v1v4图8.4图8.5是一个有向图D=(V,A)其中V={v1,v2,v3,v4,v5,v6,v7}A={(v1,v2),(v1,v3),(v3,v2)(v3,v4),(v2,v4),(v4,v5),

(v4,v6),(v5,v3),(v5,v4),(v5,v6),(v6,v7)}图8.5v7v5v3v4v2v6v1下面介绍一些常用的名词:一个图G或有向图D中的点数,记作P(G)或P(D),简记作P,边数或者弧数,记作q(G)或者q(D),简记作q。

如果边[vi,vj]E,那么称vi,vj

是边的端点,或者vi,vj是相邻的。如果一个图G中,一条边的两个端点是相同的,那么称为这条边是环,如图8.4中的边[v3,v3]是环。如果两个端点之间有两条以上的边,那么称为它们为多重边,如图8.4中的边[v1

,v2],[v2

,v1]。一个无环,无多重边的图称为简单图,一个无环,有多重边的图称为多重图。以点v为端点的边的个数称为点v的度,记作d(v),如图8—4中d(v1)=3,d(v2)=4,d(v3)=4,d(v4)=3。

度为零的点称为弧立点,度为1的点称为悬挂点。悬挂点的边称为悬挂边。度为奇数的点称为奇点,度为偶数的点称为偶点。端点的度

d(v):点v

作为端点的边的个数奇点:d(v)=奇数;偶点:d(v)=偶数;悬挂点:d(v)=1;悬挂边:与悬挂点连接的边;孤立点:d(v)=0;空图:E=,无边图v1v2v3v4v5v6v1v7v6v5v4v3v2V={v1,v2,v3,v4,v5,v6,v7

}d(v1)=3;d(v2)=5;d(v3)=4;d(v4)=4;d(v5)=1;d(v6)=3;d(v7)=0其中v5

为悬挂点,v7为孤立点。

定理8.1所有顶点度数之和等于所有边数的2倍。

证明:因为在计算各个点的度时,每条边被它的两个端点个用了一次。v1v5v4v3v2简单图(2)(4)(3)(3)(2)v1v5v4v3v2多重图(4)(6)(3)(3)(2)定理8.2

在任一图中,奇点的个数必为偶数。证明:设V1,V2

分别是图G中奇点和偶点的集合,由定理8.1,有因为是偶数,也是偶数,因此也必是偶数,从而V1

中的点数是偶数。图的连通性:链:由两两相邻的点及其相关联的边构成的点边序列。如:v0,e1

,v1

,e2

,v2,e3

,v3

,…,vn-1,en

vn

;v0,vn分别为链的起点和终点

。记作(v0,v1

,v2,,v3

,…,vn-1,vn)简单链:链中所含的边均不相同;初等链:链中所含的点均不相同,也称通路;圈:若v0≠vn

则称该链为开链,否则称为闭链或回路或圈;简单圈:如果在一个圈中所含的边均不相同初等圈:除起点和终点外链中所含的点均不相同的圈;连通图:图中任意两点之间均至少有一条通路,否则称为不连通图。

v1v2v4v3v5v6v7v8v9初等链:(v1,v2,v3,v6,v7,v5)初等圈:(v1,v2,v3,v5,v4,v1)简单圈:(v4,v1,v2,v3,v5,v7,v6,v3,v4)简单链:(v1,v2,v3,v4,v5,v3)

以后除特别声明,均指初等链和初等圈。v1v2v3v4v5连通图v1v5v4v3v2v6子图定义:如果V2

V1,E2

E1

称G2是

G1

的子图;真子图:如果V2

V1,E2

E1

称G2

G1

的真子图;部分图:如果V2=V1,E2

E1

称G2

G1

的部分图或支撑子图;

导出子图:

如果V2

V1,E2={[vi,vj]∣vi,vjV2},称

G2

是G1

中由V2

导出的导出子图。设G1=[V1,E1],G2=[V2,E2]G1G2真子图G3子图

部分图G4导出子图

G5

生成树

G6

G5余树有向图:关联边有方向弧:有向图的边a=(u,v),起点u

,终点v;路:若有从u

到v

不考虑方向的链,且各方向一致,则称之为从u到v的路;初等路:

各顶点都不相同的路;

初等回路:u=v

的初等路;

连通图:

若不考虑方向是无向连通图;

强连通图:任两点有路;v1v2v3v4v5§8.2树和最小支撑树一、树及其性质在各种各样的图中,有一类图是十分简单又非常具有应用价值的图,这就是树。

例8.3已知有六个城市,它们之间要架设电话线,要求任意两个城市均可以互相通话,并且电话线的总长度最短。如果用六个点v1…v6代表这六个城市,在任意两个城市之间架设电话线,即在相应的两个点之间连一条边。这样,六个城市的一个电话网就作成一个图。表示任意两个城市之间均可以通话,这个图必须是连通图。并且,这个图必须是无圈的。否则,从圈上任意去掉一条边,剩下的图仍然是六个城市的一个电话网。图8.8是一个不含圈的连通图,代表了一个电话线网。图8.8v6v3v4v2v5v1

定义8.1一个无圈的连通图叫做树。下面介绍树的一些重要性质:

定理8.3设图G=(V,E)是一个树P(G)≥2,那么图G中至少有两个悬挂点。定理8.4图G=(V,E)是一个树的充要条件是G不含圈,并且有且仅有P-1条边。

定理8.5图G=(V,E)是一个树的充要条件是G是连通图,并且有且仅有p–1条边。

定理8.6图G是一个树的充分必要条件是任意两个顶点之间有且仅有一条链。从以上定理,不难得出以下结论:(1)从一个树中任意去掉一条边,那么剩下的图不是连通图,亦即,在点集合相同的图中,树是含边数最少的连通图。(2)在树中不相邻的两个点之间加上一条边,那么恰好得到一个圈。二.支撑树定义8.2设图K=(V,EI)是图G=(V,E)的

一支撑子图,如果图K=(V,EI)是一个树,那么称K是G的一个支撑树。例如,图8.10b是图8.10a的一个支撑树图8.10v6v5v2v3v4v1av6v5v2v3v4v1b显然,如果图K=(V,EI)是图G=(V,E)的一个支撑树,那么K的边数是p(G)-1,G中不属于支撑树K的边数是q(G)-p(G)+1。

定理8.7一个图G有支撑树的充要条件是G是连通图。

证明:充分性:设图G是连通的,若G不含圈,则按照定义,G是一个树,从而G是自身的一个支撑树。若G含圈,则任取G的一个圈,从该圈中任意去掉一条边,得到图G的一支撑子图G1。若G1不含圈,则G1是G的一个支撑树。若G1仍然含圈,则任取G1的一个圈,再从圈中任意去掉一条边,得到图G的一支撑子图G2。依此类推,可以得到图G的一个支撑子图GK,且不含圈,从而GK是一个支撑树。

定理8.7充分性的证明,提供了一个寻找连通图支撑树的方法叫做“破圈法”。就是从图中任取一个圈,去掉一条边。再对剩下的图重复以上步骤,直到不含圈时为止,这样就得到一个支撑树。

例8.4用破圈法求出图8-11的一个支撑树。e4e6e5e3e2e1e7e8v3v2v1v4v5图8-11取一个圈(v1,v2,v3,v1),在一个圈中去掉边e3。在剩下的图中,再取一个圈(v1,v2,v4,v3,v1),去掉边e4

。再从圈(v3,v4v5,v3)中去掉边e6

。再从圈(v1,v2,v5,v4,v3,v1)中去掉边e7,这样,剩下的图不含圈,于是得到一个支撑树,如图8.12所示。v2e1e2e5e8v1v3v4v5图8.12三.最小支撑树问题

定义8.3如果图G=(V,E),对于G中的每一条边[vi,vj],相应地有一个数Wij

,那么称这样的图G为赋权图,Wij称为边[vi,vj]的权。这里所指的权,是具有广义的数量值。根据实际研究问题的不同,可以具有不同的含义。例如长度,费用、流量等等。赋权图在图论及实际应用方面有着重要的地位,被广泛应用于现代科学管理和工程技术等领域,最小支撑树问题就是赋权图的最优化问题之一。设G=(V,E)是一个连通图,G的每一条[vi,vj]对应一个非负的权Wij。

定义8.4如果图T=(V,EI)是图G的一个支撑树,那么称EI上所有边的权的和为支撑树T的权,记作S(T)。

如果图G的支撑树T*的权S(T*),在G

的所有支撑树T中的权最小,即S(T*)=minTS(T),那么称T*是G的最小支撑树。

如前所述,在已知的几个城市之间联结电话线网,要求总长度最短和总建设费用最少,一个问题的解决可以归结为最小支撑树问题。再如,城市间交通线的建造等,都可以归结为这一类问题。

下面介绍寻求最小支撑树的方法--破圈法。在给定的连通图中任取一个圈,去掉权最大的一条边,如果有两条以上权最大的边,则任意去掉一条。在剩下的图中,重复以上步骤,直到得到一个不含圈的连通图为止,这个图便是最小支撑树。

例8.5某六个城市之间的道路网如图8.13a

所示,要求沿着已知长度的道路联结六个城市的电话线网,使得电话线的总长度最短。图8.13av3v2v1v4v6v553142图8.13b3v6v5v2v3v46255441v173

解:这个问题的解决就是要求所示赋权图8.13a中的最小支撑树。用破圈法求解。任取一个圈,例如(v1,v2,v3,v1),去掉这个圈中权最大的边[v1,v3]。再取一个圈(v3

,v5

,v2

,v3),去掉边[v2,v5]。再取一个圈(v3,v5,v4,v2,v3),去掉边[v3

,v5]。再取一个圈(v5,v6,v4

,v5),这个圈中,有两条权最大的边[v5,v6]和[v4,v6]。任意去掉其中的一条,例如[v5,v6]。这时得到一个不含圈的图,如图8.13b

所示,即是最小支撑树。关于破圈法正确性的证明略去。例用破圈法求出下图中的最小支撑树3122353223225422232232122破圈法和生长法两个方法:(1)在网络图中寻找一个圈。若不存在圈,

则已经得到最短树或网络不存在最短树;(2)去掉该圈中权数最大的边;

反复重复①②两步,直到最短树。1.破圈法从网络图中任意节点开始寻找与该节点关联的权数最小的边,得到另一节点后,再从这个新节点开始寻找与该节点关联的权数最小的另一边……。注意寻找过程中,节点不得重复,即在找最小权数边时不考虑已选过的边,反复进行,直到得到最短树或证明网络不存在最短树。2.成长法例用成长法求出下图中的最小支撑树(最短树)v1v2v3v4v5v6v7v1v2v3v4v5v6v731245223423122223一.引言最短路径问题是图论中十分重要的最优化问题之一,它作为一个经常被用到的基本工具,可以解决生产实际中的许多问题,比如城市中的管道铺设,线路安排,工厂布局,设备更新等等。也可以用于解决其它的最优化问题。

§8.3最短路问题例8.6如图8.14所示的单行线交通网,每个弧旁边的数字表示这条单行线的长度。现在有一个人要从v1出发,经过这个交通网到达v8,要寻求是总路程最短的线路。图8.14v1v4v2v8v7v6v5v9636234102312624101

从v1到v8的路线是很多的。比如从v1出发,经过v2,v5到达v8或者从v1出发,经过v4,v6

,v7

到达v8等等。但不同的路线,经过的总长度是不同的。例如,按照第一个线路,总长度是6+1+6=13单位,按照第二个路线,总长度是1+10+2+4=17单位。从这个例子中,可以给出一般意义下的最短路问题。设一个赋权有向图D=(V,A),对于每一个弧a=(vi,vj),相应地有一个权wij。Vs,vt是D中的两个顶点,P是D中从vs到vt的任意一条路,定义路的权是P中所有弧的权的和,记作S(p)。最短路问题就是要在所有从vs到vt的路P0中,寻找一个权最小的路P0,亦即S(P0)=minS(p)。P0叫做从vs到vs的最短路。P0的权S(P0)叫做从vs到vt的距离,记作d(vs,vt)。由于D是有向图,很明显d(vs,vt)与d(vt,vs)一般不相等。二.Dijkstra算法下面介绍在一个赋权有向图中寻求最短路的方法——Dijkstra算法,它是在1959年提出来的。目前公认,在所有的权wij

≥0时,这个算法是寻求最短路问题最好的算法。并且,这个算法实际上也给出了寻求从一个始定点vs到任意一个点vj的最短路。Dijkstra算法的基本思想是从vs出发,逐步向外寻找最短路。在运算过程中,与每个点对应,记录一个数,叫做一个点的标号。它或者表示从vs到该点的最短路权(叫做P标号),或者表示从vs到该点最短路权的上界(叫做T标号)。算法的每一步是去修改T标号,把某一个具有T标号的点改变为具有P标号的点,使图D中具有P标号的顶点多一个。这样,至多经过P-1步,就可求出从vs到各点vj的最短路。

以例1为例说明这个基本思想。在例1中,S=1。因为Wij

≥0,d(v1,v1)=0。这时,v1是具有P标号的点。现在看从v1出发的三条弧(v1,v2),(v1,v3)和(v1,v4)。如果一个人从v1出发沿(v1,v2)到达v2,这时的路程是d(v1,v1)+w12=6单位。如果从v1出发,沿(v1

,v3)到达v3,则是d(v1

,v1)+w13=3单位。同理,沿(v1,v4)到达v4,是d(v1,v1)+w14=1单位。因此,他从v1出发到达v4的最短路必是(v1,v4),d(v1,v4)=1。这是因为从v1到达v4的任一条路P,假如不是(v1

,v4),则必先沿(v1

,v2)到达v2,或者沿(v1

,v3)到达v3,而这时的路程已是6或者3单位。由于所有的权wij

≥0,因此,不论他如何再从v2或者v3到达v4,所经过的总路程都不会比1少,于是就有d(v1

,v4)=1。这样就使v4变成具有P标号的点。现在看从v1和v4指向其余点的弧。如上所述,从v1出发,分别沿(v1

,v2),(v1,v3)到达v2,v3,经过的路程是6或者3单位。从v4出发沿(v4

,v6)到达v6,经过的路程是d(v1,v4)+w46=1+10=11单位。而min{d(v1,v1)+w12,d(v1,v1)+w13,d(v1

,v4)+w46}=d(v1,v1)+w13=3单位。根据同样的理由,可以断定,从v1到达v3的最短路是(v1,v3),d(v1,v3)=3。这样,又使点v3变为具有P标号的点,不断重复以上过程,就可以求出从vs到达任一点vj的最短路。(0,0)(6,1)(3,1)(1,1)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101v1v4v2v8v7v6v5v9636234102312624101(6,1)(11,4)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(6,1)(11,4)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(11,4)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(11,4)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(11,4)(6,2)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(11,4)(6,2)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)(0,0)(3,1)(1,1)v1v4v2v8v7v6v5v9636234102312624101(5,2)(10,5)(6,2)(9,5)(12,5)从v1到v8的最短路的长度为:12从v1到v8的最短路线为:v8v5v2v1步骤:1、给起点一个永久标号(0,0)。永久标号用下划线表示;标号中的第一个数表示从起点到该点的距离;第二个数表示该点的前面没有点了。2、修改非永久标号点vi

的临时标号为(a,b),其中a为以vi

为终点的弧,如果其起点为永久标号,则求其永久标号的第一个数与弧长的和,如果这样的和有多个,则取最小值。b为前一个点的下标。3、在临时标号中取第一个标号的最小值,将该标号该为永久标号,再返回到2步三、含有负权的最短路的求法83-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v8例:求从v1

到v8

的最短路83-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-1-2383-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-71-1583-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-71-1-583-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-7-3-1-5683-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-7-3-1-5683-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-7-3-1-5683-26-1-3-5-1-1212117-3-3v1v2v3v4v5v6v7v80-5-2-7-3-1-56从v1到v8的最短路的长度为:6从v1到v8的最短路线为:v8v6v3v1§8.4最小费用流问题一

引言在许多实际的网络系统中都存在着流量和最大流问题。例如铁路运输系统中的车辆流,城市给排水系统的水流问题等等。而网络系统流最大流问题是图与网络流理论中十分重要的最优化问题,它对于解决生产实际问题起着十分重要的作用。图8.19是联结某个起始地vs和目的地vt的交通运输网,每一条弧vi

旁边的权cij表示这段运输线的最大通过能力,货物经过交通岗从vs运送到vt.要求指定一个运输方案,使得从vs到vt的货运量最大,这个问题就是寻求网络系统的最大流问题。问题描述 连通网络G(V,A)有m个节点,n条弧,弧eij上的流量上界为cij,求从起始节点vs

到终点vt

的最大流量。图8.19vtv3v2v1v4vs1735108611453Cij二基本概念定义8.5设一个赋权有向图D=(V,A),在V中指定一个发点vs和一个收点vt

,其它的点叫做中间点。对于D中的每一个弧(vi,vj)∈A,都有一个权叫做弧的容量。我们把这样的图D叫做一个网络系统,简称网络,记做D=(V,A,C)。

网络D上的流,是指定义在弧集合A上的一个函数f={f(vi,vj)}={fjj}f(vi,vj)=fij叫做弧(vi,vj)上的流量。例如图8.19就是一个网络。每一个弧旁边的权就是对应的容量(最大通过能力)cij

.

图8.20表示的就是这个网络上的一个流(运输方案),每一个弧上的流量fij就是运输量。例如fs1=5,fs2=3,f13=2等等。对于实际的网络系统上的流,有几个显著的特点:(1)发点的总流出量和收点的总流入量必相等。(2)每一个中间点的流入量与流出量的代数和等于零。(3)每一个弧上的流量不能超过它的最大通过能力(即容量)于是有:v3v2v1v4vs(2)(3)(2)(5)(3)(3)(6)(1)(1)(2)fijvt图8.20定义8.6网络上的一个流f

叫做可行流,如果f满足以下条件

(1)容量条件:对于每一个弧(vi,vj)∈A,有0fij

cij

.

(2)平衡条件:对于发点vs,有对于收点vt,有对于中间点,有任意一个网络上的可行流总是存在的。例如零流v(f)=0,就是满足以上条件的可行流。网络系统中最大流问题就是在给定的网络上寻求一个可行流f,其流量v(f)达到最大值。设流f={fij}是网络D上的一个可行流。我们把D中fij=cij的弧叫做饱和弧,fij<cij的弧叫其中发点的总流量(或收点的总流量)

v(f)

叫做这个可行流的流量。做非饱和弧,fij>0的弧为非零流弧,fij=0的弧叫做零流弧.在图8.20中,(v4

,v3)是饱和弧,其他的弧是非饱和弧,并且都是非零流弧。设μ是网络D中连接发点νs和收点vt的一条链。定义链的方向是从νs到

vt

,于是链μ上的弧被分为两类:一类是弧的方向与链的方向相同,叫做前向弧,前向弧的集合记做μ+。二类是弧的方向与链的方向相反,叫做后向弧,后向弧的集合记做μ–。

例如在图8.19中,在链(vs,v1,v2,v3,v4,vt)中,

μ+={vs,v1,(v1,v2),(v2,v3),(v4,vt)},

μ–

={(v4

,v3)}.增广链:如果链μ满足以下条件:1.在弧(vi,vj)∈μ+上,有0fij<cij,即μ+中的每一条弧是非饱和弧。2.在弧(vi,vj)∈μ–上,有0<fijcij,即μ–中的每一条弧是非零流弧。例如在图8.20中,链μ=(vs,v1,v2,v3,v4,vt)就是一条增广链。设图D=(V,A,C),点集S,TV,S∩T=ф。将起点在S,终点在T的所有弧作成集合,记做(S,T)。

定义8.8设一个网络D=(V,A,C)。如果点集V被剖分为两个非空集合v1和,发点vs∈v1,收点vt∈

,那么将弧集(v1,

)叫做是分离vs和vt的截集。定义8.9设一个截集(V1,).将阶截集(V1,

)中所有的弧的容量的和叫做截集的截量,记做s(V1,

),亦即下面的事实是显然的:一个网络D中,任何一个可行流f的流量v(f)都小于或等于这个网络中任何一个截集(V1,)的截量。并且,如果网络上的一个可行流f*

和网络中的一个截集(V1*,),满足条件v*(f*)=c(V1*,

),那么f*一定是D上的最大流,而(V1*,)一定是D的所有的截集中截量最小的一个(即最小截集)

定理8.8网络中的一个可行流f*是最大流的充分必要条件是,不存在关于f*的增广链。

定理8.9在一个网络D中,最大流的流量等于分离vs和vt

的最小截集的截量。定理8.8为我们提供了一个寻求网络系统最大流的方法。亦即,如果网络D中有一个可行流f,只要判断网络是否存在关于可行流f的增广链。如果没有增广链,那么f一定是最大流。如有增广链,那么可以按照定理8.9中必要性,不断改进和增大可行流

f

的流量,最终可以得到网络中的一个最大流。三.标号法从网络中的一个可行流f出发(如果D中没有f,可以令f是零流),运用标号法,经过标号过程和调整过程,可以得到网络中的一个最大流。下面用给顶点标号的方法来定义V1*.在标号过程中,有标号的顶点是V1*中的点,没有标号的点不是V1*中的点。如果vt有了标号,表示存在一条关于f的增广链。如果标号过程无法进行下去,并且vt未被标号,则表示不存在关于f的增广链。这样,就得到了网络中的一个最大流和最小截集。1.

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

标号过程开始,先给vs标号(0,+∞)。这时,vs是标号未检查的点,其它都是未标号点。一般地,取一个标号未检查点vi,对一切未标号点vj

(1)如果在弧(vi,vj)上,fij<cij,那么给vj标号(vi,l(vj)).其中l(vj)=min[l(vi),cij

fij].这时,vj成为标号未检查的点。(2)如果在弧(vj

,vi)上,fji

>0,那么给vj标号(-vi,l(vj)).其中l(vj)=min[l(vi),fji

].这时,vj成为标号未检查点。于是vi成为标号已检查的点。重复以上步骤,如果所有的标号都已经检查过,而标号过程无法进行下去,则标号法结束。这时的可行流就是最大流。2.调整过程首先按照vt和其它的点的第一个标号,反向追踪,找出增广链μ

。例如,令vt的第一个标号是vk,则弧(vk

,vt)在μ上。再看vk的第一个标号,若是vi,则弧(vi,vk)都在μ上。依次类推,直到vs为止。这时,所找出的弧就成为网络D的一条增广链μ。取调整量θ=l(vt),即vt的第二个标号,令但是,如果vt被标上号,表示得到一条增广链μ,转入下一步调整过程。其它不变再去掉所有的标号,对新的可行流f’={f’ij},重新进行标号过程,直到找到网络D的最大流为止。例8.8求图8.21的网络最大流,弧旁的权数表示(cij

,fij)。vsv1v2v3v4vt(3,3)(5,1)(4,3)(1,1)(1,1)(2,2)(3,0)(5,3)(2,1)图8—20例8—8网络图

解:用标号法。1.标号过程。

(1)首先给vs标号(0,+∞)

(2)看vs:

在弧(vs

,v2)上,fs2=cs3=3,不具备标号条件。在弧(vs

,v1)上,fs1=1<cs1=5,故给v1标号(vs

,l(v1)),其中

l(v1)=min[l(vs),(cs1–fs1)]=min[+∞,5–1]=4.

(3)看v1:在弧(v1

,v3)上,f13=c13=2,不具备标号条件.在弧(v2

,v1)上,f21=1>0,故给v2标号(-v1,l(v2)),其中

l(v2)=min[l(v1),f21]=min[4,1]=1.vsv1v2v3v4vt(3,3)(5,1)(4,3)(1,1)(1,1)(2,2)(3,0)(5,3)(2,1)图8—21例8—8网络图(0,+)(vs,4)(–v1,1)(v2,1)(-v2,1)(v3,1)

(4)看v2:在弧(v2

,v4)上,f24

=3<c24=4,故给v4标号(v2,l(v4))其中

l(v4)=min[l(v2),(c24–f24)]=min[1,1]=1.在弧(v3

,v2)上,f32

=1>0,故给v3标号(-v2,l(v3)),其中

l(l(v3

)=min[l(v2),f32]=min[1,1]=1。

(5)在v3

,v4中任意选一个,比如v3

,在弧(v3,vt)上,f3t

=1<c3t=2,故给vt标号(v3,l(vt)),其中l(vt)=min[l(v3),(c3t-f3t)]=min[1,1]=1.因为vt被标上号,根据标号法,转入调整过程。2.调整过程从vt开始,按照标号点的第一个标号,用反向追踪的方法,找出一条从vs到vt的增广链μ,如图8—22中双箭线所示。不难看出,μ+={(vs

,v1),(v3

,vt)},μ–

={(v2

,v1),(v3

,v2)},取θ=1,在μ上调整f,得到f*=fs1+θ=1+1=2

在μ+上f3t+θ=1+1=2

在μ+上f*=f21–θ=1–1=0

在μ-上f32

θ=1–1=0

在μ-上其它的不变vsv1v2v3v4vt(3,3)(5,1)(4,3)(1,1)(1,1)(2,2)(3,0)(5,3)(2,1)图8—22例8—8网络图(5,2)(1,0)(1,0)(2,2)(cij

,

fij)调整后的可行流f*,如图8.22所示,再对这个可行流从新进行标号过程,寻找增广链。首先给vs标号(0,+∞),看vs,给v1标号(vs

,3)。看v1,在弧(v1

,v3)上,f13=c13,弧(v2

,v1)上,f21=0,均不符合条件。因此标号过程无法进行下去,不存在从vS到vt的增广链,算法结束。这时,网络中的可行流f*

即是最大流,最大流的流量v(f*)=fs1+fs2=5.同时,也找出D的最小截集(V1,),其中V1是标号的集合,是未标号的集合。vsv1v2v3v4vt(3,3)(5,2)(4,3)(1,0)(1,0)(2,2)(3,0)(5,3)(2,2)(cij

,

fij)(0,+)(vs,3)图8——23

例8—8网络图例8—9求图8—24所示网络的最大流vsv1vtv5v4v3v24310413354278图8—24例8—9网络图解:给定初始可行流为全零流,即f(0)=0给vs标号(0,+∞),检查vs:给v1

标号(vs

,4),给v3

标号(vs

,3),给v3

标号(vs

,10),vsv1vtv5v4v3v2(4,0)(10,0)(3,0)(3,0)(3,0)(4,0)(1,0)(2,0)(5,0)(4,0)(7,0)(8,0)(0,+)(vs

,4)(vs

,3)(vs

,10)检查v1:给v3

标号(v1,1),检查完毕;(v1,1)检查v2:给v5

标号(v2,3),检查完毕;vsv1vtv5v4v3v2(4,0)(10,0)(3,0)(3,0)(3,0)(4,0)(1,0)(2,0)(5,0)(4,0)(7,0)(8,0)(v2,3)检查v5:给vt

标号(v5,3),检查完毕;(v5,3)因为终点vt

已标号,故找出一条从vs到vt的增广链μ:vs—v2—v5—vt

.取=3vsv1vtv5v4v3v2(4,0)(10,0)(3,3)(3,0)(3,0)(4,0)(1,0)(2,0)(5,3)(4,0)(7,0)(8,3)(vs

,4)(v1,3)(vs

,10)(v1,1)vsv1vtv5v4v3v2(4,0)(10,0)(3,3)(3,0)(3,0)(4,0)(1,0)(2,0)(5,3)(4,0)(7,0)(8,3)(v2,2)(0,+)(v5,2)vsv1vtv5v4v3v2(4,2)(10,0)(3,3)(3,2)(3,0)(4,0)(1,0)(2,0)(5,5)(4,0)(7,0)(8,5)(vs

,2)(v3,3)(vs

,10)(v2,3)vsv1vtv5v4v3v2(4,2)(10,0)(3,3)(3,2)(3,0)(4,0)(1,0)(2,0)(5,5)(4,0)(7,0)(8,5)(v3,4)(0,+)(v4,3)vsv1vtv5v4v3v2(4,2)(10,3)(3,3)(3,2)(3,3)(4,0)(1,0)(2,0)(5,5)(4,3)(7,3)(8,5)vsv1vtv5v4v3v2(4,2)(10,3)(3,3)(3,2)(3,3)(4,0)(1,0)(2,0)(5,5)(4,3)(7,3)(8,5)vsv1vtv5v4v3v2(4,2)(10,6)(3,3)(3,2)(3,3)(4,3)(1,0)(2,0)(5,5)(4,3)(7,3)(8,8)(0,+)(vs

,2)(vs

,10)(v3,4)(v5,2)(v5,3)vsv1vtv5v4v3v2(4,3)(10,6)(3,3)(3,2)(3,3)(4,3)(1,1)(2,0)(5,5)(4,3)(7,4)(8,8)vsv1vtv5v4v3v2(4,2)(10,6)(3,3)(3,2)(3,3)(4,3)(1,0)(2,0)(5,5)(4,3)(7,3)(8,8)(0,+)(vs

,2)(vs

,4)(v1,1)(v1,1)(v4,1)vsv1vtv5v4v3v2(4,3)(10,6)(3,3)(3,2)(3,3)(4,3)(1,1)(2,0)(5,5)(4,3)(7,4)(8,8)vsv1vtv5v4v3v2(4,3)(10,7)(3,3)(3,2)(3,3)(4,4)(1,1)(2,1)(5,5)(4,3)(7,5)(8,8)(0,+)(vs

,4)(vs

,1)(v3,1)(v5,1)(v4,1)vsv1vtv5v4v3v2(4,3)(10,7)(3,3)(3,2)(3,3)(4,4)(1,1)(2,1)(5,5)(4,3)(7,5)(8,8)vsv1vtv5v4v3v2(4,4)(10,7)(3,3)(3,3)(3,3)(4,4)(1,1)(2,1)(5,5)(4,4)(7,6)(8,8)(0,+)(vs

,1)(vs

,3)(v1,1)(v2,1)(v4,1)vsv1vtv5v4v3v2(4,4)(10,7)(3,3)(3,3)(3,3)(4,4)(1,1)(2,1)(5,5)(4,4)(7,6)(8,8)(0,+)(vs

,3)首先给vs标号(0,+∞),看vs,给v3标号(vs

,3)。看v3,在弧(v3

,v2)上,f32=c32,弧(v3

,v5)上,f35=c35,均不符合条件。因此标号过程无法进行下去,不存在从vS到vt的增广链,算法结束。最大流量f*=14。§8.4最小费用最大流流问题

在实际的网络系统中,当涉及到有关流的问题的时候,我们往往不仅仅考虑的是流量,还经常要考虑费用的问题。比如一个铁路系统的运输网络流,即要考虑网络流的货运量最大,又要考虑总费用最小。最小费用最大流问题就是要解决这一类问题。我们首先考察,在一个网络D中,当沿可行流f的一条增广链μ,以调整量θ=1改进f,得到的新可行流f`的流量,有v(f`)=

设一个网络D=(V,A,C),对于每一个弧(vi,vj

)∈A,给定一个单位流量的费用bij0,网络系统的最小费用最大流问题,是指要寻求一个最大流f,并且流的总费用达到最小。=v(f)+1,而此时总费用b(f`)比b(f)增加了结论:如果可行流f

在流量为v(f

)的所有可行流中的费用最小,并且是关于f

的所有增广链中的费用最小的增广链,那么沿增广链我们将叫做这条增广链的费用。μ调整可行流f,得到的新可行流f`,也是流量为v(f’)的所有可行流中的最小费用流。依次类推,当f`是最大流时,就是所要求的最小费用最大流。显然,零流f={0}是流量为0的最小费用流。一般地,寻求最小费用流,总可以从零流f={0}开始。下面的问题是:如果已知f是流量为v(f)的最小费用流,那么就要去寻找关于f的最小费用增广链。对此,重新构造一个赋权有向图M(f),其顶点是原网络D的顶点,而将D中的每一条弧(vi,vj

)变成两个相反方向的弧(vi,vj)和(vj

,vi),并且定义M(f)中弧的权wij为:并且将权为+∞的弧从M(f)

中略去。

这样,在网络D中寻找关于f的最小费用增广链就等于价于在M(f)中寻求从vs到vt

的最短路。

算法开始,取零流f(0)

={0}.一般地,如果在第K-1步得到最小费用流f

(K-1),则构造图M(f(k-1))。在图M(f(k-1))中,寻求从vs到vt的最短路。如果存在最短路,则f(k-1)就是最小费用最大流。如果存在最短路,则在原网络D中得到相对应(一一对应)的增广链μ0

在增广链μ上对f(k–1)进行调整,取调整量令:得到一个新的可行流f(k),在对f(k)重复以上的步骤,直到D中找不到相对应的增广链时为止。

例8.9求图8-24所示网络中的最小费用最大流,弧旁的权是(bij

,cij).(bij

,cij)(1,8)(3,10)(2,4)(6,2)(1,7)(4,10)(2,5)v1v2vsv3vt图8-24

解:(1)取初始可行流为零流f(0)={0},构造赋权有向图M(f(0)),求出从vs到vt的最短路(vs

,v2,v1,vt),如图8.25a

中双箭头所示。(1)(3)(2)(6)(1)(4)(2)M(f(0))v1vsv2v3vt图8.25a

(2)在原网络D中,与这条最短路相对应的增广链为μ=(vs

,v2

,v1

,vt

)。(3)在μ上对f(0)={0}进行调整,取θ=5,得到新可行流f(1),如图8.25b所示。按照以上的算法,依次类推,可以得到f(1),f(2),f(3),f(4),流量分别为5,7,10,11,并且分别构造相对应的赋权有向图M(f(1)),M(f(2)),M(f(3)),M(f(4))。由于在M(f(4))中已经不存在从vs到vt的最短路,因此,可行流f(4),v(f(1))=11是最小费用最大流。(8,5)(10,0)(4,0)(2,0)(7,5)(10,0)(5,5)图8.25bf(1),v(f(1))=5v1vsv2v2vtM(f(1))图8.25cv1(2)(-1)v3(1)(3)(6)(1)(4)(2)(-1)vsv2vt(2,0)(5,5)(8,5)(4,0)(7,7)(10,2)(10,0)图8.25df(2),v(f(2))=7v1vsv2v3vtM(f(2)

)图8.25

e(1)(3)(2)(6)(-1)(4)(-2)(-1)(-4)v1vsv3vtv2(8,8)(10,3)(4,3)(2,0)(7,7)(10,2)(5,5)图8.25ff(3),v(f(3))=10v1vsv2v3vt(-1)(3)(2)(6)(-1)(4)(-2)(-4)M(f(3))图8.25

g(-2)(-3)v1vsv2v3vt(8,8)(10,4)(4,4)(2,0)(7,7)(10,3)(5,4)图8.25hf(4),v(f(4))=11v1vsv2v3vt(-1)(3)(-2)(6)(-1)(4)(2)(-4)M(f(4)

)图8.25i(-2)(-3)v1vsv2v3vt§8.6网络计划

大型项目的开发涉及很复杂的项目协调和管理问题,为使项目管理人员对项目进度有全面的了解,进行有效的控制,必须使用科学的管理方法.

网络计划法是使用最广泛的方法之一,关键路径法(CPM)和项目评审技术(PERT)是两种使用最广泛的网络计划技术。网络计划方法的优点使它适用于生产技术复杂,工作项目繁多,且紧密联系的一些跨部门的工作计划,如:

新产品研制开发

大型工程项目建设生产技术准备

复杂设备的大修计划网络计划方法的基本原理将工程项目分解为相对独立的活动,根据各活动先后顺序、相互关系以及完成所需时间做出反映项目全貌的网络图;从项目完成全过程着眼,找出影响项目进度的关键活动和关键路线,通过对资源的优化调度,实现对项目实施的有效控制和管理。网络计划方法的主要功能

1用网络图描述一个实际项目的管理问题(画网络图);2计算项目的最早、最晚完成和开工时间(网络计算);3寻找关键活动和关键路径(网络分析);

4根据以上分析对网络进行优化。

8.6.1

网络计划与网络图复杂工程项目可被分解为一系列小的事件或活动,各种事件和活动之间的逻辑顺序可以表述为一个由一系列弧和节点组成的网络图;网络图中的有向弧代表各种活动(或工作),活动完成需要的时间写在弧上;节点表示事件(或事项),表示活动的开始与结束,每个节点有唯一节点号;

位于弧的起点和终点的节点表示活动或事件的开始和结束,每个活动有一个起点和一个终点:125a圆圈和里面的数字代表各事项,写在箭杆中间的数字5表示完成本工作所需时间,即工作a(1,2),事项:(1,2)。图8.26

整个网络的方向按惯例从左到右地反映活动的逻辑顺序,并有唯一的起点和终点。

虚工作用箭线“”表示。它表示工时为零,不消耗任何资源的虚构工作。其作用只是正确表示工作的前行后继关系。画网络图有以下四个阶段:一、列出所有活动一个完整的项目必须被分解为一系列独立活动(称为工序),分解程度取决于项目计划的需要以及相应的管理职能。二、确定每个活动的紧前工序项目执行的连续性确定了项目各项活动的前后顺序,为了从逻辑上搞清楚活动之间的顺序关系,需要确定每项活动可以开始之前必须完成的活动--紧前工序。注意:区分习惯上发生的顺序和它们在逻辑上应该发生的顺序,例如,寄

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论