收藏 分享(赏)

数学建模_图论_兰州交通大学.ppt

上传人:j35w19 文档编号:7010929 上传时间:2019-04-30 格式:PPT 页数:114 大小:1.02MB
下载 相关 举报
数学建模_图论_兰州交通大学.ppt_第1页
第1页 / 共114页
数学建模_图论_兰州交通大学.ppt_第2页
第2页 / 共114页
数学建模_图论_兰州交通大学.ppt_第3页
第3页 / 共114页
数学建模_图论_兰州交通大学.ppt_第4页
第4页 / 共114页
数学建模_图论_兰州交通大学.ppt_第5页
第5页 / 共114页
点击查看更多>>
资源描述

1、数学建模图论,兰州交通大学 ,一、涉及图论的历年数学建模题目 二、图论简介 三、图论的基本概念 四、最短路问题及其算法 五、最小生成树及其算法 六、几个可以用图论解决的范例,目 录,一、涉及图论的历年数学建模题目,1、93B 足球队排名次 2、94A 逢山开路 3、94B 锁具装箱问题 4、95B 天车与冶炼炉的作业调度 5、97B 截断切割:最短路 6、98B 灾情巡视:最小生成树、Hamilton圈、旅行商问题,主目录,一、涉及图论的历年数学建模题目,7、99B 钻井布局:最大完全子图 8、00B 管道订购:最短路 9、01B公交车调度 10、02D赛程安排 11、04A奥运会临时超市网点

2、设计 12、07乘公交,看奥运,一、涉及图论的历年数学建模题目,13、08C地面搜索 14、08DNBA赛程的分析与评价,二、图论简介,现实生活中许多问题都可归结为由点和线组成的图形的问题,例如,铁路交通图,公路交通图,市区交通图,自来水管网系统,甚至电路图在研究某些问题时也可简化为由点和线组成的图形。如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个“图”的几何形象。 图论就是研究这些由点和线组成的图形的问题。,主目录,图论是运筹学的一个经典和重要的分支,它起源于18世纪欧拉(Euler)对七桥问题的抽象和论证。 1936年,匈牙利数学家柯

3、尼希(Knig)出版了图论的第一部专著有限图与无限图理论,竖立了图论发展的第一座里程碑。,几个著名的图论问题:,2.1 七桥问题(Euler) 18世纪东普鲁士有一个城市称为哥尼斯堡,它位于普雷格尔河畔,河中有两个小岛,通过七座桥彼此相联(如图2.1)。当时有人提出:能否从某个地点出发经过每个桥一次且仅一次然后返回出发点?,建模: 点陆地 岛屿 边桥,Euler的做法:,图 2.1,图 2.2,2.2 Hamilton 周游世界问题 1859年 Hamilton 提出这样一个问题:一个正十二面体有20个顶点,它们代表世界上20个重要城市。正十二面体的每个面均为五边形,若两个顶点之间有边相连,则

4、表示相应的城市之间有航线相通。 Hamilton 提出 “能否从某城市出发经过每个城市一次且仅一次然后返回出发点?”,2.3 四色问题(猜想) 四色问题又称四色猜想、四色定理,是世界近代三大数学难题之一。 地图四色定理(Four color theorem)最先是由一位叫古德里(Francis Guthrie)的英国大学生提出来的。德摩根(Augustus De Morgan)1852年10月23日致哈密顿的一封信提供了有关四色定理来源的最原始的记载。,四色问题的内容是:“任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。”用数学语言表示,即“将平面任意地细分为不相重叠的区域,每

5、一个区域总可以用1,2,3,4这四个数字之一来标记,而不会使相邻的两个区域得到相同的数字。” 1890年希五德(Heawood)指出“4换为5”猜想成立。 1976年美国数学家阿佩尔(K.Appel)与哈肯(W.Haken)在三台百万次的电子计算机上花了1200小时证明了猜想成立。猜想成为定理。,2.4 中国邮路问题或中国邮递员问题(CPPChinese Postman Problem)1962年中国数学家管梅谷提出:一个邮递员从邮局出发递送邮件,要求对他所负责的辖区的每条街至少走一次,问如何选取路程最短的路线?国际上称之为中国邮递员问题。该问题可用专门的算法来求解。,其它相关问题,2.5 最

