图与网络分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第八章图与网络分析图的基本知识最短路径问题网络最大流问题网络最小费用流问题§1.图的基本知识一、图1、图:由一些点及一些点的连线所组成的图形。若V={V1,V2,…,Vn}是空间n个点的集合E={e1,e2,…,em}是空间m个边的集合满足1)V非空2)E中每一条线ei是以V中两个点Vs,Vt为端点3)E中任意两条线之间除端点之外无公共点.则由V、E构成的二元组合G=(V,E)就是图。2、子图:已知图G1(V1,E1)若V1V,E1E则称图G1(V1,E1)是图G=(V,E)的子图3、若在图G中,某个边的两个端点相同,则称e是环。4、多重边:图中某两点之间有多余一条的边,称之为多重边。多重图:含有多重边的图。5、简单图:无环、无多重边的图。6、子图、生成子图。二、连通图1、链:给定一个图G=(V,E),一个点边的交错序列(vi1,ei1,vi2,ei2,…,vik-1,eik-1,vik),如果满足eit=[vit,vit+1](t=1,2,…,k-1),则称为一条联结vi1和vik的链,称点vi2,vi3,…,vik-1为链的中间点。2、圈:链(vi1,vi2,…,vik)中,若vi1=vik,,则称之为一个圈。3、简单链:若链(vi1,vi2,…,vik)中,点vi1,vi2,…,vik都是不同的,则称之为简单链。4、连通图:图G中,若任何两个点之间,至少有一条链。三、树1、定义:一个无圈的连通图称为树。2、树的性质:1)图G是树的充分必要条件是任意两个顶点之间恰有一条链。2)在树中去掉任意一条边则构成一个不连通图,不再是树;在树中不相邻的两点之间添加一条边,恰好形成了一个圈,也就不再是树。3)树中顶点的个数为P,则其边数必为P-1。3、支撑树:设图T=(V,E’)是图G(V,E)的支撑子图,如果图T=(V,E’)是一个树,则称T是G的一个支撑树。4、寻找支撑树的方法1)破圈法:在图中任取一个圈,从圈中去掉任一边,对余下的图重复上述操作,即可得到一个支撑树。2)避圈法:每一步选取与已选的边构不成圈的边,直到不能继续为止。5、最小支撑树1)赋权图:给图G=(V,E),对G中的每一条边[vi,vj],相应地有一个数wij,则称这样的图G为赋权图,wij称为边[vi,vj]上的权。2)最小支撑树:如果T=(V,E’)是G的一个支撑树,称E’中所有边的权之和为支撑树T的权,记为w(T),即w(T)=Σwij(vi,vj)∈T如果支撑树T*的权w(T*)是G的所有支撑树的权中最小者,则称T*是G的最小支撑树(简称最小树)w(T*)=minw(T)T3)求最小树的方法:方法一(避圈法)开始选一条最小权的边,以后每一步中,总从未被选取的边中选一条权最小的边,并使之与已选取的边不构成圈。方法二(破圈法)任取一个圈,从圈中去掉一条权最大的边。在余下的图中,重复这个步骤,一直到一个不含圈的图为止,这时的图便是最小树。例用破圈法求下图的最小树12222312222333445四、一笔划问题1、次:图中的点V,以V为端点的边的个数,称为V的次,记为d(V)。2、定理1:图G=(V,E)中,所有点的次之和是边数的两倍,即设q边数,则Σd(vi)=2q,其中viV3、奇点:次为奇数的点。否则称为偶点。4、任一图中,奇点的个数为偶数。5、一笔划:可以一笔划:没有或仅有两个奇次点的图形如没有奇次点:任取一点,它既是起点又是终点。两个奇次点:分别选为起点和终点。五、有向图1、无向图:G(V,E)点集+边集2、弧:点与点之间有方向的边,叫做弧。弧集:A={a1,a2,…,am}3、有向图:由点及弧所构成的图,记为D=(V,A),V,A分别是D的点集合和弧集合。4、环:某一条孤起点=终点,称为环。5、基础图:给定一个有向图D=(V,A),从D中去掉所有弧上的箭头,所得到的无向图。记之为G(D)。6、链:设(vi1,ai1,vi2,ai2,…,vik-1,aik-1,vik)是D中的一个点弧交错序列,如果这个序列在基础图G(D)中所对应的点边序列是一条链,则称这个点弧交错序列是D的一条链。7、路:如果(vi1,ai1,vi2,ai2,…,vik-1,aik-1,vik)是D中的一条链,并且对t=1,2,…,k-1,均有ait=(vit,vit+1),称之为从vi1到vik的一条路。8、回路:若路的第一个点和最后一点相同,则称之为回路。六、图的矩阵表示1、网络(赋权图)G=(V,E),其边(vi,vj)有权wij,构造矩阵A=(aij)n×n,其中:wij(vi,vj)∈E0其他称矩阵A为网络G的权矩阵。2、对于图G=(V,E),∣V∣=n,构造一个矩阵A=(aij)n×n,其中:wij(vi,vj)∈E0其他称矩阵A为网络G的权。第二节最短路问题一、引例:如下图中V1:油田,V9:原油加工厂求使从V1到V9总铺路设管道最短方案。V1V4V2V3V6V9V8V7V542466234442二、最短路算法1、情况一:wij≥0(E.W.Dijkstra算法)原理:Bellman最优性定理方法:图上作业法(标号法)标号:对于点,若已求出到Vi的最短值,标号(αi,βi)αi:表示到的最短路值βi:表示最短路中最后经过的点标号法步骤:1)给V1标号(0,Vs)2)把所有顶点分成两部分,X:已标号的点;X’未标号的点考虑与已标号点相邻的弧是存在这样的弧(Vi,Vj),Vi∈X,Vj∈X’若不存在,此问题无解,否则转3)3)选取未标号中所有入线的起点与未标号的点Vj进行计算:min{αi+wij}=αj并对其进行标号(αj,Vi),重复2)2、情况二:wij≤0设从V1到Vj(j=1,2,…,t)的最短路长为P1jV1到Vj无任何中间点P1j(1)=wijV1到Vj中间最多经过一个点P1j(2)=min{P1j(1)+wij}V1到Vj中间最多经过两个点P1j(3)=min{P1j(2)+wij}…….V1到Vj中间最多经过t-2个点P1j(t-1)=min{P1j(t-2)+wij}终止原则:1)当P1j(k)=P1j(k+1)可停止,最短路P1j*=P1j(k)2)当P1j(t-1)=P1j(t-2)时,再多迭代一次P1j(t),若P1j(t)=P1j(t-1),则原问题无解,存在负回路。例:求下图所示有向图中从v1到各点的最短路。v1v4v2v3v5v6v7v825-34674-23-1-342wijd(t)(v1,vj)v1v2v3v4v5v6v7v8v1v2v3v4v5v6v7v8025-30-2406400-30720320t=1t=2t=3t=4t=5t=6025-3020-3611020-36615020-3361410020-336910020-336910说明:表中空格处为+。例设备更新问题制订一设备更新问题,使得总费用最小第1年第2年第3年第4年第5年购买费1314161924使用年数0-11-22-33-44-5维修费810131827[解]设以vi(i=1,2,3,4,5)表示“第i年初购进一台新设备”这种状态,以v6表示“第5年末”这种状态;以弧(vi,vj)表示“第i年初购置的一台设备一直使用到第j年初”这一方案,以wij表示这一方案所需购置费和维护费之和。这样,可建立本例的网络模型。于是,该问题就可归结为从图中找出一条从v1到v6的最短路问题。用Dijkstra标号法,求得最短路为v1v3v6即第一年初购置的设备使用到第三年初予以更新,然后一直使用到第五年末。这样五年的总费用最少,为78。v1v2v3v5v6v4214432228962316345244734273732(0,Vs)(0,V1)(31,V1)(44,V1)(62,V1)(78,V3)第三节最大流问题如下是一运输网络,弧上的数字表示每条弧上的容量,问:该网络的最大流量是多少?vsv2v1v3v4vt432312234一、基本概念和基本定理1、网络与流定义1:给定一个有向图D=(V,A),在V中有一个发点vs和一收点vt,其余的点为中间点。对于每一条弧(vi,vj),对应有一个c(vi,vj)0,(cij)称为弧的容量。这样的有向图称为网络。记为D=(V,A,C)。网络的流:定义在弧集合A上的一个函数f={f(vi,vj)},称f(vi,vj)为弧(vi,vj)上的流量,简记fij。2、可行流与最大流定义2满足下列条件的流称为可行流:1)0fijcij2)平衡条件:中间点fij=fji(vi,vj)A(vj,vi)A发点vsfsj–fjs=v(f)(vs,vj)A(vj,vs)Aftj–fjt=–v(f)(vt,vj)A收点vt,(vj,vt)A式中v(f)称为这个可行流的流量,即发点的净输出量(或收点的净输入量)。3、增广链给定可行流f={fij},使fij=cij的弧称为饱和弧,使fijcij的弧称为非饱和弧,把fij=0的弧称为零流弧,fij0的弧称为非零流弧。若是网络中连接发点vs和收点vt的一条链,定义链的方向是从vs到vt,则链上的弧被分成两类:前向弧:弧的方向与链的方向一致全体+后向弧:弧的方向与链的方向相反全体—定义3设f是一可行流,是从vs到vt的一条链,若满足下列条件,则称之为(关于流f的)一条增广链:在弧(vi,vj)+上,0fijcij在弧(vi,vj)上,0fijcij4、截集与截量定义4给定网络D=(V,A,C),若点集V被剖分为两个非空集合V1和V1,使vsV1,vtV1,则把弧集(V1,V1)称为是(分离vs和vt的)截集。截集是从vs到vt的必经之路。定义5给定一截集(V1,V1),把截集(V1,V1)中所有弧的容量之和称为这个截集的容量(截量),记为C(V1,V1)。v(f)C(V1,V1)若对于一可行流f*,网络中有一截集(V1*,V1*),使得v(f*)=C(V1*,V1*),则f必是最大流,而(V1*,V1*),必定是容量最小的截集,即最小截集。定理1任一网络D中,从vs到vt的最大流的流量等于分离vs,vt的最小截集的截量。步骤:2、标号过程1、选取一个可行流(可选择零流弧)从Vs出发,在前向弧上(vi,vj),若fijcij,则给vj标号(vi,l(vj)),其中l(vj)=min[l(vi),cij–fij]。在后向弧(vj,vi)上,若fji0,则给vj标号(–Vi,l(vj)),其中l(vj)=min[l(vi),fji]。二、寻找最大流的标号法(FordFulkerson)思想:从一可行流出发,检查关于此流是否存在增广链。若存在增广链,则增大流量,使此链变为非增广链;这时再检查是非还有增广链,若还有,继续调整,直至不存在增广链为止。3、若标号延续到vt,表明得到一条从vs到vt的增广链,转入调整阶段4,否则当前流即为最大流。4、调整过程令调整量为=l(vt)令fij+(vi,vj)+fij´=fij–(vi,vj)—fij(vi,vj)去掉所有的标号,对新的可行流f´={fij´},重新进入标号过程。可结合下图理解其实际涵义。vsv1v2v3v4vt(4,4)(8,1)(4,3)(2,2)(4,0)(2,2)(1,1)(7,2)(9,2)vsv1vtv4v2v3(9,7)(5,3)(3,2)(4,4)(5,5)(3,1)(2,1)(6,3)(7,7)例求下列网络的最大流与最小截集。[解]一、标号过程(2)检查vs,在弧(vs,v1)上,fs1=7,cs1=9,fs1cs1,则v1的标号为(vs,l(v1)),其中l(v1)=min{l(vs),cs1–fs1}=min{+,9–7}=2(3)检查v1,在弧(v1,v4)上,f14=7,c14=9,f14c14,则v4的标号为(v1,l(v4)),其中l(v4)=min{l(v1),c14–f14}=min{2,3-1}=2(4)检查v4,在弧(v3

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功