- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于空间分布特征优化的最短路径算法研究
刘作才
(无锡市城市规划信息屮心)
【摘 要】 地理信息系统中的空间网络分析有最短路径分析、资源分配分析、等时性 分析等等,而最短路径分析是英屮关键的环节,因而对其算法进行优化很有必要,为此在传 统的最短路径算法,即Dijkstra算法的基础上,从网络结构的空间分布以及搜索区域限制的 实现出发,实现了一种基于空间分布特征与搜索缓冲区相结合的优化的Dijkstra垠短路径算 法的高效实现方法。
【关键词】垠短路径算法Dijkstra;网络分析;搜索缓冲区
0引言
路径规划是车辆监控调度系统的一个基本功能,它为监控调度系统中的所有 车辆提供基于距离、旅行时间、旅行速度、转弯阻抗、交通灯延迟以及动态交通 信息等因素的最短距离路线、最短时间路线以及最低花费等最优路线。各种最优 路线的算法本质是相同的,区别仅在丁选择不同的旅行费用函数,如果选择距离 为旅行费用,则规划的为距离最短路线,具基础是基于最短距离算法。在交通网 络中,将道路交叉路口抽象为图的顶点,路段抽象为图的边,边的权可以表示路 段的长度、旅行时间以及交通费用等,这样交通网络就抽彖为一个图(在这里以 有向图来表示),可以利用有关图论中的最短路径的算法求解交通网络屮的最短 路径了。但是交通网络图除具有一般数学屮的抽象图的特性外,还有其特有的属 性:
在交通网络图中,各顶点出度较少,一般在2至5Z间,也就是说如果 用邻接矩阵来表示交通网络吋,具为稀疏矩阵;
在交通网络图中,各顶点和各边与交通信息和交通规则密切相关,并且 具有很强的时态特征。如路段分时段禁止通行、路口分时段禁止转弯,以及交通 灯延迟的影响;
交通网络图具有很强的空间分布特征和方位特征;
交通网络图是非负权网路。
在图论、运筹学中,提出了许多求解最短路径的算法,如迪杰斯特拉 (Dijkstra).弗洛伊德(用。皿)、矩阵算法及动态规划算法等。这些算法虽然充分 考虑了抽象网络的拓扑关系,但是忽略了实际的城市交通网络的空间分布特性、 方位特性、时态特性以及网络的稀疏性°本章正是从交通网络的特性出发,构造 了基于交通网络的空间分布特征的限制搜索空间的改进Dijkstra算法。
1迪杰斯特拉(Dijkstra )算法的基本思想
Dijkstra算法是冃前公认的求解单源点的最短路径问题的最好算法,它采用贪 心策略,即在每一步都选择一个局部最优解以期望产生一个全局最优解。
在Dijkstra算法中,给定一个有向图G(E,V),用邻接矩阵cos才记录节点间 的关联信息,其屮cosr(z, j)表示弧段 <气?,匕 > 上的权值。如呆弧段v*,y>不存 在,则置cosr(z, J)为8。
Dijkstra是按路径长度递增的次序产生最短路径的。引入辅助向量也“,它 的每个分量d3(i)表示当前找到的从起始点卩到每个终点*的最短路径的路程长 度。它的初始状态是当卩到儿?有边时,山⑴为边上的权值,否则置加()为co。 显然从u出发长度最短的一条路径的长度为:
disKj) = Min 仙W) I v,- g v}
I
再假设长度次短的最短路径的终点是以,则这条路径或者是V*坯〉,或者是
V,V?,vk C它的长度或者是从到仪的权值,或者是加心)和从匕?到冬的边上 的权值Z和。
记S为已求得最短路径的终点的集合,则下一条最短路径(设其终点为气?)
或者是边 〉(如果边 W,〉存在),或者是中间点只经过S中的顶点而最
后到达匕的路径。这一结论可以用反证法来证明。假设这条路径上有一个顶点不 在S中,则说明存在一条路径终点不在S而长度比此路径短的路径,但实际是按 路径长度递增的次序产生最短路径的,因此长度比此路径短的所有路径均已产 生,它们的终点必在S中,原假设不成立。因此下一?条长度次短的最短路径必是 dist(j) = Min[dist(i) I vz g V - S} o 根据上述分析,Dijkstra 算法描述如 T:
i
1.初始化 dist(i)和 S,即 = cos『(〃)(*),i), S —v ;
2 ? 选择 Vj,使 disl(j) = Min{dist(i) I vi eV -S};
修改从卩出发到集合U-S上的任一顶点坯的最短路径的长度。即若
dist(j) + cosf(J,Zr) disf(k),则令 dist(k) = dist(j) + cos;
4?重复2、3步共1次。求得的从卩到网络其余各顶点的最短路径是按路 径长度递增的序列。
2基于空间分布特征的改进 Dijkstra 算法
用Dijkstra算法解决交通网络中的最短路径问题时,存在以下儿点不足:
一个城市的交通网络中节点数冃较多而连通度却不高,当采用邻接矩阵 表示时会占用大量的内存空间而同时却保存了大量的无用
文档评论(0)