6、短路问题(SPPshortest path problem)一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地。从甲地到乙地的公路网纵横交错,因此有多种行车路线,这名司机应选择哪条线路呢?假设货柜车的运行速度是恒定的,那么这一问题相当于需要找到一条从甲地到乙地的最短路。,2.6旅行商问题(TSPtraveling salesman problem)一名推销员准备前往若干城市推销产品。如何为他(她)设计一条最短的旅行路线(从驻地出发,经过每个城市恰好一次,最后返回驻地)?这一问题的研究历史十分悠久,通常称之为旅行商问题。 2.7 指派问题(assignment problem)一家公司经理

7、准备安排名员工去完成项任务,每人一项。由于各员工的特点不同,不同的员工去完成同一项任务时所获得的回报是不同的。如何分配工作方案可以使总回报最大?,2.8 运输问题(transportation problem)某种原材料有个产地,现在需要将原材料从产地运往个使用这些原材料的工厂。假定个产地的产量和家工厂的需要量已知,单位产品从任一产地到任一工厂的运费已知,那么如何安排运输方案可以使总运输成本最低?,三、图论的基本概念,3.1 图的定义3.2 图的分类3.3 图的同构3.4 子图3.5 图的运算3.6 图的代数表示及特征,主目录,3.1 图(Graph)的定义,定义3.1 称数学结构G = V(

8、G), E(G), G 为一个图,其中V(G) = v1, v2, , vn 称为图 G的顶点集(vertex set)或节点集(node set),V(G) 中的每一个元素 vi(i = 1, 2, , n)称为该图的一个顶点(vertex)或结点(node); E(G) = e1, e2, , em 称为图 G 的边集(edge set),E(G) 中的每一个元素 ek(即V(G) 中某两个元素vi, vj 的无序对)记为 ek = (vi, vj) 或 ek = vivj = vjvi(k = 1, 2, , m),被称为该图的一条从 vi到 vj的边(edge);,上级目录,G是从 E

9、(G) 到V(G)V(G) 的一个映射,它指定 E(G) 中的每条边与 V(G) 中的点组成的无序点对相对应。若用小圆点表示点集 V(G) 中的点,连线表示边集 E(G) 中的边,则可用图形将图表示出来,称之为图的图形。我们常用图的图形代表图本身。,定义3.2 设e = uv 为图 G 的一条边,我们称 u、v 是 e 的端点,u 与 v 相邻,边 e 与点 u(或v)相关联;称 u 是 e 的起点,v 是 e 的终点。若两条边 e1 与 e2 有共同的端点,则称边 e1与 e2 相邻;称有相同起点和终点的两条边为重边;称两端点均相同的边为环;称不与任何边相关联的点为孤立点。,点集与边集均为有

10、限集合的图称为有限图,一般我们只讨论有限图。只有一个顶点而无边的图称为平凡图。边集为空的图称为空图。 无环且无重边的图称之为简单图。其他所有的图都称为复合图。,例3.1 设 V = v1, v2, v3, v4,E = e1, e2, e3, e4, e5,:EVV 定义为(e1) = v1v2,(e2) = v2v3, (e3) = v2v3,(e4) = v3v4,(e5) = v4v4, 则G = V, E 是一个图,其图形如图3.1所示。,图 3.1,例3.2 设 V = v1, v2, v3, v4,E = v1v2, v1v2, v2v3, 则G = V, E 是一个图,其图形如图

11、3.2所示。,图 3.2,例 3.1 和例 3.2 都不是简单图,因为例3.1 中既含重边(e2 与 e3)又含环(e5),而例 3.2 中含重边(v1v2)。下图3.3给出了一个简单图。,图 3.3,任意两点均相邻的简单图称之为完全图。n 个点的完全图记为 Kn,图 3.4 中给出的分别是 K2,K3,K4。,图 3.4,如果图 G 的各条边都被赋予了方向,则称图 G 为有向图。如果图 G 的每条边 e 都附有一个实数 w(e),则称图 G 为赋权图,实数 w(e) 称为边 e 的权(值)。图 3.5 和图 3.6 分别给出了有向图和赋权图的例子;而图 3.7 则给出了有向赋权图的例子。,图

