《运筹学图与网络分析 (2)幻灯片.ppt》由会员分享,可在线阅读,更多相关《运筹学图与网络分析 (2)幻灯片.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、运筹学图与网络分析OR3 1第1页,共42页,编辑于2022年,星期三OR3 2第六章 图与网络分析ABCDE引论 :哥尼斯堡七桥问题 ABCDA BcD第2页,共42页,编辑于2022年,星期三OR3 3铁路交通图此图是我国北京,上海等十个城市间的交通图,反映了这反映了这十个城市间的铁路分布情况十个城市间的铁路分布情况.点表示城市,点间的连线表示点间的连线表示两个城市间的铁路线.诸如此类问题还有电话线分诸如此类问题还有电话线分布图或煤气管道分布图等.北京济南徐州青岛南京上海连云港郑州武汉天津第3页,共42页,编辑于2022年,星期三OR3 4球队比赛图 五个球队比赛,比过的两个队之间用连线相
2、连,还没有比赛的队之间没有连线v5v4v3v2v1第4页,共42页,编辑于2022年,星期三OR3 56.1 图的基本概念n n图是由点和线构成的。点代表所研究的对象,线表示对象间的关图是由点和线构成的。点代表所研究的对象,线表示对象间的关系。系。n n1 1、图的分类:无向图,有向图、图的分类:无向图,有向图n n无向图:由无向图:由点点和和边边所组成的图。表示为所组成的图。表示为G=(V,E).G=(V,E).n n有向图:由有向图:由点点和和弧弧所组成的图。表示为所组成的图。表示为D=(V,A)D=(V,A)点的集合用点的集合用V V表示,表示,V=V=vvi i 2 2、图上的基本概念
3、:、图上的基本概念:(1 1)边:图中不带箭头的连线叫做边边:图中不带箭头的连线叫做边(edge)(edge),边的集合记为,边的集合记为E=E=e ej j ,一条边可以用两点,一条边可以用两点 v vi i,v,vj j 表示表示,e,ej j=v vi i,v,vj j.弧:图中带箭头的连线叫做弧弧:图中带箭头的连线叫做弧(arc),(arc),弧的集合记为弧的集合记为A A,A=A=a ak k ,一条弧也是用两点表示,一条弧也是用两点表示,a ak k=v vi i,v,vj j ,弧有方向:弧有方向:v vi i为始点,为始点,v vj j为为终点终点第5页,共42页,编辑于202
4、2年,星期三OR3 6n n例例1.1.v7v1v2v3v4e1e2e3e4e5e6e7a9v1v2v3v4v5v6a1a2a8a4a3a5a6a7a10环:两端点相同的边。环:两端点相同的边。多重边:若两点之间有多于一条边,则称这些边为多重多重边:若两点之间有多于一条边,则称这些边为多重边。边。简单图:无环、无多重边的图。简单图:无环、无多重边的图。多重图:无环,但允许有多重边的图。多重图:无环,但允许有多重边的图。e7第6页,共42页,编辑于2022年,星期三OR3 7n n(2 2)次:以点)次:以点u u为端点的边的条数,叫做点为端点的边的条数,叫做点u u的次。的次。悬挂点:次为悬挂
5、点:次为1 1的点叫做悬挂点;的点叫做悬挂点;孤立点:次为孤立点:次为0 0的点叫做孤立点;的点叫做孤立点;奇点:次为奇数则称奇点;奇点:次为奇数则称奇点;偶点:次为偶数则称偶点。偶点:次为偶数则称偶点。基本定理:基本定理:1 1、图、图G=(V,E)G=(V,E)中,所有点的次之和是边数的两倍,即中,所有点的次之和是边数的两倍,即2 2、任一图中,奇点的个数为偶数。、任一图中,奇点的个数为偶数。第7页,共42页,编辑于2022年,星期三OR3 8(3 3)链:点边交替序列称为链;)链:点边交替序列称为链;圈:首尾相连的链称为圈;圈:首尾相连的链称为圈;初等链:链中各点均不同的链;初等链:链中
6、各点均不同的链;初等圈:圈中各点均不同的圈;初等圈:圈中各点均不同的圈;简单链:链中边均不同的链;简单链:链中边均不同的链;简单圈:圈中边均不同的圈。简单圈:圈中边均不同的圈。(4 4)连通图:任意两点之间至少有一条链的图。)连通图:任意两点之间至少有一条链的图。连通分图:对不连通的图,每一连通的部分称为一个连通分连通分图:对不连通的图,每一连通的部分称为一个连通分图。图。支撑子图:对支撑子图:对G=(V,E)G=(V,E),若,若G G=(V=(V,E,E),使,使VVV V,EE包含于包含于E E,则,则GG是是G G的一个支撑子图。的一个支撑子图。赋权图:在图中,如果每一条边(弧)都被赋
7、予一个权值赋权图:在图中,如果每一条边(弧)都被赋予一个权值w wij ij,则称,则称图图G G为赋权图。为赋权图。(5 5)路:在有向图中,如果链上每条弧的箭线方向与链行进方向)路:在有向图中,如果链上每条弧的箭线方向与链行进方向相同,则称之为路。相同,则称之为路。回路:首尾相接的路称回路回路:首尾相接的路称回路第8页,共42页,编辑于2022年,星期三OR3 96.2 树与最小生成树n n1、树的概念与性质树:树:无圈的连通图称为树。定理:定理:定量3:设图G=(V,E)是一个树,是一个树,p(G)2,p(G)2,则G G中至少中至少有两个悬挂点。有两个悬挂点。定量4:图G=(V,E)V
8、,E)是一个树的充要条件是是一个树的充要条件是G G不含圈,不含圈,且恰有且恰有p p1条边。定量定量5 5:图G=G=(V,E)是一个树的充要条件是G G是连通图,并且q(G)=p(G)-1.定量定量6 6:图G=(V,E)V,E)是一个树的充要条件是任意两个顶点之间恰好有一条链。第9页,共42页,编辑于2022年,星期三OR3 10n n2、图的支撑树 支撑树:设支撑树:设T=(V,E)是图是图G=(V,E)G=(V,E)的支撑子图,如果T是一个树,则称是一个树,则称T T为G G的支撑树。的支撑树。定理7 7:图G G有支撑树的充要条件是图有支撑树的充要条件是图G G是连通的。n n求支
9、撑树的方法:求支撑树的方法:破圈法:即任取一个圈,从圈中去掉一条边,对余破圈法:即任取一个圈,从圈中去掉一条边,对余下的图重复这个步骤,直至图中不含圈为止。下的图重复这个步骤,直至图中不含圈为止。避圈法:在图中每次任取一条边,与已经取得的任何一些边不够成圈,重复这个过程,直到不能进行为止。第10页,共42页,编辑于2022年,星期三OR3 113、最小支撑树最小支撑树:当一个连通图的所有边都被赋权,则取不同边构成的支撑树具有不同的总权数,其中总权数最小的支撑树称为最小支撑树。求最小支撑树的方法:求最小支撑树的方法:破圈法:在连通图中任取一个圈,去掉一条权数最大破圈法:在连通图中任取一个圈,去掉
10、一条权数最大的边,在余下的图中重复上述步骤,直至无圈为止。的边,在余下的图中重复上述步骤,直至无圈为止。避圈法:将连通图所有边按权数从小到大排序,每次从未选的边中选一条权数最小的边,并使之与已选的边不能构成圈,直至得到最小支撑树。第11页,共42页,编辑于2022年,星期三OR3 12避圈法的基本步骤P259n n第一步:令i1,E0空集。n n第二步:选一条边eiEEi-1,使ei是使(V,Ei-1e)不含圈的所有边e(e EEi-1)中权最小的边。令EiEi-1 ei,如果这样的边不存在,则T=(V,Ei-1)是最小树。第三步:把i换成i1,转入第2步。第12页,共42页,编辑于2022年
11、,星期三OR3 136.3 最短路问题引例:单行线交通网:单行线交通网:v v1 1到到v v8 8使总费用最小的旅行路线。使总费用最小的旅行路线。最短路问题的一般描述:最短路问题的一般描述:对对D=D=(V V,A A),),a=a=(v vi i,v vj j),),w w(a a)=w=wij ij,P P是是v vs s到到v vt t的路,定义路的路,定义路P P的权是的权是P P中所有弧的权的和,记中所有弧的权的和,记为为w w(P P),则最短路问题为:),则最短路问题为:V2(v1,6)路P0的权称为从vs到vt的距离,记为:d(vs,vt)最短路:赋权有向图最短路:赋权有向图
12、D=D=(V V,A A)中,从始点到终点的)中,从始点到终点的权值最小的路称为最短路。权值最小的路称为最短路。第13页,共42页,编辑于2022年,星期三OR3 14 最短路算法最短路算法最短路算法最短路算法n nDijkstraDijkstra算法算法 :有向图:有向图 ,wij0wij0n n一般结论:一般结论:DijkstraDijkstra算法基本思想算法基本思想:采用标号法采用标号法:P:P标号和标号和T T标号标号P P标号标号标号标号:已确定出最短路的节点:已确定出最短路的节点(永久性标号永久性标号)。T T标号标号标号标号:未确定出最短路的节点,但表示其距离的上限:未确定出最
13、短路的节点,但表示其距离的上限(试探性标号试探性标号)。算法的每一步都把某一点的算法的每一步都把某一点的T T标号改为标号改为P P标号直至改完为止标号直至改完为止.S Si i:P P标号节点的集合。标号节点的集合。第14页,共42页,编辑于2022年,星期三OR3 15Dijkstra算法的基本步骤:n n1:1:给给v vs s以以P P标号标号,P(v,P(vs s)=0,)=0,其余各点均给其余各点均给T T标标 号号,T(v,T(vi i)=+)=+2:2:若若v vj j 点为刚得到点为刚得到P P 标号的点标号的点,考虑这样的点考虑这样的点v vj,j,(v(vi i,v,vj
14、 j)E,E,且且 v vj j为为T T标号标号.3:3:对对v vj j的的T T标号进行如下更改标号进行如下更改:4:4:比较所有具有比较所有具有T T标号的点标号的点,把最小者改为把最小者改为P P标号标号.n n当存在两个以上最小值时当存在两个以上最小值时,可同时改为可同时改为P P标号标号.n n若全部改为若全部改为P P标号标号,则停止则停止.否则转回否则转回(2).(2).第15页,共42页,编辑于2022年,星期三OR3 16用Dijkstra算法求图中v1到v8的最短路第16页,共42页,编辑于2022年,星期三OR3 17最短路问题的算法:Bellman算法n n适用范围
15、:有向图,且图中有wij0。n n假设前提:任意两点vi,vj之间都有一条弧。(若无,则添加一条虚拟的弧,且其权值为。)n n公式来源分析:第17页,共42页,编辑于2022年,星期三OR3 18n n基本思路:用逐次逼近来求网络中的最短路:每次求出从始点到网络中其余各点有限制的最短路。若第一次逼近即得最短路,则限制其最短路只有一条弧,其路长记为 ;若第二次逼近即得最短路,则限制其最短路不超过两条弧,其路长记为 ;依此类推,第k次逼近得最短路,则限制其不超过k条弧。一般的,最多逼近n-1次即得到最短路。第18页,共42页,编辑于2022年,星期三OR3 19n n为了求得公式的解可以运用以下公
16、式:n n令:第19页,共42页,编辑于2022年,星期三OR3 20n n基本步骤:n n1、令 ,其中,若v1与vj间没弧,则记w1j=+。n n2、当计算到第k步时,若有 成立,则停止计算。即为从v1到各点的最短路。第20页,共42页,编辑于2022年,星期三OR3 21举例:求v1到各点的最短路第21页,共42页,编辑于2022年,星期三OR3 22计算过程见下表:025-30-2406400-3047203-10025-3020-3611020-36615020-3361410020-336910020-336910第22页,共42页,编辑于2022年,星期三OR3 23n n当计算
17、到第六步时,计算结果与第五步相同,则表中第六列的数字分别表示点v1到其它各点的最短路。n n寻找最短路径的方法:反向追踪法。第23页,共42页,编辑于2022年,星期三OR3 24第24页,共42页,编辑于2022年,星期三OR3 256.4 最大流问题n n1、掌握可行流、增广链、截集、截量等基本概念n n2、掌握基本定理8及其证明n n3、掌握求最大流的标号法第25页,共42页,编辑于2022年,星期三OR3 26n n引例:如下输水网络,南水北调工程,从vs s到vt t送水,弧旁数字前者为管道容量,后者为现行流量,如何调运输水最多?vsvtv2v1v4v3(3,3)(5,1)(1,1)
18、(4,3)(1,1)(2,2)(3,0)(2,1)(5,3)第26页,共42页,编辑于2022年,星期三OR3 27最大流问题的基本概念n n1、容量网络n n 如果有向连通网络图D=(V,A)的每一条弧(vi,vj)上都被赋予一个非负数,以表示通过该弧的最大通行能力,称为弧的容量,则称这样的网络为容量网络,记作D=(V,A,C)。第27页,共42页,编辑于2022年,星期三OR3 28n n2、流n n 在D=(V,A,C)中,如果实际通过每一弧(vi,vj)的流量是fij,则称集合f=fij为网络D=(V,A,C)上的一个流。第28页,共42页,编辑于2022年,星期三OR3 293、可行
19、流 对给定的D=(V,A,C),把满足下列两个条件,把满足下列两个条件1 1),2 2)的流)的流称为可行流。称为可行流。1)容量限制条件)容量限制条件 :对D D中的每一条弧(vi i,v vj),有0 f0 fij ij ccij;2)平衡条件:对中间点对中间点v vi i ,流入量等于流出量,即 ;对发点v vs s,有 ;对收点对收点v vt t,有,有 .是可行流的流量,是发点的净输出量,是收点的净入是可行流的流量,是发点的净输出量,是收点的净入量。量。注意:任一D=(V,A,C)D=(V,A,C)都存在可行流。如零流就是一个可行流。如果D=(V,A,C)D=(V,A,C)中没有给出
20、弧上的流量中没有给出弧上的流量f fij,可认为fij0。第29页,共42页,编辑于2022年,星期三OR3 30n n4、最大流 n n使得从网络发点到收点得总流量(W)达到最大得可行流f=fij称为最大流。n n最大流问题就是求一个流f=fij使其流量 达到最大,并且满足:n n注意:寻求网络中的最大流就相当于求线性规划模型的最优解。第30页,共42页,编辑于2022年,星期三OR3 31n n5.截集、截量、最小截量n n截量:截集(,)中所有弧的容量之和称为该截集的截量,记为c(,).n n最小截集:在D=(V,A,C)的所有截集中,截量最小的截集称为最小截集,记为()。第31页,共4
21、2页,编辑于2022年,星期三OR3 32n n注意:容量网络图D的截集不是唯一的,截集个数是有限的。如果在图D中把任何一个截集中的弧丢掉,那么从发点就不能通往收点。所以,截集是从发点到收点的必经之道。从而,有任何一个可行流的流量都不会超过任意截集的截量。第32页,共42页,编辑于2022年,星期三OR3 33n n6、增广链n n在容量网络D=(V,A,C)中,若 为网络中从vs到vt的一条链,给链 定方向为从vs到vt,上与 同方向的弧称为前向弧,与 反方向的弧称为后向弧,前向弧和后向弧的集合分别用 和 来表示。设 是一个可行流,如果满足:则称 为从vs到vt的(关于f的)增广链。第33页
22、,共42页,编辑于2022年,星期三OR3 34n n增广链的实际意义:沿着这条链从vs 到 vt输送的流,还有潜力可挖,只需按照定理证明中的调整方法,就可以把流量提高;调整后的流,在各点仍满足平衡条件及容量限制条件,即仍为可行流。这样,就得到了一个寻求最大流的方法:从一个可行流开始,寻求关于这个可行流的增广链,若存在,则可以经过调整,得到一个新的可行流,其流量比原来的可行流要大,重复这个过程,直到不存在关于该流的增广链时就的得到了最大流。第34页,共42页,编辑于2022年,星期三OR3 35n n7、最大流量最小截量定理n n定理8:可行流 是最大流的充要条件是不存在从vs到vt的关于 的
23、增广链。n n重要结论:任一容量网络D=(V,A,C)中,最大流的流量等于最小截集的截量。可行流f 是最大流的充分必要条件是不存在从 到 可行流f 是最大流的充分必要条件是不存在从 到 可行流f 是最大流的充分必要条件是不存在从 第35页,共42页,编辑于2022年,星期三OR3 36定理8可行流 是最大流的充要条件是不存在从vs到vt的关于 的增广链证明:先证明:若可行流先证明:若可行流先证明:若可行流先证明:若可行流 是最大流,则是最大流,则是最大流,则是最大流,则 中不存在关于中不存在关于中不存在关于中不存在关于 的增广链。的增广链。的增广链。的增广链。若若若若 是最大流,设是最大流,设
24、是最大流,设是最大流,设D D是是是是 的增广链。令的增广链。令的增广链。令的增广链。令:由增广链的定义可知由增广链的定义可知由增广链的定义可知由增广链的定义可知 ,令:,令:,令:,令:不难验证该流是一个可行流,且其最大流量比原流大不难验证该流是一个可行流,且其最大流量比原流大不难验证该流是一个可行流,且其最大流量比原流大不难验证该流是一个可行流,且其最大流量比原流大 。则,证明原可行流不是最大流,与假设矛盾。则,证明原可行流不是最大流,与假设矛盾。则,证明原可行流不是最大流,与假设矛盾。则,证明原可行流不是最大流,与假设矛盾。第36页,共42页,编辑于2022年,星期三OR3 37再证明:
25、若再证明:若再证明:若再证明:若D中不存在关于中不存在关于中不存在关于中不存在关于 的增广链,则该流是最大的增广链,则该流是最大的增广链,则该流是最大的增广链,则该流是最大流。流。流。流。利用下面的方法来定义利用下面的方法来定义利用下面的方法来定义利用下面的方法来定义V1:1:第37页,共42页,编辑于2022年,星期三OR3 38求最大流的方法:标号法n n方法很简单:首先找到一条增广链,沿此进行最大可能调整,再找增广链,再调整,直到没有增广链为止。如何找增广链?如何找增广链?如何调整?如何调整?n n设已有一个可行流设已有一个可行流f f(若网络中没有给定f f,则可以设f f是零可行流)
26、,通过标号过程来找到增广链,通过调整过程来对增广链上的流量进行调整。n n第一步 标号过程,通过标号来寻找可增广链;n n第二步第二步 调整过程,沿可增广链调整调整过程,沿可增广链调整f f,以增加流量。第38页,共42页,编辑于2022年,星期三OR3 39标号法的基本方法介绍1.标号过程n n在这个过程中,网络中的每个标号点的标号由两个标号组成:n n 第一个标号表明该点的标号是从哪一点得到的,以便找到增广链;n n 第二个标号是为确定增广链上的调整量用的。第39页,共42页,编辑于2022年,星期三OR3 40标号过程n n1 1)给发点以标号(0,+)。n n2)选择一个已标号的顶点)
27、选择一个已标号的顶点v vi,对于v vi的所有的所有未给标号未给标号的邻接点的邻接点按下列规则处理:按下列规则处理:n n若弧(若弧(vi i,v,vj)上,f,fijc cij ij,则令l(vj j)minl(vminl(vi),c),cij-ij-fij ij,并给并给vj以标号(以标号(v vi i,l(vj))。)。n n若弧(vj j ,v vi)上,f,fji ji0 0,则令l(vl(vj j)minl(vi),fji ji 并给vj j以标号(v vi i,l(vl(vj j))。)。n n重复第2)步,直到收点被标号或不再有顶点可标号)步,直到收点被标号或不再有顶点可标号时为止。若收点得到标号,说明存在增广链,转调整时为止。若收点得到标号,说明存在增广链,转调整过程。若收点未获得标号,标号过程已无法进行时,过程。若收点未获得标号,标号过程已无法进行时,说明说明f f已是最大流。第40页,共42页,编辑于2022年,星期三OR3 41调整过程n n1)按上一步的第一个标号用反向追踪法找出增广链。n n2)令调整量 l(vt),且令:n n然后去掉所有标号,回到标号过程,对可行流 重新标号。第41页,共42页,编辑于2022年,星期三OR3 42举例1:解水网最大流问题第42页,共42页,编辑于2022年,星期三