一种基于SuperMap+GIS的改进Dijkstra算法

合集下载

GIS中使用改进的Dijkstra算法实现最短路径的计算

GIS中使用改进的Dijkstra算法实现最短路径的计算

第5卷(A 版) 第12期2000年12月中国图象图形学报Jou rnal of I m age and Grap h icsV o l .5(A ),N o.12D ec .2000收稿日期:2000201214;改回日期:2000204220G IS 中使用改进的D ijkstra 算法实现最短路径的计算唐文武 施晓东 朱大奎(南京大学海岸与海岛开发国家试点实验室海洋地理信息系统室,南京 210093)摘 要 地理信息系统中的空间网络分析有最短路径分析、资源分配分析、等时性分析等等,而最短路径分析是其中关键的环节,因而对其算法进行优化很有必要,为此在传统的最短路径算法,即D ijk stra 算法的基础上,采用二叉堆结构来实现路径计算过程中优先级队列的一系列操作,从而提高了该算法的分析效率.讨论了地理网络数据的组织结构和最短路径的具体实现过程,并引入了相关概念.通过具体案例分析表明,改进算法在提高网络系统空间分析效率方面是可行的.关键词 D ijk stra 算法 优先级队列 二叉堆中图法分类号:P 208 文献标识码:A 文章编号:100628961(2000)1221019205The Ca lcula tion of the Shortest Pa th Usi ng M od if iedD ijkstra A lgor ithm i n GISTAN G W en 2w u ,SH I X iao 2dong ,ZHU D a 2ku i(M a rine G IS L abora tory of S ta te P ilot L abora tory of Coast and Island D evelopm en t ,N anj ing U n iversity ,N anj ing 210093)Abstract In G IS it is necessary to op ti m ize the analysis functi on of the sho rtest path as the h inge of spatial netw o rk analysis ,w h ich includes sho rtest path analysis ,resource allocati on and isoch rone ,and so on .H erederived from the traditi onal calculating m ethod ,i.e .D ijk stra algo rithm ,the analysis p rocedure of the sho rtest path is i m p roved by adop ting the data structure of binary heap to comp lete the operati on of p ri o rity queue .Initializati on ,Extracti on ,and R elzxzti on .T he topo logical structure of geograph ical netw o rk data and the detailed i m p lem enting step s of the sho rtest path are also discussed .Further mo re ,the visualizing calculati on of the sho rtest path is comp leted by COM (Component O bject M odel )techniques ,and the calculating p rocedure is encap sulatedinto the component of the geograph ic netw o rk class.T he comp lexity analysis and the case of th is algo rithm show es that the modified algo rithm is app licable to i m p rove the efficiency of spatial analysis of the net system .Keywords D ijk stra algo rithm ,P ri o rity queue ,B inary heap0 引 言近些年来,随着国际学术界加强了对G IS 基础理论中空间关系的研究,地理网络分析的研究也有了极大的发展[1].网络分析包括最短路径分析、资源配置、等时性问题等等,但在进行网络分析时,还要根据不同的网络,建立起相应的网络分析模型.这里,所谓网络模型,是指将现实中的地理网络实体,抽象化为网络图论理论中的网络图,并通过图论中的网络分析来实现地理网络的最优化问题.在网络分析中,最短路径问题的分析是最基本的,也是最关键的,如今,解决最短路径分析问题的方法虽然已经很成熟,例如以D ijk stra 算法为代表的宽度优先搜索方法、动态规划方法等等,但作为网络分析的关键环节,由于网络分析的存储量和计算量过于庞大,算法的效率将直接影响到整个系统的性能.因此对该算法效率的改进历来是人们研究的热点[2~5].本文针对上述问题,在最短路径分析的经典算法(即D ijk stra算法)的基础上,对网络的数据结构和计算方法作了一系列的改进,改进的D ijk stra算法较之D ijk stra算法,效率得到一定提高,系统的性能也有相应的优化,并实现了最短路径的可视化计算.1 网络最优路径分析的实现方法1.1 网络数据的优化组织大家知道,空间网络数据是网络模型的基础,而由于空间网络数据具有空间数据基本的属性特征和空间特征,因而在G IS中,常将空间事物抽象成点、线、面等几何要素,并在点、线之间建立拓扑关联关系.例如,地理道路网络空间特征中的交叉路口坐标和道路位置坐标,是在地图上借助图形来识别和解释的,而在计算机中,则按照拓扑结构加以定义;而其属性特征有道路名称、道路距离、交通流量等等.在实际工作中,尽管已拥有了空间数据,关键还要建立起空间数据结构.地理网络数据结构使用的是“弧段和结点”的数据结构,该数据结构乃是建立在图论的基础上的,即将地理网络表现为“由线串联而成的点群”,如今,一般向量式G IS均采用这种数据结构.在此结构下,结点可用来定义弧段之间的连接关系.在地理网络中,由于大多数弧段与弧段之间的交点是具有拓扑性的交点,因而由此建立起来的地理网络具有明显的拓扑特征.另外,由于拓扑结构是明确定义空间结构关系的一种数学方法,因此在G IS中,它不但用于空间数据的组织,而且在空间分析和应用中都具有重要的意义.一般具有了拓扑结构,就可以很快地确定一种地理实体相对于另一种地理实体的空间位置关系.由此可见,具有拓扑结构也是进行网络分析的必要条件[5].对于网络数据的存储,传统的是采用图论中的邻接矩阵方法,其存储量为N×N(N为网络中结点数).通常的地理网络,尽管结点很多,但与结点相关联的结点数目并不多,一般都为稀疏图,这样,该存储方法将浪费大量的空间,而且在计算时亦要花费大量的时间遍历无意义的数据,故本文采用了邻接表的链式存储结构,其存储量为E(E为结点列表中,同结点关联的所有弧段数目),一般用邻接表表示图比用邻接矩阵法能节省大量的存储空间,尤其是在表示与结点和边相关信息较多的地理网络时. 1.2 最短路径分析的思想基础在最短路径算法中,是利用了以下性质,即两结点间的最短路径包含了其内部其它的最短路径,而算法实现的主要技术是松弛技术,而这种技术的实质是反复减小每个结点实际路径权值的上限,直到该上限等于最短路径的权值[7]为止.在图论中,最短路径的求法采用了同图的宽度优先搜索方法类似的思想,如D ijk stra就提出了按路径长度递增的次序来产生最短路径的算法.此算法(设网中权值均为非负)首先是把网中的所有顶点分成两个集合,即一个是将以StartPo in t 为源点的已经确定了最短路径的所有终点都并入S 集合,S集合的初态应只包含StartPo in t;另一个集合T则是尚未确定最短路径的顶点的集合,T集合的初态则包含除源点StartPo in t外的网中所有顶点,然后按各顶点与源点StartPo in t间的最短路径长度递增的次序,来设置优先级队列Q,再通过优先级队列Q的相应操作,逐个把T集合中的顶点加入到S集合中去,并使得从StartPo in t到S集合中各顶点的路径长度始终不大于从StartPo in t到集合T 中各顶点的路径长度.1.3 最短路径的具体实现步骤这里要实现的最短路径属于单源最短路径的问题.其实现过程如下:输入:网络中进行路径分析的两个结点StartPo in t,EndPo in t;输出:两个结点StartPo in t,EndPo in t之间的最短路径树(Sho rtPathT ree),即最短路径;实现步骤为:(1)选择要进行计算的StartPo in t和EndPo in t 两个结点;(2)对StartPo in t和EndPo in t两个结点进行连通分析,即采用宽度优先搜索方法,来快速判断这两个结点之间是否连通,也就是确定是否存在计算最短路径的必要.若连通,则进行(3),否则,退出计算;(3)使用改进的D ijk stra算法,计算StartPo in t 和EndPo in t两个结点之间的最短路径(改进的D ijk stra算法的计算过程将在下面具体介绍和讨论);(4)经过对计算出来的最短路径树进行优化处理之后,生成最终的最短路径树(Sho rtPathT ree),输出并退出.2 改进的D ijkstra算法在D ijk stra算法的计算过程中,通过设置优先0201中国图象图形学报第5卷(A版)级队列Q 的操作,将集合S 中的结点加入到集合T 中,一般的D ijk stra 算法是采用线性数组来实现优先级队列Q ,而这里采用二叉堆这种数据结构来实现优先级队列Q 的一系列操作.2.1 二叉堆实现优先级队列的有关操作W illi om s 在1964年提出了堆排序方法,该方法引入了堆这种特定的数据结构.这里二叉堆结构可以被视为一棵完全二叉树,而且其含义表明,完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右子结点的值.除了用于堆排序之外,二叉堆最常见的应用是作为高效的优先级队列.该优先级队列是一种用来维护由一组元素构成集合S 的数据结构,而且这一组元素中的每一个都有一个关键字key .在分时计算机上,进行作业调度和进行事件驱动的仿真器都要用到优先级队列,而且通常采用二叉堆结构来实现优先级队列.一般作用于优先级队列上的二叉堆的相应操作有:H eap ify (S ):即首先将集合S 调整成二叉堆,并设定其根结点具有最小关键字;然后该操作从堆的根结点开始,通过对当前结点的左右子树关键字的比较,来调整相应结点在堆中的正确位置,即通常所谓的“筛选”过程,而且此操作为维持堆性质的关键.H eap 2In sert (x ,S ):S ∪{x }←S ,即将元素x 插入集合S ,并调用H eap ify 将其调整成二叉堆.该操作是首先将堆加以扩展,即在树的最后一层加一片叶子,然后遍历由新加的结点叶子到根的路径,以找到放新元素的合适位置.H eap 2Ex tract 2M in (S ):即抽取具有最小关键字的元素,并调用H eap ify 将其调整成二叉堆.该操作可通过对堆的H eap ify 操作来实现.其运行时间主要花费在调整成二叉堆的操作上.2.2 改进D ijkstra 算法的面向对象实现方法对改进的D ijk stra 算法的实现,采用了面向对象的方法,对网络分析所用到的地理实体进行面向对象封装,并实现最短路径的可视化计算.2.2.1 最短路径分析对象的面向对象封装面向对象的程序设计(OO P )是结构化语言的自然延伸.由于OO P 先进的编程方法,会产生清晰而又容易扩展及维护的程序,且一旦为程序建立了一个对象,就可以在其它的程序中使用这个对象,完全不必重新编制繁复的代码,因而对象的重复使用可以大大地节省开发时间和切实地提高工作效率.一个对象有3个突出特征,即封装性、继承性、多态性.这里构建了进行最短路径分析时所用到的地理对象类T GEON ET 、TNOD EL IST 、TA RCL IST 、TNOD E 、TA RC 、SHOR T PA TH TR EE .地理网络类之间的继承关系如图1所示:T GEON ETSHOR T PATH TR EETNOD EL IST TNOD ETA RCL IST TA RC图1 最短路径分析类示意图图中,T GEON ET 为进行计算的地理网络类,最短路径的计算过程就在其中实现;TNOD EL IST 为地理网络中的结点列表,它存储了网络结点TNOD E 的信息;TA RCL IST 为地理网络中的弧段列表,它存储了网络弧段TA RC 的信息.其中,TNOD E 类封装网络中结点的信息,包括顶点的标识I D 、顶点的X 、Y 坐标、同顶点连接的弧段列表ADJA RCL IST ,以及在求最短路径时用到的用来存放当前所求最短路径点的列表Cu rPath ;TA RC 类封装弧段的信息包括弧段的标识I ND EX 、弧段的长度L EN GTH 、起始点NOD EFROM 、终结点NOD ETO 、组成弧段的节点坐标XYS 及其节点数PO I N TCOUN T ;SHOR T PA TH TR EE 为源点StartPo in t 至EndPo in t 之间的最短路径树,其中存储的是最短路径树中的结点信息.2.2.2 改进的D ijk stra 算法流程框图改进的D ijk stra 算法流程框图如图2所示.1201第12期唐文武等:G IS 中使用改进的D ijk stra 算法实现最短路径的计算2.2.3 改进的D ijk stra算法具体实现步骤(1)初始化操作 首先搜索与源结点StartPo in t关联的结点A dj[StartPo in t],然后初始化结点列表N odeL ist中所有结点的权值co st [N ode i],调用H eap2In sert方法实现初始化In itialize操作,来初始化优先级队列H eap,同时创建堆H eap中结点与结点列表N odeL ist中结点相互关联的索引Index.(2)抽取最短距离结点操作 即对优先级队列H eap的操作,通过调用H eap2Ex tract2M in,选择结点N ode[j],使得co st[j]=m in{co st[I]∈N ode[i]∈N odelist}其中,N ode[j]为当前求得的从StartPo in t出发的最短路径终点.(3)松弛操作 对从N ode[j]出发的结点N ode[k]进行松弛操作,松弛操作是通过D ecrease2 Key方法来实现,即若co st[j]+co st[j,k]<co st [k],则修改co st[k]=co st[j]+co st[j,k];同时,将结点N ode[k]通过H eap2In sert加到优先级队列H eap中,并相应更新索引表Index.而索引表中记录的是结点列表N odeL ist与二叉堆中结点之间的相对位置索引.(4)重复步骤2、3,直至N ode[j]=EndPo in t.(5)结束.2.3 改进的D ijkstra算法复杂性分析及相关优化讨论D ijk stra算法同宽度优先搜索算法相似,要遍历从每一结点出发的所有结点,最终生成的不仅是起点到终点的最短路径,而且还求出起点到网络图中其它所有结点的最短路径,实际上生成的是其它结点到起点的最短路径树.由于传统D ijk stra算法是使用线性数组结构,因此每次操作都要遍历整个结点列表N odeL ist,即顺序遍历整个最短路径树,其整个算法的运行时间仅为O(N2);而使用二叉堆结构的改进D ijk stra算法则仅仅遍历二叉堆,即仅遍历最短路径树中从根结点到当前进行操作的结点,即遍历次数仅仅是二叉堆H eap的高度lg(N),故算法的执行效率大为提高,整个算法的运行时间为O(E lg N).表1中列出了线性数组与二叉堆实现优先级队列的各种操作的最坏情况紧凑时间界.从该表中可见,采用二叉堆来实现优先级队列要比使用线性数组节省时间.虽然采用二叉堆实现的优先级队列较之使用线表1 线性数组与二叉堆实现优先级队列的各种操作的最坏情况紧凑时间界列表线性数组二叉堆Initialize O(N)O(N)Extract2M in O(N2)O(E lg N)D ecrease2Key O(N)O(lg N)To tal T i m e O(N2)O(E lg N)性数组结构要优秀得多,但在对结点进行松弛操作的时候,要用到二叉堆的查找Search操作,然而二叉堆不能有效地支持查找操作.针对这一点,本文创建了二叉堆H eap中的结点位置与结点列表N odelist中结点位置之间的索引Index,通过索引表Index,能够快速地对二叉堆中的结点在N odelist 中的位置进行定位,这就大大减少了对结点进行定位时所花费的时间,同时也进一步优化了算法.3 最短路径的案例分析本文在进行案例分析时所选用的开发平台为D elph i410、W indow s98,并采用控件化编程的思想,首先将最短路径分析过程封装到非可视化控件GeoN et中,然后同其它G IS功能控件,如M apV iew er,GeoV iew等连接,快速组装成最短路径分析系统(见图3).本文实验所采用的数据是美国某一地区的道路网络数据,文件中一共有4788条地理实体记录,经初始化,对所有记录构建网络所用时间为10s左右,网络共有2964个结点,而在计算最短路径时,使用改进的D ijk stra算法所花费的时间通常只有几秒钟,而采用传统的D ijk stra算法,计算最短路径一般要用10s多的时间.由此可见,改进的D ijk stra算法效率较高.4 总 结G IS网络分析中,最短路径分析过程在众多的地理网络最优化模型分析中扮演着重要的角色,但由于过去的分析算法较复杂,花时较多,因而本文通过对传统的D ijk stra算法的改进,即使用二叉堆结构来实现优先级队列的操作,在一定程度上优化了最短路径的计算过程,并降低了算法的时间复杂度,使时间复杂度达到O(E lg N),而案例中实际数据测试也表明了该算法的可行性.致 谢 由衷感谢侯玉国先生给予的无私指导2201中国图象图形学报第5卷(A版)图3 最短路径分析系统界面参考文献1 陈军,赵仁亮.G IS 空间关系的基本问题与研究发展.测绘学报,1999,28(2):95~101.2 M ichael Kuby et a l .A m ini m ax m ethod fo r finding the k bestdifferentiated path s .Geograph ical A nalysis .1997,29(4):298~313.3 M iller H arbey J .M easuring spacing 2ti m e accessibility benefits w ith in transpo rtati on netwo rk s :Basic theo ry and computati onalp rocedures .Geograph ical A nalysis ,1999,31(1):1~26.4 Stefanakes E ,Kavouras M .O n the deter m inati on of the op ti m um path in space .In Spatial Info r m ati on theo ry :Atheo retical basis fo r G IS .In :P roceedings of Internati onalConference CO S IT ’95.Berlin :Sp ringer ,1995:241~257.5 宫鹏.城市地理信息系统:方法与应用,伯克利:中国海外地理信息系统协会,1996.6 潘金贵等.现代计算机常用数据结构和算法.南京:南京大学出版社,1994.7 王树禾.图论及其算法.合肥:中国科学技术大学出版社,1990.8 M arco Cantu .D elph i 410从入门到精通.北京:电子工业出版社,1999. 唐文武 1976年生,硕士生.主要研究领域为空间分析理论、W eb G IS 、组件式G IS .施晓东 1967年生,工程师.主要研究领域为计算机应用和同位素分析.朱大奎 1935年生,教授,博士生导师.主要研究领域为海洋G IS 应用、海洋地质.3201第12期唐文武等:G IS 中使用改进的D ijk stra 算法实现最短路径的计算。

