Dijkstra算法优化综述

时间:2024-01-18 点赞:45733 浏览:87971 作者原创标记本站原创

此文是一篇地理信息系统论文范文,关于地理信息系统类论文范文集,与Dijkstra算法优化综述相关毕业论文格式范文。适合不知如何写地理信息系统及算法及节点方面的参考文献专业大学硕士和本科毕业论文以及地理信息系统类开题报告范文和职称论文的作为写作参考文献资料下载。

【摘 要】文章简述了Dijkstra经典算法的提出及应用,讨论了算法的基本原理及不足之处.列举了国内外对Dijkstra经典算法的优化进展,同时列举了其应用领域,指出进一步的研究方向,为Dijkstra经典算法优化的相关研究提供参考.

【关 键 词 】Dijkstra算法;优化

【Abstract】The papaer described the application of the classical Dijkstra algorithm and discussed the basic prnciple and shortings of algorithm. Listing the progress of optimization of the classical algorithm Dijkstra at home and abroad and its application field and pointing out rhe directions for the further study, providing a reference for the related research of classical Dijkstra algorithm.

【Key words】Dijkstra algorithm, optimization

1.引言

Dijkstra经典算法是由计算机科学家Edsger Dijkstra在文献中提出的.它是一个图的搜索算法,解决带非负权重图的单元最短路径问题并产生一棵最短路径树.该算法经常使用在网络路由和地理信息系统中.

2.Dijkstra算法原理

(1)算法分配给每个节点一个初步的距离值:设置初始节点为零和其他节点为无穷;

(2)将当前访问节点设置为初始节点,其他的所有节点设置为未访问节点,并创建一个未访问节点集合;

(3)针对当前节点,计算其与所有邻接节点的距离.将计算出来的距离值与当前值进行比较,指定较小的一个.

(4)当我们考虑完当前节点的所有邻接节点,标记当前为已访问,并将其从未访问集合删除.已访问节点将永远不会被访问;

(5)选择为访问过的标记最小试探距离的节点,并将其作为新的当前节点,然后回到步骤3;

(6)如果终止节点已标记访问或者最小试探性距离在未设置节点之间是无限的,该算法已完成.

3.Dijkstra算法优化

在Dijkstra算法中,一般采用一个可更新排序的优先队列来实现对已经计算过距离中距离最小的节点.因此,如何实现Dijkstra算法的优先队列结构,就成为提高Dijkstra算法性能的关键.

Dijkstra算法的优先队列需要进行INSERT(插入)、EXTRACT-MIN(调整最小)、DECREASE-KEY(降级)三个基本操作.对于图(V,E),经典Dijkstra算法每次INSERT和DECREASE-KEY操作的执行时间为O(1),每次EXTRACT-MIN的操作时间为O(V)(因为需要搜索整个为访问节点数组),算法的总运行时间为O(V2+E)等于 O(V2).


由Donald B. Johnson 在文献提出来采用的d-堆每个节点有d个儿子,这使得插入和降级操作的时间复杂度改进为O(logdV),但调整最小的时间复杂度只提高到O(dlogdV).因此,它在最好情况下可以把Dijkstra算法的时间复杂度提高到O(Elog(2+(E/V)V).

由Michael L. Fredman,Robert Endre Tarjan 在文献提出的斐波那契堆,使得插入操作时间复杂度为O(1),降级的摊还时间复杂度为O(1),调整最小的摊还时间复杂度为O(logV),Dijkstra算法的时间复杂度为O(E+VlogV).

由Henzinger MR,Rao S,Subramanian S,Klein P在文献提出来采用二叉堆的优先队列的所有操作时间复杂度为O(logV),Dijkstra算法的时间复杂度为O(ElogV).

由于经典Dijkstra算法在每次迭代中都需要扫描所有未标记节点,面对海量的数据,算法执行效率非常低.因此单单只通过上述优化数据结构已经不够,还需要减少搜索量.

这方面的优化有:(1)使用评估函数来接近目标地节点;(2)利用当前目标地之间的夹角关系,使当前节点趋向于目标节点;(3)用限制区域来减少遍历节点;(4)处理交汇路径减少搜索路径.这些优化方法有的利用特定信息,有的则是在特殊情况下的优化效果明显.因此,今后的优化方向应当在优化经典Dijkstra算法结构的同时,根据数据的不同情况进行细分,期望达到最优.

4.结束语

Dijkstra算法是求单源最短路径的经典算法,主要应用于网络路由和地理信息系统的最优路径求解.但是,随着数据的海量式增长,经典Dijkstra算法的运行效率已经无法人们的需求,满足需要从各方面进行优化.本文给出了国内外研究Dijkstra算法的主要研究方向,通过对比总结出今后优化的方向,希望对广大研究人员有参考意义.

相关论文

C语言中的冒泡排序算法优化

关于参考文献及计算机及算法方面的免费优秀学术论文范文,关于参考文献相关论文的参考文献,关于C语言中的冒泡排序算法优化相关论文例文,对。

摆式列车机电式倾摆机构的优化综述

本文是一篇机构论文范文,机构类本科毕业论文范文,关于摆式列车机电式倾摆机构的优化综述相关专升本毕业论文范文。适合机构及铁路客车及铁路。

数学算法对计算机编程的优化

本文是一篇计算机编程论文范文,关于计算机编程毕业论文格式,关于数学算法对计算机编程的优化相关研究生毕业论文开题报告范文。适合计算机编。

基于遗传算法的路径优化问题

为您写电子商务毕业论文和职称论文提供电子商务类有关毕业论文模板范文,与基于遗传算法的路径优化问题相关论文例文,包括关于电子商务及算法。

协同过滤算法综述

关于用户及算法及项目方面的免费优秀学术论文范文,用户有关电子商务专业毕业论文范文,关于协同过滤算法综述相关论文例文,对写作用户论文。

基于结构挖掘的排序算法综述

为您写算法毕业论文和职称论文提供算法方面有关在职毕业论文范文,与基于结构挖掘的排序算法综述相关论文范文检索,包括关于算法及网络安全及。