智能交通系统中最短路径算法优化的研究

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:gxlzx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:首先本文简单概括的论述了传统Dijkstra算法的基本思想;其次提出了该算法在实现方法上存在的一些不足之处,然后从数据存储结构和搜索方式上对其进行优化,并利用Matlab对改进算法进行了相应的仿真分析与测试,结果表明,改进的Dijkstra算法在实际交通中具有可行性。
  关键词:智能交通系统;最短路径;Dijkstra算法
  中图分类号:TP311.52
  针对城市交通拥堵我们提出了智能交通系统,而最短路径算法是智能交通系统最关键的问题之一[1]。目前大家公认的最经典的路径规划算法是Dijkstra算法,它是1959年荷兰著名的科学家艾兹格.迪科斯彻提出来的,并以其名字命名的,它是建立在抽象的图论模型上,把路网抽象为图论中的边,以边的权来表示路网中的相关信息。它也可用来找出图中指定节点到其他节点的最短距离,其主要思想是从源点求出长度最短的一条路径,然后通过对路径长度迭代得到从源点到其他目标节点的最短路径。
  如果按照传统的Dijkstra算法,网络图会比较复杂、顶点和边数也会比较多,这样会造成计算量很大、时间开销非常大,从而影响了算法的速度、降低了算法的效率。本文针对Dijkstra算法在实现方法上存在的一些不足之处对其进行改进,改进的Dijkstra算法在实际交通中具有可行性。
  1 传统的Dijkstra算法
  1.1 算法简单介绍
  1.2 算法存在的不足
  传统Dijkstra算法虽然比较简单,容易实现,理论上用该算法解决最短路径问题已经很成熟[2],但是通过仔细分析与研究可知该算法在实际应用中其存在以下几点不足:
  (1)虽然该算法用邻接矩阵表示路网中结点和路段的特征在数据结构上简单明了而且容易实现,但是其存储量为N×N;如果结点数较多时,将会有大量的无效的0元素和∞元素,这会占用计算机巨大的存储空间,如果再进行矩阵间的运算,那么运行速度会非常的慢;另外邻接矩阵也不能全面地表示真实路网中的许多信息,如结点属性信息及路段的属性信息等等。
  (2)在Dijkstra算法实现的过程中,它主要步骤就是从数组lengs的结点中选择一个权值最小的结点,这是一个循环比较的过程;如果不采用任何措施,在算法的每次迭代中数组lengs中的结点将以无序的形式存储;那么要选择一个权值最小的结点就必须把所有的结点都全部扫描一遍,在大数据量的情况下,这无疑是一个制约程序运行速度的关键因素。
  (3)用数组存放结点的最短路径权值,在搜索过程中应选择最小的路径权值加入到数组know中。这个选择没有考虑目标结点所处的位置和它的有向性,这是贪心算法的思想,即在每一步骤都保证局部最优,但从整体来看可能不是最优的结果。
  2 Dijkstra算法的优化
  根据上面分析得传统Dijkstra算法的三点不足之处,然后从数据存储结构和搜索方式上对其进行优化。
  2.1 从数据存储方式上优化——采用改进型前向关联边存储方式
  我们把电子地图道路网络层简称为路网,它有两个基本要素是:第一:结点(node);第二:路段(segment)。结点包括道路的交叉口或路头的断点;路段一般包含边(edge)或弧段(arc),两结点之间的路段称为边,假若我们规定了路段的方向,就称为弧段。更具路网的两个基本要素,改进型前向关联边存储结构用到的存储单元有三个:
  (1)指针数组:按节点编号的顺序对每个结点分配一个指针,用来存储由此结点发出的第一条弧在弧集中的起始位置,设长度为m;
  (2)结点序列数组:指针数组中的指针所指向的结点序列,它是按照弧段权重值的大小排列的,设长度为n;
  (3)弧段权重数组:对应指针数组的下标和结点序列数组元素合在一起所描述的弧段,存储该弧段所代表路段上的道路长度,设长度为n。
  改进型前向关联边存储结构优势归结为如下三点:
  (1)电子地图的路网数据结构更加清晰。虽然改进型前向关联边存储结构占用的存储空间为m+2n,但是此方法可以将节点与弧段的关系清晰的表达出来;也可方便地对某一给定结点发出的所有弧段进行操作,提高了算法的搜索效率。
  (2)在弧段权重数组中已对各弧段的权值按大小进行排序了这就使得路径搜索时不再需要比较弧段权重值,搜索速度加快了。
  (3)暗含了交叉口行为。这是以往其它存储结构所不具备的特性例如车辆在给定交叉口时允许采取的操作如直行、左转、右转等等也通过该存储结构隐含地表达出来。
  2.2 从搜索方式上优化——双向搜索方式
  图1 双向搜索算法基本思想
  3 算法改进后仿真结果
  本文利用MATLAB对优化后的Dijkstra算法和传统Dijkstra算法进行测试和实验对比。为了更好地说明优化后的Dijkstra算法的有效性,本文自行用MATLAB语言编制了最短路径搜索程序并进行了仿真和测试。采用自绘制的地图,共5张,第一张图16个节点,共24条弧;第二张图32个节点,共55条弧;第三张图45个节点,共75条弧;第四张图64个节点,共111条弧;第五张图80个节点,共139条弧。计算结果如表1所示。从表1可以看出,两种算法的计算量有很大的区别,优化后的Dijkstra算法较之传统的Dijkstra算法在运算量方面有很大幅度的减少,而且这种减少的程度在结点数目增加或者地图更大、更复杂时会变得越来越明显。对于实际的智能交通系统来说,由于实际的地图会很大,使用优化后的Dijkstra算法效果会非常显著。
  4 结论
  本文自行编制的MATLAB程序对算法的两点优化进行了验证和对传统的Dijkstra算法进行了对比,实验结果发现:传统的Dijkstra算法与优化后的Dijkstra的计算结果相当,但优化后的算法的运行速度比传统的Dijkstra算法的运行速度要快一些,更能快速找出从源点到目标结点的最短路径。
  参考文献:
  [1]百度百科 Dijkstra算法:http://baike.baidu.com/view/7839.htm.
  [2]蔡俊,李钦富,王金泉.一种Dijkstra优化算法的研究与实现[J].信息与技术,2011,(4):104-107.
  [3]李臣波,刘润涛.一种基于Dijkstra的最短路径算法[J].哈尔滨理工大学学报,2008,(3):35-37.
  [4]周培德.交通道路网中任意两点之间最短路径的快速算法[J].计算机工程与科学,2002,24(2):35-37.
  作者简介:杜雪(1987-),女,河南驻马店人,中原工学院计算机学院2011级硕士研究生,计算机应用技术专业,研究方向:图像图像处理;刘卫光(1966-),河南新乡人,计算机学院副院长,教授,博士,硕士生导师。
  作者单位:中原工学院,郑州 450007
