运筹学10-图与网络优化_第1页
运筹学10-图与网络优化_第2页
运筹学10-图与网络优化_第3页
运筹学10-图与网络优化_第4页
运筹学10-图与网络优化_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

第十章

图与网络优化

(GraphTheoryandNetworkAnalysis)图的基本概念树及最小支撑树最短路问题网络最大流问题最小费用最大流问题中国邮递员问题图论的起源和发展1736年,Euler哥尼斯堡七桥问题(KönigsbergBridgeProblem)BACDABCD一笔画问题1847年,kirchhoff,电网络,“树”;1852年,《四色猜想》;1964年,华罗庚,《统筹方法平话》。1857年,Cogley,同分异构,“树”;1956年,杜邦公司,CPM,关键路线法;1958年,美国海军部,PERT,计划评审技术;1962年,管梅谷,《中国邮路问题》;第一节图的基本概念一、几个例子例1

是北京、上海等十个城市间的铁路交通图。与此类似的还有电话线分布图、煤气管道图、航空路线图等。北京天津济南青岛武汉南京上海郑州连云港徐州例2

分别用点v1,v2,v3,v4,v5分别代表甲、乙、丙、丁、戊五支球队。若有两支球队之间比赛过,就在相应的点之间联一条线,且这条线不过其他点。如下图所示:v1v2v3v4v5可知各队之间的比赛情况如下:甲——乙、丙、丁、戊乙——甲、丙丙——甲、乙、丁丁——甲、丙、戊戊——甲、丁例3“染色问题”储存8种化学药品,其中某些药品不能存放在同一个库房里。用v1,v2,…,v8分别代表这8种药品。规定若两种药品不能存放在一起,则其相应的点之间联一条线。如下图所示:v1v2v3v4v5v6v7v8可知需要4个库房,其中一个答案是:

{v1}{v2,v4,v7}{v3,v5}{v6,v8}还有其他的答案。二、基本概念

有向图

由点及弧所构成的图,记为D=(V,A),

V,A分别是D的点集合和弧集合。

无向图由点及边所构成的图。记为G=(V,E),V,E分别是G的点集合和边集合。v1v2v3v4v1v2v3v4a1a2a3a4a5e1e2e3e4e5a6e6

边两点之间不带箭头的联线。如e3v1v4a3

弧两点之间带箭头的联线。如a3v1v4e3

端点及关联边若边e=[u,v]∈E,则称u,v

为e的端点,也称u,v是相邻的,称e是点u(及点v)的关联边。如:v1,v4为e3的端点,v1,v4是相邻的,e3是v1(v4

)的关联边。

环若在图G中,某个边的两个端点相同,则称e是环。如e7v1v2v3v4e1e2e3e4e5e6e7

多重边若两个点之间有多于一条的边,称这些边为多重边。如e1,e2

简单图一个无环,无多重边的图。

多重图一个无环、但允许有多重边的图。

点v的次以点vi为端点边的个数,记为dG(vi)或d(vi)。v1v2v3v4e1e2e3e4e5e6e7如d(v4)=5d(v2)=4v5

悬挂点次为1的点,如v5

悬挂边悬挂点的关联边,如e8e8

孤立点次为0的点

偶点次为偶数的点,如v2

奇点

次为奇数的点,如v5

链中间点初等链圈初等圈简单圈

v1v2v5v6v7v3v4e1e2e4e3e5e6e7e8e9

在上图中,(v1,v2,v3,v4,v5,v3,v6,v7)是一条链,但不是初等链在该链中,v2,v3,v4,v5,v3,v6是中间点(v1,v2,v3,v6,v7)是一条初等链(v1,v2,v3,v4,v1)是一个初等圈(v4,v1,v2,v3,v5,v7,v6,v3,v4)是一个简单圈

连通图图G中,若任何两个点之间,至少有一条链,称为连通图。否则称为不连通图。

连通分图(分图)若G是不连通图,则它的每个连通的部分称为连通分图。v1v2v3v4e1e2e3e4e5e6v5v6e7如左图就是个不连通图,它是由两个连通分图构成的。

支撑子图给定一个图G=(V,E),如果图G’=(V’,E’),使V’=V及E’

E,则称G’是G的一个支撑子图。v1v2v3v4(G)v1v2v3v4(G’)

基础图给定一个有向图D=(V,A),从D中去掉所有弧上的箭头,所得到的无向图称为基础图。记之为G(D)。v1v2v3v4a1a2a3a4a5a6D=(V,A)v1v2v3v4e1e2e3e4e5e6G(D)v1v2v3v4a1a2a3a4a5a6a7a8a9a10a11v6v7