12、 3.5:有向图,图 3.6:赋权图,图 3.7: 有向赋权图,设 v 为图 G 的点,G 中与 v 相关联的边的条数(环计算两次)称为点 v 的度,记为dG(v),简记为 d(v)。,例3.3,图3.8中d (v1) = 5 d (v2) = 4 d (v3) = 3 d (v4) = 0 d (v5) = 2,注:该图中各点的度数之和等于14,恰好是边数7的两倍。,图3.8,定理 3.1(图论第一定理:握手定理) Euler提出设 G 是具有 n 个顶点 m 条边的图,则顶点度数的总和等于边数的 2 倍,即证明:因图 G 的任一条边均有两个端点 (可以相同),在计算度时恰被计算两次 (每个

13、端点各被计算了一次),所以各点的度数之和恰好为边数的两倍,即定理成立。推论3.1:图G中度数为奇的点的个数为偶数。,证明:任给图G = (V, E),设G 有m 条边,令V1= v | v V ,d(v) 为奇数 , V2= v | v V ,d(v) 为偶数 显然,V1 V2= V,V1V2= 。由握手定理(*)(*)式中2m为偶, 也为偶(因其中每个d(v)为偶),从而推知 也为偶,而和式中每个d(v)均为奇,故和式中被加项的项数应为偶,这表明G 中度为奇数的点有偶数个。,例3.4 证明在任意一次集会中和奇数个人握手的人的个数为偶数个。证明:将集会中的人作为点,若两个人握手则对应的点联线,

14、则得简单图G。这样G中点v的度对应于集会中与v握手的人的个数。于是,问题转化为证明“图G中度数为奇的点的个数为偶数”,这正是推论3.1的结论。,定理 3.2 完全图 Kn 的边数为m = n(n1)/2。如果简单图 G 的每个顶点都有相同的度数k,则称 G 为 k 次正则图(或k -正则图)。完全图 Kn 一定是 n 次正则图,如前图3.4。相关术语和记号:图G的顶点的最小度:图G的顶点的最大度奇(偶)点: 奇(偶)数度的顶点,3.2 图的分类,A 按边的方向分类 有向图与无向图:边有方向的图,叫有向图;边无方向的图叫无向图。 起点和终点:在有向图中,有向边e = vivj中vi称为起点, v

15、j称为终点。,上级目录,B 按边的种类分类 简单图与多重图:不含环与多重边的图叫简单图;含多重边的图叫多重图。 赋(有)权图与无权图: 有时在一个图中边的旁边可以附加数字以刻划此边的某些数量特征,叫做边的权,此边叫做有权边,具有有权边的图叫有权图或赋权图,无有权边的图叫无权图。,C 按结点集与边集的“阶”分类 1、有限图与无限图:V 与 E 为有限集合的图叫有限图,否则叫无限图。 2、(n,m)图:有 n 个结点与 m 条边的图。零图:即(n,0)图;平凡图:即(1,0)图。 3、完全图:任意两个结点都相邻接的图。共n(n-1)/2 条边,是(n,n(n-1)/2)图。 4、K正则图:每个结点

