搜索
您的当前位置:首页正文

基于ITS的加速最短路径搜索算法研究

来源:爱go旅游网
维普资讯 http://www.cqvip.com 基于ITS的加速最短路径搜索算法研究 谢仕义徐兵 (湛江海洋大学信息学院,湛江524000) E-mail:shiyixie@tom.corn 摘 要 文章从路径搜索的基本原理入手,首先介绍了经典Dijkstra最短路径搜索算法,分析比较了基于堆结构和基数 堆结构的Dijkstra算_击的搜索效率.从而提出了采用多层地图和分级搜索技术来实现对最短路径搜索空间的控制策略和 算击,结合湛江市区电子地图进行对比实验,谊算法有效地解决了最短路径搜索效率的问题。 关键词 最短路径 堆结构 分级搜索 文章编号1002—8331一(2006)16—0212—04 文献标识码A 中图分类号TP301;U121 TlIe Research of Quicken Up Shortest Path Finding Algorithm Based on ITS Xie Shiyi Xu Bing (Information College,Zhanjiang Ocean University,Zhanjiang 524000) Abstract:This article starts with the path finding principle,ifrst introduces the tradition Dijkstra shortest path finding algorithm,then compass the Dijkstra algorithm efifciency of heap structure based with radices heap structure.We put forward a control strategy and algorithm for realization shortest path finding space using multiplayer map and hierarchical finding technology,Finally we integrate Zhanjiang electornic map with imitating expeirment,the result is that hierarchical finding algorithm quickens up the shortest path finding algorithm greatly. Keywords:shortest path,heap structure,hierarchical finding 1概述 如果把道路交通网中的道路起点、终点和交叉13表示为节 寻找最短行车距离、最少旅行时间、最低通行收费等问题 点,把道路表示为连接节点的弧,把道路的长度、通行时间等属 是智能交通系统ITS(Intelligent Transportation System)的重要 性表示为道路的权,那么道路就被抽象为带权的有向图( , 研究内容[21。它主要解决的问题是在特定道路网中寻找具有最 {E1)(如图1所示)。 小代价的最短路径问题。在图论中,迪杰斯特拉(Dijkstra)最短 路径算法是求解这一问题的基本方法.而且已有许多针对I)i. ikstra算法的具体实现M。但在车辆导航系统中通常不能直接 20l20112 使用,因为在实际应用中记录路网信息的电子地图数据库往往 规模庞大,而负责路径搜索功能的导航计算机受车载环境和成 ● ’ 4466 农 0112 本限制,处理能力和系统存储资源都十分有限。难以满足用户 实际使用的需要。所以本方案提出了结合电子地图的数据结 Ol12o036 构,利用分级搜索技术来提高最短路径搜索速度的算法。 路● 1 0036 2最短路径搜索原理 囤1 道路交通网的节点图 2.1 图与最短路径 在计算机科学中,图不是普通意义上的图形.而是表示定 义在顶点集上的二元关系,它是一种数据结构,它的形式化定 设 , 为V中的顶点, =扣。 , l,…, 。)为V中 义为: 由” 到 ,的一条路径,c(V,W)是弧(/3, )的权值,则路径P的 G-(V,R) 权值总和可表示为: 其中:V=lxlx∈dataobject}(V是顶点的有穷非空集合) n一1 :{ 1( 是顶点之间关系的集合) ( )=∑c( , ) l却 R={( ,y)lP(x,Y)^( ,Y∈ ))(P( ,y)表示顶点 与Y之 最短路径就是指在带权有向图中。寻找从指定起点到终点 间存在路径) 的一条具有最小权值总和的路径。 基金项目:湛江市科技攻关计划项目(编号:O3o9o96) 作者简介:谢仕义,男,副教授,硕士。目前主要研究方向为城市交通,算法设计。 212 2Oo6.16计算机工程与应用 维普资讯 http://www.cqvip.com 2-2道路交通网的计算机存储与表示 在采用矢量编码方式的电子地图数据库中,道路以直线或 折线方式存储,并表示为一系列坐标点的有序集。为获得适用 于路径搜索的路网图,必须将包含交叉点的道路拆分成最基本 的路段,使其只在端点处与其他路段相交。拆分后的基本路段 对应于路网图中的弧,其端点就是图中的顶点。可双向行驶的 则 就是当前从 。出发的最短路径的终点。令: S=SU{vjl (3)修改从 出发到集合 —S中任一顶点 的可达最短 路径长度,如果 d ]+A【,J【 ]<d【 ] 则修改d 1为: 路段要用两条端点相同、方向相反的弧表示。路网图的拓扑关 系可以用两个数组表示。其中分别存放在顶点相关的信息和与 弧相关的信息,并按顶点的编号次序排序以方便查找。与路网 图拓扑关系无关的其他道路属性信息用单独的数组表示,数组 间存在链接关系。以下是一个简单路网(如图2所示)。其计算 机存储结构及链接关系如表1所列(a)、(b)、(c)所示。由于最 短路径算法仅涉及从顶点出发的弧.因此与顶点相关弧的数量 只考虑以顶点为起点的弧;与顶点相关的弧的索引则与以顶点 为起点的序号最靠前的弧相对应。 袭l道路交通网的计算机表示 (a)顶点信息表 (b)弧信息表 弧索引号 道路索引 起点 终点 道路索引 路名 类型 长度/kin 2.3 Dijkstra最短路径搜索算法[41 (1)利用邻接矩阵A来表示带权有向图G,其元素A嘲们 表示弧(”,, ,)上的权值;若弧( ,, ,)不存在。则将A 们设为 。o。令S为已找到从 .出发的最短路径的终点的集合,将其初 始化为空集。用辅助数组讲]的每一个分量d【 表示从源站点 出发到终点 .的可能达到的最短距离,取其初始值为: d嘲 A , E V (2)选择 .,使得: d[j]=min{d[i]lv E V-S} d[kl=dIjl+A Ijl[k] (4)重复操作(2)、(3)共n一1次,由此求得按路径长度递增 次序排列的从 .出发至图G中其余各顶点的最短路径序列。 以上算法将产生从源点出发至其余各顶点的最短路径。对 路径搜索来说,我们只需要从源点至指定终点的一条路径。为 此可将算法作简单的修改。设目标路径终点为 .,则在操作(2) 中,如果发现vj-I) ,算法即终止,此时与d[f]对应的路径就是从 源点 。至终点 的最短路径。 对于上述有n个站点的交通网络,算法的时间复杂度为 O(n‘)。所以可以看出平方阶的算法效率是比较低的,特别是对 于网络节点数比较大时的算法效率就更低了。 3基于堆结构的快速Dijkstra算法 为了改变传统的Dijkstra算法,而获得高效率的改良Dijk- stra算法 。设 为 中的顶点, 为 中可由 到达的顶点, 则求解由 。至 .的基于堆数据结构的最短路径算法实现过程 如下: (1)将 中的顶点划分为三类:已标记点、未标记点和已 扫描点;将 .初始化为已标记点,其他顶点设为未标记点。为每 个顶点 . ∈V建立一个对应数据项的属性值权值d和后向顶 点指针P。分别初始化为: f0, d(v)={P( )={} I。。, ≠ (2)扫描所有已标记点,从中选择一个具有最小权值的顶 点 并设为已扫描点;基于堆数据结构的扫描过程为: ①在堆h中找到具有最小属性值的数据项,将其删除并作 为操作结果返回。并将其设为已扫描点.此操作定义为delete (rain(h)); ②检查弧( 。W): 若d(w)- ̄,则令d(w)=d(v).4-a(v,W)。则在堆h中插入 一个新数据项W,将未标记点设置为已标记点,操作为insetr (h,W);其中a(v,W)是弧( ,W)的权值。 若d( )<∞且d(w)>d(v)+n( 。 ),则将堆h中的数据 项W的属性值用一个更小的数d(v)+n( 。W)代替,此操作定义 为decrease(h。W。d(v))+n( 。W)); (3)重复进行扫描操作。若终点 .被设为已扫描点,则搜索 结束。由 .开始遍历各后向顶点指针P直至起点 。即可获得 最短路径解。 =扣0 , ”, = },其中P(v )= },i=0,1,…。n一1。 起点 到终点 .之间共包含n一1个顶点。 上述Dijkstra算法的效率等于弧操作的时间复杂度为 O(m)与顶点操作的时间复杂度O(v)之和。其中。顶点操作的 时间复杂度O(v)=0(insert)+O(decrease)+O(delete)。而insert 计算机工程与应用2006.16 213 维普资讯 http://www.cqvip.com 操作的最大执行次数是/7,,decrease操作的最大执行次数是 m一(n—1),所以,执行insert和decrease操作的时间复杂度均 为D(1)。delete操作需要找到堆中具有最小属性值的数据项, 涉及堆中所有元素的比较操作。其执行时间的复杂度为O(n)。 如果采用斐波纳契堆实现优先队列。可将delete操作的执行时 间减小到D(1ogn),所以整个算法的执行时间复杂度减小为 O(m+nlogn)。 4基于基数堆结构的Dijkstra算法 若弧权值a(v, )只取整数且具有上界A,则采用基数堆 结构存放已标记顶点能够缩减Dijkstra算法的时间复杂度。但 顶点权值d(v)必须满足如下性质: (1)对任意的顶点 ,若d(v)<∞,则有:d(v)∈【0,…, 】。 (2)对任意已标记顶点 ≠ ,有:d0)∈[d ),…,d )十A】。 其中 是在最近一次扫描操作中产生的已扫描点。 基数堆是B---log2( +1)+2个带序号桶结构的集合,每个桶 存放权值在特定范围内的已标记顶点。对于序号为i的桶,它 的关联范围为: size(1)=1 8ize(f) 2 2≤f≤曰一1 size(B)=nA+1 为每个桶指定一个权值上界u。则序号为i的桶内所存放 的顶点权值范围可表示为: range(i)=[u(i-1),…,max{u(i-1)+size(/),u(z)J】 取u的初始值为: (O)=O u( );2 一1 1≤ ≤曰一1 u(B)=nA+1 则堆结构中的顶点权值范围为[0,…, +11。在Dijkstra算 法执行过程中,每个桶结构的关联范围保持不变,上界u则随 扫描过程的进行作动态调整。此时堆结构的三种操作执行过程 如下: (1)insert(h,∞):从i=B一1开始按递减顺序检查桶u(i),若 u(f)<d( ),则将 存入桶i+1; (2)delete(min(h)):从i=1开始按递增顺序检测桶i,并将 第一个非空桶内的最小权值顶点作为操作结果返回; (3)decrease(h, ,value):令d(x)=value,设 在桶』内,若 d(x)∈range(j),操作结柬;否则从桶_『中删除 并由i=j一1开 始重新执行insert(h, )。 在执行delete操作后,还要修改桶结构的权值上界并重新 调整已标记顶点在整个堆结构内的分布。设v=delete(min(h)), 首先对u作如下修改: u(O)=d(口)一1,u(1)--d(v) u(i)=minlu(i一1)+size(f),uU)】2≤ 一1 式中J是 所在桶的序号,然后将桶. 中的所有已标记顶 点全部移出并重新执行insert操作。 采用基数堆结构实现Dijkstra算法后,可以计算出时间复 杂度为O(m+nlog2A),即在采用基数堆结构后,Dijkstra算法的 时间复杂度由对数阶减少到线性阶。 5基于多层地图的分级搜索算法 从Dijkstra算法的时问复杂度分析可以看出,路网图的规 214 2006.16计算机工程与应用 模是决定最短路径搜索时间的关键因素[61。如果用合理的方法 减少搜索所涉及的顶点和弧的数量,将会使路径搜索效率提 高。所以本算法的基本思想就是采用多层地图和分级搜索技术 来实现对最短路径搜索空间的控制,达到减小算法时间复杂度 的目的。 首先在交通道路网的电子地图上进行全局搜索以获得大 致的目标路径,然后利用该路径将电子地图图层分解为一系列 局部搜索空间进行搜索(如图3),并将获得的局部最短路径合 并在一起得到最终的目标路径。采用分级搜索方法时,原来的 搜索空间就被一系列小的局部搜索空间所替代。当路网图规模 比较大时,这样处理会显著缩小搜索空间。 圈3分级搜索空间示意圈 在多层地图上实现分级搜索的算法为: (1)将图e中的主干公路用一个专门的图层舭表示,并 将起点s与终点t加入到图层ML中。 (2)在舭中搜索从s到t的最短路径 JlliIl=( I ,el, 2, e:,…, 。 m+l=f),其中 ;是路径所经过的顶点,ei是连接相邻 顶点的弧。 (3)将s到t的路径划分成P段,设第i段的端点分别为 “和 cf,且/)sl , =t, ,i>1;设L为预定的长度划分界 限; .,则可按如下条件选取: I—I ∑ ≤,J, ≤p J司 Ze ̄>L,i<p (4)设G中顶点 的坐标为 ( ,y),在搜索 时先进行 顶点过滤: ≤ ( )≤ m蚪, ≤ (Y)≤), 嘲 式中的过滤参数为: Xrain=min(v (1,7),…,口 ( )) 恤=max( ,( ),…, “( ))- ̄ttt  i=min(v (Y),…,口 (Y))--gL ), =max(v (Y),…,t, (Y))+/.tt 其中参数 是保证顶点过滤后仍有最短路径存在的扩展 因子。 (5)从 1开始在G中搜索由 .至 的最短路径R , 并将获得的局部最短路径合并生成全局目标路径R =(R 。, …,R lⅡi )o 维普资讯 http://www.cqvip.com 另外采用分级搜索后.对于道路交通发生变化的情况处理 十分有利。如某条公路被临时关闭,常规的搜索算法必须要在 权随更新后的路网图中重新搜索从源点到终点的最短路径,而 在采用分级搜索后,我们只需更新包含变化路段的一段局部最 短路径.由于这一过程只会涉及一个小的局部搜索空间,因此 重新搜索最短路径的速度会大大加快。 6仿真实验和结果分析 6.1 图层编码与属性数据库结构设计 为了提高程序设计实现的效率和数据的安全性,除了在程 序直接要用到的数据存放在图层的数据表中外,其它的属性数 据都存储于服务器端的RDBMS数据库中,系统采用ODBC作 为数据库管理的开发方法。图层编码与属性数据库结构采用国 家标准设计,这里主要给出了道路数据库、公交线路数据库、公 交站点数据库的结构设计。 (11道路.tab ID字段编码segmentID startID endlD r0adNaTne depiction 字段名 路段编码路段起点编码路段终点编码道路名称备注描述 segmentID字段编码为 四位数字0OOl一9999表示各道路一端点的编号 四位数字0001—9999表示各道路另一端的编号 (2)公交线路.tab ID字段编码routelD busRoute stations isDouble length depiction 字段名字段名  内部表示公交路线号经过的萎 公交 号 站点是否相同线路长罢 篙 长度备注描述 routeID字段编码为: k--k-k k--k T]二两位数00—99表示每一公交线路在两个站点之间的线段编码 L一——二位数001—999表示公交线路的编号 (3)公交站点.tab stationlD字段编码为 0o1—999表示公交站点编号 公变站点所在辖区编号 1表示市内公交.2表示市郊公交 6.2实验结果 为验证快速路径搜索算法的有效性,我们利用Windows 2OO0 Server操作系统.Mapinfo6.0、MapXtreme 2000软件平台, visual C十+开发工具编制程序进行了仿真试验。程序分别按经 典Dijkstra算法、基于基数堆结构的Dijkstra算法、分级搜索算 法3种方法搜索最短路径。搜索地图采用湛江市区交通图,其 中共包含了3 014条弧和2 071个顶点。为应用基数堆结构,我 们将弧长度以50m为基本单位分成了514个级别。在分级搜 索中,划分长度 取为lkm,扩展因子 取为O.1。仿真程序在 Pentium IIl、主存128M、硬盘10G计算机上进行了长距离的最 短路径搜索,结果如表2所示。其中的搜索顶点总数是指搜索 结束后的已标记顶点和已扫描顶点总l敏之和;由此可以看出. 在引入了多层地图和分级搜索后.路径搜索算法得到了很好的 改进,使运算速度大大加快。图4是采用分级搜索算法所获得 的最短路径图。 裹2 3种最短路径搜索算法性能比较 试验~ !!ra兰 一 笙塑塑室 堕—— 墼…一 次数顶点总数运行时间/s顶点总数运行时问/8顶点总数运行时间/s 图4 采用分级搜索算法所获得的最短路径围 7结束语 在车辆出行和导航中由于实时性要求较高,因此一旦出现 由于路况变化或其他原因使车辆未能按预定导航路线行驶,车 载计算机系统就必须重新计算最短路径问题,这时一方面要求 算法的运行速度一定要快,另一方面由于电子地图的规模十分 庞大,使得执行最短路径搜索算法所需要的时间长,存储空 增大,加上实际车载计算机环境的限制。所以采用多层地 啐【j 分级搜索技术控制搜索路网的规模,可以大大提高算法的放 率,非常值得借鉴和推广。(收稿日期:2005年9月) 参考文献 1.杨晓光。周雪梅,藏华.基于ITS环境的公共汽车交通换乘时间最短调 度问题研究『JJ.系统工程,2003;2l(2):56—59 2.Shiyi Xie,Sheng Gao,Bing Xu.Study of an Optimum Scheduling AI- gorithm About Buses in City Intelligent Transport Systems[C].In:Pro- ceedings of ICMLC2004,Xian,2004一l1:2795~2799 3.米涅卡(美).网络和罔的最优化算法【M】.中国铁道出版社,1984-02 4.于东凯,刘玉树.基于平面罔的最短路径算法的研究【M】.北京理 大 学学报。2001;2l(1):3l~34 5.Tang Wenwu。Shi Xiaodong,Zhu dakui.The Calculation of The Shortest Path Using Modified Dijkstra Algorithm In GIS[J].Journal of Image and Graphics,2000;5(A)(12):1019-1023 6.Huang Y H.Rundensteiner E A,Jing N.Evaluation of Hierarchical Path Finding Technologies for ITS Route Guidance[C].In:Proceedings fo 1996 Annual Meeting of ITS,American。1996:340 ̄350 7.Ravindra K A,Kurt M,James B 0 et a1.Faster Algorithm for the Shortest Path Problem[J]Journal of Association for Computing Machinery. 1990:213 ̄223 8.Zhan F B.Three Fastest Shortest Path Algorithms on Real Road Net- works[J].Journal of Geographic Information and Decision Analysis。 1997;l6(1):69-82 计算机工程与应用2006.16 215 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top