欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    图论数学建模幻灯片.ppt

    • 资源ID:69451410       资源大小:2.78MB        全文页数:43页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图论数学建模幻灯片.ppt

    图论数学建模第1页,共43页,编辑于2022年,星期五1引言引言 图论起源于图论起源于1818世纪。第一篇图论论文是瑞士数世纪。第一篇图论论文是瑞士数学家欧拉于学家欧拉于1736 1736 年发表的年发表的“哥尼斯堡的七座桥哥尼斯堡的七座桥”。图论中所谓的图论中所谓的“图图”是指是指某类具体事物和这些事某类具体事物和这些事物之间的联系物之间的联系。如果我们用。如果我们用点点表示这些表示这些具体事物具体事物,用,用连接两点的连接两点的线段线段(直的或曲的)表示两个(直的或曲的)表示两个事物的特定的事物的特定的联系联系,就得到了描述这个,就得到了描述这个“图图”的几何形象。图论为任的几何形象。图论为任何一个包含了一种二元关系的离散系统提供了一个数学模何一个包含了一种二元关系的离散系统提供了一个数学模型,借助于图论的概念、理论和方法,可以对该模型求解。型,借助于图论的概念、理论和方法,可以对该模型求解。哥尼斯堡七桥问题就是一个典型的例子。在哥尼斯堡哥尼斯堡七桥问题就是一个典型的例子。在哥尼斯堡有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来。有七座桥将普莱格尔河中的两个岛及岛与河岸联结起来。问题是问题是要从这四块陆地中的任何一块开始通过每一座桥要从这四块陆地中的任何一块开始通过每一座桥正好一次,再回到起点。正好一次,再回到起点。第2页,共43页,编辑于2022年,星期五第3页,共43页,编辑于2022年,星期五 当然可以通过试验去尝试解决这个问题,但该城当然可以通过试验去尝试解决这个问题,但该城居民的任何尝试均未成功。居民的任何尝试均未成功。欧拉为了解决这个问题,采用了建立数学模型的方欧拉为了解决这个问题,采用了建立数学模型的方法。他将每一块陆地用一个点来代替,将每一座桥用连法。他将每一块陆地用一个点来代替,将每一座桥用连接相应两点的一条线来代替,从而得到一个有接相应两点的一条线来代替,从而得到一个有四个四个“点点”,七条,七条“线线”的的“图图”。问题成为。问题成为从任一点出发一从任一点出发一笔画出七条线再回到起点笔画出七条线再回到起点。欧拉考察了一般一笔画的。欧拉考察了一般一笔画的结构特点,给出了结构特点,给出了一笔画的一个判定法则一笔画的一个判定法则:这个图是这个图是连通的,且每个点都与偶数线相关联,连通的,且每个点都与偶数线相关联,将这个判定法将这个判定法则应用于七桥问题,得到了则应用于七桥问题,得到了“不可能走通不可能走通”的结果,的结果,不但彻底解决了这个问题,而且开创了图论研究的不但彻底解决了这个问题,而且开创了图论研究的先河。先河。第4页,共43页,编辑于2022年,星期五 我们首先通过一些例子来了解网络优化问题。我们首先通过一些例子来了解网络优化问题。例例1 1 最短路问题最短路问题(SPPSPPshortest path problemshortest path problem)一名货柜车司机奉命在最短的时间内将一车货物从甲一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地。从甲地到乙地的公路网纵横交错,因此地运往乙地。从甲地到乙地的公路网纵横交错,因此有多种行车路线,这名司机应选择哪条线路呢?假设有多种行车路线,这名司机应选择哪条线路呢?假设货柜车的运行速度是恒定的,那么这一问题相当于需货柜车的运行速度是恒定的,那么这一问题相当于需要找到一条从甲地到乙地的最短路。要找到一条从甲地到乙地的最短路。例例2 2 公路连接问题公路连接问题 某一地区有若干个主要城市,现准备修建高速公路把这某一地区有若干个主要城市,现准备修建高速公路把这些城市连接起来,使得从其中任何一个城市都可以经高些城市连接起来,使得从其中任何一个城市都可以经高速公路直接或间接到达另一个城市。假定已经知道了任速公路直接或间接到达另一个城市。假定已经知道了任意两个城市之间修建高速公路的成本,那么应如何决定意两个城市之间修建高速公路的成本,那么应如何决定在哪些城市间修建高速公路,使得总成本最小?在哪些城市间修建高速公路,使得总成本最小?第5页,共43页,编辑于2022年,星期五例例3 3 指派问题指派问题(assignment problemassignment problem)一家公司经理准备安排名员工去完成项任务,一家公司经理准备安排名员工去完成项任务,每人一项。由于各员工的特点不同,不同的员每人一项。由于各员工的特点不同,不同的员 工去完成同一项任务时所获得的回报是不同的。工去完成同一项任务时所获得的回报是不同的。如何分配工作方案可以使总回报最大?如何分配工作方案可以使总回报最大?例例4 4 中国邮递员问题中国邮递员问题(CPPCPPchinese postman chinese postman problem problem)一名邮递员负责投递某个街区的邮件。如何为他一名邮递员负责投递某个街区的邮件。如何为他 (她)设计一条最短的投递路线(从邮局出发,(她)设计一条最短的投递路线(从邮局出发,经过投递区内每条街道至少一次,最后返回邮局)经过投递区内每条街道至少一次,最后返回邮局)?由于这一问题是我国管梅谷教授?由于这一问题是我国管梅谷教授19601960年首先年首先 提的,所以国际上称之为中国邮递员问题。提的,所以国际上称之为中国邮递员问题。第6页,共43页,编辑于2022年,星期五例例5 5 运输问题运输问题(transportation problemtransportation problem)某种原材料有个产地,现在需要将原材料从产地运往某种原材料有个产地,现在需要将原材料从产地运往个使用这些原材料的工厂。假定个产地的产量和家工个使用这些原材料的工厂。假定个产地的产量和家工厂的需要量已知,单位产品从任一产地到任一工厂的厂的需要量已知,单位产品从任一产地到任一工厂的运费已知,那么如何安排运输方案可以使总运输成本运费已知,那么如何安排运输方案可以使总运输成本最低?最低?上述问题有两个共同的特点:上述问题有两个共同的特点:一是一是它们的目的都是从若它们的目的都是从若干可能的安排或方案中寻求某种意义下的最优安排或方案,干可能的安排或方案中寻求某种意义下的最优安排或方案,数学上把这种问题称为最优化或优化(数学上把这种问题称为最优化或优化(optimizationoptimization)问题;问题;二是二是它们都易于用图形的形式直观地描述和它们都易于用图形的形式直观地描述和表达,数学上把这种与图相关的结构称为网络表达,数学上把这种与图相关的结构称为网络(networknetwork)。与图和网络相关的最优化问题就是网)。与图和网络相关的最优化问题就是网络最优化或称网络优化络最优化或称网络优化 (netwok optimizationnetwok optimization)问题。问题。第7页,共43页,编辑于2022年,星期五2图与网络的基本概念图与网络的基本概念 2.1 2.1 无向图无向图 一个无向图一个无向图(undirected graph)(undirected graph)是由一个非空有限集合是由一个非空有限集合 和和 中某些元素的无序对集合中某些元素的无序对集合 构成的二元组,记为构成的二元组,记为 。其中其中 称为称为图的顶点集图的顶点集(vertex setvertex set)或)或节点集(节点集(node setnode set),),中的每一个元素中的每一个元素 称为该图的一个顶点(称为该图的一个顶点(vertexvertex)或节点)或节点(nodenode););称为称为图的边集图的边集 (edge setedge set),),中的每一个元素中的每一个元素 记为记为 或或 ,被称为该图,被称为该图的一条从的一条从 到到 的边(的边(edgeedge)第8页,共43页,编辑于2022年,星期五一个图称为一个图称为有限图有限图,如果它的顶点集和边集都有,如果它的顶点集和边集都有 限。图的顶点数用符号限。图的顶点数用符号 或或 表示,边数用表示,边数用 或或 表示。表示。当讨论的图只有一个时,总是用当讨论的图只有一个时,总是用G G来表示这个图。从来表示这个图。从而在图论符号中我们常略去字母而在图论符号中我们常略去字母G G,例如,例如:分别用分别用 代替代替 。端点重合为一点的边称为端点重合为一点的边称为环环(loop)(loop)。一个图称为一个图称为简单图简单图(simple graph)(simple graph),如果它既没有环,如果它既没有环也没有两条边连接同一对顶点。也没有两条边连接同一对顶点。第9页,共43页,编辑于2022年,星期五2.2 2.2 有向图有向图定义定义 一个有向图(一个有向图(directed graphdirected graph或或 digraphdigraph)G G是由是由一个非空有限集合一个非空有限集合V V和和V V中某些元素的有序对集合构成中某些元素的有序对集合构成的二元组,记为的二元组,记为 其中其中 称为图的称为图的顶点集或节点集顶点集或节点集 .称为图的称为图的弧集弧集(arc setarc set),),A A中的每中的每一个元素一个元素(即中某两个元素的有序对即中某两个元素的有序对)记为记为 或或 ,当弧当弧 时,时,称为尾(称为尾(tailtail),),为头(为头(headhead).第10页,共43页,编辑于2022年,星期五2.3 2.3 完全图、二分图完全图、二分图每一对不同的顶点都有一条边相连的简单图称为每一对不同的顶点都有一条边相连的简单图称为完完全图全图(complete graph)(complete graph)。n n个顶点的完全图记为个顶点的完全图记为 。若若 ,(这里(这里 表表示集合示集合X X中的元素个数),中的元素个数),X X中无相邻顶点对,中无相邻顶点对,Y Y中亦然,中亦然,则称则称G G为为二分图二分图(bipartite graph)(bipartite graph);特别地,若;特别地,若 ,则,则 ,则称,则称G G为为完全二分图完全二分图,记成,记成 。第11页,共43页,编辑于2022年,星期五2.4 2.4 子图子图 如果如果 ,图图H H叫做图叫做图G G的子图的子图(subgraphsubgraph),记作),记作 。若。若H H是是G G的子图,则的子图,则G G称为称为H H的母图。的母图。2.5 2.5 顶点的度顶点的度 设设 ,G G中与中与v v关联的边数(每个环算作两条边)关联的边数(每个环算作两条边)称为称为v v的度的度(degree)(degree),记作,记作 。若。若 是奇数,称是奇数,称v v是奇顶点是奇顶点(odd point)(odd point);若是偶数,称;若是偶数,称v v是偶顶点是偶顶点(even point)(even point)。关于顶点的度,我们有如下结果:。关于顶点的度,我们有如下结果:(i)(i)(ii)(ii)任意一个图的奇顶点的个数是偶数任意一个图的奇顶点的个数是偶数。第12页,共43页,编辑于2022年,星期五2.6 2.6 图与网络的数据结构图与网络的数据结构网络优化研究的是网络上的各种优化模型与算法为了在网络优化研究的是网络上的各种优化模型与算法为了在计算机上实现网络优化的算法,首先我们必须有一种方法计算机上实现网络优化的算法,首先我们必须有一种方法(即数据结构)在计算机上来描述图与网络。(即数据结构)在计算机上来描述图与网络。这里我们介绍计算机上用来描述图与网络的这里我们介绍计算机上用来描述图与网络的5 5种常用表示种常用表示方法:方法:邻接矩阵表示法、关联矩阵表示法、弧表表示邻接矩阵表示法、关联矩阵表示法、弧表表示法、邻接表表示法和星形表示法。法、邻接表表示法和星形表示法。在下面数据结构的讨论中,我们首先假设在下面数据结构的讨论中,我们首先假设是一个简单有向图是一个简单有向图,并假设,并假设V中的顶点用自然数中的顶点用自然数1,2,n表示或编号,表示或编号,A中的弧用自中的弧用自然数然数1,2,m表示或编号。表示或编号。第13页,共43页,编辑于2022年,星期五(i)邻接矩阵表示法)邻接矩阵表示法邻接矩阵表示法是将图以邻接矩阵(邻接矩阵表示法是将图以邻接矩阵(adjacency adjacency matrixmatrix)的形式存储在计算机中。图)的形式存储在计算机中。图 的邻的邻接矩阵是如下定义的:接矩阵是如下定义的:C C是一个是一个n*nn*n的的0-10-1矩阵,即矩阵,即也就是说,如果两节点之间有一条弧,则邻接矩阵中也就是说,如果两节点之间有一条弧,则邻接矩阵中对应的元素为对应的元素为1 1;否则为;否则为0 0。第14页,共43页,编辑于2022年,星期五例例1 1 对于所示的图,可以用邻接矩阵表示为对于所示的图,可以用邻接矩阵表示为同样,对于网络中的权,也可以用类似邻接矩阵的同样,对于网络中的权,也可以用类似邻接矩阵的矩阵表示。只是此时一条弧所对应的元素不再是矩阵表示。只是此时一条弧所对应的元素不再是1 1,而是而是相应的权相应的权而已。如果网络中每条弧赋有多种权,而已。如果网络中每条弧赋有多种权,则可以用多个矩阵表示这些权。则可以用多个矩阵表示这些权。第15页,共43页,编辑于2022年,星期五(iiii)关联矩阵表示法)关联矩阵表示法关联矩阵表示法是将图以关联矩阵(关联矩阵表示法是将图以关联矩阵(incidence incidence matrixmatrix)的形式存储在计算机中)的形式存储在计算机中 图图 的关联矩阵的关联矩阵B B是如下定义的:是如下定义的:B B是一个是一个n*mn*m的矩阵,即的矩阵,即第16页,共43页,编辑于2022年,星期五如果一个节点是一条弧的如果一个节点是一条弧的起点起点,则关联矩阵中对应的元,则关联矩阵中对应的元素为素为1 1;如果一个节点是一条弧的;如果一个节点是一条弧的终点终点,则关联矩阵中,则关联矩阵中对应的元素为对应的元素为-1-1;如果一个节点与一条弧;如果一个节点与一条弧不关联不关联,则,则关联矩阵中对应的元素为关联矩阵中对应的元素为0 0。例例2 2 对于例对于例1 1所示的图,如果关联矩阵中每列对应弧的顺所示的图,如果关联矩阵中每列对应弧的顺序为序为(1,2)(1,2),(1,3)(1,3),(2,4)(2,4),(3,2)(3,2),(4,3)(4,3),(4,5)(4,5),(5,3)(5,3)和和(5,4)(5,4),则关联矩阵表示为,则关联矩阵表示为(列单位为弧)(列单位为弧)第17页,共43页,编辑于2022年,星期五(iiiiii)弧表示法)弧表示法弧表表示法将图以弧表(弧表表示法将图以弧表(arc listarc list)的形式存储)的形式存储在计算机中。所谓图的弧表,也就是图的弧集合在计算机中。所谓图的弧表,也就是图的弧集合中的所有有序对。中的所有有序对。例例3 3,假设弧,假设弧(1,2)(1,2),(1,3)(1,3),(2,4)(2,4),(3,2)(3,2),(4,3)(4,3),(4,5)(4,5),(5,3)(5,3)和和(5,4)(5,4)上的权分别为上的权分别为8 8,9 9,6 6,4 4,0 0,3 3,6 6和和7 7,则弧表表示如下:,则弧表表示如下:起点起点11234455终终点点23423534权权89640367第18页,共43页,编辑于2022年,星期五(iviv)邻接表表示法)邻接表表示法邻接表表示法将图以邻接表(邻接表表示法将图以邻接表(adjacency listsadjacency lists)的)的形式存储在计算机中。形式存储在计算机中。所谓图的邻接表,也就是图的所有节点的邻接表的集合;所谓图的邻接表,也就是图的所有节点的邻接表的集合;而对每个节点,它的邻接表就是它的所有出弧而对每个节点,它的邻接表就是它的所有出弧。邻。邻接表表示法就是对图的每个节点,用一个单向链表接表表示法就是对图的每个节点,用一个单向链表列出从该节点出发的所有弧,链表中每个单元对应列出从该节点出发的所有弧,链表中每个单元对应于一条出弧。于一条出弧。为了记录弧上的权,链表中每个单元除为了记录弧上的权,链表中每个单元除列出弧的另一个端点外,还可以包含弧上的权等作为列出弧的另一个端点外,还可以包含弧上的权等作为数据域数据域。图的整个邻接表可以用一个指针数组表示。图的整个邻接表可以用一个指针数组表示。第19页,共43页,编辑于2022年,星期五对于有向图对于有向图,一般用,一般用表表示节点的邻接表,即节点的所有出弧构成的集合或链表示节点的邻接表,即节点的所有出弧构成的集合或链表(实际上只需要列出弧的另一个端点,即弧的(实际上只需要列出弧的另一个端点,即弧的头)。例如上面例子,头)。例如上面例子,等。等。第20页,共43页,编辑于2022年,星期五(v v)星形表示法)星形表示法星形(星形(starstar)表示法的思想与邻接表表示法的思想有一)表示法的思想与邻接表表示法的思想有一定的相似之处。对每个节点,它也是记录从该节点出发定的相似之处。对每个节点,它也是记录从该节点出发的所有弧,但它不是采用单向链表而是采用一个单一的的所有弧,但它不是采用单向链表而是采用一个单一的数组表示。数组表示。记录弧信息的数组弧编号12345678起点11234455终点23423534权89640367第21页,共43页,编辑于2022年,星期五3应用应用最短路问题最短路问题3.1 3.1 两个指定顶点之间的最短路径两个指定顶点之间的最短路径问题如下:给出了一个连接若干个城镇的铁路网络,在问题如下:给出了一个连接若干个城镇的铁路网络,在这个网络的两个指定城镇间,找一条最短铁路线。这个网络的两个指定城镇间,找一条最短铁路线。以各城镇为图以各城镇为图G G的顶点,两城镇间的直通铁路为图的顶点,两城镇间的直通铁路为图G G相应相应两顶点间的边,得图两顶点间的边,得图G G。对。对G G的每一边的每一边e e,赋以一个实,赋以一个实数数 直通铁路的长度,称为直通铁路的长度,称为e e的权,得到赋权的权,得到赋权图图G G。G G的子图的权是指子图的子图的权是指子图G G的各边的权和。的各边的权和。问题就是求赋权图中指定的两个顶点问题就是求赋权图中指定的两个顶点 间的具最小间的具最小权的轨。这条轨叫做权的轨。这条轨叫做 间的最短路,它的权叫做间的最短路,它的权叫做 间的距离,亦记作间的距离,亦记作 。第22页,共43页,编辑于2022年,星期五求最短路已有成熟的算法:求最短路已有成熟的算法:迪克斯特拉迪克斯特拉(DijkstraDijkstra)算法,其基本思想是按距算法,其基本思想是按距 从近到远为顺序,依次从近到远为顺序,依次求得求得 到的到的G G各顶点的最短路和距离,直至(或直各顶点的最短路和距离,直至(或直至的所有顶点),算法结束。为避免重复并保留每至的所有顶点),算法结束。为避免重复并保留每一步的计算信息,采用了标号算法。下面是该算法一步的计算信息,采用了标号算法。下面是该算法。(i)(i)令令 ,对,对 令令 ,。(ii)(ii)对每个对每个 ,用用 代替代替 计算计算 ,把达到这个最小值的一个顶点,把达到这个最小值的一个顶点 记为记为 ,令,令 。(iii)(iii)若若 ,停止;若,停止;若 ,用,用i+1i+1代替代替 i i,转,转(ii)(ii)。第23页,共43页,编辑于2022年,星期五找出找出u0u0到其他各点的最短路径到其他各点的最短路径第24页,共43页,编辑于2022年,星期五第25页,共43页,编辑于2022年,星期五3.2每对顶点之间的最短路径每对顶点之间的最短路径计算赋权图中各对顶点之间最短路径,显然可以调计算赋权图中各对顶点之间最短路径,显然可以调用用DijkstraDijkstra算法。具体方法是:算法。具体方法是:每次以不同的顶点作每次以不同的顶点作为起点为起点,用,用DijkstraDijkstra算法求出从该起点到其余顶点的最算法求出从该起点到其余顶点的最短路径,反复执行次这样的操作,就可得到从每一个顶短路径,反复执行次这样的操作,就可得到从每一个顶点到其它顶点的最短路径。点到其它顶点的最短路径。第二种解决这一问题的方法是由第二种解决这一问题的方法是由Floyd R WFloyd R W提出的算法,提出的算法,称之为称之为FloydFloyd算法。算法。第26页,共43页,编辑于2022年,星期五假设图权的邻接矩阵为,假设图权的邻接矩阵为,来存放各边长度,其中:来存放各边长度,其中:;之间没有边,在程序中以各边都不之间没有边,在程序中以各边都不 可能达到的充分大的数代替;可能达到的充分大的数代替;是是 i,ji,j之间边的长度,之间边的长度,。第27页,共43页,编辑于2022年,星期五FloydFloyd算法的基本思想是:递推产生一个矩阵序列算法的基本思想是:递推产生一个矩阵序列 ,其中,其中 表示从顶点表示从顶点 到顶点到顶点 的路径上所经过的顶点序号不大于的路径上所经过的顶点序号不大于k k 的最短路径长度。的最短路径长度。计算时用迭代公式:计算时用迭代公式:k k是迭代次数,是迭代次数,。最后,当最后,当k=nk=n时,时,即是各顶点之间的最短通路值。即是各顶点之间的最短通路值。(例题见附件例题见附件)第28页,共43页,编辑于2022年,星期五4树树4.1 4.1 基本概念基本概念连通的无圈图叫做树,记之为连通的无圈图叫做树,记之为T T。4.2 4.2 应用应用连线问题连线问题 欲修筑连接欲修筑连接n n个城市的铁路,已知城与城之间的铁个城市的铁路,已知城与城之间的铁路造价为路造价为 ,设计一个线路图,使总造价最低。,设计一个线路图,使总造价最低。连线问题的数学模型是在连通赋权图上求权最小连线问题的数学模型是在连通赋权图上求权最小的生成树。赋权图的具有最小权的生成树叫做最小生的生成树。赋权图的具有最小权的生成树叫做最小生成树。成树。第29页,共43页,编辑于2022年,星期五定理定理定理定理 设设设设GG是具有是具有是具有是具有n n个顶点的图,则下述命题等价:个顶点的图,则下述命题等价:个顶点的图,则下述命题等价:个顶点的图,则下述命题等价:1)G是树(是树(G无圈且连通);无圈且连通);2)G无圈,且有无圈,且有n-1条边;条边;3)G连通,且有连通,且有n-1条边;条边;4)G无圈,但添加任一条新边恰好产生一个圈无圈,但添加任一条新边恰好产生一个圈;5)G连通,且删去一条边就不连通了(即连通,且删去一条边就不连通了(即G为为最最最小连通图最小连通图););6)G中任意两顶点间有唯一一条路中任意两顶点间有唯一一条路.第30页,共43页,编辑于2022年,星期五找图中生成树的方法找图中生成树的方法可分为两种:避圈法和破圈法可分为两种:避圈法和破圈法A避圈法避圈法:深探法和广探法深探法和广探法B破圈法破圈法第31页,共43页,编辑于2022年,星期五A A 避圈法避圈法 这种方法就是在已给的图这种方法就是在已给的图G中,每步选出一条边中,每步选出一条边使它与已选边不构成圈,直到选够使它与已选边不构成圈,直到选够n-1条边为止条边为止.这种这种方法可称为方法可称为“避圈法避圈法”或或“加边法加边法”在避圈法中,按照边的选法不同,找图中生成树的在避圈法中,按照边的选法不同,找图中生成树的方法可分为两种:方法可分为两种:深探法深探法和和广探法广探法.第32页,共43页,编辑于2022年,星期五a)深探法深探法若这样的边的另一端均已有标号,就退到标号为若这样的边的另一端均已有标号,就退到标号为步骤如下:步骤如下:i)在点集在点集V中任取一点中任取一点u,ii)若某点若某点v已得标号,检已得标号,检端是否均已标号端是否均已标号.若有边若有边vw之之w未标号未标号,则给则给w代代v,重复,重复ii).i-1的的r点点,以以r代代v,重复重复ii),直到全部点得到标号为止直到全部点得到标号为止.给以标号给以标号0.查一端点为查一端点为v的各边,另一的各边,另一w以标号以标号i+1,记下边,记下边vw.令令012345678910111213例例用深探法求出下图用深探法求出下图10的一棵生成树的一棵生成树第33页,共43页,编辑于2022年,星期五b)广探法广探法步骤如下:步骤如下:i)在点集在点集V中任取一点中任取一点u,ii)令所有标号令所有标号i的点集为的点集为是否均已标号是否均已标号.对所有未标对所有未标号之点均标以号之点均标以i+1,记下这些记下这些iii)对标号对标号i+1的点重复步的点重复步步骤步骤ii),直到全部点得到,直到全部点得到给给u以标号以标号0.Vi,检查检查Vi,VVi中的边端点中的边端点边边.例例用广探法求出下图用广探法求出下图10的一棵生成树的一棵生成树标号为止标号为止.图1031012213212234第34页,共43页,编辑于2022年,星期五B B 破圈法破圈法破圈法破圈法 相对于避圈法,还有一种求生成树的方法叫做相对于避圈法,还有一种求生成树的方法叫做“破破圈法圈法”.这种方法就是在图这种方法就是在图G G中任取一个圈,任意舍弃一条中任取一个圈,任意舍弃一条边,将这个圈破掉,重复这个步骤直到图边,将这个圈破掉,重复这个步骤直到图G G中没有圈为止中没有圈为止.例例用破圈法求出用破圈法求出下图的一棵生成树下图的一棵生成树.图的生成树不是唯一的图的生成树不是唯一的.第35页,共43页,编辑于2022年,星期五A A A A Kruskal Kruskal Kruskal Kruskal算法(或避圈法)算法(或避圈法)算法(或避圈法)算法(或避圈法)步骤如下:步骤如下:1)选择边选择边e1,使得,使得w(e1)尽可能小;尽可能小;2)若已选定边若已选定边,则从,则从中选取中选取,使得,使得:i)为无圈图,为无圈图,ii)是满足是满足i)的尽可能小的权,的尽可能小的权,3)当第当第2)步不能继续执行时,则停止步不能继续执行时,则停止.定理定理4由由Kruskal算法构作的任何生成树算法构作的任何生成树都是最小树都是最小树.最小生成树与算法最小生成树与算法第36页,共43页,编辑于2022年,星期五例例用用Kruskal算法求下图的最小树算法求下图的最小树.在左图中在左图中权值权值最小的边有最小的边有任取一条任取一条在在中选取权值中选取权值最小的边最小的边中权值最小边有中权值最小边有,从中选从中选任取一条边任取一条边会与已选边构成圈会与已选边构成圈,故停止故停止,得得中选取在中选取中选取在中选取中选取中选取.但但与与都都第37页,共43页,编辑于2022年,星期五B B破圈法破圈法破圈法破圈法算法算法2步骤如下:步骤如下:1)1)从图从图G G中任选一棵树中任选一棵树T T1 1.2)2)加上一条弦加上一条弦e e1 1,T T1 1+e+e1 1中中 立即生成一个圈立即生成一个圈.去掉此去掉此圈中最大权边,得到新圈中最大权边,得到新树树T T2 2,以以T T2 2代代T T1 1,重复重复2)2)再再检查剩余的弦,直到全检查剩余的弦,直到全部弦检查完毕为止部弦检查完毕为止.例例用破圈法求下图的最小树用破圈法求下图的最小树.第38页,共43页,编辑于2022年,星期五 prim prim算法构造最小生成树算法构造最小生成树 设置两个集合设置两个集合P P和和Q,Q,其中其中P P用于存放的最小生成用于存放的最小生成树树G G中的顶点,集合中的顶点,集合Q Q存放的最小生成树存放的最小生成树G G中的边。令中的边。令集合集合P P的初值为的初值为 (假设构造最小生成树时,从(假设构造最小生成树时,从顶点顶点 出发),集合出发),集合Q Q的初值为的初值为 。primprim算法的思想是算法的思想是,从所有,从所有 ,的边的边中,选取具有最小权值的边中,选取具有最小权值的边 ,将顶点,将顶点v v加入加入集合集合P P中,将边中,将边pvpv加入集合加入集合Q Q中,如此不断重复,直中,如此不断重复,直到到 P=V P=V 时,最小生成树构造完毕,这时集合时,最小生成树构造完毕,这时集合Q Q中包中包含了最小生成树的所有边。含了最小生成树的所有边。第39页,共43页,编辑于2022年,星期五例例11用用prim算法求右图的最小生成树。算法求右图的最小生成树。我们用的第一、二、三行分别表示生成树边的起点、终点、权集合。我们用的第一、二、三行分别表示生成树边的起点、终点、权集合。MatlabMatlab程序如下:程序如下:clc;clear;clc;clear;M=1000;M=1000;a(1,2)=50;a(1,3)=60;a(1,2)=50;a(1,3)=60;a(2,4)=65;a(2,5)=40;a(2,4)=65;a(2,5)=40;a(3,4)=52;a(3,7)=45;a(3,4)=52;a(3,7)=45;a(4,5)=50;a(4,6)=30;a(4,7)=42;a(4,5)=50;a(4,6)=30;a(4,7)=42;a(5,6)=70;a(5,6)=70;a=a;zeros(2,7);a=a;zeros(2,7);a=a+a;a(find(a=0)=M;a=a+a;a(find(a=0)=M;result=;p=1;tb=2:length(a);result=;p=1;tb=2:length(a);while length(result)=length(a)-1 while length(result)=length(a)-1 result=temp=a(p,tb);temp=temp(:);temp=a(p,tb);temp=temp(:);125447d=min(temp);d=min(temp);254673 jb,kb=find(a(p,tb)=d);jb,kb=find(a(p,tb)=d);504050304245 j=p(jb(1);k=tb(kb(1);j=p(jb(1);k=tb(kb(1);result=result,j;k;d;p=p,k;tb(find(tb=k)=;result=result,j;k;d;p=p,k;tb(find(tb=k)=;endendresultresult第40页,共43页,编辑于2022年,星期五例例 从北京(从北京(PePe)乘飞机到东京)乘飞机到东京(T)(T)、纽约、纽约(N)(N)、墨西哥城墨西哥城(M)(M)、伦敦、伦敦(L)(L)、巴黎、巴黎(Pa)(Pa)五城市做旅游,五城市做旅游,每城市恰去一次再回北京,应如何安排旅游线,每城市恰去一次再回北京,应如何安排旅游线,使旅程最短?各城市之间的航线距离如下表使旅程最短?各城市之间的航线距离如下表:LMNPaPeTL5635215160M5621577870N3521366868Pa2157365161Pe5178685113T6070686113第41页,共43页,编辑于2022年,星期五解:编写程序如下:clc,cleara(1,2)=56;a(1,3)=35;a(1,4)=21;a(1,5)=51;a(1,6)=60;a(2,3)=21;a(2,4)=57;a(2,5)=78;a(2,6)=70;a(3,4)=36;a(3,5)=68;a(3,6)=68;a(4,5)=51;a(4,6)=61;a(5,6)=13;a(6,:)=0;a=a+a;c1=5 1:4 6;L=length(c1);flag=1;while flag0 flag=0;for m=1:L-3 for n=m+2:L-1 if a(c1(m),c1(n)+a(c1(m+1),c1(n+1)0 flag=0;for m=1:L-3 for n=m+2:L-1 if a(c1(m),c1(n)+a(c1(m+1),c1(n+1).a(c1(m),c1(m+1)+a(c1(n),c1(n+1)flag=1;c1(m+1:n)=c1(n:-1:m+1);end end endendsum1=0;for i=1:L-1 sum1=sum1+a(c1(i),c1(i+1);endif sum1sum sum=sum1;circle=c1;endcircle,sum第43页,共43页,编辑于2022年,星期五

    注意事项

    本文(图论数学建模幻灯片.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开