GIS中最短路径的实现-Read_第1页
GIS中最短路径的实现-Read_第2页
GIS中最短路径的实现-Read_第3页
GIS中最短路径的实现-Read_第4页
GIS中最短路径的实现-Read_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

GIS中最短路径的实现张燕,付仲良,黄庆彬本文提出了一种基于矢量角度的最短路径搜索算法,设计出一种类似于面向对象的数据存储结构来存储网络图中的节点及弧段对象,在最短路径的搜索上引入矢量夹角标量值做为搜索因子,充分利用了网络图中各点元素和线元素间的拓扑关系,提高了搜索的趋势性,同时还考虑了各弧段的长度值(或权值),较好的将网络图中对象的空间信息和属性信息相结合……1引言随着地理信息产业的建立和数字化信息产品在全世界的普及,地理信息系统将深入到各行各业甚至各家各户,成为人们生产、生活学习和工作中不可缺少的工具和助手。地理信息系统中网络分析功能的主要目的是对地理网络(如交通网络)、城市基础设施网络(如各种网线、电力线、电话线、供排水管线等)进行地理分析和模型化。最短路径问题是地理信息系统网络分析中的最基本最关键的问题,在交通网络结构的分析,交通运输线路的选择,通讯线路的建造与维护,运输货流的最小成本分析,城市公共交通网络的规划等,都有直接应用的价值。关于最短路径问题,目前为人们所公认的最好求解方法,是1959年由E.W.Dijkstar提出的标号法,但具体实现中在存储空间及运行效率上还存在着一定的问题。本文从图形数据的存储结构及最短路径顶点的搜索策略两个方面对Dijkstra算法进行了改进,提出了一种基于矢量角度的最短路径搜索算法。2道路网络数据结构构造类似于面向对象的数据结构存储网络图:PublicTypeMynode(点结构)DimNodelDAsInteger'节点ID,唯一标识节点DimAdjoinNumAsInteger'邻接弧段数量DimAdjoinArcID()AsInteger'邻接弧段IDDimAdjoinNodeID()AsInteger'邻接节点IDDimAdjoinClamp()AsDouble'指向邻接节点的矢量的角度EndTypePublicTypeMyArc(弧结构)DimArcIDAsInteger'弧段ID,唯一标识弧段DimLengthAsDouble'弧段长EndType其中节点对象中的三个数组大小在初始化时利用邻接弧段数量设置大小,因此对应不同的节点对象其大小是不固定的,使用此种结构,对于有向图不会造成数据的冗余,而对应于无向图也仅多存储了一倍的弧段ID,邻接节点ID及矢量角度,相对于经典Dijkstra算法来说,需要的存储空间仍较小。对于弧段对象来说,其中的Length可以设置为弧段长度,也可根据需要设置为时间、费用等相应的权值。3算法原理由两点之间直线最短的定理,构造一条理想最短路径(如图一中的AB),这条直线段一定是A、B两点间弧段中距离最短的一条。但实际上这条直线段作为一段道路存在的可能性极小,但这条从起点到终点的直线段却代表了一个路线的趋势,从概率的角度,顺着这个方向的某些路段的集合组成最短路径的可能性较大。图一以矢量夹角标量值做为最短路径顶点选取的第一要素。如图一,求解A、B两点间的最短路径。N1为矢量Aa与矢量AB间夹角的标量值,当前节点的每个邻接节点都对应一个角度标量值,按照标量值的正负值大小,构造标识分别为正负的两个队列,两个队列均根据节点对应标量值的绝对值从小到大进行排序。分别从正负两个队列中选出排在最前位的节点,加入到最短路径树中。除第一次搜索外,其余过程中都需要判断搜索到的节点是否已存在于最短路径树中,如果该节点已存在于最短路径树中,则需要比较本次搜索过程结束后该节点信息与对应的最短路径树节点信息。假设在第m次搜索过程中已确定指向节点S的树节点Sm,之后在第n次(n2m)搜索得到的树节点Sn再次指向网络图中节点S。当Sn的Length值大于Sm的Length值时,在Sn处停止搜索,如图二所示。第1次搜索第?次搜索第的欠搜索IIIII南测叟索III第盛搜索图二当Sn的Length值小于或等于Sm的Length值,如图三所示,将Sm之下的所有树节点移动到Sn之下,并依据Sn的Length值对应修改原Sm之下所有树节点(图示方框中所有树节点)的Length值。

第1次搜索第2次搜索第3出搜索IIIIII第m次搜索II第搜索源点图三源点4算法实现本算法在武汉市经济开发区道路网络图上得到实现。武汉市经济开发区道路网络图中共有节点371个,边653条。在ArcMap的VBA环境中,通过VB+ArcObjects的编程方式,由VB实现算法逻辑控制,ArcMap管理图形的显示与控制,实现在图形窗口中动态显示求得的最短路径以及选取组成最短路径的路段集合的过程。实现流程图如下:

实现流程圉输出结果颈处理:拓扑检查原节点衩值较小实现流程圉输出结果颈处理:拓扑检查原节点衩值较小在武汉市经济开发区道路图上任意选取六个节点,分别进行三次最短路径求解的实验,得出的参数如下表:实监ArcNumberNodeNumberPathLengthModificationTime—本文理法T1225607.5460Dijkstra算法22 ,' 22 '兆口7.523S3'汉1一本文苴法■ 4■ 43157.5:21<1Dijkstra算法4.. 4 ;5157.93036<2二本文尊法111.1配泥石124Dijkstra算法,111.11605-SI其中:ArcNumber表示的是最短路径经过的弧段数,单位为段;NodeNumber表示的是最短路径经过的结点个数,单位为个;PathLength表示的是最短路径的长度,单位为米;Modification在本文算法中表示的是求解过程中树节点修改次数,在Dijkstra算法中表示的是求解过程中节点标号的修改次数;Time表示的是求解最短路径花费的时间,单位为秒。由上表可以看到,在求解最短路径的过程中本文讨论的算法与传统的Dijkstra算法,最大的差别在于Modification。由于文中探讨的算法在求解最短路径过程中具有起、止点的方向性趋势,每次搜索过程中仅考虑当前节点的邻节点,故修改次数较小;而在Dijksra算法中,每次搜索过程中都将遍历所有未确定永久标号的节点,故修改次数较大。文中探讨的算法求解过程简单,速度快,求得的最短路径与用Dijkstra算法求得的最短路径相同或相近,所以该算法具有一定的实用性和可操作性。5结论在对于搜索技术性能评价的时候,在各种不同的情况下有着不同的要求,并非只注重最优解,而是注重在一定条件下的非劣解。虽然本文讨论的算法在道路较不规整时求得的最短路径可能有一定的误差,但是与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论