Dijkstra最短路径算法的优化和改进

Dijkstra最短路径算法的优化和改进
Main features of the algorithm is the starting point as the center outward expansion layers until it extended to the end point. Dijkstra's algorithm is very representative of the shortest path algorithm, in many professional courses in the basic content as described in detail. The proposed algorithm updates the shortest path in the value of the minimum value of the shortestet of neighbors of the node related to the identified set and a neighbor set of all nodes in the identified set with the set difference, its running time depends transfer the contact elements of the set of neighbors of quantity. Successful search algorithm by reducing the search range and improved algorithm storage structure of these two main research directions to optimize the algorithm.Therefore,the number of processed nodes is largely reduced in the optimization algorithm,and efficiency of the optimization algorithm is improved.The improved algorithm is proved to be correct and efficient by experiments and practical application.After some of the algorithm and the combination of practical examples, so you can make the article more ideal algorithm optimization.

改进型Dijkstra算法在GIS中的应用

改进型Dijkstra算法在GIS中的应用

改进型Dijkstra算法在GIS中的应用
赵娜
【期刊名称】《电脑开发与应用》
【年(卷),期】2012(25)3
【摘要】使用Dijkstra算法搜索最短路径是地理信息系统的应用研究的一个重要组成部分.Dijkstra算法无法找到所有的最短路径,所提到的改进型算法是结合了Dijkstra算法和一定的数据结构,使得某个路径顶点到其他目标顶点的所有最短路径可以非常便捷地被找到,而且这种改进型的算法并没有增加原有算法的复杂性,故有较好的研究和实用价值.
【总页数】3页(P74-75,78)
【作者】赵娜
【作者单位】太原师范学院,太原030012
【正文语种】中文
【中图分类】TP393
【相关文献】
1.改进Dijkstra算法在基于WebGIS应急计划子系统中的应用 [J], 柳俊
2.Dijkstra算法优化及其在GIS中的应用 [J], 马小雨;余建国
3.改进型Dijkstra算法在最优路径选择中的应用研究 [J], 廖兴宇;汪伦杰
4.改进Dijkstra算法在嵌入式GIS系统中的应用研究 [J], 梁骥;张雪燕
5.Dijkstra算法在GIS中的优化与应用 [J], 徐鹏;程钢;黎旻懿
因版权原因,仅展示原文概要,查看原文内容请购买。

