基于Dijkstra算法的最短路径搜索仿真毕业设计说明书.doc
《基于Dijkstra算法的最短路径搜索仿真毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《基于Dijkstra算法的最短路径搜索仿真毕业设计说明书.doc(33页珍藏版)》请在三一办公上搜索。
1、毕业设计说明书基于Dijkstra算法的最短路径搜索仿真学 院: 专 业: 学生姓名: 学 号: 指导教师: 2012 年 6 月摘 要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 no
3、des is searched 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 a
4、re processed,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 improvedKeywords: the shortest path,Dijkstra algorithm,Simulation目 录摘 要IAbstractII目 录III第一章 引言41.1 课题的目的意义41.2 Dijk
5、stra算法的资料调研分析51.3 国内外主流算法及其简要展开61.4 设计方案的可行性分析和预期目标91.5 本文主要研究内容10第二章Dijkstra经典算法的研究112.1 Dijkstra算法原理112.2 Dijkstra算法的仿真实现12第三章 软件开发、设计工具简介163.1 C#语言开发工具163.2 ACCESS数据库设计工具19第四章 系统设计224.1 图形界面224.2 功能实现244.3 数据库设计254.4 系统测试28总结30参考文献31致 谢32第一章 引言1.1 课题的目的意义最短路径问题是图论、网络分析研究的重要课题,它被广泛用于网络优化,交通运输,物流配送
6、,电子导航等领域。最短路径问题不单单是“纯距离”的最短路径,也可以被扩展来衡量其他的意义,如经济成本,时间和吞吐量。例如,城市交通,旅客选择旅游的最佳路径,最可靠的路径运输网络,的最大容量,最少的成本问题,和统筹方法关的键路径问题,全部可以转化为最短路径问题。最短路径问题要解决的就是加权图G=两给定定点之间的最短路径。求单源点最短路径的一个著名算法是Dijkstra算法。最短路径要解决的问题是一个加权图G =到两个给出的定点之间的最短路径。寻求一个单源最短路径算法就是众所周知的Dijkstra算法。Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算任意节点到其它所有节点的最短
7、路径。以最初始的点为中心,向外层拓展,直到拓展到终点为止,是其最重要的特点。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN, CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权边。Dijkstra算法(迪杰斯特拉)算法是一个典型的单源最短路径算法,用于计算节点到所有其他节点的最短路径。其主要特点是起点为中心向外扩张,直到终点到为止的扩展。 Dijkstra算法的是非常典型的最短路径算法,在很多专业中都是被作
8、为基础的内容来进行详细的介绍,如数据结构,图论,运筹学等许多专业课程,是非常代表。 Dijkstra算法的表达方式一般有两种方式,一个为永久的和临时的标号方法,另一个用OPEN,CLOSE表方法,这里是永久和临时标号的方式。请注意,该算法要求,负权边不准许存在图中。1.2 Dijkstra算法的资料调研分析最短路径问题一直是计算机科学、运筹学、地理信息科学等学科的一个研究四是采用拓扑层次编码路径视图,对最短路径进行部分实例化编码存储;五是采用并行算法,为并行计算服务。最短路径问题一直是计算机科学,运筹学,地理信息科学与其他学科的研究热点。大量的国内外专家和学者对这一问题进行深入研究。经典图论和
9、计算机数据结构和算法的不断发展,有效地结合起来,使新的最短路径算法不断涌现。在空间的复杂性,时间复杂度和易于实施和应用领域,各有独特的地方。目前的研究重点,一为实际应用网络的特征优化运行结构。尽可能以统一的时间复杂度的基础上的提高算法的工作效率;二是限制网络的特征,如要求网络边缘具有证书权值,这样的方便使用基数据结构设计算法的运行结构;三是使用有损的算法,如限制搜索范围,以限制搜索的方向和限制的几何图层次第归序搜索;四为使用拓扑层次编码路径视图,一些实例化编码存储用来对最短路径进行实施;五是利用并行算法,并行计算服务。在提高时间效率方面有较好的应用性。其中图增长论是TQQ算法的根本,用两个FI
10、FO队列直线了一个双端队列结构来支持搜索过程,较适合于计算单源的点到另外的所有点的之间的最短距离。后两种算法则是基于Dijkstra算法,采用桶结构明显提高了永久标记点的搜索速度。现在公认的最好的方法解决最短路径问题,是由E.W.Dijkstra,1959年提出的,也就是俗称的Dijkstra算法,他的名字命名的标记方法。该算法是基于这样一种想法,一种解释的几十种不同的优化算法更好的算法TQQ(graph growth with two queues),DKA(the Dijkstraalgorithm implemented with approximate buckets),DKD(the
11、 Dijkstras algorithm implemented with double buckets),排序的优化算法,前面的三种算法中,空间储存的问题是非常重要的,牺牲适当的时间效率,来节省空间,排序优化算法放在了一个重要的位置上,可以更好地提高时间效率。其中TQQ算法依靠的是图增长理论,直线了两个FIFO队列与一个双端队列结构来支持搜索过程,更适合于计算单源点到所有其他点的最短距离。后两种算法在Dijkstra算法的基础上,使用桶结构,大大提高了对永久标记点的搜索速度。1.3国内外主流算法及其简要展开1.3.1A*算法 A*(A-Star)算法是最短路最有效的方式来解决一个静态的路网。
12、计算公式为:F(N)= G(N)+H(N)F(N)是节点n从初始点到目标点的估价函数,G(n)是实际成本从最初的节点到n个节点,在状态空间里,H(N)是从n到目标节点的路径的估计成本。保证找到最短路径(最优解)的条件下,关键是要选择的评估函数H(N):h的估计值(N)= n到目标节点的距离实际价值,在这种情况下,搜索点多,搜索范围变大,就会得到更低得效率。但可以获得最佳的解决方案。如果估计值大于实际值,搜索点少,搜索范围小,效率高,但不能保证最佳的解决方案。估计值和实际值接近,就能获得更好的评估函数。A *算法是一个典型的人工智能启发式搜索算法,该算法的创新,是选择下一个节点,探索引进一个已知
13、的道路网络和目标点和当前点的距离年底评估选择下一个路径节点的基础上。一般的A *算法可以用四个方向,八个方向,矢量网络连接,可以用来遍历路径方法的路径探讨。城镇土地定级和评价,而不考虑道路网络,可以是一个网格八个方向法国。 A *算法可以找到任何一个因素的因素与其他各点之间的最短路径。它不遍历整个搜索空间,但根据选定的启发式函数对最有前途的方向前进。虽然它的搜索速度更快,理论上能够找到最佳的解决方案,但在实际应用过程中,往往由于选择不当启发式功能,往往不能找到最短路径,搜索成功率不是很高。1.3.2遗传算法 是用来解决优化问题的搜索算法,是一种进化算法。自然进化的生物学现象,包括基因突变,自然
14、选择和杂交都被进化算法用来参考。遗传算法通常作为计算机模拟实施。为优化问题,一些数量的候选解(称为个体)抽象(所谓染色体)的种群进化为一个更好的解。传统的二进制表示(即0和1的字符串),但也可以使用其他方法来陈述。进化从完全随机个体的种群开始,代代发生。在每一代,种群的适应度被评估,通过自然选择和突变产生新的生命种群,随机从目前的种群选择多个个体(根据其自身的适应度),这个种群在第一次迭代算法中,生成为当前的种群。在遗传算法,优化问题的解被称为个人,它代表一个变量序列,称为染色体或基因的字符串。染色体一般被表达为一个简单的字符串或数字字符串,但也适用于于特殊问题的表达方法,这个过程称为编码。首
15、先,算法随机生成一定数量的个体,有时操作者可以在随机生成的过程中进行干预,以提高初始种群的质量。每一个体在每一代,都被评估并通过适应度函数的计算来得到一个适应度的数值。个体按照适应排度序,在前面的通常是适应度高的。 “高”是指对初始群的低适应度来讲的。 下一步是产生下一代的个体组成种群。这个过程是通过选择和繁殖,包括复制,包括交配(crossover,算法在该领域的研究,就是我们所说的交叉操作)和突变(mutation)。选择是根据的新的个体的适应程度来执行,但在同一时间并不意味着彻底的用适应度的高低来作为标准参考,因为只是选择适应度高的个体将可能导致,算法快速收敛到局部最优解最佳的解决方案但
16、不是全局的最有解决方案,我们称之为早熟。作为一种妥协,根据遗传算法的原则基础上:适应度越高,被选中的机会越高,适应低被选中的机会越低。通过对初始数据的选择,可组成一个相对最优的群体。然后,被选择后的个体进入交配过程。遗传算法有交配的概率(也称为交叉概率),通常的范围是0.6至1,这个交配的概率反映了两个选定的个体交配的概率。例如,交配概率为0.8,80“夫妇”可以生育后代。通过交配,每两个人产生两个新个体,而原来的“老”的个体将会被替代。交配父母的染色体交换,导致了两个新的染色体产生,第一个个体前一半是父亲的染色体,母亲的则是后半段,第二个人则刚好相反。这里位置被称为是随机生成的交叉点,所指的
17、半段并不是真正意义以上的一半。交叉点可以是任何染色体上的位置。下一步是突变基因突变产生新的“孩子”个体。一般遗传算法有一个固定的突变常数(又称突变率)一般为0.1或更小,这代表了基因突变的概率。根据这个概率,新个体的染色体随机突变通常是改变一个字节(0到1,或0的变化)的染色体。通过(选择,交叉和变异)这一系列的过程之后,新一代的个体,从最初的一代是不同的,而且一代又一代的朝着提高适应度的方向发展,最好的人总是更要被选择产生下一代,适应度低的会逐渐被淘汰。这个过程不断重复:每个个体都被评估,计算每一个个体的适应度,两个个体交配和突变,产生第三代。一遍又一遍,直到满足终止条件。一般的终止条件有以
18、下几种:进化次数限制;计算消耗的资源约束(如计算时间,计算所占用的内存);个体满足的最优值的条件,即已经找到最佳值;适应已经达到饱和,继续进化不会有适应度更好的个体;人为干预;超过两个或两个以上的组合。图1.3.1 遗传算法的工作原理示意图1.3.3Dijkstra算法Dijkstra算法的基本思路是:设置一个顶点集合S,从一个源点S到集合中定点最终最短路径的权重已经确定。算法反复选择最短路径估计顶点iVS,将I并入S,I所有的出边松弛原始的Dijkstra算法在图形数据存储和节点之间的关系和距离的计算时,基于网络的权重矩阵,形成关联矩阵,邻接矩阵和距离矩阵,需要定义nn数组进行储存数据,其中
19、N为网络节点,网络节点太多时,将占用大量的计算机内存。(2)原始的Dijkstra算法的运行时一般把网络节点分为没有被标记节点,临时标记节点,永久标记节点。网络中的所有节点初始化为未标记的节点,在搜索的过程中与最短路径的节点连接的节点为临时标记的节点,每循环从临时标记节点的路径长度最短的节点的节作为永久性标志的节点,直到找到目标节点或所有节点搜索算法结束前都将被永久标记节点。影响了该算法的执行效率是根据算法的描述,阅历全部临时标记节点是Dijkstra算法的瓶颈。1.4设计方案的可行性分析和预期目标预期目标:1. 广泛收集相关资料,研究经典Dijkstra算法的主要思想及其实现2对目前应用于D
20、ijkstra算法的数据结构和搜索技术进行学习研究3. 采用图的邻接矩阵或邻接表实现最短路径问题中图的存储4采用Dijkstra算法求从某个源点到其余各顶点的最短路径5将上述功能作为类的成员函数实现,编写主函数测试上述功能6. 以C#作为开发工具实现改进最短路径算法的代码编制,完成算法的实现 可行性分析:1.技术可行性个人能力方面:有一定的专业知识,技术能力,了解行业背景,有相应的资料个人环境方面:又上网条件,有充足的相关资料和书籍,可以获得充分的研究资源软件方面:C#,它具有简单,面向过程,稳定,与平台无关,解释型,多线程,动态等特点,因此将其作为首选工具。由于所需要的硬件配置要求不高,对于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Dijkstra算法的最短路径搜索仿真 毕业设计说明书 基于 Dijkstra 算法 路径 搜索 仿真 毕业设计 说明书
链接地址:https://www.31ppt.com/p-3938310.html