路初等路回路v5

简单有向图多重有向图

权与网络在实际应用中,给定一个图G=(V,E)或有向图D=(V,A),在V中指定两个点,一个称为始点(或发点),记作v1,一个称为终点(或收点),记作vn

,其余的点称为中间点。对每一条弧,对应一个数,称为弧上的“权”。通常把这种赋权的图称为网络。对于网络(赋权图)G=(V,E),其中边有权,构造矩阵,其中:称矩阵A为网络G的权矩阵。设图G=(V,E)中顶点的个数为n,构造一个矩阵

,其中:称矩阵A为网络G的邻接矩阵。图的矩阵表示权矩阵为:邻接矩阵为:v5v1v2v3v4v64332256437图的矩阵表示

定理1图G=(V,E)中,所有点的次之和是边数的两倍,即

定理2任一图中奇点的个数为偶数。三、基本定理第二节树一、定义例1在五个城市之间架设电话线,要求任两个城市之间都可以相互通话(允许通过其他城市),并且电话线的根数最少。v1v5v2v3v4用v1,v2,v3,v4,v5代表五个城市,如果在某两个城市之间架设电话线,则在相应的两点之间联一条边,这样一个电话线网就可以用一个图来表示。显然,这个图必须是连通的,而且是不含圈的连通图。如右图所示。树的定义:一个无圈的连通图。例2某工厂的组织机构如下图所示厂长行政办公室生产办公室生产计划科技术科设计组工艺组供销科财务科行政科车间铸造工段锻压工段二车间三车间四车间该厂的组织机构图就是一个树。例3树图倒置的树,根(root)在上,叶(leaf)在下定理1

设图G=(V,E)是一个树,p(G)≥2,则G中至少有两个悬挂点。二、性质证明定理2

图G=(V,E)是一个树的充分必要条件是G中不含圈,且恰有p-1条边。证明

定理3

图G=(V,E)是一个树的充分必要条件是G是连通图,并且q(G)=p(G)-1。证明由定理2,必要性显然。定理4

图G是树的充分必要条件是任意两个顶点之间恰有一条链。证明由树的定义,必要性显然。因为任两个顶点间恰有一条链,显然G是连通的。如果G中含有圈的话,则其中至少有两个顶点间有两条链,这与题设矛盾。充分性得证。推论:

从一个树中去掉一条边,则余下的图是不连通的。

在树中不相邻的两个点间添上一条边,则恰好得到一个圈。三、图的支撑树定义:设图T=(V,E’)是图G的支撑子图,如果图T=(V,E’)是一个树,则称T是G的一个支撑树。定理:图G有支撑树的充分必要条件是图G是连通的。证明必要性显然。再证充分性。设图G是连通图,若G不含圈,则G本身是一个树,从而G是它自身的一个支撑树。

如果G含圈,任取一个圈,从圈中任意地去掉一条边,得到图G的一个支撑子图G1。如果G1不含圈,那么G1是G的一个支撑树;如果G1仍含圈,那么从G1中任取一个圈,从圈中再任意去掉一条边,得到图G的一个支撑子图G2,如此重复,最终可以得到G的一个支撑子图Gk,它不含圈,于是Gk是G的一个支撑树。支撑树的求解方法

破圈法例用破圈法求解图的一个支撑树v1v2v3v4v5e1e2e3e4e5e6e7e8这就得到了该图的一个支撑树。

避圈法v1v2v3v4v5v6e1e2e3e4e5e6e7e8e9这就得到了该图的一个支撑树。四、最小支撑树定义1

给图G=(V,E),对G中的每一条边[vi,vj],相应地有一个数wij,则称这样的图G为赋权图,wij称为边[vi,vj]上的权。1.定义定义2

如果T=(V,E’)是G的一个支撑树,称E’中所有边的权之和为支撑树T的权,记为w(T),即最小支撑树如果支撑树T*的权w(T*)是G的所有支撑树的权中最小者,则称T*是G的最小支撑树(简称最小树),即

2.最小支撑树的求法方法一避圈法

开始选一条权最小的边,以后每一步中,总从未被选取的边中选一条权最小的边,并使之与已选取的边不构成圈。v1v2v3v4v5v6651572344这就得到了该图的一个最小支撑树。方法二破圈法

