- 9
- 0
- 约4.29千字
- 约 7页
- 2016-09-10 发布于北京
- 举报
Dijkstra算法优化及其在GIS中的应用.doc
Dijkstra算法优化及其在GIS中的应用
摘 要:本文在详细介绍经典Dijkstra算法和对算法性能深入分析的基础上,发现制约经典算法的瓶颈是问题的规模,提出从减少搜索计算顶点数量入手,对经典算法进行改进。详细分析了算法的设计思想并给出了设计步骤,并通过在ArcGis平台进行二次开发验证了算法的正确性和性能。
关键字:Dijkstra算法;最短路径;GIS
中图分类号:TP301.6
Dijkstra算法是一种经典的求最短路径的算法。所谓最短路径问题是指:从带权图的某一顶点出发,找出一条通往另一顶点的最短路径。最短路径问题是GIS应用中研究的一个重要内容,在事故抢修、交通指挥、应急管理、GPS导航等应用中都是必要的功能,所以最短路径分析功能一般会作为基本功能集成到GIS平台中,如ARCGIS,SuperMap。多数系统解决最短路径问题采用Dijkstra算法为理论基础,它非常适合在带权有向图中求解单源单目的最短路径问题。
1 经典Dijkstra算法
1.1 算法思想
Dijkstra算法是典型最短路算法,用于计算一个顶点到其他所有顶点的最短路径。其基本思想是,逐步产生最短路径。首先求出从某一顶点出发到其他顶点长度最短的一条路径,然后参照它求出长度次短的路径,依次类推,按路径长度的递增次序,直到计算出该顶点到其他所有顶点的最短路径。
为了实现该算法,设带权图G=(V,E),V为图中顶点的集合,E为边或者弧的集合。设集合S存放已经求出的最短路径的顶点,设集合T为除了S以外的其他顶点,引入辅助数组dist[],它的每一个分量dist[i]表示当前找到的从出发点到顶点i的最短路径长度。
算法的具体步骤:
(1)初始化:S={V0};T={V-S};Dist[j]=Edge[0][j];j=1,2,…..n-1,n为图中顶点的个数;
(2)求出最短路径长度:dist[k]=min{dist[i]},i∈V-S;S=S∪{k};
(3)修改:dist[i]=min{dist[i],dist[k]+EDedge[k][i]}对于每一个i∈V-S;
(4)判断:若S=V,则算法结束,否则转到(2);
初始时,S中仅含有初始顶点V0,每次从V-S中取出具有最短特殊路长度的顶点,将其添加到S中,同时对数组dist作必要的修改。一旦S包含了所有V中顶点,dist就记录了从源到所有其它顶点之间的最短路径长度。
1.2 算法分析
实现经典的Dijkstra算法需要两个并列的for循环。一个循环用来实现辅助数组的初始化工作,时间复杂度为O(n),第二个for循环是一个二重循环,实现最短路径求解的功能,因为图中所有顶点都要做计算,每个顶点的计算又要对集合S内的顶点进行检测,对集合V-S中的顶点进行修改,所以时间复杂度为O(n2)。算法总的时间复杂度为O(n2),复杂度比较高。
2 Dijkstra算法改进
通过Dijkstra经典算法思想可知,计算从u到v的最短路径时,也计算了u到S中所有顶点的最短路径,但是,S中的某些顶点可能与最终最短路径中的顶点无关,该算法在进行最短路径搜索过程中会涉及到图中所有的顶点,那么图中S的大小直接影响着算法的速度。这直接影响了算法的效率,因为由时间复杂度可看出顶点数量越多所用时间就越长。优化该算法势在必行。
2.1 改进策略
改进的策略用一句话描述就是顶点覆盖,分段进行。通过前面的分析可知,如果能减少算法中集合S中顶点的个数,会减少算法的运行时间。在这借用希尔提出希尔排序的思想,把有向图中的顶点按照某种策略分成若干个小的集合,形成顶点的全覆盖,这样每个集合的数量就比原来少了,但是把他们合起来顶点及关系总数不变,并且要求不同的集合要有一个连接的关键顶点,关键点的确定是计算最短路径的关键。
顶点覆盖划分的方法可根据具体的计算应用决定,比如可以按照区域划分,按关键点划分,按公路、铁路线划分等等。划分的数量不宜太多也不宜太少,应根据实际情况科学分析。划分数量和每个划分中顶点的数量应事宜,划分数量多,重复执行的次数就有可能多;划分的数量少对算法的改进程度不高。确定连接不同集合的关键点和划分策略有关,有时也要进行事先的运算,关键点应该具有这样的性质,是从一个集合区域到另一个集合区域必经的顶点或者就是终点。最短路径的计算结果是每个小集合划分的结果之和得到的。这样改的好处是,既能减少程序运行时涉及的顶点的数量,如果采用邻接矩阵的方式存储带权图,还能节省存储空间。
2.2 算法设计
下面给出改进算法的方法步骤:
(1)根据划分策略,确定顶点所属不同集合Si,i=1,2,3小于等于划分的个
您可能关注的文档
- 30亿投资兑付无门 华融普银案曝光有限合伙基金市场乱象.doc
- 330kV GIS在高海拔地区的应用探讨.doc
- 330MW机组刷式汽封技术应用研究.doc
- 330MW直接空冷机组防冻措施及低背压经济运行技术研究.doc
- 35CrMo与Q690D的焊接冷裂纹防止工艺.doc
- 35kV单芯电缆故障及措施讨论.doc
- 35kV及以下电力线路的设计.doc
- 35kV变电站中的防雷保护装置优化探析.doc
- 35kV变电站电力调度数据网络的建设和实施研究.doc
- 35KV变电站线路保护跳闸事故现场试验分析.doc
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
最近下载
- 深度解析(2026)《GB 18279.1-2015医疗保健产品灭菌 环氧乙烷 第1部分:医疗器械灭菌过程的开发、确认和常规控制的要求》.pptx VIP
- 医药行业药品生产质量管理手册(标准版).docx VIP
- 与朱元思书复习(2).ppt VIP
- 《高等教育学科专业设置调整优化行动方案(25—27年)》(以下简称《方案》).docx VIP
- 2024年世少赛真题-四年级数学A卷(3).pdf VIP
- 《与朱元思书》复习.pptx VIP
- 空战的艺术ART_OF_THE_KILL--现代空战全面指导.pdf VIP
- 2014江苏安装工程定额.xls VIP
- 一种基于有机硅改性酚醛环氧树脂的涂料及其制备方法.pdf VIP
- 2026年新版自考本科英语2复习题.doc VIP
原创力文档

文档评论(0)