16、都与K条边相关联。,注意:完全图是 n-1 正则图,完全图的每个结点都与其它 n-1 个结点相邻接,即与n-1条边相关联,所以是n-1正则图,反之正则图不一定是完全图。1、完全图: 2、正则图:是3正则图。 完全图 不是完全图,3.3 图的同构,定义3.3 给定两个图G=V,E,G=V,E,若存在一一映射f:VV,使对任意a,bV,有(a,b)E (f(a),f(b)E,并且(a,b)与(f(a),f(b)有相同重数, 则称G与G同构,记为GG.说明:(1) 两个同构的图均有相同的结构,没有本质上的差异, 差异只是顶点和边的名称不同。(2)图同构的几个必要条件: 顶点数相同; 边数相同; 度数

17、相等的顶点个数相同。,上级目录,(3)不难证明:图的同构关系是一个等价关系。该关系将所有的图的集合,划分为一些等价类,即相互同构的图作成同一个等价类。(4)在图的图形表示中我们可以不给图的点和边标上符号,称这样的图为非标定(号)图,否则称为标定(号)图。非标定图实际上是代表一类相互同构的图。不误解时我们也不严格区分标定图与非标定图。(5)寻求判断图同构的简单且有效的方法仍然是当前图论待解决的重要问题。,图同构举例,GG HH 1a,2b, 1a,2b,3c,3c,4d 4d,5e,6f,G,G,H,H,非同构图举例,存在结点数及每个结点对应度都相等的两个图仍然不同构的情况.一个例子如下:(注意

18、:两个4度点或邻接或不相邻接),G,G,3.4 子图,定义3.4 设图G= V, E, ,G1= V1, E1, 1 (1)若 且当 时, ,则称G1是G的子图,有时也称G是G1的母图,记作 。特别的,若V1=V,则G1称为G的生成子图。 当G1G但G1G时,记为G1G,且称G1是G的真子图。 (2)设 且 ,以V1为顶点集、两个端点都在V1中的图G的边为边集的图G的子图,称为图G的由V1导出的子图,记作GV1。 (3)设 且 ,以E1为边集、 E1的顶点集为顶点集的图G的子图,称为图G的由E1导出的子图,记作GE1。,上级目录,有向图子图举例,:由(1,2),(1,4),(5,1)导出的子图

19、; :由(1,2),(3,2),(3,4),(1,4)导出的子图(也是此4点导出的子图); :由1,2,4,5导出的子图.,定理3.3 简单图G中所有不同的生成子图(包括G和空图)的个数是2m个, 其中m为G的边数。证明:易知其个数 = 含0条边的+含1条边的+含m条边的,3.5 图的运算,设G1,G2是G的子图,则G1和G2不相交: 指它们无公共顶点;G1和G2边不重: 指它们无公共边;并图G1G2:是指其顶点集为V(G1)V(G2),边集为E(G1)E(G2) 的G的一个子图;如果G1和G2是不相交的,有时就记其并图为G1+G2;交图G1G2:类似地定义;对称差G1G2:G1G2 = (G

20、1G2) - (G1G2) = (G1-G2)(G2-G1),上级目录,例,例,定义3.5 在不相交的G1和G2的并图G1+G2中,把G1的每个顶点和G2的每个顶点连接起来所得到的图称为G1和G2的联图,记为G1G2。,例,补 图,定义3.6 设G1=V, E1, 对于G2=V, E2,若有G=V, E1E2是完全图,且E1E2 = , 则称G2是G1的补图。图G1 图G2 图G,3.6 图的代数表示及特征,一个图除了可以用图形表示之外,还可用矩阵来表示。用矩阵表示图有利于计算机处理。3.6.1 邻接矩阵3.6.2 关联矩阵,上级目录,3.6.1 邻接矩阵,定义3.7:设图G = V,E,V

21、= v1,v2, vn,则G的邻接矩阵是一个nn矩阵A(G) = aij (简记为A),其中若vi邻接vj,则aij=1;否则aij=0。注: 若aij取为连接vi与vj的边的数目, 则称A为推广的邻接矩阵。,邻接矩阵的另一种定义方式(以下均假设图为简单图),1) 对无向图G,其邻接矩阵为A=aij,其中,2) 对有向图G=V,E,其邻接矩阵为A=aij,其中,3) 对有向赋权图G=V,E,其邻接矩阵为A=aij,其中,对于无向赋权图的邻接矩阵可类似定义.,3.6.2 关联矩阵,定义3.8 无环图G的关联矩阵B(G) = bij (简记为B)是一个nm矩阵,当点vi与边ej关联时bij=1,否

22、则bij=0。,说明:定义中“无环”的条件可去掉,此时bij=点vi与边ej关联的次数(0, 1, 2(环)。,性质:关联矩阵的每列和为2;其行和为对应顶点的度数。,关联矩阵的另一种定义方式(以下均假设图为简单图),1) 对无向图G=V,E,其关联矩阵为M=mij,其中,2) 对有向图G=V,E,其关联矩阵为M=mij,其中,四、最短路问题,4.1 相关概念4.2 Dijkstra算法4.3 Floyd算法,主目录,4.1 相关概念,定义4.1 给定图G =V, E,w= v0e1v1e2ekvk是G中点边交替组成的序列,其中viV,ei=(vi-1,vi)E,i= 0,1, k,则称w为一条