任取一个圈,从圈中去掉一条权最大的边。在余下的图中,重复这个步骤,一直到一个不含圈的图为止,这时的图便是最小树。v1v2v3v4v5v6651572344这就得到了该图的一个最小支撑树。第三节最短路问题一、最短路问题的提出v1v2v3v4v5v6v7v8v9132216610410423236例左图为单行线交通网,弧旁数字表示通过这条单行线所需要的费用。求从v1出发到v8总费用最小的路线。(1)有很多条路线,与图论中的路一一对应;(2)一条路线的费用就是相应的路中各条弧的费用之和。如上图所示的路线为最短路。在图论中,最短路问题可归结为:(1)给定一个赋权有向图D=(V,A)及W(a)=

Wij;(2)给定D中两个顶点vs、vt,P是D中从vs到vt的一条路;(3)定义路P的权为P中所有弧的权之和,W(P)=

Wij

;(4)求一条权最小的路P0:W(P0)=minW(P)二、求解方法基本原理:最短路问题的特性最短路线上的任一中间点到终(起)点的路线一定是该中间点到终(起)点的所有路线中最短的路线。若求起点A到任一点G的最短路线,可先求A到G点的相邻前点的最短距离,在此基础上求出A到G点的最短距离。这样,最终求出起点到终点的最短距离。狄克斯屈拉算法

(Dijkstra,1959)。从起点vs出发,逐步向外探寻最短路。在已知前点的最短距离基础上,求其后点的最短距离。1.wij0v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,1)第一步:v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)第二步:第三步:v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)(v3,5)第四步:v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)(v3,5)(v2,6)第五步:(v5,9)v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)(v3,5)(v2,6)第六步:(v5,9)v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)(v3,5)(v2,6)(v5,10)第七步:(v5,12)(v5,9)v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v1,3)(v1,1)(v3,5)(v2,6)(v5,10)v1v2v3v4v5v6v7v8v9132216610410423236(v1,0)(v3,5)(v1,3)(v1,1)最后,找出v1到v8的最短路为:(v4,11)(v2,6)(v5,10)(v5,9)(v5,12)缺点:不能解决存在负权图的最短路问题。计算步骤:

(1)考察从所有标号点(已求出最短距离的点)出发的弧的终点vj

(已标号的点除外)

,计算起点vs

到vj的距离dsj(标号值+Wij);若vj不存在,算法终止,转(3)。

(2)增加新的标号点。比较所有dsj

,最小者对应的点成为新的标号点,即求出了vs

到某个vj的最短距离dsj*,转(1)。

(3)逆着计算过程反推,找出最短路。DP最短路与Dijkstra最短路的比较相同点:

(1)依据最短路的特性;

(2)隐含比较了vs

到vj

的所有路线。不同点:

(1)Dijkstra更具普遍性,DP是特例;

(2)DP隐含比较vs

到vj

的所有路线是完整的;Dijkstra隐含比较vs

到vj

的所有路线中,只有一部分是完整的,其它的只是vs

到vj

的路线的一段;

(3)每迭代一次,DP可求出起点至某阶段末所有点的最短距离,而Dijkstra只能求出起点至一个中间点的最短距离。2.wij不全0

Dijkstra算法失效,即虽然完整的路线比完整中的片断距离短,但也不能断定该完整路线一定最短。只能采用最原始的思想,即找出vs

到vj

的所有路线的权,才能确定vs

到vj

的最短距离。具体算法如下:设有向图中有n个点,从vi到vj的最短路线不一定从vi直达vj,也可能经过一个、两个或n-2个中间点才能到达vj

。把从vi直达vj,称为走一步,经过一个中间点称为走二步,则vi到vj的最短路线最多走n-1步。应用条件:图中不存在负回路。v1v2v3v4v5v6v7v8表格法6-1-283-3-5-121112-1-3-57(v1,0)(v1,-1)(v1,3)(v1,-2)(v1,

)(v1,

)(v1,

)(v1,

)例:求v1到图中其他各点的最短路。走1步时v1v2v3v4v5v6v7v86-1-283-3-5-121112-1-3-57(v1,0)(v1,-1)(v1,3)(v1,-2)(v1,

)(v1,

)(v1,

)(v1,

)(v3,-5)(v3,-7)(v3,-1)(v2,5)(v4,11)(v4,5)(v2,1)走2步时v1v2v3v4v5v6v7v86-1-283-3-5-121112-1-3-57(v1,0)(v1,-2)(v1,

)(v1,

)(v3,-5)(v3,-7)(v3,-1)(v2,1)(v6,0)(v4,5)(v4,-5)(v6,6)走3步时(v5,0)(v2,1)(v4,1)(v2,-3)(v6,0)(v7,4)v1v2v3v4v5v6v7v86-1-283-3-5-121112-1-3-57(v1,0)(v1,-2)(v6,6)(v1,

)(v3,-5)(v3,-7)(v3,-1)(v2,-3)(v6,0)(v4,-5)走4步时(v5,-4)(v2,1)(v4,1)(v6,0)(v7,-6)(v8,3)(v8,1)wijd(t)(vi

,vj

)

