毕业设计使用说明书-基于DIJKSTRA算法的最短路径搜索仿真
- 格式:doc
- 大小:4.22 MB
- 文档页数:33
毕业设计说明书
基于Dijkstra算法的最短路径搜索仿真
学 院: 理学院
专 业: 软件技术
学生姓名:
学 号:
指导教师:
2012 年 6 月 摘要
I 摘 要
GIS地理网络分析功能中的一个最重要问题就是最短路径分析。最短路径问题中最经典的算法便是Dijkstra算法,该理论是很大一部分工程项目解决最短路径问题的基础。传统的Dijkstra算法在求解节点之间的最短路径时,对已经标识的节点以外的很多节点进行了计算,因此算法的速度受到了影响。在传统Dijkstra算法分析的基础上,进行改进和优化,最短路径上节点的邻接点被进行了处理,从而得到了算法优化,但其余的节点不受到波及。因此,在优化算法中计算的节点数量大幅减少,使算法的运算在速度上得到了大量的提升。
关键词:最短路径,Dijkstra算法,仿真 英文摘要
II Abstract
Shortest 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 searched with Dijkstra algorithm,a lot of nodes away from lagged nodes are
involved,so that the efficiency of Dijkstra algorithm is low.An optimization algorithm
is presented in this paper based on analysis of Dijkstra algorithm.Only these nodes that
the neighbor of nodes in the shortest path are 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 improved.
Keywords: the shortest path,Dijkstra algorithm,Simulation
目录
III 目 录
摘 要 ............................................................ I
Abstract .......................................................... II
目 录 .......................................................... III
第一章 引言 ........................................................ 4
1.1 课题的目的意义 ................................................. 4
1.2 Dijkstra算法的资料调研分析 ..................................... 5
1.3 国内外主流算法及其简要展开 ..................................... 6
1.4 设计方案的可行性分析和预期目标 ................................. 9
1.5 本文主要研究内容 .............................................. 10
第二章Dijkstra经典算法的研究 ..................................... 11
2.1 Dijkstra算法原理 .............................................. 11
2.2 Dijkstra算法的仿真实现 ........................................ 12
第三章 软件开发、设计工具简介 ..................................... 16
3.1 C#语言开发工具 ............................................... 226
3.2 ACCESS数据库设计工具 .......................................... 22
第四章 系统设计 .................................................. 152
4.1 图形界面 ...................................................... 22
4.2 功能实现 ...................................................... 24
4.3 数据库设计 ................................................... 235
4.4 系统测试 ...................................................... 28
总结 .............................................................. 30
参考文献 .......................................................... 31
致 谢 ........................................................... 32
引言
4
第一章 引言
1.1 课题的目的意义
最短路径问题是图论、网络分析研究的重要课题,它被广泛用于网络优化,交通运输,物流配送,电子导航等领域。最短路径问题不单单是“纯距离”的最短路径,也可以被扩展来衡量其他的意义,如经济成本,时间和吞吐量。例如,城市交通,旅客选择旅游的最佳路径,最可靠的路径运输网络,的最大容量,最少的成本问题,和统筹方法关的键路径问题,全部可以转化为最短路径问题。
最短路径问题要解决的就是加权图G=两给定定点之间的最短路径。求单源点最短路径的一个著名算法是Dijkstra算法。
最短路径要解决的问题是一个加权图G =到两个给出的定点之间的最短路径。寻求一个单源最短路径算法就是众所周知的Dijkstra算法。
Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算任意节点到其它所有节点的最短路径。以最初始的点为中心,向外层拓展,直到拓展到终点为止,是其最重要的特点。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,
CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权边。
Dijkstra算法(迪杰斯特拉)算法是一个典型的单源最短路径算法,用于计算节点到所有其他节点的最短路径。其主要特点是起点为中心向外扩张,直到终点到为止的扩展。 Dijkstra算法的是非常典型的最短路径算法,在很多专业中都是被作为基础的内容来进行详细的介绍,如数据结构,图论,运筹学等许多专业课程,是非常代表。 Dijkstra算法的表达方式一般有两种方式,一个为永久的和临时的标号方法,另一个用OPEN,CLOSE表方法,这里是永久和临时标号的方式。请注意,该算法要求,负权边不准许存在图中。
引言
5
1.2 Dijkstra算法的资料调研分析
最短路径问题一直是计算机科学、运筹学、地理信息科学等学科的一个研究四是采用拓扑层次编码路径视图,对最短路径进行部分实例化编码存储;五是采用并行算法,为并行计算服务。
最短路径问题一直是计算机科学,运筹学,地理信息科学与其他学科的研究热点。大量的国内外专家和学者对这一问题进行深入研究。经典图论和计算机数据结构和算法的不断发展,有效地结合起来,使新的最短路径算法不断涌现。在空间的复杂性,时间复杂度和易于实施和应用领域,各有独特的地方。目前的研究重点,一为实际应用网络的特征优化运行结构。尽可能以统一的时间复杂度的基础上的提高算法的工作效率;二是限制网络的特征,如要求网络边缘具有证书权值,这样的方便使用基数据结构设计算法的运行结构;三是使用有损的算法,如限制搜索范围,以限制搜索的方向和限制的几何图层次第归序搜索;四为使用拓扑层次编码路径视图,一些实例化编码存储用来对最短路径进行实施;五是利用并行算法,并行计算服务。
在提高时间效率方面有较好的应用性。其中图增长论是TQQ算法的根本,用两个FIFO队列直线了一个双端队列结构来支持搜索过程,较适合于计算单源的点到另外的所有点的之间的最短距离。后两种算法则是基于Dijkstra算法,采用桶结构明显提高了永久标记点的搜索速度。
现在公认的最好的方法解决最短路径问题,是由E.W.Dijkstra,1959年提出的,也就是俗称的Dijkstra算法,他的名字命名的标记方法。该算法是基于这样一种想法,一种解释的几十种不同的优化算法更好的算法TQQ(graph growth with
two queues),DKA(the Dijkstra`algorithm implemented with approximate
buckets),DKD(the Dijkstra`s algorithm implemented with double buckets),排序的优化算法,前面的三种算法中,空间储存的问题是非常重要的,牺牲适当的时间效率,来节省空间,排序优化算法放在了一个重要的位置上,可以更好地提高时间效率。其中TQQ算法依靠的是图增长理论,直线了两个FIFO队列与一个双