其他文献
文化由于其历史和逻辑的必然,因而存在着继承和借鉴关系.而批判和对批判合理性的探讨,则是解决这一问题的基础。必须科学界定批判范畴,消除批判的错误;应该合理界定批判的理念,为继
研究并提出在HNO<sub>3</sub>-NaCl-硫脲(Tu)体系中,Nafion/玻碳(Gc)修饰电极阴极溶出伏安法测定痕量鉍的方法。表明Tu具络合协同作用,使Nation阳离子交换能力提高。本法检出限为
本文用热处理法成功地制备了性能稳定的Eastman-Kodak AQ/GC修饰电极,对Fe~(3+)/Fe~(2+)及其络合阳离子在该电极上的行为进行了研究。表明AQ膜对Fe~(3+)和Fe~(2+)具有相近的
随着科技的发展,社会也跟着在不断的进步。电子科技技术对社会进步的推动力是不可小觑的。而作为电子科技技术的核心--计算机技术,其被广泛的应用于社会工作和生活的各个领域。
萨满教的遗俗──跳神在陇南地区某些偏远的山村,至今仍然流行着一种当地称之为“跳神”的习俗。每年秋收以后,村民们为了庆祝丰收和进行娱乐,便选一处开阔的地方,栽起一根几丈长
摘 要:云计算是一种基于互联网的计算方式,是计算机发展的又一个阶段。云计算能够帮助计算机用户获得高性能的硬件资源、软件资源以及服务,它在促进信息产业发展方面发挥着巨大作用。现阶段,云计算的发展还处于探索阶段,对于云计算的认识仍然存在着分歧。本文对云计算的含义与特征进行了论述,阐述了云计算的应用,描述了云计算未来的发展。  關键词:云计算;发展;应用  中图分类号:TP393  最近几年,云计算这一
在城市公园、广场建设以及城市园林绿化中,大树移植是一项重要手段,而大树移植后的管理工作非常重要,科学有效的管理是保证大树成活的重要环节。主要研究了大树移植后的水分
近日获悉,无锡市正式确定"市场化、高端化、集群化、特色化"为物联网产业发展特色路径,并确保国家物联网示范区建设规划顺利完成。去年8月,国务院正式批复了《无锡国家传感网创
文化作为在历史实践中所创造的一切物质和精神财富的总和,它是适应着各个社会历史时期生产力的发展而不断发展变化着的一种社会历史现象。而民族文化则是多种形态共存的、相对
自由与平等是伴随市场经济的发展而出现的一对范畴.应当如何处理它们之间的关系,是许多经济学家和政治学家所面临的一个主要问题.市场经济把每个人置于平等的人格主体地位,而