v1v2v3v4v5v6v7v8t=1t=2t=3t=4v10-1-230000v2602-1-5-5-5v3-30-51-2-2-2-2v48023-7-7-7v5-101-3-3v61017-1-1-1v7-105-5-5v8-3-5066说明:表中空格处为+

。缺点:不能解决负回路的情况。3.Floyd(佛洛伊德)算法这里介绍得Floyd(1962年)可直接求出网络中任意两点间的最短路。令网络中的权矩阵为其中当其他算法基本步骤为:⑴输入权矩阵例:求图中任意两点间的最短路。⑵计算其中例如:

中不带角标的元素表示从到的距离(直接有边),带角标的元素表示借为中间点时的最短路长。

中不带角标的元素表示从到的距离(直接有边),带角标的元素表示借为中间点时的最短路长。在放开的基础上,再放开注意到:在放开点的基础上,再放开考察最短路。注意到:说明所有点经过并没有缩短路程。只有一个新增元素表示任意两点间的最短路长及其路径。三、应用举例例设备更新问题。某企业使用一台设备,在每年年初都要决定是购置新设备还是继续使用旧的。购置新设备要支付一定的购置费,使用旧设备则要支付维修费。制定一个五年内的设备更新计划,使得总支付费用最少。已知该设备在各年年初的价格为:第一年第二年第三年第四年第五年1111121213已知使用不同时间的设备维修费用为:使用年数0~11~22~33~44~5维修费用5681118

设以vi(i=1,2,3,4,5)表示“第i年初购进一台新设备”这种状态,以v6表示“第5年末”这种状态;以弧(vi,

vj)表示“第i年初购置的一台设备一直使用到第j年初”这一方案,以wij表示这一方案所需购置费和维修费之和。这样,可建立本例的网络模型。于是,该问题就可归结为从图中找出一条从v1到v6的最短路问题。从图中可以得出两条最短路:

v1—v3—v6;v1—v4—v6v1v2v3v5v6v4163022165941224130173123172318(v1,0)(v1,16)v1v2v3v5v6v4163022165941224130173123172318(v1,0)(v1,16)(v1,22)v1v2v3v5v6v4163022165941224130173123172318(v1,0)(v1,16)(v1,22)(v1,30)v1v2v3v5v6v4163022165941224130173123172318(v1,0)(v1,16)(v1,22)(v1,30)(v1,41)v1v2v3v5v6v4163022165941224130173123172318(v1,0)(v1,16)(v1,22)(v1,30)(v1,41)(v3,53)(v4,53)第四节网络最大流问题

如下是一运输网络,弧上的数字表示每条弧上的容量,问:该网络的最大流量是多少?vsv2v1v3v4vt432115234一、问题的提出二、求解方法(一)概念1.可行流和最大流

容量限制条件:0

fij

cij

平衡条件:

对于网络D=(V,A,C),网络D上的流

f指定义在弧集合A上的一个函数f={fij

},

fij

为弧aij

的流量。满足下列条件的流f称为可行流:

v(f)最大的可行流f称为最大流,记为f*。可用以下LP模型求解。

对于任何网络,其可行流f一定存在。如令fij=0,f为可行流,其v(f)=0。零流弧:

fij

=0的弧

若是网络中连接起点vs和终点vt的一条链,定义链的方向是从vs到vt,则链上的弧被分成两类:前向弧:弧的方向与链的方向一致,+表示中前向弧的集合后向弧:弧的方向与链的方向相反,‐表示中后向弧的集合3.前向弧和后向弧零流弧和饱和弧

设f是一可行流,是从vs到vt的一条链,若满足下列条件,则称之为(关于流f的)一条增广链:在弧(vi,vj)

+上,0fij<cij(非饱和弧)

在弧(vi,vj)

‐上,0<fijcij

(非零流弧)4.增广链vsv2v1v3v4vt10(5)8(3)4(1)5(2)3(2)6(3)3(3)11(6)17(2)5(1)在左图中,(vs,v1,v2,v3,v4,vt)是一条增广链,因为

+

和‐中的弧满足增广链的条件。如:5.可扩充量6.调整后的弧流量v5v1v2v3v4v6(2,2)(8,3)(3,1)(2,2)(4,1)(2,1)(2,2)(5,3)(二)标号法求最大流(FordFulkerson)例:

