Dijkstra最短路径算法的优化及其实现_王志和

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

邮局订阅号:82-946360元/年技术创新

软件时空

《PLC技术应用200例》

您的论文得到两院院士关注

随着计算机网络技术和地理信息科学的发展,最短路径问题无论是在交通运输,还是在城市规划、

物流管理、网络通讯等方面,它都发挥了重要的作用。因此,对它的研究不但具有重要的理论价值,而且具有重要的应用价值。

研究最短路径问题通常将它们抽象为图论意义下的网络问题,问题的核心就变成了网络图中的最短路径问题。此时的最短路径不单指“纯距离”意义上的最短路径,它可以是“经济距离”意义上的最短路径,“

时间”意义上的最短路径,“网络”意义上的最短路径。关于最短路径问题,目前所公认的最好的求解方法,是由F.W.Dijkstra提出的标号法,即Dijkstra算法。

1Dijkstra算法

Dijkstra算法是求最短路径的最基本和使用最广泛的算法。在求从网络中的某一节点(源点)到其余各节点的最短路径时,经典Dijkstra算法将网络中的节点分成三部分:未标记节点、临时标记节点和最短路径节点(永久标记节点)。算法开始时

源点初始化为最短路径节点,其余为未标记节点,算法执行过程中,每次从最短路径节点往相邻节点扩展,非最短路径节点的相邻节点修改为临时标记节点,判断权值是否更新后,在所有临时标记节点中提取权值最小的节点,修改为最短路径节点后作为下一次的扩展源,再重复前面的步骤,当所有节点都做过扩展源后算法结束。具体算法描述如下:

设在一非负权简单连通无向图G=<V,E,W>(V:顶点集,E:边集,W:边权值)中,d为图G的邻接矩阵,求源点P0到其余所有节点Pi的最短路径长度。

⑴将V分为未标记节点子集N、

临时最短路径节点子集T和最短路径节点子集S,每个节点上的路径权值为D(i)。初始化:S={P0},T=¢

,N=V-S,D(0)=0,D(i)=∞;⑵更新:将新加入S集合的节点Ps作为扩展源,计算从扩展源到相邻节点的路径值。若该值比节点上的原值小,则用该值替换原值,否则保持原值不变,即D(i)=min{D(s)+d[s][i],D(i)},并将这些相邻节点之中的未标记节点归为临时标记节点,即

T=T∪Pi,N=N-Pi;

⑶选择:在T中选择具有最小路径值D(s)的节点Ps,归入集合S中,即S=S∪Ps,T=T-Ps;

⑷迭代判断:若T=¢

算法结束,否则转⑵。该算法总共需要迭代n-1次,每次迭代都新加一个节点到临时节点集合中,由于第i次迭代时不在临时节点集合中的节点数为n-i,即第i次迭代需对n-i个节点进行处理,因此其所

需的处理数为,对n个节点网络的时间复杂

度是O(n2)。

2Dijkstra算法的优化途径及常用优

化算法

在按标记法实现Dijkstra算法的过程中,核心步骤就是从未标记的点中选择一个权值最小的弧段。这是一个循环比较的过程,如果不采用任何措施,未标记点将以无序的形式存放在一个链表或数组中。那么要选择一个权值最小的弧段就必须把所有的点都扫描一遍,在大数据量的情况下,这无疑是一个制约计算速度的瓶颈。解决办法就是将临时标记结点按照最短路径排序,每个搜索过程不必全部遍历或者较少地遍历临时标记点,可大大提高算法的执行效率。

这是目前各种基于Dijkstra算法的各种优化算法的主要途径。另外,图的结构(网络的拓扑关系)如果用一个矩阵来表示这个网络,不但所需空间巨大,而且效率会很低。下面将就如何用一个简洁高效的结构表示网的拓扑关系以及快速搜索技术的实现进行讨论。

Dijkstra最短路径算法的优化及其实现

TheoptimizationandImplementationoftheShortestPathDijkstraAlgorithm

(1.湖南人文科技学院;2.长沙学院计算机教学中心)王志和

凌云

WANGZHIHELINGYUN

摘要:最短路径分析在地理信息系统、计算机网络路由等方面发挥了重要的作用,对其进行优化很有必要。本文分析了传统的最短路径算法(即Dijkstra算法)的优化途径及现有的优化算法,然后在Dijkstra算法的基础上,采用配对堆结构来实现路径计算过程中优先级队列的一系列操作,经理论分析与实验测试结果对比,可以大大提高该算法的效率和性能。关键词:最短路径;Dijkstra算法;优化;配对堆

中图分类号:TP301.6

文献标识码:AAbstract:Theshortestpathanalysisinaspectandsoongeographicinformationsystem,computernetworkroutehasplayedthevital

role,carriesontheoptimizationtoittohavethenecessityverymuch.Thispaperanalysestheoptimalwayandthenowavailableoptimizationalgorithmthetraditionalshortestpathalgorithm(i.e.Dijkstraalgorithm),andachievesaseriesofoperationalpriorityqueueinpathcomputationprocessusingPairedheapbasedonDijkstraalgorithm,bythattheoreticalanalysisandtheexperimenttestresultcontrast,efficiencyandfunctionbeingabletoimprovethatalgorithmgreatly.Keywords:theshortestpath,Dijkstraalgorithm,optimization,paringheap

文章编号:1008-0570(2007)11-3-0275-03

王志和:讲师软件设计师硕士湖南省自然科学基金(06JJ513)湖南省教育厅科研项目(06C441)275-

相关文档
最新文档