《图算法及其在通信网中的应用》Dijkstra算法和Dial算法的比较.docVIP

《图算法及其在通信网中的应用》Dijkstra算法和Dial算法的比较.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Dijkstra算法和Dial算法的比较 李昂座机电话号码10005 何庆强座机电话号码10025 辜义睿2B 辅导老师:王晟、朱永丽 一、目录 Dijkstra算法和Dial算法的比较 1 一、目录 1 二、引言 1 三、关键词 2 四、问题描述 2 五、求解思路及方法 2 1. Dijkstra算法及伪码实现 2 2.Dial算法 3 六、实验设计 3 1.用Dijkstra算法实现 d i 代表到节点1的距离 4 2.用Dial算法实现 4 七、实验结果 4 八、性能分析 4 1.正确度分析 4 2.复杂度分析 5 九、结论 5 十、实验改进方向及应用 5 十一、附录(只写出主要函数) 6 1. CPath类 6 2.DijkstraAlg函数 7 3. Update函数 8 4.运行结果 8 二、引言 在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题旨在寻找图(由结点和路径组成的)中两结点之间的最短路径Dijkstra 迪杰斯特拉 算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式。注意该算法要求图中不存在负权边。Dijkstra算法是以起始点为中心向外层层扩展,直到扩展到终点为止能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。Dial Dijkstra算法Dijkstra程序里FindMin函数的复杂度,从而达到加速的目的,提高了算法的效率。 三、关键词 最短路径,Dijkstra算法Dial 算法,搜索,加速 四、问题描述 给定有向加权图G V, E ,给定源点/起始点s,求从s出发到V中其它所有顶点的权重最小的路径。 五、求解思路及方法 1. Dijkstra算法设G V,E 是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径 , 就将 加入到集合S中,直到全部顶点都加入到S中,算法就结束了),第二组为其余未确定最短路径的顶点集合(用U表示),按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。①DijkstraAlg G V, E , s FOR all vertex j in V DO d j ; p j NULL; S s ; d s 0; p s NULL; Update s ; WHILE S ? V DO i FindMin ; S S U i ; Update i ; END WHILE ②FindMin Find vertex v in V – S which has minimum d v ; RETURN v; ③Update i FOR each edge e incident to i DO IF e.weight + d i d e.head THEN d e.head e.weight + d i ; p e.head i; END IF END FOR 参数: 树上顶点的集合S,顶点的前继p j ,选择顶点FindMin ,更新距离标记Update i 。 注意: a.权重为正整数; b.为连通图; c.存在多条最短路时,只求1条。 2.Dial算法Dijkstra算法FindMin函数,每次FindMin都从上一次找到最小的那个桶开始查找,直到碰到第一个非空的桶为止。 桶代表各点到源点的距离,由小到大排列,一个桶里面可以装多个顶点,即这些点到源点的距离相同。更新时,将指向桶的指针依次往后找,而不需要从头开始,节省了查找的时间,提高了算法效率。 六、实验设计 根据下面的图求1到6的最短路径 1.用Dijkstra算法实现 d i 代表到节点1的距离 1 d 2 d 3 d 4 d 5 d 6 12 2 4 123 2 3 1234 2 3 6 12345 2 3 6 4 123456 2 3 6 4 6 实验程序及结果见附录 2.用Dial算法实现 引入若干个桶,桶的编号代表路径距离,

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档