毕业设计基于DIJKSTRA的最短路径搜索算法的优化及应用论文.doc
《毕业设计基于DIJKSTRA的最短路径搜索算法的优化及应用论文.doc》由会员分享,可在线阅读,更多相关《毕业设计基于DIJKSTRA的最短路径搜索算法的优化及应用论文.doc(49页珍藏版)》请在三一办公上搜索。
1、 毕业设计(论文)题 目 基于Dijkstra的最短路径搜索算法的优化及应用 姓 名 学 号 专业班级 指导教师 分 院 完成日期 摘 要最短路径分析是GIS地理网络分析功能中的一个关键问题。Dijkstra算法是计算最短路径的经典算法,是许多工程解决最短路径问题的理论基础。传统Dijkstra算法在求解节点间最短路径时,对已标识节点以外的大量节点进行了计算,从而影响了算法的速度。本文在对传统Dijkstra算法分析的基础上,对其进行了优化,优化算法只对最短路径上节点的邻居做了处理,而不涉及到其他节点。因此,在优化算法中计算的节点数大幅减少,提高了算法的速度。本文通过实验和实际应用对改进后的算
2、法进行了验证。关键词:最短路径;Dijkstra算法;优化AbstractShortest path analysis is the key problem of network analyses, Dijkstra algorithm is a classic arithmetic for the shortest path. It is the academic foundation that many engineerings were solved in the shortest path issue. When a shortest path between nodes is sea
3、rched with Dijkstra algorithm,a lot of nodes away from lagged nodes are involved,so that the efficiency of Dijkstra algorithm is lowAn optimization algorithm is presented in this paper based on analysis of Dijkstra algorithmOnly these nodes that the neighbor of nodes in the shortest path are process
4、ed,and other nodes are not processed. Therefore,the number of processed nodes is largely reduced in the optimization algorithm,and efficiency of the optimization algorithm is improvedThe improved algorithm is proved to be correct and efficient by experiments and practical application.Keywords: the s
5、hortest path;Dijkstra algorithm;optimization目 录摘 要IAbstractII第1章概述11.1国内外最短路径算法概况11.1.1国内外最短路径研究的主流与方向11.1.2国内外主流算法及其简要展开21.1.2.1A*算法321.1.2.2遗传算法421.1.2.3Dijkstra算法31.1.3经典Dijkstra算法存在的问题41.2研究的意义41.3本文研究目标和内容4第2章Dijkstra经典算法研究62.1Dijkstra算法的原理及应用62.1.1Dijkstra算法原理62.1.2Dijkstra算法应用72.1.3Dijkstra算法
6、的优缺点102.2以Dijkstra算法为基础算法进行优化的原因122.2.1Dijkstra算法与其他主流算法的比较5122.2.1.1搜索速度比较122.2.1.2搜索成功率比较13第3章Dijkstra优化算法研究143.1多种Dijkstra优化算法的研究6143.1.1第一类优化算法减小算法中成功搜索的搜索范围143.1.2第二类优化算法改进算法的存储结构143.2本文对Dijkstra优化算法的研究153.2.1优化算法的目标153.2.2优化算法思路153.2.3优化算法描述163.2.4优化算法的特点203.3优化Dijkstra算法与原Dijkstra经典算法比较20第4章优
7、化Dijkstra算法的应用214.1优化算法在上海市物流中的实现214.1.1地图说明214.1.2属性数据库设计224.1.3算法实现234.1.4算法优化前后对比25第5章总结与展望265.1全文总结265.2展望26参考文献27附 录29致 谢35第1章 概述1.1 国内外最短路径算法概况1.1.1 国内外最短路径研究的主流与方向最短路径这一重要问题早在20世纪初就已经得到人们的高度重视,当时也有许多科学家研究这一重要问题的求解方法。但直到1959年荷兰计算机科学家Edsger Wybe Dijkstra (迪杰斯特拉)才给出这一问题求解的基本思想,并给出了算法。当时的Dijkstra
8、提出的这一算法主要解决的问题是从固定的一个点到其他各点的最短路径问题。后来这个算法就成了众所周知的Dijkstra算法,也成为了一代经典。1 现今比较流行的最短路径规划算法主要有以下三类:第一类是基于图论理论的算法;如Dijkstra及其改进算法,Floyd算法等;第二类则是基于传统人工智能理论的算法,如A*机器改进算法,深度有限、宽度有限算法等;第三类则是基于智能控制技术的算法,如人工神经网络算法、遗传算法等。特别是近10年来,智能控制技术在路径规划问题中得到广泛的应用,人们的研究兴趣也逐渐从对前两类算法的改进转到了对第三类算法的进一步研究中。当前对于最短路径的相关研究主要包含两方面。第一方
9、面为最短路径问题(完全信息情况下)。在这种确定情况下最短路径问题的研究中,Bellman(1958)、Dijkstra(1959)和Dreyfus(1969)已发展出许多高效算法。这些算法已成为确定情况下的经典算法。在不确定的情况下最短路径问题的研究包含以下几个方面:Frank(1969)和Mirchandani(1976)研究了路段长度随机变化的且非时间独立的情况下的最短路径问题;Loui(1983)、Muethy和Sarkar(1996)考虑不同的费用函数研究最短路径问题,他们的结论是当目标是期望最短路径时问题转化为将边的权重用期望值表示的最短路径问题;Hall(1986)、LiPing
10、Fu和L.R.Rilett(1998)、Elise和Hani(2000)研究了路段长度随机变化且时间独立情况下的最短路径问题;Tomas和Rajeev研究了路段长度为区间范围的最短路径问题。21.1.2 国内外主流算法及其简要展开1.1.2.1 A*算法3A*(A-Star)算法是一种静态路网中求解最短路最有效的方法。公式表示为:f(n)=g(n)+h(n)其中f(n) 是节点n从初始点到目标点的估价函数,g(n) 是在状态空间中从初始节点到n节点的实际代价,h(n)是从n到目标节点最佳路径的估计代价。保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:估价值h(n)实际值, 搜
11、索的点数少,搜索范围小,效率高,但不能保证得到最优解。估价值与实际值越接近,估价函数取得就越好。A*算法是人工智能中一种典型的启发式搜索算法,算法的创新之处在于选择了下一个被探索的结点时引入了已知的路网信息和目标点信息,对当前点与终点的距离进行评估,作为选择下一路径结点的依据。通用的A*算法可采用四方向,八方向,对于矢量路网则可采用遍历相连路径法进行路径探索。在城镇地价定级估价中,不考虑路网,可采用栅格八方向法。通过A*算法可以寻找任何一个因素因子与其它各点之间的最短路径。它不用遍历整个搜索空间,而是根据所选择的启发式函数朝着最有希望的方向前进。它的搜索速度虽然较快,理论上也能找到最优解,但在
12、实际应用过程中往往由于启发式函数选取不当而经常找不到最短路径,搜索的成功率并不是很高。1.1.2.2 遗传算法4遗传算法(Genetic Algorithms,简称GA)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。它的思想源于生物遗传学和适者生存的自然规律,是具有“生存+检测”的迭代过程的搜索算法。GA把每一个可能的解编码为一个向量,称为一个染色体,向量的每一个元素称为基因。所有染色体组成群体。并按预定的目标函数对每个染色体进行评价,根据其结果给出一个适应度的值。算法开始时先随机地产生一些染色体,计算其适应度,根据适应度对诸染色体进行选择、交换、变异等遗传操作,剔除适应度低的染色
13、体,留下适应度高的染色体。由于新群体的成员是上一代群体的优秀者,因而在总体上优于上一代。GA就这样反复迭代,直至满足某种预定的优化指标。上述GA的工作过程可用图1.1简要描述。Y问题的初始(侯选)解种群满足预定指标编码为染色体(向量)种群P(t)计算各染色体适应度通过遗传运算存优去劣种群P(t+1)复制交换变异种群P(t)种群P(t+1)解码染色体问题解答空间N图 1.1 遗传算法工作原理示意图1.1.2.3 Dijkstra算法Dijkstra算法的基本思想是,设置一个顶点的集合S,从源点S到集合中的各顶点的最终最短路径的权值均已经确定。算法反复选择具有最短路径估计的顶点 iVS,并将i加入
14、S中,对i的所有出边进行松弛(本文第2章节将对经典Dijkstra算法做详细研究)。1.1.3 经典Dijkstra算法存在的问题(1)原始Dijkstra算法在存储图形数据和运算时,基于网络的权矩阵,需要根据其节点与距离之间的关系,形成关联矩阵、邻接矩阵与距离矩阵,需要定义NN的数组来存储数据,其中N为网络的节点数,当网络的节点数较大时,将占用大量的计算机内存。(2)原始Dijkstra算法在运行时一般将网络节点分为未标记节点、临时标记节点和永久标记节点3种类型。网络中所有节点首先初始化为未标记节点,在搜索过程中和最短路径节点相连通的节点为临时标记节点,每一次循环都是从临时标记节点中搜索距离
15、原点路径长度最短的节点作为永久标记节点,直至找到目标节点或者所有节点都成为永久标记节点才结束算法。根据算法的描述可知对临时标记节点的遍历成为Dijkstra算法的瓶颈,影响了算法的执行效率。1.2 研究的意义随着社会的不断进步,最短路径算法在人们的日常生活显得越来越重要。每天开车去上班,应该选择哪条公路才能使自己到公司的费用最低、时间最少,这是最短路径的问题;在网络路由中,怎样选择最优的路由路径,这也是最短路径问题;在交通旅游、城市规划以及电网架设中怎样使其耗费的资金最少,这还是最短路径问题。由此可见对最短路径问题的研究是非常有意义的。最短路径算法是计算机科学与地理信息科学等领域研究的热点,其
16、算法有很多种,其中传统的Dijkstra 算法一般用于计算一个源节点到所有其他节点的最小代价路径,并且能够适应网络拓扑的变化,性能稳定,因而可以在运输路线规划等领域都应用广泛。1.3 本文研究目标和内容Dijkstra算法的空间复杂度O(N2),采用邻接矩阵存储网络拓扑结构,需要(NN)的存储空间,查询速率较快,在数秒内即可完成查询,所用时间在用户的容忍范围内。但Dijkstra算法随着节点数N的增大,其计算效率和存储效率越低。所以针对地理信息中的海量信息需要寻求算法优化,对Dijkstra算法优化的思路主要有:缩小节点的搜索范围,只对最短路径上节点的邻居作处理,而不涉及相离节点的其他节点。算
17、法优化思想:首先从与起点s直接相连的相邻节点几个NBk中选择距离最小的节点k作为转接点,同时将k划归为表示集合S(初始时,S为s)。然后对k另据集合与表示集合的差集,(NBk - S)中节点j的wj值进行更新,从标识集合S中所有节点的邻居集合的并集与标识集合S的差集(NBi - S,iS)中选择一个wk值最小的节点作为下一个转接点,并划归为到标识集合S中。重复上述过程,直到所有的节点都被标识过,即S=N,算法结束。由于现实中只需要查询起点和终点间的最短路径,而不需要求出起点到多有节点的最短路径,所以根据需要只要找到起点到终点的最短距离即可退出循环处理过程,缩短查询时间。Dijkstra算法的核
18、心步骤,即从具有临时标号的节点中搜索与起点距离最小的节点,如果具有临时标号的节点无序地存放在数组中,则每次迭代都要把所有未获得永久标号的都扫描一遍,所以将具有临时标号的节点按与起点距离大小进行排序则可以节省每次扫描的时间,提高查询速率。改进数据的组织结构,用类或结构体来组织节点、线路并建立拓扑关系可以提高数据搜索效率。第2章 Dijkstra经典算法研究2.1 Dijkstra算法的原理及应用2.1.1 Dijkstra算法原理Dijkstra算法是1959年由EWDijkstra提出的图论中求最短路径的一个著名的算法,使用其可以求得图中一点到其他各顶点的最短路径。原始的Dijkstra算法将
19、网络结点分成3部分:未标记结点、临时标记结点和永久标记结点。网络中所有结点首先初始化为未标记结点,在搜索过程中和最短路径中的结点相连通的结点为临时标记结点,每次循环都是从临时标记结点中搜索距源点路径长度最短的结点作为永久标记结点,直至找到目标结点或者所有的结点都成为永久标记结点来结束算法。假设每个点都有一对标号 (wj, pj),其中wj 是从起源点s到点j的最短路径的长度 (从顶点到其本身的最短路径是零路(没有弧的路),其长度等于零);pj 则是从s到j的最短路径中j点的前一点。求解从起源点s到点j的最短路径算法的基本过程如下:1)初始化。起源点设置为: ws=0, ps为空; 所有其他点:
20、 wi=, pi=?;标记起源点s,记k=s,其他所有点设为未标记的。2)检验从所有已标记的点k 到其直接连接的未标记的点j的距离,并设置:wj=min wj, wk+dkj 式中,dkj 是从点k到j的直接连接距离。3)选取下一个点。从所有未标记的结点中,选取wj中最小的一个i:wi=min wj,(所有未标记的点j),点i就被选为最短路径中的一点,并设为已标记的。4)找到点i的前一点。从已标记的点中找到直接连接到点i的点j*,作为前一点,设置:i=j*。5)标记点i。如果所有点已标记,则算法完全推出,否则,记k=i,转到2)再继续。Dijkstra算法最短路径应用演示图 2.1 Dijks
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 DIJKSTRA 路径 搜索 算法 优化 应用 论文
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2396843.html