- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于公交网络的最短路径算法的分析及对比
基于公交网络的最短路径算法的分析及对比
基于公交网络的最短路径算法的分析及对比
鉴于公交网络地最短路径算法地剖析及对照
纲要:路径剖析是 gis 最基当地剖析功能 , 在公交网络方面有着
宽泛地应用 . 而最短路径剖析是地理信息系统 (gis 中网络剖析地
一项重要功能.等价于图论中地节点间求解最短路径问题 . 在 gis 应用地各个方面都有着很重要地地位 . 关于最短路径地研究也向来没有停止 . 对地理网络进行地理剖析和建模.实现最短路径算法已经有大批论文议论 , 可是特意针对公交网络地最短路径算法例鲜有研究 . 本文在总结公交网络特色地基础上 , 引入了“找寻”算法来计算公共交通系统地最优路径 . 最后用一个简化地例子来说了然这类算法地算法流程 , 对这类算法以及经典地 dijstra 算法做了几点比较 , 不论在空间复杂度仍是时间复杂度方面都优于 dijstra 算法 .
重点词:公交网络最短路径 dijkstra 算法“找寻”算法
前言
找寻两极点间地最短路径地算法好多 , 目前应用最宽泛地算法是
迪杰斯特拉 1959 年提出地 dijkstra 算法 . 它不单可求出从始点到
终点地最短路径 , 并且最后获得地其实是始点到各极点地最短路
径[1]. 该算法直观、靠谱 , 是在严格鉴于图论地条件下提出地 , 拥有很好地合用性 . 但在实质应用中该算法存在数据冗余许多、时间复杂度较大等不尽善尽美地方面 , 为了提升运算速度和节俭对内存地开支 , 人们研究提出了多种改进举措 , 如鉴于 dijkstra 算法地优化算法—毗邻结点算法 [2] 等, 但当算法应用到详细领域地最短路径搜寻时 , 还应当考虑到实质网络地特色对算法进行改进和优化
[3].
所以 , 将现阶段应用最宽泛地最短路径算法在公交网络地背景下
做一下对照和剖析 , 进而经过研究和商讨 , 找出合用于公交网络背
景下地最短路径算法是拥有实质意义和应用价值地 . 本文就是在公
交网络地背景下对照和剖析了几种最短路径算法地特色 , 最后找到
了合用算法 .
1 对 dijkstra 算法地限制性剖析
对公交线路来说 ,dijkstra 算法所采纳地数据构造及其实现方法整体上说是比较复杂地 , 难以对付公交线路地网络拓扑中地复杂性 . 主要表现以下:
①数据构造复杂 . 公交线路网络很难用现有地数据构造加以完好地表示 . 假如采纳现有算法剖析 , 其成立地公交线路网络地数据构造模型将特别复杂 . ②算法时间长 . 以 dijkstra 算法来计算公交路线最短路径 , 算法采纳地毗邻矩阵储存图地拓扑 . 一个有 n 个结点地图 , 算法需要成立一个 n*n 地地矩阵 , 用以储存结点之间地弧段地权值 . 其时间复杂度达到了 o(n . 事实上 , 在实质地网络中 , 结点地最大出度都不会超出 10 个, 绝大部分地结点地连通都在 2 到 6 之间 . 设网络中结点地最大毗邻点数为 m,则每个结点只与网络中所
有 n 个结点中地最多 m个连通 . 矩阵中其余地 n-m个单元都是不连通地 , 其权值为∞ . 网络结点 n 越大 , 则数据地冗余越大 . 当 n 很大时, 即 nm,会有:
(n-m*nm*n
很显然 , 在大数据量地状况下 , 计算速度会慢得让人难以忍耐 . 而
系统设计中要求公交转车地查问一定在较短地时间内达成 .
所以有必需使用一种改进算法 , 能够改进数据地冗余 , 降低系统
资源地耗费 , 提升算法地运转速度 , 同时尽可能地保持数据构造地
直观性 . 于是引进 dijkstra 算法地优化算法—找寻算法 .
“找寻”算法
2.1 “找寻”算法地基本思想
“找寻”算法是综合应用了链表构造和广度优先搜寻算法地一
种近似于“点扩散”地算法 , 该算法从指定点开始渐渐延伸到周边
毗邻点 , 直至找到另一指定点为止 , 所以该算法被形象地称之为
“找寻” .
2.2 “找寻”算法地实现
算法实现步骤
①创立三个数组 , 分别记录从 di 到其余各极点地最少换乘次数 , 最短路径中地前一个站点 id( 用来记录路径经过地极点 以及最短路径长度 ( “站地” . ②从毗邻表中读出和 di 有边相连结地全部结点 , 将这些结点 id 对应地 long+1.pro 设为 i,dist 设为两站之间直抵地最短距离 ( “站地” . 我们将这个从一个点出发对其余有
关系点地记录进行赋值地做法形象地称为“找寻” . ③假如 dist 中 dj 对应地址已经被赋值 , 那么算法结束 . ④对全部 long 值为 1 地站点 , 都重复②地过程 , 可是只对三个数组没有赋值过地进行 . ⑤ 重复步骤③ . ⑥重复步骤④以及
文档评论(0)