一种改进的Dijkstra 算法在嵌入式GIS 中的应用

一种改进的Dijkstra 算法在嵌入式GIS 中的应用

过规划的现代大都市) , 可以将搜索区域限制在以起始点 S和 目标点 G的连线为对角线的矩形区域中。对于道路网络结构 相对比较规则的最短路径一般都会落入这个小的矩形区域中。 应该注意的是, 在靠近两节点的附近, 有时可能会出现短距离的 反向路径( 所谓反向路径, 是指在线段 S G的两端点外, 沿S G或 G S 延长线方向的路径。反映在实际系统中, 通常代表车辆为转
第2 6卷第 1 2期 2 0 0 9年 1 2月
计算机应用与软件 C o m p u t e r A p p l i c a t i o n s a n dS o f t w a r e
V o l 2 6N o . 1 2 0 9 D e c . 2 0
一种改进的 D i j k s t r a算法在嵌入式 G I S中的应用
[ 2 ] 入合适车道行驶所走过的路径) 。此时最短路径显然不会落
2 . 2 网络路径优化的拓朴结构
最短路径算法设计与实现的基础是具有拓扑结构的道路网 络
[ 4 ]
ቤተ መጻሕፍቲ ባይዱ
在以起始点 S 和目标点 G的连线为对角线的矩形区域中。这时 就以椭圆的最小包含矩形作为限制搜索区域来进行搜索, 进而 实现动态限制搜索区域。
A P P L Y I N GI MP R O V E DD I J K S T R AA L G O R I T H MT OE MB E D D E DG I SS Y S T E M
L i uZ h i y u Y a n gL i u
( D e p a r t m e n t o f C o m p u t e r S c i e n c e a n dT e c h n o l o g y , M u d a n j i a n gN o r m a l U n i v e r s i t y , M u d a n j i a n g 1 5 7 0 1 2 , H e i l o n g j i a n g , C h i n a )

一种改进的Dijkstra算法应用于嵌入式GIS系统

