immajm

 

地铁路线最短路径——需求分析

主要功能

1.实现任意两站最短乘坐路线的查询

2.支持查询各条路线包含的各个站点

3.为路线规划提供便利

  • 以北京地铁为例,提供"地铁线路信息.txt"为数据文件,包含了北京地铁的所有线路及所有车站信息。
地铁线路总数
线路名1 站名1 站名2 站名3 ...
线路名2 站名1 站名2 站名3 ...
线路名3 站名1 站名2 站名3 ...
...
  • 输出包括最短路径、换乘线路、所经站点
输入起点:牡丹园
输入终点:鼓楼大街
输出:
从牡丹园到鼓楼大街共5站
10号线
牡丹园 健德门 北土城
->8号线
北土城 安华桥 安德里北街 鼓楼大街

实现语言

​ Java

实现算法

​ 地铁路线的最短路径相当于计算图中两点最短距离,常用的方法有BFS,Dijkstra,Floyd等。
为简化分析,我们将忽略站点间的距离及发车时间等信息,做等距离处理,将有权图变为无权图,在此基础上进行分析,Dijkstra将退化为BFS。由于Floyd复杂度高,且只适用于少顶点的情况,并不适用。最终采用BFS的方法进行计算。

​ 为了提高效率,采用A*算法对周围站点进行优先级分析,并找到最佳路径。

posted on 2020-10-21 22:15  immajm  阅读(153)  评论(1编辑  收藏  举报

导航