23、从起点v0到终点vk的长为k的通路(或路径、通道、途径、链), 简称(v0, vk)通路。 注:对有向图,要求vi-1和vi为ei的始点和终点。边不重复的通路称为简单通路(或迹);除起点与终点可以相同外,任意两点都不同的通路,称为基本通路,基本通路简称为路。显然,基本通路必为简单通路。,上级目录,称起点与终点相同的通路为回路(或闭途径) ;边不重复的回路称为简单回路;起点与终点相同的长为正的基本通路称为基本回路,也称为圈。如不引起混淆(如在简单图中),通路与回路均可用点序列来表达。k(奇,偶)圈:长为k (奇,偶)的圈。3圈常称为三角形。易知,图中若两个不同点u与v 间存在途径(通路),则 u

24、 与 v 间必存在路;若过点u存在回路,则过点u 必存在圈 。,例4.1 在下图G 中,取 w1=v1v2v3,w2=v1v2v3v4v2 ,w3=v1v2v3v2v3v4 ( 注:简单图可只用点序列表通路),w1, w2, w3 依次为长为2,4,5的途径;w1与w2为迹 ,w1为路。,另外我们可看出,G中v1v2v5v1为长为3的圈,v1v2v3 v4v2v5v1 为长为 6 的回路。,图4.1,定理4.1 任何图G中有从u到w的路径(回路)必有从u到w的基本路径(回路)。,由于G有从u到w的路径,G必有一条长度最小的从u到w的路径P.如果P不是基本路径,则P=ue1v1e2viei+1v

25、jej+1 enw 中必有vi=vj,于是P-ei+1,ej仍是G的一条从u到w的路径,但长度比P长度还要小,得出矛盾.,图4.2,定理4.2 在n结点的图中任何链的长度都不大于n-1;任何基本回路的长度都不大于n。,证:设任一链P的长度为k,则P穿程于k+1个结点:P = v0e1v1e2v2ekvkvk.因v0,v1,vk两两不同,故k+1n,从而kn-1.同理,长度为k的基本回路有k个不同结点,从而kn.,定义4.2 任意两点之间均存在通路的图称为连通图,否则称为非连通图。非连通图中的连通子图,称为连通分支。图4.3所示的图为连通图,而图4.4所示的图为非连通图,它含有两个连通分支。,图

26、4.3,图4.4,定义4.3 设图G是赋权图,为G中的一条路,则称的各边权之和为路的长度。对于G的两个顶点u和v,从u到v的路一般不只一条,其中最短的一条称为从u到v的最短路;最短路的长称为从u到v的距离,记为d(u, v)。约定: d(u, u)=0;d(u,v)=,若没有路连接u和v。图G的直径:d(G) = max d(u, v) | u, vV,4.2 Dijkstra算法,最短路问题是图论应用的基本问题,很多实际问题,如线路的布设、运输安排、运输网络最小费用流等问题,都可通过建立最短路问题模型来求解.求解最短路问题的两种方法:Dijkstra和Floyd算法.(1)求赋权图中从给定点

27、到其余顶点的最短路;(2)求赋权图中任意两点间的最短路.,上级目录,求赋权图中从给定点到其余顶点的最短路Dijkstra算法,解决上述问题的一个方法是由Dijkstra (迪杰斯特拉)于1959年提出的算法,此算法不仅能求出赋权图指定两点间的最短路,而且能求出从指定点到其余各顶点的最短路.目前它是求无负权图最短路的最好方法.Dijkstra算法是一种迭代算法,它依据的是一个重要而明显的性质:最短路是一条路,最短路上的任一子段也是最短路。,Dijkstra的基本思想,按距u从近到远为顺序,依次求得u0到图G的各顶点的最短路和距离,直至顶点v(或直至图G的所有顶点)。 步骤:把结点集V分割为二子集

28、 S,T.开始时S=a,T=V-S. 步骤:对每结点 tT,求出 D(t)之后再定出xT 使得 D(x)= minD(x)|tT. 步骤:置 S 为 Sx置 T为T-x.若 T=则停止,否则转步骤作下一次循环.,Dijkstra算法实现及步骤,对每个顶点v,定义两个标号l(v), z(v), 其中l(v)为从u0到v的路长; z(v)为v的父节点(前一个点)。S:具有永久标号的顶集。算法的过程就是在每一步改进这两个标号,最终l(v)为u0到v的最短路长。输入带权邻接矩阵(距离矩阵)w(u, v).,Dijkstra算法的步骤:,Dijkstra算法的步骤: G 中u0点到其它各点的距离及最短路