一种改进的Dijkstra算法应用于嵌入式GIS系统
te o e e i s a lo t h dsnh j t grh n it D k r a i m,w i d csh c n y h hr e pe ci e ns n ed dGI s m’pr r hc r ue e f i c.T e te o l’ahe metad mb d e— S yt S ef m— he t e e i o p S v e s e o
Abtat Di s aa oi m n fh svl g rh el gw t e elo d e rs u ed cnn al a s c: j t l rh io eo te t ada o t i dai i t ara t k.B tt esosa er l r kr g t s mo i l i msn n h h r n wo in t y l
K yw r s Di s a S S ; AP P e eddG S r ryt l e o d : j t ; S P kr S ; mbd e — I ;pi i be o ta
0 引 言
Djsa i t 算法是 图论学 中求最短路径 问题 的经典算法 , kr 适
用 于计 算两 点 问 的 最 短 路 径 问 题 “ 建 立 在抽 象 的 网 络 模 。它 型 上 ,把 路 抽 象 为 网 络 中 的边 ,以边 的 权 来 表 示 路 的 相 关 信 息 。 G S系 统 中我 们 把 两 点 之 间 的最 小 权 定义 为 两 点 之 间 在 I 的 最 短 距 离 , 把 相 应 的 问题 归 结 为 最 短路 径 问题 。对 于 非 而
关键词 : isa Dj t 算法;单 源最短路 径算 法; 多源最短路 径算 法;嵌入 式 GS kr I;前趋 表

GIS中一种改进的Dijsktra算法及其实现

GIS中一种改进的Dijsktra算法及其实现
Zh ng Ch n h a a e g u
( h 8hR sac ntue C iaEet nc ehooyGopC roai N nn 10 7,ins , hn ) Te t eer Istt, hn l r i Tcnl ru oprtn,aj g2 0 0 Jagu C i 2 h i co s g o i a
tesa a cm l i f h l rh erae ( ) et a data api t nrsl aevl a dta a oi m. h pt o pe t o eag i m i dcesdt O n .T s n c l p l a o ut h v ai t t l rh i l xy t ot s o s u ci e s d e h g t
冲 , 大 节 省 了 内存 空 间 , 得 算 法 的 空 间 复 杂 度 为 D( )。 试 验 和 实 际应 用 结 果 证 明 了算 法 的 有 效 性 。 大 使 n 关 键 词 地理信 息系统 路 径 分 析 最 短 路 径 Djkr 算 法 文件 缓 冲 i t s a
AN M PROVED J T I DI KS RA ALGoRI HM T AND T I S REALI ZATI ON N S I GI
h g a o m f a e ci eurrb I.A m r e i saa oi m i p t radi tepp r h lo tm api ued t vl eo t sl t nrq i l yG S ni po dDj t l rh s u f w r n h ae.T eagrh pl sa a u ph e o e v kr g t o i e
张 成 花
( 中国电子科技集团公司第 2 8研究 所 江苏 南京 2 00 ) 10 7

改进的Dijkstra算法在GIS路径规划中的应用

