下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、最短路径之 Dijkstra算法详细讲解最短路径算法在日常生活中,我们如果需要常常往返 A 地区和 B地区之间,我们最希望知道的可能是从 A 地区到 B 地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:()确定起点的最短路径问题:即已知起始结点,求最短路径的问题。()确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。()确定起点终点的最短路径问
2、题:即已知起点和终点,求两结点之间的最短路径。()全局最短路径问题:求图中所有的最短路径。用于解决最短路径问题的算法被称做 “最短路径算法 ”, 有时被简称作 “路径算法 ”。 最常用的路径算法有: Dijkstra 算法、 A*算法、 Bellman-Ford 算法、 Floyd-Warshall 算法、 Johnson 算法。本文主要研究 Dijkstra算法的单源算法。 Dijkstra 算法2.1Dijkstra算法Dijkstra 算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 Dijkstra 算法能得出最
3、短路径的最优解,但由于它遍历计算的节点很多,所以效率低。Dijkstra 算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。2.2Dijkstra算法思想Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用 S 表示,初始时 S 中只有一个源点,以后每求得一条最短路径,就将 加入到集合 S 中,直到全部顶点都加入到 S 中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S 中。在加入的过程中,总保持从源点
4、 v 到 S 中各顶点的最短路径长度不大于从源点 v 到 U 中任何顶点的最短路径长度。此外,每个顶点对应一个距离, S 中的顶点的距离就是从 v 到此顶点的最短路径长度, U 中的顶点的距离,是从 v 到此顶点只包括 S 中的顶点为中间顶点的当前最短路径长度。2.3Dijkstra算法具体步骤。(1)初始时, S 只包含源点,即 S, v 的距离为 0。U 包含除 v 外的其他顶点, U 中顶点 u 距离为边上的权(若 v 与 u 有边)或 )(若 u 不是 v 的出边邻接点)。(2)从 U 中选取一个距离 v 最小的顶点 k,把 k,加入 S 中(该选定的距离就是 v 到 k 的最短路径长
5、度)。(3)以 k 为新考虑的中间点,修改 U 中各顶点的距离;若从源点 v 到顶点u(u U)的距离(经过顶点 k)比原来距离(不经过顶点 k)短,则修改顶点 u 的距离值,修改后的距离值的顶点 k 的距离加上边上的权。(4)重复步骤( 2)和( 3)直到所有顶点都包含在S 中。2.4Dijkstra算法举例说明如下图,设 A 为源点,求 A 到其他各顶点( B、C、D、E、 F)的最短路径。线上所标注为相邻线段之间的距离,即权值。 (注:此图为随意所画,其相邻顶点间的距离与图中的目视长度不能一一对等)图一: Dijkstra无向图算法执行步骤如下表:【注:图片要是看不到请到“相册 - 日志
6、相册 ”中,名为 “Dijkstra算法过程 ”的图就是了】错误 !步骤S 集合中U 集合中1选入 A,此时 S=U=此时最短路径 AA=0A B=6,A C=3,以 A 为中间点,从 A 开始找A 其它 U中的顶点 =,发现 A C=3权值为最短2选入 C,此时 S=U=此时最短路径 AA=0,A C=3以 C 为中间。- 4 -。点,A C B=5(比上面第一步的 A B=6要短 )从 A C=3这条最短路径开始找此时到 D权值更改为 A C B=5,A C D=6,A C E=7,A C 其它 U 中的顶点 =,发现 A C B=5权值为最短3选入 B,此时 S=U=此时最短路径 AA=
7、0,A C=3,A C B=5A C BD=10( 比上面第二步的以 B 为中间点A C D=6要长 )从 A CB=5这条最短路径开始找此时到 D权值更改为 A C D=6,A C B其它 U 中的顶点 =,发现A C D=6权值为最短4选入 D,此时 S=U=此时最短路径 AA=0, AC=3,A C DE=8( 比上面第二步的 A C E=7A C B=5, A CD=6要长 ) 此时到 E 权值更改为 A C E=7,以 D 为中间点,A C DF=9从 A CD=6这条最短路径开始找发现 A C E=7权值为最短5选入 E,此时 S=U=此时最短路径 AA=0, AC=3,A C EF=12( 比上面第四步的A C B=5,AC D=6,A C E=7,以 EA C DF=9要长 ) 此时到 F 权值更改为为中间点,A C DF=9从 A CE=7这条最短路径开始找发现 A C D F=9权值为最短6选入 F,此时 S=U 集合已空,查找完毕
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年游戏开发公司与游戏运营商协议3篇
- 2024年度全区教育协同发展联盟合同3篇
- 2024年度粉煤灰综合利用项目投资合作协议2篇
- 2024年会员身份变更与转让合同版B版
- 电子竞技公司运营总监聘用合同
- 咨询公司外墙涂料施工合同
- 2024年二手住宅买卖合同(含贷款条款)2篇
- 银行安全风险防范措施
- 2024年供应商框架协议3篇
- 防洪抗旱廉政合同
- 助理物业管理师真题模拟汇编(共471题)
- 东北育才中学2024年高二上数学期末经典试题含解析
- 汽车新技术应用演示文稿
- 高中心理健康教育-【2 找到适合自己的学习方法】
- 2023年国家基本药物制度考试试题及答案
- 感觉统合发展评定量表以及原始分与标准分转换表
- 美发师高级评分记录表
- 产前筛查、诊断及新生儿疾病筛查
- 实验室绩效考核细则
- 房屋建筑与装饰工程消耗量定额Y
- X5032铣床主传动系统改造论文说明书
评论
0/150
提交评论