29、,第一步 赋初值:令l(u0) =0,对所有vV u0,令l(v)=,z(v) =u0;S0= u0,i=0。 第二步 若i=n1,停止;否则令 =VSi,进行下一步。 第三步 更新标号:对每个v ,令如果l(v) l(ui) + w(ui,v),则z(v) =ui,否则z(v) 不变。 第四步 计算 ,并用 ui1 记达到最小值的顶点,置Si1= Siui1,i = i1,转第二步。,4.3 Floyd算法,寻求赋权图中各对顶点之间最短路,显然可以调用 Dijkstra 算法。具体方法是:每次以不同的顶点作为起点,用 Dijkstra 算法求出从该起点到其余顶点的最短路径,反复执行这样的操作

30、,就可得到每对顶点之间的最短路。但这样做需要大量重复计算,效率不高。R. W. Floyd(弗洛伊德)另辟蹊径,提出了比这更好的算法,操作方式与 Dijkstra 算法截然不同。,上级目录,Floyd的基本思想,直接在图的带权邻接矩阵中用插入顶点的方法依次构造出v个矩阵D(1)、 D(2)、 、D(n),使最后得到的矩阵D(n)成为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径递推公式,五、最小生成树及算法,5.1 树的定义与树的特征 5.2 图的生成树 5.3 找图中生成树的方法 5.4 最小生成树与算法,主目录,5.1 树的定义与树的特征,定义5.1 连通且不含圈的无向图称为树

31、常用T表示.树中的边称为树枝. 树中度为1的顶点称为树叶.孤立顶点称为平凡树.,平凡树,上级目录,图5.1,定理5.1 设G是具有n个顶点的图,则下述命题等价:,1) G是树( G无圈且连通); 2) G无圈,且有n-1条边; 3) G连通,且有n-1条边; 4) G无圈,但添加任一条新边恰好产生一个圈; 5) G连通,且删去一条边就不连通了(即G为最小连通图) 6) G中任意两顶点间有唯一一条路。,5.2 图的生成树,定义5.2 若T是包含图G的全部顶点的子图,它又是树,则称T是G的生成树. 图G中不在生成树中的边叫做弦.定理5.2 图G=(V,E)有生成树的充要条件是图G是连通的。,上级目

32、录,5.3 找图中生成树的方法,可分为两种:避圈法和破圈法A 避圈法 : 深探法和广探法B 破圈法,上级目录,A 避圈法,定理5.2的充分性的证明提供了一种构造图的生成树的方法.这种方法就是在已给的图G中,每步选出一条边使它与已选边不构成圈,直到选够n-1条边为止. 这种方法可称为“避圈法”或“加边法”.在避圈法中,按照边的选法不同,找图中生成树的方法可分为两种:深探法和广探法.,深探法的步骤,i) 在点集V中任取一点u,给以标号0.ii) 若某点v已得标号,检查一端点为v的各边,另一端是否均已标号.若有边vw之w未标号,则给w以标号i+1,记下边vw.令w代v,重复ii).若这样的边的另一端

33、均已有标号,就退到标号为i-1的r点,以r代v,重复ii),直到全部点得到标号为止.,广探法的步骤,i) 在点集V中任取一点u,给以标号0.ii)令所有标号i的点集为Vi,检查Vi,VVi中的边端点是否均已标号. 对所有未标号之点均标以i+1,记下这些边。iii) 对标号i+1的点重复步步骤ii),直到全部点得到标号为止.,B 破圈法,相对于避圈法,还有一种求生成树的方法叫做“破圈法”. 这种方法就是在图G中任取一个圈,任意舍弃一条边,将这个圈破掉,重复这个步骤直到图G中没有圈为止.,例5.1 用破圈法求图5.2的一个生成树。,图5.2,图5.3,不难发现,图的生成树不是唯一的 .,图5.2,

