一种改进的空间网络最短路径算法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种改进的空间网络最短路径算法 0 基于最短路径的地理网络模型 近年来,国际学术界加强了对gis理论中空间关系的研究,地理网络分析也取得了很大进展。 网络分析包括最短路径分析、资源配置、等时性问题等等,但在进行网络分析时,还要根据不同的网络,建立起相应的网络分析模型.这里,所谓网络模型,是指将现实中的地理网络实体,抽象化为网络图论理论中的网络图,并通过图论中的网络分析来实现地理网络的最优化问题. 在网络分析中,最短路径问题的分析是最基本的,也是最关键的,如今,解决最短路径分析问题的方法虽然已经很成熟,例如以Dijkstra算法为代表的宽度优先搜索方法、动态规划方法等等,但作为网络分析的关键环节,由于网络分析的存储量和计算量过于庞大,算法的效率将直接影响到整个系统的性能.因此对该算法效率的改进历来是人们研究的热点. 本文针对上述问题,在最短路径分析的经典算法(即Dijkstra算法)的基础上,对网络的数据结构和计算方法作了一系列的改进,改进的Dijkstra算法较之Dijkstra算法,效率得到一定提高,系统的性能也有相应的优化,并实现了最短路径的可视化计算. 1 网络最优路径分析的实现方法 1.1 网络数据结构的建立和存储 大家知道,空间网络数据是网络模型的基础,而由于空间网络数据具有空间数据基本的属性特征和空间特征,因而在GIS中,常将空间事物抽象成点、线、面等几何要素,并在点、线之间建立拓扑关联关系.例如,地理道路网络空间特征中的交叉路口坐标和道路位置坐标,是在地图上借助图形来识别和解释的,而在计算机中,则按照拓扑结构加以定义;而其属性特征有道路名称、道路距离、交通流量等等. 在实际工作中,尽管已拥有了空间数据,关键还要建立起空间数据结构.地理网络数据结构使用的是“弧段和结点”的数据结构,该数据结构乃是建立在图论的基础上的,即将地理网络表现为“由线串联而成的点群”,如今,一般向量式GIS均采用这种数据结构.在此结构下,结点可用来定义弧段之间的连接关系.在地理网络中,由于大多数弧段与弧段之间的交点是具有拓扑性的交点,因而由此建立起来的地理网络具有明显的拓扑特征.另外,由于拓扑结构是明确定义空间结构关系的一种数学方法,因此在GIS中,它不但用于空间数据的组织,而且在空间分析和应用中都具有重要的意义.一般具有了拓扑结构,就可以很快地确定一种地理实体相对于另一种地理实体的空间位置关系.由此可见,具有拓扑结构也是进行网络分析的必要条件. 对于网络数据的存储,传统的是采用图论中的邻接矩阵方法,其存储量为N×N(N为网络中结点数).通常的地理网络,尽管结点很多,但与结点相关联的结点数目并不多,一般都为稀疏图,这样,该存储方法将浪费大量的空间,而且在计算时亦要花费大量的时间遍历无意义的数据,故本文采用了邻接表的链式存储结构,其存储量为E(E为结点列表中,同结点关联的所有弧段数目),一般用邻接表表示图比用邻接矩阵法能节省大量的存储空间,尤其是在表示与结点和边相关信息较多的地理网络时. 1.2 基于最短路径的搜索方法 在最短路径算法中,是利用了以下性质,即两结点间的最短路径包含了其内部其它的最短路径,而算法实现的主要技术是松弛技术,而这种技术的实质是反复减小每个结点实际路径权值的上限,直到该上限等于最短路径的权值为止.在图论中,最短路径的求法采用了同图的宽度优先搜索方法类似的思想,如Dijkstra就提出了按路径长度递增的次序来产生最短路径的算法. 此算法(设网中权值均为非负)首先是把网中的所有顶点分成两个集合,即一个是将以StartPoint为源点的已经确定了最短路径的所有终点都并入S集合,S集合的初态应只包含StartPoint;另一个集合T则是尚未确定最短路径的顶点的集合,T集合的初态则包含除源点StartPoint外的网中所有顶点,然后按各顶点与源点StartPoint间的最短路径长度递增的次序,来设置优先级队列Q,再通过优先级队列Q的相应操作,逐个把T集合中的顶点加入到S集合中去,并使得从StartPoint到S集合中各顶点的路径长度始终不大于从StartPoint到集合T中各顶点的路径长度. 1.3 shctorpothtee最短路径计算 这里要实现的最短路径属于单源最短路径的问题.其实现过程如下: 输入:网络中进行路径分析的两个结点StartPoint,EndPoint; 输出:两个结点StartPoint,EndPoint之间的最短路径树(ShortPathTree),即最短路径; 实现步骤为: (1) 选择要进行计算的StartPoint和EndPoint两个结点; (2) 对StartPoint和EndPoint两个结点进行连通分析,即采用宽度优先搜索方法,来快速判断这两个结点之间是否连通,也就是确定是否存在计算最短路径

文档评论(0)

lgjllzx + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档