基于Dijkstra算法的最短路径问题高效实现

来源 :中国地质大学 中国地质大学(武汉) | 被引量 : 0次 | 上传用户:lyhyes
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
目前在GIS领域,网络分析作为其中最重要的功能之一,在电子导航、交通旅游、城市规划以及电力、通讯等各种管网,管线的布局设计中发挥了重要作用。而网络分析中最基本最重要的问题就是最短路径搜索问题。目前对最短路径搜索问题的研究和应用较多,其中最短路径搜索算法的效率问题是普遍关注和在实际应用中迫切需要解决的问题。本文通过对基于Dijkstra最短路径搜索算法的优化途径的分析,从数据存储结构和算法实现等方面同时对此问题进行了优化,提出了一个高效率的解决方案。 本文首先就目前GIS系统国内外的研究现状、现代GIS软件存在的问题以及未来GIS系统的发展方向进行了探讨,其次从最短路径算法的发展现状、算法分析及算法实现三个方面分别进行了研究。在最短路径的算法研究综述中,文中从最短路径的问题类型、网络特征、实现技术等几方面进行了Dijkstra算法与其他几种较为常见的最短路径算法的比较,从中明确了该算法在GIS领域最为适用,并对目前一些文献中提出的优化方案进行了比较。 在最短路径的算法分析研究中,主要阐述了“面向网络海量空间信息的大型GIS”的数据基础,给出了其中部分地理网络目标的详细数据定义。并详细描述了地理网络对象模型图。其次,对于经典Djikstra算法步骤进行了较为深入的讨论。项目采用了ESRI为GIS系统提出的Shapefile文件存储结构作为数据存储基础,对该文件结构进行了较为详细的分析。在最短路径的算法分析基础上,对最短路径算法的优化及实现过程进行了重点研究。首先就大型GIS系统的地理网络特征而言,对比邻接矩阵,十字链表等存储结构,确定了使用邻接表的结构来存储网络是最为高效的。其次在计算结点的邻接点时,提出了一种方便的解决方案,在内存中开辟数组,将数组的下标与某结点点号相对应,可以快速计算出该结点的出度,从而通过弧段起点数组和弧段终点数组的对应关系可以找到该结点的邻接点。最后,在对Dijkstra算法的实现过程中,对其中的一个关键步骤——搜索最小权值的顶点进行了优化,针对快速排序算法的不稳定性,提出了改进的搜索方案,使用折半插入排序函数对最短路径值数组重新进行地址排序,以减少查找次数,提高排序的效率。可使排序的平均时间复杂度从O(n2)降低到O(n)。通过对优化算法的评价,表明了本文提出的优化算法是高效率的。 在理论研究的基础上,编程实现了该算法。通过编程生成随机数据的实验方法对该优化算法进行了验证,结果显示在30000个结点,36万条弧段的较大数据量下,该算法能够迅速的计算完成,取得了较好的效果。
其他文献
如今,随着人们生活水平的不断提高,人们的审美水平也在不断提高,所以也就导致人们对装饰的要求也越来越高.在实际的装饰过程中,由于一些因素会对装饰工程造成一定的经济损失,
遥操作系统可以拓展人类的感知和操作能力,代替人类在危险、恶劣以及极限环境下的完成工作任务,目前已经应用到现实生活中的各个领域,尤其是在航天系统,应用更是广泛。而力觉
钢包是冶金工业的重要设备,其寿命的长短直接影响钢铁企业的经济效益。钢包热机械应力的计算及其影响规律的分析对于钢包设计和使用具有重要的意义,而钢包寿命的预测可以及时
期刊
随着我国社会生产的发展,水泥土在市政道路、水利及护坡等防渗工程中得到广泛使用,且工程量巨大。在这些工程中使用水泥土一方面是因为水泥土属于半刚性材料,其本身具有刚性防渗
目前,油气勘探要想有新的进展,就得采用先进的方法和技术来提高地震勘探的精度和钻探的成功率。变速成图正是在这一新的勘探要求下应运而生的一种提高地震构造成图精度的行之有
期刊
炼铁是钢铁生产的第一个重要环节,高炉布料溜槽是无料钟炉顶高炉的布料装置,也是高炉中的一个重要部件。本文针对目前高炉布料溜槽因磨损与烧损而导致其使用寿命达不到用户要
论文以地质为主体,综合应用三维地震、钻井取心及测井资料,对吉林南山湾油田下白垩统葡萄花油层开展了沉积相、构造、断裂系统、储层横向预测及油气分布规律的综合研究。 利
双坨子气藏在吉林油区具有较好的开发前景,试井是气藏开发认识和气井生产管理的必要手段。本文通过解释分析气井现场测试资料,研究适用于本区的气井试井解释方法,提高了试井解释