34、图5.4,5.4 最小生成树与算法,介绍最小树的两种算法: Kruskal算法(或避圈法)和破圈法.,上级目录,A. Kruskal算法(或避圈法),步骤如下: 1) 选择边e1,使得w(e1)尽可能小; 2) 若已选定边 ,则从 中选取ei+1,使得: i) 为无圈图, ii) w(ei+1)是满足i)的尽可能小的权, 3) 当第2)步不能继续执行时,则停止. 定理5.3 由Kruskal算法构作的任何生成树都是最小树。,例5.2 用Kruskal算法求下图的最小树.,在下图中权值最小的边为e1,e5,任取一条e1,在e2,e3,e8选取权值最小的边e5; e2,e3,e4,e6,e7,e8

35、中权值最小的边有e3,e7,从中选取一条边e3;在e2, e4,e6,e7,e8选取e7。 最后在e2, e4,e6, e8中任选一条边都会和已选边构成圈。,图5.5,图5.6,例5.3 用Kruskal算法求图5.7的最小生成树。,图5.7,图5.8(a),图5.8(b),图5.8(c),解:将图的边按照权值从小到大进行排列,列出下表,操作 Kruskal 算法,迭代 9 步完成最小生成树的寻找。操作过程的各个步骤列于下表。,结果显示于图5.9。,图5.9,Kruskal算法的复杂度,它主要决定于把各边排成有序的队列,当原图有m条边时可有m!种排法,相当于log2(m!)次比较.对于有n个顶

36、点的图,最多有n(n-1)/2条边,故复杂度是n2log2(n)。 推导:斯特灵公式,B. 破圈法求最小生成树,步骤如下: 1) 从图G中任选一棵树T1. 2) 加上一条弦e1,T1+e1中立即生成一个圈. 去掉此圈中最大权边,得到新树T2,以T2代T1,重复2)再检查剩余的弦,直到全部弦检查完毕为止.,C. 最小生成树的Prim 算法,算法步骤: 1.在网路中任选一点vi,令V=vi,其余点的集 合记为VC; 2.从V与VC的连线中找出最小边,它一定在树中.设eij=vi,vj是最小边,让vj加入V,并从VC中退出; 3.重复2,直到一切节点都包含在V内为止。,例5.4 如图5.10,求图G

37、=(V,G)的最小生成树。,(1)任选一节点,例如v1,令V=v1,在V与VC的相连线中最短的是e12,长为1; (2)令V=v1,v2,它与VC中点的最短连线为e25,长为2; (3)令V=v1,v2,v5,下一条边是e45,长为2; (4)V=v1,v2,v5,v4,下一条边是e23,长为3. 总长为1+2+2+3=8,图5.10,图5.11,Prim算法的复杂度:O(n3),从算法开始到结束共进行n-1步,第r步须从Gr中的r个端点与G-Gr中的n-r个端点间的距离作比较得出最小者。第r步中要做r(n-r)-1次比较。,补 充,一般来讲,一个图的生成树不唯一。 定理 5.4 连通图的生成

38、树一定存在。 在实际应用中,还会遇到求一个赋权图的最大生成树的问题。 定义5.4 在赋权图 G 中,边权之和最小(大)的生成树称为 G 的最小(大)生成树。 比如,某图的边权代表的是利润或效益,则最终的问题很可能就是求其最大生成树。事实上,从前面几个算法可以看出,只要边权的选择改为从大到小,求最小生成树的算就可以用来求最大生成树了。,六、几个可以用图论解决的范例,6.1 设备更新问题6.2 选址问题6.3 分组技术问题,主目录,某工厂的某台机器可连续工作4年,决策者每年年初都要决定机器是否需要更新。若购置新的,就要支付一定的购置费用;若继续使用,则要支付一定的维修与运行费用,而且随着机器使用年

39、限的增加费用逐年增多。计划期(4 年)中每年年初的购置价格及各个年限内维修与运行费用由下表给出,试制订今后 4 年的机器更新计划,使总的支付费用最少。,6.1设备更新问题,上级目录,又如果已知不同役龄机器年末的处理价格如下表所示,那末在这计划期内机器的最优更新计划又会怎样?,解:关于第一问,把该问题看成一个最短路问题。设 v1 和 v5 分别表示计划期的始点和终点(x5 可理解为第4年年末)。图中各边 (vi , vj) 表示在第 i 年初购进的机器使用到第 j 年初(即第 j 1 年底),边旁的数字由表中的数据得到。,图6.1,关于第二问,类似于第一问,可转化为求下图中从 v1 到 v5 的