改进的Dijkstra算法在GIS路径规划中的应用
1 Dijkstra 算法
Dijkstra 算法用于计算一个源节点到所有其他节
收稿日期 :2003210219 作者简介 :李宁宁 (19792) ,女 ,吉林人 ,北京理工大学计算机科学工程系硕士研究生 ,研究方向 :数据挖掘 、人工智能 ;刘玉树 (19412) ,男 ,北京人 ,教授 ,博士生导师 ,研究方向 :数据挖掘 、专家系统 、人工智能 。
2. 1. 2 标号结构
typedef struct -LABEL
{
int nPrevNodeID ;
/ / 前驱节点标识
int
nPrevRoadID ;
/ / 前驱路段标识
double
fCost ;
/ / 到起始节点的最小代价
LPCHAINCELL lpNode ;
标号方法是大多数最短路径算法的核心过程 , Dijkstra 算法就是采用这种方法进行最短路径搜索 。 Dijkstra 算法的标号输出是一个最短代价树 ,每个节 点的标号有 3 种 :d (i) ,p (i) 和 s (i) 。其中 d (i) 表示第 i 个节点与源节点之间的最短代价 ;p (i) 表示按照当 前的最短代价路径第 i 个节点在最短代价树中的父 节点号 ;s (i) 表示该节点的状态 ,分为没有标号 ,临时 标号和永久标号三种状态 。
Abstract :The shortest path algorithm is a hotspot in the field of Computer Science and geographic information science. This paper dis2 cusses a modified Dijkstra algorithm. According to the start point ,routing point and target point that the user gives we can plan route in the traffic network graph in GIS ,and build the shortest path which satisfies some restrictions with the algorithm. Actual application shows that the modified Dijkstra algorithm is feasible in enhancing the efficiency in network system spatial analysing. Key words :GIS ;shortest path ;Dijkstra algorithm ;route planning

改进的Dijkstra算法

改进的Dijkstra算法

湖北文理学院毕业论文(设计)论文(设计)题目:Dijkstra算法在嵌入式GIS中的改进与研究学院继续教育学院专业计算机应用技术层次专科学生周金涛指导教师2016年 5 月20 日Dijkstra算法在嵌入式GIS中的改进与研究专业:计算机应用技术学号:201421255姓名:周金涛指导教师:摘要:Dijkstra算法是求解嵌入式GIS系统中最短路径的经典算法,通过对Dijkstra 算法进行分析,改变图的存储结构和搜索方法,采用基于矩形限制区域的二叉排序树改进算法,减少了内存存储空间,缩短了查询时间,在一定程度上优化了最短路径的计算过程,实际数据测试也表明了该算法的有效性。

关键词:Dijkstra算法;嵌入式GIS;最短路径;矩形限制区域;二叉排序树Research and Improvement of Dijkstra Algorithm toEmbedded GIS SystemAbstract:Dijkstra algorithm is a classic algorithm to solve the shortest path in the embedded GIS system. Changing the storage structure of the graphics and the search method, Dijkstra algorithm is modified by using binary sort tree based on rectangle boundary area through analyzing algorithm. The memory space needed is decreased and the search time is shortened and the algorithm has optimized calculation process in some degree. The algorithm is achieved good results by testing some data.Key Words: Dijkstra algorithm; embedded GIS; shortest path; rectangle boundary area; binary sort tree目录一、引言 (1)二、Dijkstra算法及其存在的问题 (1)三、基于Dijkstra算法的GIS路径优化 (2)(一)改进的方面 (2)(二)网络路径优化的拓扑结构 (3)(三)限制搜索区域加载部分网络模型 (4)(四)Dijkstra算法的优化改进 (5)四、算法分析及测试 (7)五、总结 (8)[参考文献] (9)一、引言随着无线网络的普及和智能移动设备的发展,嵌入式移动终端成为空间信息服务的核心组成和数字城市的重要服务方式。

关于改进GIS领域的最短路径Dijkstra算法研究

关于改进GIS领域的最短路径Dijkstra算法研究
在 GIS 应 用 中 ,在 众 多 的 最 短 路 径 搜 索 算 法 研 究 中 ,1959年 迪 克 斯 特 拉 或 迪 杰 斯 特 拉 (E.W Dijkstra)最 短 路 径 的 算 法 是 被 大 众 认 可 和 推 崇 的 优 秀 算 法 .本 文 对 该 算 法 的 原 理 及 算 法 步 骤 进 行 分 析 和 研 究 ,改 进 迪 克 斯 特 拉 算 法 ,目 的 是 要 找 到 一 种 能 求 出所 有 最 短 路 径 的 搜 索 算 法 .
2006年 3月 第 21卷 第 2期
渭 南师 范学 院 学报 Journal of W einan Teaehers College
维普资讯
M arch 2006 Vo1.21 No.2
关于改进 GIS领域 的最短路径 Dijkstra算法研究
算 法 步 骤 1:令 o= { o). = { l, 一, ),计 算


d(u0,i )一min{d(u0, )+ ( . )); ∈ o, ∈
维普资讯
·52·
唐金文 关于改进 GIS领域的最短路 径 Dijkstra算法研 宄
第 21卷
集 合 ,s是 其 中某 些 点 组 成 的 集 合 ,Байду номын сангаас。是 中 的 一 个 点 , = JP(G)一 ,把 从 。出 发 到 中 点 的 具 有 最 小
权和的路径称为 “o到i的距离 ,记为 d(uo, ),迪 克斯特拉算法递归地计算点集到点集 的距离 ,即 d( 。, i )。从而求 出 。到其余顶 点 的最短 路径.
关键词 :GIS;最短路径 ;Dijkstra算法 ;所有最短路径搜索 中图分类号:TP392 文献标 识码 :A 文章编号 :1009-5128(2006)O2—0051~04 收 稿 日期 :2oo5一O5—3O 作者简介 :唐金文 (1971-).云南 宣威人 ,曲靖师范学院计算机科学系讲师 ,硕士.

改进的Dijkstra算法在无人驾驶车辆路径规划中的应用

改进的Dijkstra算法在无人驾驶车辆路径规划中的应用

改进的Dijkstra算法在无人驾驶车辆路径规划中的应用无人驾驶车辆(Autonomous Vehicles,AVs)正在成为现代交通领域的热点和趋势,其带来的许多潜在优势使其成为未来交通系统改进的重要组成部分。

路径规划是无人驾驶技术的核心功能之一,它决定了车辆如何在复杂的交通环境中安全、高效地导航。

改进的Dijkstra算法作为一种重要的路径规划方法,融入了障碍物避免和实时交通信息,为无人驾驶车辆的路径规划提供了更加精确和高效的解决方案。

Dijkstra算法是一种经典的图搜索算法,用于计算图中节点之间的最短路径。

但是传统的Dijkstra算法在无人驾驶车辆路径规划中存在一些问题。

首先,它对整个地图进行全局搜索,计算复杂度高,无法满足实时性要求。

其次,传统Dijkstra算法没有考虑路况和障碍物等实时信息,无法适应动态交通环境。

为了解决这些问题,研究者们对Dijkstra算法进行了改进,使其适用于无人驾驶车辆的路径规划。

改进的Dijkstra算法主要包括以下几个方面的创新。

首先,引入了实时交通信息,通过预测和实时更新道路的拥堵情况,进行路径计算时避开拥堵的道路。

这使得无人驾驶车辆可以避开繁忙的交通路段,选择更为快速和高效的路径。

其次,考虑了车辆的动态特性,包括加速度、转向半径等信息,对路径进行约束,以确保路径的可行性和安全性。

此外,改进算法还对传统的Dijkstra算法进行了优化,通过剪枝等技术减少搜索空间,降低计算复杂度。

在无人驾驶技术中,改进的Dijkstra算法在路径规划中发挥了重要作用。

首先,它可以根据车辆的当前位置和目标位置,快速计算出最短路径以及所需行驶的时间。

这对于提高路径规划的实时性和准确性非常重要。

其次,改进的算法考虑了车辆的特性和动态环境,避免了潜在的碰撞风险和交通阻塞。

同时,它可以根据道路状况的实时变化,及时调整路径,避免拥堵和事故发生,提供更为可靠的导航指引。

此外,改进的Dijkstra算法还可以与其他高级技术结合,如机器学习和人工智能等,进一步提高路径规划的精确性和效率。

改进的Dijkstra最短路径算法及其应用研究

改进的Dijkstra最短路径算法及其应用研究

改进的Dijkstra最短路径算法及其应用研究一、本文概述本文旨在探讨和研究一种改进的Dijkstra最短路径算法,以及其在不同领域的应用。

Dijkstra算法是一种经典的最短路径求解算法,自1956年由荷兰计算机科学家艾兹格·迪杰斯特拉提出以来,已在图论、运筹学、计算机网络等领域得到了广泛应用。

然而,随着数据规模的不断扩大和应用场景的日益复杂,传统的Dijkstra算法在某些情况下表现出了计算效率不高、内存消耗大等问题。

因此,本文致力于通过改进Dijkstra算法,提高其在处理大规模图数据时的性能,并探索其在不同领域中的实际应用。

本文首先将对传统的Dijkstra算法进行详细介绍,分析其基本原理、计算过程以及存在的问题。

在此基础上,提出一种针对大规模图数据的改进Dijkstra算法,包括算法的具体实现步骤、优化策略以及复杂度分析。

接着,本文将通过一系列实验验证改进算法的有效性和性能优势,包括在不同规模图数据上的测试、与其他最短路径算法的比较等。

本文还将探讨改进Dijkstra算法在不同领域的应用。

例如,在交通网络中,可以利用该算法快速找到两点之间的最短路径,为导航、物流等领域提供有力支持;在社交网络分析中,可以利用该算法识别用户之间的最短路径,进而分析社交关系的传播和影响;在图像处理领域,可以利用该算法进行像素间的最短路径计算,实现图像分割、边缘检测等功能。

本文将对改进的Dijkstra最短路径算法进行深入研究和探讨,旨在提高算法性能、拓展应用领域,为相关领域的研究和实践提供有益的参考和借鉴。

二、Dijkstra算法的基本原理与实现Dijkstra算法是一种用于在加权图中查找单源最短路径的算法。

该算法由荷兰计算机科学家艾兹格·迪杰斯特拉在1956年发明,并因此得名。

Dijkstra算法采用贪心策略,逐步找到从源点到其他所有顶点的最短路径。

算法的基本思想是以起始点为中心向外层层扩展,直到扩展到终点为止。

GIS中使用改进的Dijkstra算法实现最短路径的计算

GIS中使用改进的Dijkstra算法实现最短路径的计算

GIS中使用改进的Dijkstra算法实现最短路径的计算
唐文武;施晓东;朱大奎
【期刊名称】《中国图象图形学报》
【年(卷),期】2000(005)012
【摘要】地理信息系统中的空间网络分析有最短路径分析、资源分配分析、等时性分析等等,而最短路径分析是其中关键的环节,因而对其算法进行优化很有必要,为此在传统的最短路径算法,即Dijkstra算法的基础上,采用二叉堆结构来实现路径计算过程中优先级队列的一系列操作,从而提高了该算法的分析效率.讨论了地理网络数据的组织结构和最短路径的具体实现过程,并引入了相关概念.通过具体案例分析表明,改进算法在提高网络系统空间分析效率方面是可行的.
【总页数】5页(P1019-1023)
【作者】唐文武;施晓东;朱大奎
【作者单位】南京大学海岸与海岛开发国家试点实验室海洋地理信息系统室,南京,210093;南京大学海岸与海岛开发国家试点实验室海洋地理信息系统室,南京,210093;南京大学海岸与海岛开发国家试点实验室海洋地理信息系统室,南京,210093
【正文语种】中文
【中图分类】P208
【相关文献】
1.嵌入式GIS最短路径分析中Dijkstra算法的改进 [J], 王玉琨;吴锋
2.改进Dijkstra算法在GIS导航应用中最短路径搜索研究 [J], 董俊;黄传河
3.Dijkstra最短路径算法改进研究及其在GIS-T仿真分析中的应用 [J], 翟娜;李庆东
4.嵌入式GIS最短路径分析中Dijkstra法改进 [J], 王宏勇;卢战伟
5.改进的Dijkstra最短路径算法在GIS-T中的研究与实现 [J], 戴文博;殷招伟;钱俊彦
因版权原因,仅展示原文概要,查看原文内容请购买。

基于可视图法的改进Dijkstra算法

基于可视图法的改进Dijkstra算法

基于可视图法的改进Dijkstra算法
李大东;孙秀霞;彭建亮;孙彪
【期刊名称】《电光与控制》
【年(卷),期】2010(017)003
【摘要】针对基于可视图的Dijkstra单向最短路径规划算法难以加入飞行性能约束的问题,将飞行轨迹视为一系列直线和圆弧,利用转弯离开点与进入点构建三圆弧组合实现避障转弯,成功地在算法中引入最小转弯半径约束.采用纯数学公式推导,详细介绍了推导过程.算法减少了无关节点运算,提高了查询与规划最短路径效率.通过对比仿真,验证了算法有效性.
【总页数】4页(P40-43)
【作者】李大东;孙秀霞;彭建亮;孙彪
【作者单位】空军工程大学工程学院,西安,710038;空军工程大学工程学院,西安,710038;空军工程大学工程学院,西安,710038;空军工程大学工程学院,西
安,710038
【正文语种】中文
【中图分类】V249
【相关文献】
1.全局路径规划中基于改进可视图法的环境建模 [J], 李善寿;方潜生;肖本贤;齐东流
2.基于回溯法的Dijkstra算法改进及仿真 [J], 王防修;周康
3.一种基于改进堆优化Dijkstra算法的最小费用最大流算法 [J], 邓国强; 韩颖铮
4.基于改进Dijkstra算法的AGV路径规划研究 [J], 李全勇;李波;张瑞;姜涛
5.基于改进Dijkstra算法的人群反馈调节疏散 [J], 任少强;汪一鸣
因版权原因,仅展示原文概要,查看原文内容请购买。

一种改进的Dijkstra算法的分析及程序实现

一种改进的Dijkstra算法的分析及程序实现
迭代次数 w s d ist[ 2 ] [ 3] [ 4] [ 5] { 1} 10 ! 30 100 1 1 1 1 0 1 0 2 3 10 30 100 2 4 5 30 100 60
图 1 有向带权图 表 1ቤተ መጻሕፍቲ ባይዱ改进的 D ijkstra算法的迭代过程
0 1 2 { 1, 2 } 10 60 30 100 1 2 1 1 0 0 3 1 2 4 5 3 50 90 2 4 { 1, 2 , 4} 10 50 30 90 1 4 1 4 0 0 1 0 2 3 5 60 3 3 4 5
p re[ 2] [ 3] [ 4] [ 5] m [ 1] [ 2] [ 3] [ 4] [ 5] heap[ 1 ] [ 2] [ 3]
改进的 D ijk stra算法的 C 语言程序实现如下 :
vo id d ijkstra( AD JGRA PH* g) { int d ist[M AX SIZE ], s[M AX SIZE ], v0, , i , j k, w, m [M AX SIZE ]; HEAP heap[M AXSIZE], te mp; AD JNODE* p;
收稿日期 : 2010 10 08 作者简介 : 郝春梅 ( 1975 ), 女 , 黑龙江拜泉人 , 哈尔滨金融学院计算机系副教授 , 硕 士 , 研究方向 : 管理信息系统 , 电子商务。
2011 年第 1 期
郝春梅 : 一种改进的 D ijkstra算法的分析及程序实现
37
{ m in= I NF I NI TY; for( j= 1; j<= g > vexnum; j++ ) if( ( d ist[ j] < m in)&& ( s[ j] == 0) ) { m in= dist[ j]; w= ; j } s[ w ] = 1; for( k= 1; k<= g > vexnum; k++ ) if( ( s[ k] == 0) && ( d ist[ w ] + g > arcs [ w ] [ k] < dist [ k] ) ) { dist[ k] = dist[ w ] + g > arcs[ w ] [ k] ; pre[ k] = w; } } }

Dijkstra算法在GIS实际应用中的优化

Dijkstra算法在GIS实际应用中的优化

2010年3月刊算法语言信息与电脑China Computer&Communication1.引言近年来,GIS 被广泛的应用在城市管理等方面上,GIS 最主要、最具体的任务是负责管理大型网状设施(如城市中的各类地下管线、交通线、通讯线路等),使得其对网络最短路径分析功能的需求日益增长。

在对最短路径搜索的问题上,Dijkstra 算法是综合各方面性能较好的算法之一。

可在实际道路搜索中,最短路径的意义不仅是指地理上的最短距离,还应包括时间上的,即能用最短的时间到达目的路,这对安排抢险救援的路线尤其重要。

本文针对城市应急中的最短路径分析进行了深入的研究,并提出了相应的解决办法。

2.Dijkstra算法的应用与实现传统的Dijkstra 算法将网络节点分为未标记结点、临时结点和永久标记结点三种类型。

网络中所有结点首先初始化为未标记结点,在搜索过程中和最短路径结点相连通的节点为临时标记结点,每一次循环都是从临时标记结点中搜索距离源点路径长度最短的结点作为永久标记结点,直至找到目标结点或者所有结点都成为永久标记结点才结束算法。

该算法能有效解决有向图中单个源点到其他顶点的最短路径问题。

在本文讨论的GIS 中,用MapObjects 实现的具体思路为:(1) 在地图上获取一点,作为起点,并获取到该点的点对象FMoPoint ;(2) 以FMoPoint 作为源点调用MO 的方法对指定的单位图层搜索该点附近很小范围内的图元元素,搜索到的第一个图元元素作为起点的起始地址;若搜索不到,则把步骤(3)得到的道路名称作为起始地址;(3) 以FMoPoint 作为源点调用MO 的方法搜索最短路径图层,找到距离原点最近的一条道路作为开始的道路。

具体的搜索的方法为:①以某一指定的步长作为搜索范围的半径,搜索FMoPoint 作为圆点的圆形范围;搜索的结果若为空,则增加步长的值,再重新开始搜索,直到搜索结果不为空;②将搜索到的结果作为一个线段的集合,计算源点到每条线段的最短距离,距离源点最近的一条线段作为开始的线段(道路),并记录下该线段到源点距离最短的点作为FNode (开始结点);(4) 同理,在地图上获取第二点TMoPoint 作为终点,并得到终点的地址,和终点(结束)的线段(道路)及TNode (结束结点);(5) 得到开始线段和结束线段后,计算出FNode 到开始线段的两个端点的距离,TNode 到结束线段两个端点的距离;因为FNode 和TNode 是作为临时创建的点,故要计算出所需的距离,用于最短距离计算;(6) 以FNode 作为起点,TNode 作为终点,用Dijkstra 算法对最短路径图层计算出最短路径来;(7) 判断FMoPoint 是否在开始线段上,如果不在则计算FMoPoint 到FNode 的距离;如果在,则计算实际的最短路径由FMoPoint 经过开始线段的端点的距离;(8) 同理,判断TMoPoint 是否在结束线段上,并进行相应的处理。

基于改进的Dijkstra算法的

基于改进的Dijkstra算法的

基于改进的 Dijkstra算法的国防大学联合勤务学院,北京100000摘要:本文研究目的在于寻找最优的抗疫物资运输路径。

Dijkstra算法是计算最优路径的的代表算法,针对其存储效率和计算效率过低问题,提出用邻接表代替权重邻接矩阵、采用双向循环链表进行快速增删、同时利用快速排序对权重距离进行排序的改进方法,最后综合考虑实际道路的综合通行能力对改进的Dijkstra算法进行实例验证。

关键词:Dijkstra算法;路径规划;抗疫物资运输一、引言回首过往,人类的历史既是一部发展史、也是一部危机史,危机往往与发展并存。

恰如恩格斯所言,“没有哪一次巨大的灾难不是以历史的进步作为补偿的。

”[1]纵观古今、横观中外应对疫情迅速爆发的大量实践证明,战胜疫情必须有强有力的物质基础作为坚强支撑。

疫情爆发具有很强的隐蔽性和突发性,也会面临口罩、防护服、医疗设备等抗疫物资缺乏的困境。

抗疫物资运输供应是在疫情爆发时紧急为疫情爆发地区提供医疗物资保障的特殊物流活动,能够有效提升医疗救援的效率,有效挽回人民的生命财产损失,有效维护社会稳定。

因此,在具体的抗疫物资运输路径规划时,如何选择合适恰当的车辆运输路线,以最短时间、最高效率把抗疫物资供应到疫情爆发地区,最大限度挽回人民群众的生命财产,具有一定的现实意义。

二、算法的简介及基本原理Dijsktra算法用于计算从源节点到所有其他节点的最短代价路径,它是按路径长度递增的次序来产生最短路径的算法[2]。

该算法主要特点以起始点为中心向外层层扩展,直至扩展到终点为止[3],因此可以计算出起点到任意点的计算路径。

根据图论的基本原理,在用Dijkstra算法具体分析的抗疫物资运输路径时,将抗疫物资运输路径转化为图G=(V,E)来表示,V(vertex)表示的是抗疫物资运输路径中的关键节点,E(edge)表示的是抗疫物资运输路径节点与节点之间的距离。

根据相关文献[4],Dijkstra的算法简要步骤如下:分别定义集合S、集合U和数组distance,集合S为已访问的最短路径的节点信息集合,集合U为未访问的节点信息集合,distance[]数组存放的数值依次为从起点到对应节点的最短距离值。

GIS应用领域中Dijkstra算法的一种改进

GIS应用领域中Dijkstra算法的一种改进

GIS应用领域中Dijkstra算法的一种改进
刘翠丽;张思东
【期刊名称】《电信快报:网络与通信》
【年(卷),期】2005(000)005
【摘要】在地理信息系统(GIS)领域的所有求解最短路径的算法中,Dijkstra算法被公认为是目前较好的算法之一.Dijkstra算法虽然在理论上可行,但是在现行系统中,网络模型往往很大,顶点数目太多,从而导致搜索算法的效率非常低.文中在分析了Dijkstra算法的基础上,对Dijkstra算法进行了改进,并对改进的算法和原算法进行了比较,同时给出了改进算法的实现方法.
【总页数】3页(P46-48)
【作者】刘翠丽;张思东
【作者单位】北京交通大学电子信息工程学院,北京市,100044;北京交通大学电子信息工程学院,北京市,100044
【正文语种】中文
【相关文献】
1.一种改进的Dijkstra算法的分析及程序实现 [J], 郝春梅
2.基于Dijkstra算法的一类最长路问题的一种改进算法 [J], 李宝凤;郝璞玉
3.一种基于改进堆优化Dijkstra算法的最小费用最大流算法 [J], 邓国强; 韩颖铮
4.一种改进Dijkstra算法的UAV路径规划 [J], 王超;王银花
5.一种基于改进型Dijkstra算法的路线规划方法研究 [J], 梁波;杨新民
因版权原因,仅展示原文概要,查看原文内容请购买。

改进的Dijkstra算法在GIS路径规划中的应用

改进的Dijkstra算法在GIS路径规划中的应用

改进的Dijkstra算法在GIS路径规划中的应用
李宁宁;刘玉树
【期刊名称】《计算机与现代化》
【年(卷),期】2004(000)009
【摘要】最短路径算法是计算机科学与地理信息科学等领域研究的热点.文章讨论了一种改进的Dijkstra算法,利用本算法根据用户给出的起始结点、必经点序列和目标结点在GIS的交通层网络图基础上进行路径规划,生成满足一定约束条件的最短路径.实际应用分析表明,改进的Dijkstra算法在提高网络系统空间分析效率方面是可行的.
【总页数】4页(P12-14,17)
【作者】李宁宁;刘玉树
【作者单位】北京理工大学计算机科学工程系,北京,100081;北京理工大学计算机科学工程系,北京,100081
【正文语种】中文
【中图分类】TP301.6
【相关文献】
1.改进Dijkstra算法在GIS导航应用中最短路径搜索研究 [J], 董俊;黄传河
2.改进Dijkstra算法在基于WebGIS应急计划子系统中的应用 [J], 柳俊
3.改进Dijkstra算法在基于WebGIS应急计划子系统中的应用 [J], 柳俊;
4.改进型Dijkstra算法在GIS中的应用 [J], 赵娜
5.改进Dijkstra算法在嵌入式GIS系统中的应用研究 [J], 梁骥;张雪燕
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

禁行路段两端节点 P 1 和 P 2 间的距离, 将邻接矩阵 中该元素设为 ! 。然后采用 上述算法求解 起点 S 到终点 D 间的最短路径。
其中, FN ode 与 TN ode 分别表示弧段的两端节 点 , ResistanceA 与 R esistanceB 分别表示弧段 的正向 阻力与反向阻力 ; Leng th 表示弧段长度。 在选择搜索区域内的道路网络时, 对于跨越搜 索区 域的 弧段 , 算法 作如 下设 定: 如果 弧 段端 点 TNode 位于搜索区域内 , 则该弧段保留 , 否则, 该弧 段不在搜索范围之内。如图 4 所示, 弧段 AE 与 DC 跨越了搜索区域 , 对于弧段 AE, E 为 TN ode 端点, 则 弧段 AE 予以保留 ; 对于弧段 DC, D 为 FN ode 端点, 因此, 弧段 DC 不在算法搜索范围之内。
[ 1- 2]
, 如果直接将起点 S 和终点 D 所在直线作为
搜索区域的两条边界 , 很可能导致路径分析 失败。 而阈值 保证了搜索区域的边界距起止节点有 大 小的距离。 图 3 给出了 Super M ap 中道路网络的属性表结 构。
图 3 属性表结构 F ig 3 Structure o f the attribute tab le
[ 2]
。道

路网络与普通平面网络的区别在于其 存在空间分 布特性 , 主要体 现在道 路的单双 向、 立 体交通 等。 因此, 在道路网 络的构建中, 需充分考 虑道路网络 的空间分布特性。 2 1 立体交通道路网络 立体交通是道路网络区别于普通平面网 络最 主要的空间分布特性。道路网络的构 建通常由空 间内各条道路的中心线投影于一个平 面内并拓扑 处理而成, 在这 种方式下, 空间中具有 异面关系的 两条道路在拓扑处理后变成相交关系, 如果直接以 此为数据基础设计算法, 必然导致求得的最短路径 不能应用于实际中。为了避免最短路 径中相邻路 段出现在异面的两条道路上, 在道路网络构建中需 要考虑立体交通问题。 目前, 已有的处理方法多是将道路网络划分为 不同的图层 , 路径规划算法求解时需要在不同的图 层间进行切换, 导致算法设 计复杂。为此 , 文 本介 绍一种简单可行的立体交通道路网络构建方法。
第 12 卷 第 5 期 2010年 10 月
地 球 信 息 科 学 学 报
JOURNAL OF GEO INFORM AT I ON SC I ENCE
V ol 12, No 5 O ct , 2010
一种基于 SuperM ap G IS的改进 D i jkstra算法
程 林, 王美玲, 张 毅
*
*
*
在本文算法设计中, 将
M 2 -M 2 -M 3 -M 4 - M 4 -M 1 。 将顶点所围成的六边形 ( 或矩形 , 当 Sx = D x 或 S y = D y 时 )作为搜索区域。 图 2 给出了 Sx < D x , 且 S y > D y 时 本文算法与 传统 D ijk stra 算法搜索区域的对比。 其中, 整个矩形区域表示道路 网络, 实线 六边 形为本文算法的搜索区域; 虚线将整个路网分成的 左半部分为传统 D ijkstra 算法的搜索区域 , 它是以 起点 S 为圆心, 以起点 S 和终点 D 连线为半径的部
求解最 短路
图 1 包含立 体交通的道路网络 F ig 1 R oad netw ork w ith a grade separa tion
2 2 单向道路网络 在 Super M ap 中 , 每条路 段的属性信息 除路段 长度外 , 还包括了正向阻力 R esistanceA 和反向阻力 R esista nceB 。因此, 对于双向道路 , 可将正向阻力与 反向阻力设置相同的值 ; 对于单向道路 , 可结合实 际道路 走向, 将正向 阻力 或反向 阻力设 为 ! 。最 后 , 表示每条道路两个方向的权值都可由道路长度 与阻力的加权和得到。 假设某路段的两个节点分别为 P 和 Q, 则正向 权值为 : W PQ = 反向权值为 : WQP = 其中, 和 L ength + R resistanceB 和 均设置为 0 5 。 ( 2) 分别为道路长度与阻力的权系数,
标 , 合理限制搜索区域。 ( 3) 选择搜索区域中的道路网络, 读取属性表 数据, 并根据 ( 1)式与 ( 2) 式构造邻接矩阵, 调用 D i jk stra 算法子程序, 采用邻接矩 阵法 径。 ( 4) 输出节点 S 与节点 D 间的最短路径。 3 2 搜索区域的限制 为提高算法的搜索效率 , 本文对算法的搜索区 域进行了限制, 使算法在限制的搜索区域中求解最 短路径。搜索区域的限制方法如下: ( 1) 记起点 S 与终点 D 的坐标分别为 ( Sx , Sy ) 与 ( D x , D y )。 ( 2) 分别以起点 S 和终点 D 为中心作正方形, 记为 AS 和 AD , 保证 A S ( AD ) 各条边与起点 S ( 终点 D ) 的距离均为阈值 , 正方形 AS 和 AD 的顶点坐标 按照图 2 所示方式标记。则各顶点坐标分别为 : M 1 ( Sx - , S y + ) M 2 ( Sx + , S y + ) M 3 ( Sx + , S y - ) M 4 ( Sx - , S y - ) M 1 (D x - , D y + M (D x + , D y + M (D x + , D y M (D x - , D y * 4 * 3 * 2 * [ 1]
650
地 球 信 息 科 学 学 报
2010 年
Super M ap 提供了线数据拓扑处理功能 , 即将道 路中心线数据集转换为包含道路节点、 道路弧段及 其拓扑关系的道路网络数据集。在 拓扑处理的弧 段求交步骤中, 需要进行 非打断线参数 设置, 使 拓扑处理后不在同一平面内的两条 道路之间没有 交点, 以真实再现立体交通。图 1 显示了包含立体 交通的道路 网络。其 中道路 AB 跨 于道路 CD 之 上 , 二者的异 面关系得以体现, 即在 同一图层的道 路网络中再现了不同平面内的道路。
1 引言
路径规划是基于拓扑结构的道路网络 , 在车辆 行驶前或行驶过程中寻找车辆从起 始点到达目的 地的最佳行车路线的过程, 它是最短路径问题在车 辆导航系统中的一个具体应用 路径规划的基础算法
[ 5 - 6] [ 1- 4]
算法应用于城市道路网络 , 验证了算法的可行性。
2 道路网络构建
路径规划算法是以道路网 络为基础的
D ijk stra算法是经典的最短路径算法, 也是其他 。针对 D ijk stra 搜索效率 低这一局限 , 目前已有多种改进算法被提出 , 从数 据结构或启发性搜索等方面对 D ijk stra 算法的实时 性加以改进
[ 7- 14 ]
。然而, 多数算法将道路网ห้องสมุดไป่ตู้作为
普通平面网络考虑, 忽略了实际道路网络的空间分 布特性 , 并且 设计复杂, 导致算法不 能很好地应用 于实际车载导航。因此 , 结合道路网络的空间分布 特性, 设计具备较强实时性且简单可行的路径规划 算法, 具有重要意义。 Super M ap G IS 是新 一代大型地 理信息系 统平 台 , 其网络编辑功能既为路径规划算法提供了所 需的网络数据集 , 同时也为路径规划算法的 设计、 实现和优化带来方便。 本文首先结合实际道路网络的空间分布特性, 介绍了在 Super M ap 中构建道路网络的方法; 然后, 给出了算法的步骤, 强调了算法搜索区域的限制方 法 , 以及约束条件下最短路径的求解方法 ; 最后, 将
( 1)
M 2 -M 3 -M 3 -M 4 - M 1 -M 1 ; & 若 S x % D x 且 S y #D y , 顺次连接 顶点 M 1 M 2 - M 2 - M 3 - M 4 - M 4 - M 1; ∋ 若 Sx #D x 且 Sy % D y , 顺次连接顶点 M 1 * * * *
*
) ) ) )
( 3) 搜索区域的限制分为如下四种情况: ∀ 若 S x #D x 且 S y #D y , 顺次连接 顶点 M 1 M 2 - M 3 - M 3 - M 4 - M 1 - M 1; ∃ 若 Sx % D x 且 Sy % D y , 顺次连接顶点 M 1 * * * *
Leng th + R esis tanceA
( 北京理工大学 自动化学院 , 北京 100081) 摘要 : 为提高传统 D ijkstra算法的搜索效率 , 满足车载导航中 路径规划实 时性的要 求 , 本文 利用 Super M ap G IS 平台 的网络编辑 功能 , 设计了一 种基于 Super M ap 的改 进 D ijkstra 算法。首先 , 结合道 路网络的 空间分布特 性 , 在 Super M ap 中构建了道路网络 ; 其次 , 设计算法 , 根据起止节点合理限制 算法的搜索 区域 , 并以经 典 D ijkstra 为理论 基础实 现最短路径的求解 ; 最后 , 结合需要 设计了约束条件下的路径规划算法。在城市道路网络中的应用实例验 证了算法 的有效性。 关键词 : 路径规划 ; D ijkstra 算法 ; Supe r M ap G IS; 最短路径 ; 限制搜索区域
分圆形区域。如图 2 所示, 阈值
具有如下意义 :
( 1) 根据几何学中 两点之间直线最短 , 起点 S 与终点 D 的连线方向基本上代表 了最短路径的 大致走向, 且最短路径通常分布于线段 SD 的两侧。 通过对阈值 的设置, 使算法在以线段 SD 为中心, 以 [ , 2 ] 为缓冲半径的缓冲区内进行搜索。 ( 2) 道路网络 中通常 有供车辆 调头的换 向节 点
收稿日期 : 2009- 12- 29; 修回日期 : 2010- 08- 27.
相关文档
最新文档