思路:从一可行流出发,检查关于此流是否存在增广链。若存在增广链,则增大流量,使此链变为非增广链;这时再检查是非还有增广链,若还有,继续调整,直至不存在增广链为止。v5v1v2v3v4v6(2,2)(8,3)(3,1)(2,2)(4,1)(2,1)(2,2)(5,3)(0,+

)(v1,5)(v3,3)(-v4,1)(v2,1)(v5,1)按

=1进行调整,可得下图:第一步:寻找增广链,通过给结点标号实现第二步:调整可行流(增广链)的流量v5v1v2v3v4v6(2,2)(8,4)(3,0)(2,2)(4,2)(2,2)(2,2)(5,4)(0,+

)(v1,4)(v3,2)按同样的步骤找可行流。此时,标号过程无法进行下去,算法结束。三、标号算法的理论依据定义vsv2v1v3v4vt432115234截集截量

截集的概念将任何复杂的网络抽象成两个点之间的流量关系:

显然,若把截集去掉,则从vs到vt的路将不存在。截量制约了从vs到vt的流量。最小截集定理可行流f*是最大流的充要条件是不存在关于f*的增广链。证明:

该定理证明的充分性部分就是标号法的寻找增广链过程;其必要性部分就是调整可行流的过程。v5v1v2v3v4v6(2,2)(8,4)(3,0)(2,2)(4,2)(2,2)(2,2)(5,4)(0,+

)(v1,4)(v3,2)例:四、最大流最小截集的标号法举例(0,+)(vs,6)(-v2,6)(v3,1)(v4,1)(0,)(vs,5)(v2,2)(-v5,2)(v4,2)(0,)(vs,3)(-v2,3)最小截集(0,)(vs,5)(v2,2)(-v5,2)(v4,2)第五节最小费用最大流问题一、问题的提出v1v2vsv3vt(4,10)(1,8)(6,2)(3,10)(2,5)(1,7)(2,4)二、算法的理论基础(1)若f是流量为v(f)的所有可行流中费用最小者,而

是关于f

的所有增广链中费用最小的增广链,那么沿

去调整f,得到的可行流f’

,就是流量为v(f’)的所有可行流中的最小费用流。这样,当f’

是最大流时,也就得到了我们所要的最小费用最大流。

由于同一流量存在多个可行流f,所以一定存在费用最小的可行流f。设

是关于可行流f的一条增广链,以

=1调整f得到新的可行流f’

,b(f’)比b(f)增加的费用为:把调整后增加的费用称为这条增广链

的费用。

已知最小费用流f,问题的关键是如何找到关于f

的最小费用增广链

,从而沿

去调整f,得到新的最小费用流f’

找关于f

的最小费用增广链

,等价于求从vs到vt的最短路。vsv2vtv1bs1b21b2t已知下图为关于f

的最小费用增广链

其最小费用:bs1+b2t-b21-bs1-b21-b2t从vs到vt的路为vs

v1

v2

vt,距离为bs1+b2t-b21

,与最小费用相等。三、求解方法v1v2vsv3vt4163212解:(1)构造赋权有向图W(f(0))用标号法求最短路(vs,1)(0,0)v1v2vsv3vt4163212(vs,1)(0,0)(v2,3)v1v2vsv3vt4163212(vs,1)(0,0)(v2,3)(v2,4)v1v2vsv3vt4163212(vs,1)(0,0)(v2,3)(v2,4)(v1,4)由此得到vs到vt的最短路:v1v2vsv3vt(4,10)(1,8)(6,2)(3,10)(2,5)(1,7)(2,4)(vs,1)(v2,3)(v1,4)v1v2vsv3vt(0,10)(0,8)(0,2)(0,10)(0,5)(0,7)(0,4)调整f(0)=0,弧旁数字为(fij,cij)。调整最短路对应的增广链,

=5。(5,8)(5,5)(5,7)(2)构造赋权有向图W(f(1))v1v2vsv3vt416312-1-2-1v1v2vsv3vt416312-1-2-1用标号法求出最短路:v1v2vsv3vt(0,10)(5,8)(0,2)(0,10)(5,5)(5,7)(0,4)调整最短路对应的增广链,

=2。(2,10)(7,7)(3)构造赋权有向图W(f(2))v1v2vsv3vt4163-12-1-2-4用标号法求出最短路:v1v2vsv3vt4163-12-1-2-4调整最短路对应的增广链,

=3。v1v2vsv3vt(0,10)(5,8)(0,2)(0,10)(5,5)(5,

温馨提示

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

评论

0/150

提交评论