40、最短路问题。 按照最短路算法可得最短路 v1, v2, v3, v5,即计划期内机器更新最优计划为第 1 年、第 3 年初各购进一台新机器,4 年总的支付费用为 6.8万元。,图6.2,选址问题是指为一个或几个服务设施在一定区域内选定它的位置,使某一指标达到最优值。选址问题的数学模型依赖于设施可能的区域和评判位置优劣的标准,有许多不同类型的选址问题。比较简单的两类选址问题是中心问题和重心问题。,6.2 选址问题,上级目录,6.2.1 中心问题:有些公共服务设施(例如一些紧急服务型设施如急救中心、消防战等)的选址,要求网络中最远的被服务点距离服务设施的距离尽可能小。例如:某城市要建立一个消防站,

41、为该市所属的七个区服务,如下图所示。问应设在那个区,才能使它至最远区的路径最短。,图6.3,解:(1) 用 Floyd 算法求出距离矩阵 D = (dij)vv:,(2) 计算在各点 vi 设立服务设施的最大服务距离 S(vi) ,i = 1, 2, , v 有:S(v1) = 10,S(v2) = 7,S(v3) = 6,S(v4) = 8.5,S(v5) = 7,S(v6) = 7,S(v7) = 8.5。(3) 求出顶点 vk,使 ,则 vk 就是要求的建立消防站的地点。因为 S(v3) = 6最小,故应将消防站设在 v3 处。此点称为图的中心点。,6.2.2 重心问题:有些设施(例如一

42、些非紧急型的公共服务设施,如邮局、学校等)的选址,要求设施到所有服务对象点的距离总和最小。一般要考虑人口密度问题,要使全体被服务对象来往的平均路程最短。例如,某矿区有七个矿点,如下图所示。已知各矿点每天的产矿量q(vj)(标在图的各顶点上),现要从这七个矿点选一个来建造矿厂,问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的总运力(千吨公里)最小。,解:(1) 用 Floyd 算法求出距离矩阵 D = (dij)vv:(2) 计算各顶点作为选矿厂的总运力 m(vi) (3) 求 vk 使 ,则 vk 就是选矿厂应设之矿点。此点称为图的重心或中位点。,图6.4,分组技术是设计制造系统的一种

43、方法,它把生产零件的机器分组,相应地把需生产的零件分类,使零件跨组加工的情形尽量少,最理想的情况是使每个零件的加工都在组内完成。假设有 13 种零件,需在 9 台机器上加工。在各台机器上加工的零件号在下表中给出。将这 9 台机器分为 3 组,使零件跨组加工的情形尽量少。,6.3 分组技术,上级目录,解:(1) 建模 设用 Mi 表示需由机器 i 加工的零件集合。对任意两台机器 i,j,定义 i 与 j的相异度:其中“”表示对称差,分子即为在机器 i 但不在机器 j 上加工,或在机器 j 但不在机器 i 上加工的零件数。分母为在机器 i 或在机器 j 上加工的零件数。显然,0 w 1,w(i,

44、j) = 0 表示机器 i 与机器 j 加工的零件完全相同;w(i, j) = 1 表示机器 i 与机器 j 加工的零件没有一个相同。w 表达了两台不同机器加工零件的相异程度。,以机器为顶点,作一个完全图,每条边 (i, j) 被赋予权 w(i, j)。这个图的最小生成树是由那些相异度最小的边构成的连通图,或看成是去掉了相异度相对比较大的边后余下的连通图。如果希望把机器分成 k 个组,就继续删去最小生成树上权最大的 k1条边。于是得到 k 个分离的子树,每棵树的顶点就构成各机器组。(2) 模型求解 对前面表中给出的数据,按照上述建模方式构造加权图,边权矩阵如下表所示。,用 Kruskal 算法可求出最小生成树,如下图。将最小生成树中最大权的两条边去掉,得到三个分离树,它们的顶点集合分别为:3, 9,1, 2, 5,4, 6, 7, 8,这也就是机器的分组。,图6.5,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > UML理论/建模

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报