最短路径毕业论文范本模板.docx
- 文档编号:29610692
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:39
- 大小:391.46KB
最短路径毕业论文范本模板.docx
《最短路径毕业论文范本模板.docx》由会员分享,可在线阅读,更多相关《最短路径毕业论文范本模板.docx(39页珍藏版)》请在冰豆网上搜索。
最短路径毕业论文范本模板
本科毕业论文(设计)
论文题目:
交通咨询系统的最短路径算法与实现
学生姓名:
贺景
学号:
020*******
专业:
信息管理与信息系统
班级:
信管0201
指导教师:
陈树广
完成日期:
2015年5月5日
交通咨询系统的最短路径算法与实现
内容摘要
目前在交通咨询领域,最短路径算法的研究和应用越来越多,其中最短路径算法的效率问题是普遍关注并且在实际应用中迫切需要解决的问题。
随着现代生活节奏的加快,以及城市汽车数量的不断增加,交通网络也越来越发达,在交通工具和交通方式不断更新的今天,人们在旅游、出差或者其他出行时,不仅会关心费用问题,而且对里程和所需要的时间等问题也特别感兴趣。
为了能够更方便人们的出行,我们就应该以最短路径问题建立一个交通咨询系统。
这样的一个交通系统可以回答人们提出的有关交通的所有问题,比如任意一个城市到其他城市的最短路径,或者任意两个城市之间的最短路径问题。
本文通过对几个常见的最短路径算法的分析,研究和实现,即经典的Dijkstra算法、Floyd算法。
讨论了各个算法的思想、原理、实现方法、数据结构还有算法描述,并从时间以及空间的复杂度进行分析比较其优点和缺陷以及具体的实用性。
针对现代交通网络现状特点,分析和研究适合道路的经典最短路径算法,探讨了在交通网络路线优化过程中需要特别处理的几个问题,并在理论上给出相应的合理的解决方案.
关键词:
交通咨询最短路径Dijkstra算法Floyd算法
ShortestpathalgorithmoftheTransportAdvisorySystemDesignandImplementation
Abstract
Currentlyinthefieldoftrafficadvisory,researchandapplicationoftheshortestpathalgorithmbecomemoreandmore,whereintheefficiencyoftheshortestpathalgorithmisacommonconcernandinpracticeisanurgentneedtosolvetheproblem.
Withthepaceofmodernlifeaccelerate,aswellastheincreasingnumberofcitycar,transportationnetworksismoredeveloped,invehiclesandtransportationconstantlyupdatedtoday,peopleintourism,travelorothertraveltime,notonlyconcernedaboutcosts,butalsothetimerequiredmileageandotherissuesarealsoofparticularinterest。
Tobemoreconvenientforpeopletotravel,weshouldbuildashortestpathproblemtrafficadvisorysystem.Suchatransportationsystemcananswerallquestionsrelatedtotransportationhavebeenproposed,suchastheshortestpathtoanyonecitytoothercities,oranyshortestpathbetweenthetwocities.
ThroughtheanalysisofseveralcommonshortestpathalgorithmresearchandrealizedthattheclassicalDijkstraalgorithm,Floydalgorithm.Wediscussedvariousalgorithmsideology,theory,implementation,datastructures,aswellasalgorithmsdescribedandanalyzedtocomparetheiradvantagesandshortcomings,andthepracticalityofthecomplexityofthespecifictimeandspace。
Forpresentcharacteristicsofmoderntransportationnetwork,classicalshortestpathalgorithmanalysisandresearchfortheroadtoexploreseveralissuesintransportationnetworkoptimizationprocessroutesthatrequirespecialhandling,andintheorygivethecorrespondingreasonablesolution。
Keywords:
trafficadvisoryshortestpathDijkstraalgorithmFloydalgorithm
序言
最短路径问题一直在计算机科学、交通工程学、地理信息系统、运筹学等学科中是一个研究的热点,它不仅是资源分配问题解决的基础,更是线路选择问题解决的基础,特别是在地图、车辆调度以及路由选择方面有着广泛的应用.最短路径问题最直接的应用当数在地理信息领域中,例如:
GIS网络分析、城市规划、电子导航等等.在交通咨询方面,寻找交通网路中两个城市之间最短的行车路线就是最短路径问题的一个典型的例子。
在网络通信领域,信息包传递的路径选择问题也与最短路径息息相关。
例如OPSF开放路由选择协议,每一个OPSF路由器都维护一个描述自治系统范围内到每个目标的最短路径。
在图像分割问题中,最短路径也有直接的应用:
在语音识别中一个主要的问题就是识别同音词,例如,to、two、too。
为解决这个问题,我们需要建立一个图,顶点代表可能的单词,扁连接相邻的单词,边上的权代表相邻的可能性大小。
这样图中所表示的最短路径,就是对句子最好的解释。
由于最短路径问题的广泛应用,很多学者都对此进行了深入的研究,随着研究成果的成熟化也是产生了一些经典的算法。
近年来,对最短路径研究的热度依然不减,并且时间复杂度也降得越来越低.从实际意义上讲,没有哪一种算法能够适用于所有的网络形式,并且在所有的网络形式上具有很好的空间和时间复杂性.这些算法又具有各自的优缺点。
按照起点终点及路径的数据和特征,最短路径问题可分为五种类型:
两个节点间的最短路径、所有节点的最短路径、K则最短路径、实时最短路径和指定必经点的最短路径问题。
在交通网络的路径分析中,单源最短路径问题更具有普遍意义,其算法有很多种,其中采用贪心及启发策略的Dijkstra算法是目前最完善的,这是荷兰计算机科学教授EdgerW。
Dijkstra(1930-2002)在1959年发现的一个算法,它以极强的抗差性得到普及和应用。
再有就是由弗洛伊德(floyd)提出的另一个算法,又称传递闭包方法,求每一对节点之间的最短路径。
本文就从上述几类来分别介绍最短路径的几种常用算法,并介绍最短路径问题中的算法改进。
本文的其它部分组织如下:
第一章概述了交通咨询系统的最短路径算法与实现的目的和意义、选题背景和技术线路.第二章介绍所要用到的技术原理。
第三章介绍最短路径问题的几种算法.第四章交通咨询系统的设计及实现。
第五章为总结,提出文章的缺点与不足之处,谈谈自己的想法,并提出发展期望。
一、绪论
(一)课题的背景和意义
现如今,我国的各大城市都有着交通拥堵、道路堵塞和交通事故的频繁发生,这些都随着城市私家车的不断增加和城市汽车交通运输的加快发展越来越困扰着我们的生活,并且汽车工业发展所引发的道路交通不能满足实际需求的种种交通问题也越来越严重,越来越突出。
为了解决这些问题,除了通常所用的解决办法,譬如修建必要的道路交通网、针对交通事故多发路段、修建一系列的交通安全设施,这些设施包括道路信号机、道路标识、交通指挥中心等有助于交通安全的设施,来改善道路的交通环境,提高交通的顺畅性,在一定程度上缓解交通拥挤状况.而且在必要的时候能够把道路、车辆、城市的发展需求等,大都与交通有关的基本因素归为一体,在这些基本因素的基础上,采用信息通信技术、信息自动采集技术、电子技术、网络技术、自动控制以及其他的科学技术把它们联系起来,开发一个可供模拟操作的城市交通管理系统。
只有将这些方法结合起来,才能有效地解决随着交通需求不断增长、交通系统日益庞大复杂,所带来的交通问题。
随着交通网络越来越发达,人们在旅游、出差或者其他出行时,不仅会关心费用问题,而且对里程和所需要的时间等问题也特别感兴趣.为了能够更方便人们的出行,我们就应该以最短路径问题建立一个交通咨询系统。
这样的一个交通系统可以回答人们提出的有关交通的所有问题,比如任意一个城市到其他城市的最短路径,或者任意两个城市之间的最短路径问题。
本题目的意义在于,用java软件技术实现最短路径算法在交通咨询中的重要应用,对模拟结果进行分析讨论,为将来能够有效解决各大城市的交通问题提供可靠的依据.
(二)研究现状
本节阐述三方面问题,首先简要回顾最短路径算法研究现状,然后概要总结最短路径算法分类,最后简单论述最短路径算法的时间复杂度.
1.最短路径算法研究现状
最短路径问题一直是计算机科学、运筹学、地理信息科学等学科领域的研究热点。
国内外大量专家学者对此问题进行了深入研究。
经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现.常用的路径规划方法有:
平行最短路径搜索算法,蚁群算法,基于矩阵负载平衡的启发算法,EBSP*算法和Dijkstra算法等。
创门在空间复杂度、时间复杂度、易实现性及应用范围等方面各具特色但是因为Dijkstra算法可以给出最可靠的最短路径,并且容易实现,所以备受青睐和并被广泛应用。
经典的Dijkstra算法的时间复杂度为
,直接应用到大规模城市路网时,最短路径查询时间难以令人接受,专家学者纷纷开展Dijkstra优化算法研究,概括起来,以往研究者主要是从5个方面对最短路径算法进行性能优化:
(1)基于数据存储结构的优化,以空间换取时间;
(2)基于路网规模控制的优化;(3)基于搜索策略的优化;(4)优先级队列结构的优化;(5)基于双向搜索的并行计算优化。
本文所研究的算法内容融合了除(4)之外的所有优化策略,首先采用堆数据结构将Dijkstra算法时间复杂度降至O(NlogN),然后采用椭圆限制算法搜索区域,控制搜索规模,限定搜索方向,最后在本文提出的二树算法中运用了并行运算思想,极大地降低了最短路径查询时间。
2.最短路径算法分类
由于问题类型、网络特性的不同,最短路径算法也表现出多样性。
(1)按照最短路径问题分类,最短路径问题通常可分为2个基本类型:
一是单源最短路径问题,即查找某一源点到其余各点的最短路径;另一类是查找某个节点对之间的最短路径。
最短路径问题具体可细分为以下几种,单源最短路径问题,单对节点间最短路径、所有节点间最短路径、k则最短路径、实时最短路径、指定必经节点的最短路径以及前N条最短路径问题等,本文的研究范畴属于单对节点间最短路径问题。
(2)按照网络类型和表示方法分类,网络可以分为稀疏网络和非稀疏网络,常用的表示方法有邻接矩阵和邻接表。
邻接矩阵方法能够在o(i)时间内查询到任意两个节点之间是否有一条边,它的空间复杂度为
。
现实生活中网络节点往往很多,动辄上万,而且是稀疏网络居多,比如城市路网,所以用邻接矩阵表示既不现实,又浪费空间。
邻接表是另一种存储网络拓扑的数据结构,它是一种链式存储结构,对于交通网络等稀疏图
,采用邻接表数据结构存储网络拓扑数据空间复杂度仅为O(M十N),不存在存储空间的浪费.邻接表数据结构已被证明是网络表达中最有效率的数据结构,在最短路径算法中得到了广泛应用.
3。
算法时间复杂度
Dijkstra算法最简单的实现方法是用一个链表或者数组来存储所有顶点的集合,此时算法的时间复杂度是
.对于边数M远少于
的稀疏图来说,为节省存储空间,可以用邻接表更有效的实现该算法;为缩短算法查询时间,可以将一个二叉堆或者斐波纳契堆用作优先队列来寻找最小的顶点.当用到二叉堆的时候,算法所需的时间为O((M+N)logN);当用斐波纳契堆时,算法时间复杂度为O(M+N1ogN).对于城市路网,由于N/M介于1.5和2之间所以采用堆数据结构,Dijkstra算法时间复杂度为O(NlogN)。
(三)研究内容
本文的研究范畴是智能交通系统中的最短路径算法,研究领域是城市路网中的限制搜索区域最短路径算法,研究内容是典型城市路网中最短路径算法的理论研究及实验验证,研究目的是保证查询结果可靠的情况下,最大程度降低最短路径查询时间,研究方法是充分研究和利用城市路网的特征参数,降低最短路径算法冗余度和复杂度,性能验证是软件仿真预测和实测数据统计双重评估标准。
(四)论文结构
论文共分为六个章节,各章内容组织如下:
第一章为绪论,首先叙述了本课题研究的背景意义,然后依次回顾了智能交通系统的发展历程,介绍了最短路径算法的研究现状,最终引出论文的工作内容并给出了论文组织结构。
第二章是本文的理论研究基础,介绍城市路网中各种限制搜索区域最短路径算法,着重讨论了Dijkstra算法、Floyd算法的运行机理。
第三章是介绍了系统的开发工具及系统的运行环境.
第四章分析交通咨询系统的最短路径算法实现代码的编写.
第五章简要介绍了系统的界面设计。
第六章总结,提出文章的缺点与不足之处,谈谈自己的想法,并提出发展期望。
二、最短路径算法相关原理
本章介绍城市路网中各种限制搜索区域最短路径算法,重点讨论Dijkstra算法、Floyd算法的实现原理。
(一)Dijkstra算法
Dijkstra算法是一个按权值大小递增的次序产生最优路径的算法,用于计算从有向图中任意结点到其他结点的最优路径。
设一个有向图G=(V,E),已知各边的权值,以某指定点
为源点,求
到图的其余各点的最短路径。
1。
算法思想分析
1959年狄克斯特拉(Dijkstra)提出一个按路径“长度"递增的次序产生最短路径的算法,即:
把图中所有的顶点分成两组,第一组S包括已经确定最短路径的顶点,初始时只含有源点;第二组V-S中包括尚未包括最短路径的顶点,初始时含有图中初源点之外的所有其他顶点.按路径长度递增的顺序计算源点到各顶点的最短路径,逐个把第二组中的顶点加到第一组中去,直至V=S.
2.实现思路
有向网用邻接矩阵cost[][]表示,其中规定:
(1)如果两个顶点之间无直接路径,即
弧对应权值为无穷大;
(2)两个顶点之间有直接路径
的,矩阵中的权值就是
弧对应的公路长度;(3)
对应的值为0。
S集合初始存放最短路径的源点,计算过程中将已经确定了最短路径的顶点加到S中去。
Dist数组最终存放源点到各顶点的最短路径结果。
Path数组最终存放源点到个顶点的最短路径经过的顶点。
3。
计算步骤
如下图所示:
由F到A的路径有三条:
FA:
24;FBA:
5+18=23;FBCA:
5+7+9=21
第一条最短路径为与源点V邻接顶点的弧集合中,权值最小的弧.下一条长度次短的最短路径是:
假设该次短路径的终点是
则这条路径或者是
,或者是
,它的长度或者是从V到
弧上的权值,或者是V到
路径长度与
到
的弧上权值之和。
引进一个辅助向量D,它的每个分量D[i]表示当前找到的从源点V到每个终点
的最短路径的长度。
设用带权的邻接矩阵dist[i][j]来表示有向图,dist[i][j]表示弧
上的权值,若
不存在,则置dist[i][j]为某一最大值。
向量S为已找到从V出发的最短路径的终点的集合,其初始值为空集。
算法按下面的步骤进行:
①从V出发到图上其余各个顶点(终点)
可能达到的最短路径长度的初始值为:
D[i]=dist[ORDINAL(V)][i],Vi∈V
其中ORDINAL(V)表示顶点V在有向图中的序号
②选择Vj,使
D[j]=Min{D[i]|Vi
S,Vi∈V}
Vj就是当前求得的一条从V出发的最短路径的终点,且令
S=S∪{j}
即将j加入到S集合中。
③修改从V出发到集合V—S上所有顶点Vk可达到的最短路径长度。
如果
D[j]+dist[j][k] 则修改D[k]为 D[k]=D[j]+dist[j][k] ④重复操作 (2),(3)共n-1次。 最后求得从V到图上其余各定点的最短路径是依路径长度递增的序列. 例: 对上图,邻接矩阵为 最短路径求解过程图例,F为源点; 初始状态, ABCDEF S D 求得min{D}={24,5,∞,25,∞}=5,最短路径FB ②以D[j]修改(即FB路径长度修改)向量D, ABCDEF S D 求得min{D}={23,12,25,∞}=12,最短路径FBC ③以D[j]修改(即FBC路径长度修改)向量D, ABCDEF S D 求得min{D}={21,25,∞}=21,最短路径FBCA ④以D[j]修改(即FBCA路径长度修改)向量D, ABCDEF S D 求得min{D}={25,∞}=25,最短路径FD ⑤以D[j]修改(即FD路径长度修改)向量D, ABCDEF S D 求得min{D}={∞}=∞,即FE无路径 (二)Floyd算法 Floyd-Warshall算法(Floyd—Warshallalgorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。 Floyd—Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。 1。 算法思想原理: Floyd算法是一个经典的动态规划算法。 用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。 从动态规划的角度看问题,我们需要为这个目标重新做一个诠释(这个诠释正是动态规划最富创造力的精华所在) 从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。 所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k)+Dis(k,j)〈Dis(i,j)是否成立,如果成立,证明从i到k再到j的路径比i直接到j的路径短,我们便设置Dis(i,j)=Dis(i,k)+Dis(k,j),这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。 2.算法描述: a。 从任意一条单边路径开始。 所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。 b。 对于每一对顶点u和v,看看是否存在一个顶点w使得从u到w再到v比己知的路径更短。 如果是更新它。 3。 Floyd算法过程矩阵的计算————十字交叉法 方法: 两条线,从左上角开始计算一直到右下角如下所示给出矩阵,其中矩阵A是邻接矩阵,而矩阵Path记录u,v两点之间最短路径所必须经过的点 相应计算方法如下: 最后A3即为所求结果. 三、开发工具与环境 (一)Java技术 1.Java简介 Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称.用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力: 跨平台、动感的Web、Internet计算。 从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet.另一方面,Java技术也不断更新. Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。 Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。 在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。 现在Java平台已经嵌入了几乎所有的操作系统.这样Java程序可以只编译一次,就可以在各种系统中运行。 Java应用编程接口已经从1。 1x版发展到1.2版。 目前常用的Java平台基于Java1.4,最近版本为Java1.6. Java分为三个体系JavaSE,JavaEE,JavaME。 Java的特点是: (1)Java的简单性: 和C++相比,语法简单了,取消了指针的语法;内存分配和回收不需要我们来过渡关注,C++可以多继承,但java只能是单继承,相对于类来说。 (注: 接口可以多继承)使用Asp可以组合HTML页、脚本命令和ActiveX组件以创建交互的Web页和基于Web的功能强大的应用程序. (2)java面向对象: java算是纯面向对象,但jquery是更纯的面向对象。 在java编程思想这本书说过,“Everythingisobject! ”这样便于人类的构思和设计,更符合人们的思考问题方式. (3)分布式: 主要还是用在EJB上。 (4)安全性: java的语法限定了源程序的安全性,首先编译器会进行源代码的第一步检查。 (5)跨平台: java能够跨越不同的操作系统平台,平台无关性怎么跨平台呢? 主要是在不同的操作系统中,JVM规范都是一样的,被JVM加载成各个操作系统所支持的,屏蔽了底层操作系统的差异。 (6)高性能: 开闭原则—-—对扩展开放,对修改关闭java是即时编译的。 (7)多线程。 2。 Java的处理流程 (1)首先编辑.java源程序。 (2)编译成。 class字节码文件bytecode(一种二进制文件). (3)最后被java虚拟机(JVM)加载解释并执行。 四、交通咨询系统的实现 (一)系统分析 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求: 统一处理的准确性和及时性: 系统处理的准确性和及时性是系统的必要性能。 在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对员工信息处理的需求。 系统的开放性和可扩充性: 系统在开发过程中,应该充分考虑以后的可扩充性。 例如数据表中用户选择字段方式的改变,用户查询的需求也会不断的更新和完善.所有这些,都要求系统提供足够的手段进行功能的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路径 毕业论文 范本 模板