1.35k likes | 1.49k Vues
图与网络分析. 本章内容重点. 图的基本概念与基本定理 树和最小支撑树 最短路问题 网络系统最大流问题 网络系统的最小费用最大流问题 中国邮递员问题. 引 言. 图论是应用非常广泛的运筹学分支,它已经广泛地应用于物理学控制论,信息论,工程技术,交通运输,经济管理,电子计算机等各项领域。对于科学研究,市场和社会生活中的许多问题,可以同图论的理论和方法来加以解决。例如,各种通信线路的架设,输油管道的铺设,铁路或者公路交通网络的合理布局等问题,都可以应用图论的方法,简便、快捷地加以解决。. 引 言.
E N D
图与网络分析 本章内容重点 图的基本概念与基本定理 树和最小支撑树 最短路问题 网络系统最大流问题 网络系统的最小费用最大流问题 中国邮递员问题
引 言 图论是应用非常广泛的运筹学分支,它已经广泛地应用于物理学控制论,信息论,工程技术,交通运输,经济管理,电子计算机等各项领域。对于科学研究,市场和社会生活中的许多问题,可以同图论的理论和方法来加以解决。例如,各种通信线路的架设,输油管道的铺设,铁路或者公路交通网络的合理布局等问题,都可以应用图论的方法,简便、快捷地加以解决。
引 言 随着科学技术的进步,特别是电子计算机技术的发展,图论的理论获得了更进一步的发展,应用更加广泛。如果将复杂的工程系统和管理问题用图的理论加以描述,可以解决许多工程项目和管理决策的最优问题。因此,图论越来越受到工程技术人员和经营管理人员的重视。
引 言 1736年瑞士科学家欧拉发表了关于图论方面的第一篇科学论文,解决了著名的哥尼斯堡七座桥问题。德国的哥尼斯堡城有一条普雷格尔河,河中有两个岛屿,河的两岸和岛屿之间有七座桥相互连接,如图1a所示。
引 言 C A B D 图1 a
引 言 当地的居民热衷于这样一个问题,一个漫步者如何能够走过这七座桥,并且每座桥只能走过一次,最终回到原出发地。尽管试验者很多,但是都没有成功。 为了寻找答案,1736年欧拉将这个问题抽象成图1b所示图形的一笔画问题。即能否从某一点开始不重复地一笔画出这个图形,最终回到原点。欧拉在他的论文中证明了这是不可能的,因为这个图形中每一个顶点都与奇数条边相连接,不可能将它一笔画出,这就是古典图论中的第一个著名问题。
引 言 C A B D 图1 b
1.图的基本概念与基本定理 在实际的生产和生活中,人们为了反映事物之间的关系,常常在纸上用点和线来画出各式各样的示意图。 例8.1:图2是我国北京、上海、重庆等十四个城市之间的铁路交通图,这里用点表示城市,用点与点之间的线表示城市之间的铁路线。诸如此类还有城市中的市政管道图,民用航空线图等等。
1.图的基本概念与基本定理 北京 天津 太原 石家庄 塘沽 济南 青岛 郑州 徐州 连云港 重庆 武汉 南京 上海 图2
1.图的基本概念与基本定理 例8.2:有六支球队进行足球比赛,我们分别用点v1…v6表示这六支球队,它们之间的比赛情况,也可以用图反映出来,已知v1队战胜v2队,v2队战胜v3队,v3队战胜v5队,如此等等。这个胜负情况,可以用图3所示的有向图反映出来。
1.图的基本概念与基本定理 v2 v4 v6 v1 v3 v5 图3
1.图的基本概念与基本定理 从以上的几个例子可以看出,我们用点和点之间的线所构成的图,反映实际生产和生活中的某些特定对象之间的特定关系。一般来说,通常用点表示研究对象用点与点之间的线表示研究对象之间的特定关系。由于在一般情况下,图中的相对位置如何,点与点之间线的长短曲直,对于反映研究对象之间的关系,显的并不重要,因此,图论中的图与几何图,工程图等本质上是不同的。
1.图的基本概念与基本定理 综上所述,图论中的图是由点和点与点之间的线所组成的。通常,我们把点与点之间不带箭头的线叫做边,带箭头的线叫做弧。 如果一个图是由点和边所构成的,那么,称为为无向图,记作G =(V,E),其中V表示图G的点集合,E表示图G的边集合。连接点vi,vjV的边记作[vi,vj],或者[vj,vi]。 如果一个图是由点和弧所构成的,那么称为它为有向图,记作D =(V,A),其中V 表示有向图D的点集合,A表示有向图D的弧集合。一条方向从vi指向vj的弧,记作(vi,vj)。
1.图的基本概念与基本定理 例如.图4是一个无向图G=(V,E) 其中V={v1,v2,v3,v4} E={[v1,v2],[v2,v1],[v2,v3], [v3,v4],[v1,v4],[v2,v4], [v3,v3]} v2 v1 v3 v4 图4
1.图的基本概念与基本定理 图8是一个有向图D=(V,A) 其中V={v1,v2,v3,v4,v5,v6,v7} A={(v1,v2),(v,v3),(v3,v2), (v3,v4),(v2,v4),(v4,v5), (v4,v6),(v,v3),(v5,v4), (v5,v6),(v6,v7)} v3 v5 v7 v1 v6 图5 v2 v4
1.图的基本概念与基本定理 下面介绍一些常用的名词: 一个图G或有向图D中的点数,记作P(G)或P(D),简记作P,边数或者弧数,记作q(G)或者q(D),简记作q。 如果边[vi,vj]E,那么称vi,vj是边的端点,或者vi,vj是相邻的。如果一个图G中,一条边的两个端点是相同的,那么称为这条边是环,如图8.4中的边[v,v3]是环。如果两个端点之间有两个端点之间有两条以上的边,那么称为它们为多重边,如图8.4中的边[v1,v2] ,[v2,v1]。一个无环,无多重边的图标为简单图,一个无环,有多重边的图标图称为多重图。
1.图的基本概念与基本定理 以点v为端点的边的个数称为点v的度,记作d(v),如图8—4中d(v1)=3, d(v2)=4,d(v3)=4,d(v4)=3。 度为零的点称为弧立点,度为1的点称为悬挂点。悬挂点的边称为悬挂边。度为奇数的点称为奇点,度为偶数的点称为偶点。
1.图的基本概念与基本定理 端点的度 d(v):点 v作为边端点的个数; 奇点:d(v)=奇数; 偶点:d(v)=偶数; 悬挂点:d(v)=1; 悬挂边:与悬挂点连接的边; 孤立点:d(v)=0; 空图:E = ,无边图
1.图的基本概念与基本定理 定理8.1所有顶点次数之和等于所有边数的2倍。 定理8.2 在任一图中,奇点的个数必为偶数。
1.图的基本概念与基本定理 图的连通性: 链: 由两两相邻的点及其相关联的边构成的点边序列;如: v0 ,e1 ,v1 ,e2 ,v2,e3 ,v3 ,…,vn-1, en , vn; v0,vn分别为链的起点和终点; 简单链:链中所含的边均不相同; 初等链:链中所含的点均不相同,也称通路;
1.图的基本概念与基本定理 回路: 若 v0 ≠ vn分称该链为开链, 否则称为闭链或回路; 圈: 除起点和终点外链中所含的点 均不相同的闭链; 连通图:图中任意两点之间均至少有一 条通路,否则称作不连通图。
1.图的基本概念与基本定理 子图 设 G1=[ V1 , E1 ],G2=[ V2 ,E2 ] 子图定义:如果 V2V1 , E2E1称G2是 G1的子图; 真子图:如果 V2V1 , E2E1称 G2是 G1的真子图; 部分图(支撑子图):如果 V2= V1 , E2 E1称 G2是 G1的部分图; 导出子图: 如果V2 V1, E2={[vi,vj]∣vi,vjV2},称 G2是 G1中由V2导出的导出子图。
1.图的基本概念与基本定理 有向图:关联边有方向 弧:有向图的边a=(u ,v),起点u,终点v; 路:若有从 u 到 v 不考虑方向的链,且 各方向一致,则称之为从u到v的路; 初等路: 各顶点都不相同的路; 初等回路:u = v 的初等 路; 连通图: 若不考虑方向 是无向连通图; 强连通图:任两点有路;
2.树和最小支撑树 一、树及其性质 在各种各样的图中,有一类图是十分简单又非常具有应用价值的图,这就是树。 例8.3:已知有六个城市,它们之间 要架设电话线,要求任意两个城市均可以互相通话,并且电话线的总长度最短。
2.树和最小支撑树 如果用六个点v1…v6代表这六个城市,在任意两个城市之间架设电话线,即在相应的两个点之间连一条边。这样,六个城市的一个电话网就作成一个图。由于任意两个城市之间均可以通话,这个图必须是连通图。并且,这个图必须是无圈的。否则,从圈上任意去掉一条边,剩下的图仍然是六个城市的一个电话网。图8.8是一个不含圈的连通图,代表了一个电话线网。
2.树和最小支撑树 v2 v1 v3 v5 v6 v4 图8
2.树和最小支撑树 • 定义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是一个树的充分必要条件是任意两个顶点之间有且仅有一条链。
2.树和最小支撑树 • 从以上定理,不难得出以下结论: (1)从一个树中任意去掉一条边,那么剩下的图不是连通图,亦即,在点集合相同的图中,树是含边数最少的连通图。 (2)在树中不相邻的两个点之间加上一条边,那么恰好得到一个圈。
2.树和最小支撑树 二.支撑树 • 定义8.2 设图K=(V,E’)是图G=(V,E)的一支撑子图,如果图K=(V,E’)是一个树,那么称K是G的一个支撑树。 • 例如,图8.10b 是图8.10a 的一个支撑树。 v3 v5 v5 v3 v1 v1 v6 v6 v2 v4 图10 v2 v4 a b
2.树和最小支撑树 • 显然,如果图K=( V, E’)是图G=(V, E)的一个支撑树,那么K 的边数是p(G)-1,G中不属于支撑树K的边数是q(G)-p(G)+1。 • 定理8.7 一个图G有支撑树的充要条件是G是连通图。
2.树和最小支撑树 证明: 必要性显然; 充分性: 设图G是连通的,若G不含圈,则按照定义,G是一个树,从而G是自身的一个支撑树。若G含圈,则任取G的一个圈,从该圈中任意去掉一条边,得到图G的一支撑子图G1。若G1不含圈,则G1是G的一个支撑树。若G1仍然含圈,则任取G1的一个圈,再从圈中任意去掉一条边,得到图G的一支撑子图G2。依此类推,可以得到图G的一个支撑子图GK,且不含圈,从而GK是一个支撑树。
2.树和最小支撑树 • 定理8.7充分性的证明,提供了一个寻找连通图支撑树的方法叫做“破圈法”。就是从图中任取一个圈,去掉一条边。再对剩下的图重复以上步骤,直到不含圈时为止,这样就得到一个支撑树。 • 例8.4:用破圈法求出图11的一个支撑树。 V2 e7 e1 e4 e3 V1 V4 e8 V5 e2 e5 e6 V3
2.树和最小支撑树 取一个圈(v1,v2,v3,v1),在一个圈中去 掉边e3。在剩下的图中,再取一个圈 (v1,v2,v4,v3,v1),去掉边e4。再从圈 (v3,v4 v5,v3)中去掉边e6。再从圈 (v1,v2,v5,v4,v3,v1)中去掉边e7, 这样,剩下的图不含圈,于是得到一个 支撑树,如图12所示。 v2 e1 v1 e8 v4 e2 e5 v3
2.树和最小支撑树 • 三.最小支撑树问题 • 定义8.3 如果图G =(V,E),对于G中的每一条边[vi,vj],相应地有一个数Wij,那么称这样的图G为赋权图,Wij称为边[vi,vj]的权。这里所指的权,是具有广义的数量值。根据实际研究问题的不同,可以具有不同的含义。例如长度,费用、流量等等。 • 赋权图在图论及实际应用方面有着重要的地位,被广泛应用于现代科学管理和工程技术等领域,最小支撑树问题就是赋权图的最优化问题之一。
2.树和最小支撑树 • 定义8.4 如果图T =(V,E’)是图G 的一个支撑树,那么称E’上所有边的权的和为支撑树T 的权,记作S(T)。 • 如果图G 的支撑树T* 的权S(T*),在G的所有支撑树T 中的权最小,即S(T*) = minS(T),那么称T*是G 的最小支撑树。 • 如前所述,在已知的几个城市之间联结电话线网,要求总长度最短和总建设费用最少,一个问题的 解决可以归结为最小支撑树问题。 再如,城市间交通线的建造等,都可以归结为这一类问题。
2.树和最小支撑树 常用的有破圈法和生长法(避圈法)两个方法: ① 在网络图中寻找一个圈。若不存在圈,则已经得到最短树或网络不存在最短树; ② 去掉该圈中权数最大的边; 反复重复 ① ② 两步,直到最短树。 1.破圈法
2.树和最小支撑树 例8.5 某六个城市之间的道路网如图8.13a所示,要求沿着已知长度的道路联结六个城市的电话线网,使得电话线的总长度最短。
2.树和最小支撑树 v5 v3 5 v3 v5 6 4 1 3 7 v1 v6 v6 v1 3 1 5 4 4 5 2 2 v2 v4 v2 v4 图13b 图13a
2.树和最小支撑树 解:这个问题的解决就是要求所示赋权图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所示,即是最小支撑树。
2.树和最小支撑树 2.成长法(避圈法) 从网络图中依次寻找权数较小的边,寻找过程中,节点不得重复,即不得构成圈。注意在找较小权数边时不考虑已选过的边和可能造成圈的边。如此反复进行,直到得到最短树或证明网络不存在最短树。
2.树和最小支撑树 再用“生长法”求解例8.5 解:考虑赋权图8.13a,用生长法求解。任取一点,例如 从v1 取权较小的边(v1 ,v2 ), 再从v2 取权较小的边(v2 ,v3 ), 再从v3 取权较小的边(v3 ,v4 ), 同理依次取(v4 ,v5), (v4 ,v6)。这时也得到了如图8.13b所示的最小支撑树。
3.最短路径问题 一.引言 最短路径问题是图论中十分重要的最优化问题之一,它作为一个经常被用到的基本工具,可以解决生产实际中的许多问题,比如城市中的管道铺设,线路安排,工厂布局,设备更新等等。也可以用于解决其它的最优化问题。
v2 v5 2 6 v9 2 6 6 3 3 4 10 3 2 v8 4 1 v7 2 v4 10 v6 3.最短路径问题例8.6: 如图8.14所示的单行线交通网,每个弧旁边的数字表示这条单行线的长度。现在有一个人要从v1出发,经过这个交通网到达v8,要寻求是总路程最短的线路。 1 v1 图14
3.最短路径问题 • 从v1到v8的路线是很多的。比如从v1出发,经过v2,v5到达v8或者从v1出发,经过v4,v6,v7到达v8等等。但不同的路线,经过的总长度是不同的。例如,按照第一个线路,总长度是6+1+6=13单位,按照第二个路线,总长度是1+10+2+4=17单位。
3.最短路径问题 一般意义下的最短路问题:设一个赋权有向图D =(V,A),对于每一个弧a =(vi,vj),相应地有一个权wij。vs,vt是D中的两个顶点,P是D中从vs到vt的任意一条路,定义路的权是P 中所有弧的权的和,记作S(p)。最短路问题就是要在所有从vs到vt的路P中,寻找一个权最小的路P0,亦即S(P0)=minS(p)。P0叫做从vs到vs的最短路。P0的权S(P0)叫做从vs到vt的距离,记作d(vs,vt)。由于D是有向图,很明显d(vs,vt)与d(vt,vs)一般不相等。
3.最短路径问题 二.Dijkstra算法 下面介绍在一个赋权有向图中寻求最短路的方法——Dijkstra算法,它是在1959年提出来的。目前公认,在所有的权wij≥0时,这个算法是寻求最短路问题最好的算法。并且,这个算法实际上也给出了寻求从一个始定点vs到任意一个点vj的最短路。
3.最短路径问题 Dijkstra算法的基本思想是从vs出发,逐步向外寻找最短路。在运算过程中,与每个点对应,记录一个数,叫做一个点的标号。它或者表示从vs到该点的最短路权(叫做P 标号),或者表示从vs到该点最短路权的上界(叫做T 标号)。算法的每一步是去修改T 标号,把某一个具有T 标号的点改变为具有P 标号的点,使图D 中具有P 标号的顶点多一个。这样,至多经过P -1步,就可求出从vs到各点vj的最短路。
3.最短路径问题 • 以例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单位。
v2 v5 2 6 v9 2 6 6 3 3 4 10 3 2 v8 4 1 v7 2 P(V4) 10 v6 例1说明: • 看从v1出发的三条弧(v1,v2),(v1,v3)和(v1,v4),min{d(v1,v1)+w12 ,d(v1,v1)+w13 , d(v1,v1)+w14 }= d(v1,v4)=1。 1 P(V1)
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的最短路。