公交线路的查询方法、装置、终端设备及可读存储介质与流程

文档序号:17601952发布日期:2019-05-07 20:24阅读:150来源:国知局
公交线路的查询方法、装置、终端设备及可读存储介质与流程

本发明涉及信息处理技术领域,尤其涉及一种公交线路的查询方法、装置、终端设备及可读存储介质。



背景技术:

随着经济的发展,城市化的加速,特大型城市人口越来越多,城市规模越来越大,使得市民必须依靠交通工具才能方便出行。通过对市民的广泛调查发现,借助公交和地铁出行是人们的首选。因此,为了方便用户在外出时查询公交、地铁线路,智能公交查询系统成为研究的热点。

目前推出的各种智能公交查询系统,在为乘客推荐乘车方案时,通常只考虑了乘客乘车时间最少或者换乘次数最少的乘车方案,而没有考虑设备终端在执行公交查询时使用内存空间过大的问题,现有的智能公交查询系统在查询时存在将矩阵导入内存的过程,将矩阵导入内存需要花费时间,也消耗了大量内存空间,无法为用户带来更加舒适的体验。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供了一种公交线路查询方法、装置、终端设备及可读存储介质,旨在解决现有技术中矩阵导入所占用的大量内存空间以及消耗大量的时间的技术问题。

为实现上述目的,本发明提供了一种公交线路查询方法,所述方法包括以下步骤:

响应于用户输入的公交线路查询指令,从所述公交线路查询指令中提取起始站点和目标站点;

从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度;

将所述起始站点到所述目标站点的最短路径作为待选线路方案;

从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。

优选地,所述从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,具体包括:

利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

优选地,所述利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度之前,所述公交线路查询方法还包括:

将预设站点矩阵导入所述预设外存中,所述预设站点矩阵中存有各个站点之间的路径长度;

所述利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,具体包括:

利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

优选地,所述预设站点矩阵为n×n的矩阵;

利用预设元素定位读取算法通过下式从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,

d=[(i-1)n+j-1]size,

其中,size为所述预设站点矩阵中每个元素的空间大小,i为所述预设站点矩阵的行元素,j为所述预设站点矩阵的列元素,d为所述最短路径长度。

优选地,如权利要求1所述的公交线路查询方法,其特征在于,所述利用迪杰特斯拉算法,将所述起始站点到所述目标站点的最短路径作为待选线路方案,具体包括:

利用所述迪杰特斯拉算法,从所述预设外存中查找所述起始站点到所述目标站点之间所有最短路径,循环计算从所述起始站点到所述各中间站点的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

优选地,所述利用弗洛伊德算法,将所述起始站点到所述目标站点的最短路径作为待选线路方案,具体包括:

利用所述弗洛伊德算法,遍历所述起始站点到所述目标站点中所有站点之间的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

优选地,所述从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示,具体包括:

将总路径长度最短的待选线路方案作为最优线路方案,并将所述最优线路方案展示。

此外,为实现上述目的,本发明还提出一种公交线路查询装置,所述装置包括:

获取模块,用于响应于用户触发的线路查询指令,获取用户输入的起始站点和目标站点;

查找模块,用于从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度;

确定模块,用于将所述起始站点到所述目标站点的最短路径作为最优线路方案;

展示模块,用于从所述最优线路方案中选取至少一个最优线路方案,并将选取的最优线路方案展示。

此外,为实现上述目的,本发明还提出一种一种终端设备,所述终端设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的公交线路的查询程序,所述公交线路的查询程序配置为实现所述公交线路的查询方法的步骤。

此外,为实现上述目的,本发明还提出一种可读存储介质,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有公交线路的查询程序,所述公交线路的查询程序被处理器执行时实现所述公交线路的查询方法的步骤。

本发明公开了一种公交线路的查询方法、装置、终端设备及可读存储介质。本发明首先响应用户的公交线路查询指令,提取公交线路查询指令中的起始站点和目标站点,然后从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,再将所述起始站点到所述目标站点的最短路径作为待选线路方案,最后从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。本发明将预设站点矩阵存放在预设外存中,不需要将矩阵导入内存中,节省了大量内存空间,同时也省去了存入内存需要消耗的时间,大大提升了用户体验。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图;

图2为本发明公交线路查询方法第一实施例的流程示意图;

图3为本发明公交线路查询方法第二实施例的流程示意图;

图4为本发明公交线路的查询装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备的结构示意图。

如图1所示,该终端设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、触摸屏(touchscreen),输入单元比如键盘(keyboard)、鼠标(mouse),可选地,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,在实际应用中终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

因此,如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及公交线路的查询程序。

在图1所示的终端设备中,网络接口1004主要用用于建立终端设备与存储智能公交查询系统中所需的所有数据的服务器的通信连接;用户接口1003主要用于与用户进行数据交互;所述终端设备通过处理器1001调用存储器1005中存储的公交线路的查询程序,并执行以下操作:

响应于用户输入的公交线路查询指令,从所述公交线路查询指令中提取起始站点和目标站点;

从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度;

将所述起始站点到所述目标站点的最短路径作为待选线路方案;

从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

将预设站点矩阵导入所述预设外存中,所述预设站点矩阵中存有各个站点之间的路径长度;

所述利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,具体包括:

利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

利用预设元素定位读取算法通过下式从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,

d=[(i-1)n+j-1]size,

其中,size为所述预设站点矩阵中每个元素的空间大小,i为所述预设站点矩阵的行元素,j为所述预设站点矩阵的列元素,d为所述最短路径长度。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

利用所述迪杰特斯拉算法,从所述预设外存中查找所述起始站点到所述目标站点之间所有最短路径,循环计算从所述起始站点到所述各中间站点的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

利用所述弗洛伊德算法,遍历所述起始站点到所述目标站点中所有站点之间的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

进一步地,处理器1001可以调用存储器1005中存储的公交线路的查询程序,还执行以下操作:

将总路径长度最短的待选线路方案作为最优线路方案,并将所述最优线路方案展示。

本实施通过上述方案,利用元素定位读取算法从预设外存中的预设站点矩阵中查找出起始站点到目标站点的线路中各中间站点之间的最短路径长度,然后基于迪杰特斯拉算法或者弗洛伊德算法对各中间站点之间的最短路径进行筛选,将选出的最短路径作为待选路径方案,将总路径长度最短的待选线路方案作为最优线路方案,本发明将预设站点矩阵存放在预设外存中,不需要将矩阵导入内存中,节省了大量内存空间,同时也省去了存入内存需要消耗的时间,大大提升了用户体验。

基于上述硬件结构,提出本发明公交线路的查询方法实施例。

参照图2,图2为本发明公交线路的查询方法第一实施例的流程示意图。

在第一实施例中,所述公交线路的查询方法包括以下步骤:

s10:响应于用户输入的公交线路查询指令,从所述公交线路查询指令中提取起始站点和目标站点。

可理解的是,为便于使用户输入公交线路查询指令,本实施例中,用户可通过触摸设备屏幕或者鼠标选择公交线路的起始站点和目标站点,在公交线路查询系统收到确认指令后,从公交线路查询系统中提取起始站点和目标站点。

s20:从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度。

相应地,本实施例中所说的预设外存中存储有站点直达矩阵或者路由矩阵,而站点直达矩阵或者路由矩阵中存储的则是所述起始站点到所述目标站点所有站点之间的距离。

应当理解的是,在具体实施例中,任意两个站点,比如站点a和站点b,如果存在线路l均经过这两个站点,则称这两个站点是可互相直达的,否则不可直达。通过研究发现,在具体应用中满足同时经过站点a和站点b条件的线路往往不止一条,因此通过将站点a和站点b之间所有能够给直达的线路构建而成的矩阵,便是站点直达矩阵,而通过将站点a和站点b之间所有能够给直达的线路最短的便是最少站点直达矩阵。

应当理解的是,在具体实施例中,随着光传输通道的发展,当路由器容量不够用时,最好的办法就是每当路由器的容量出现短缺时,就叠加一台新的路由器,如此不断扩展下去,让路由器自己慢慢长大。这样就免去了转移数据带来的时间上的消耗。因此,当路由器容量出现短缺时,在原路由器的基础上叠加一台新路由器来扩大路由器容量的方法便是路由矩阵。

此外,在具体实施例中,本实施例是利用预设元素定位读取算法从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

即,上述从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度具体包括:

利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

为了方便理解,以下对利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度进行具体说明:

在具体实现中,假设用户要查询起始站点到目标站点的最短路径,则起始站点要找到可以到达目标站点的中间站点,通过预设元素定位算法在预设外存中查找到起始站点和目标站点后,预设外存会展示起始站点到目标站点之间的所有的中间站点,此时预设元素定位读取算法会查找路径最短的中间站点。相比较于传统方法,利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度可以更加准确的查找到所需要的元素,在查找元素时也无需从内存中查找,而是直接从外存中查找,节省了内存,同时也减少了时间的消耗。

s30:将所述起始站点到所述目标站点的最短路径作为待选线路方案。

应当理解的是,在步骤s20中利用预设元素定位算法,已经从预设外存中查找到了起始站点到目标站点中各站点之间的最短路径,因此,在步骤s30中,直接选用迪杰特斯拉算法或者弗洛伊德算法来确定起始站点到目标站点的最短路径,从而可以大大减少对内存的消耗,提升查询速度。

此外,在具体实现中,基于迪杰特斯拉算法或者弗洛伊德算法,都是通过比较起始站点到目标站点中各站点间的最短路径,筛选出从起始站点到目标站点的最短路径。

应当理解的是,在具体实施例中,假设起始站点与目标站点之间的中间站点分别为a、b、c和d,基于迪杰特斯拉算法或者弗洛伊德算法得到起始站点到目标站点中各站点间的最短路径的步骤为,起始站点首先找到到达中间站点a的最短路径,然后找到中间站点a到中间站点b的最短路劲,若是起始站到有直达中间站点b的最短路径则将此路径与起始站点经过站点a到站点b的路径比较,选取路径最短的线路,确定起始站点到b的最短路径后,再次查找到中间站点c、中间站点d和目标站点的最短路径,用相同的方法先查找有没有直达的线路,如果有就将直达线路路径与经过中间站点的线路路径比较,选取线路距离短的为最短路径方案,直到确定起始站点到目标站点的最短路径方案。

s40:从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。

应当理解的是,在具体实施例中,设备终端中的公交线路查询系统会从起始站点到目标站点的线路方案中筛选一条站点最少路径最短的线路方案展示在系统上。

为了更好的理解本发明提供的预设元素定位读取算法,以下进行具体说明:

为了方便叙述,先对需要用到的符合进行如下约定:

1)vi表示起始站点,s表示从起始站点vi出发的能够直达的任意站点的集合。

2)矩阵c=(cij)n×n表示最少站点直达矩阵,n×n表示该矩阵为一个n行n列的矩阵,n的取值大于等于1。如果从始站点vi到终站点vj能够直达,则cij表示直达所经过的最少站点数;否则,cij=∞。

3)路由矩阵r=(rij)n×n,rij表示从始站点vi到达终站点vj需要中转的站点,其中i,j=1,2,…,n。

4)行向量previ(i=1,2,…,n)存储站点vi的直达前驱。

5)行向量backi(i=1,2,…,n)存储站点vi的直达后继。

6)行向量disti(i=1,2,…,n)存储两个站点间的最短路径值。

7)行向量xi(i=1,2,…,n)作为临时存储空间。

为了便于描述,以下将本实施例中提供的公交线路的查询方法大致划分为利用预设元素定位读取算法查找各站点间的最短路径长度、利用迪杰特斯拉算法或者弗洛伊德算法计算出从起始站点到目标站点的最短路径两个部分,各部分的实现具体如下:

1、利用预设元素定位读取算法查找各站点间的最短路径长度

假设矩阵文件中每个元素的空间大小均为size,则一个n行n列文件矩阵中第i行第j列元素距离1行第1列元素的偏移量为[(i-1)n+j-1]size。如果想使用最少站点直达矩阵中第i行第j列元素,则可以来自于cij,也可以从文件中偏移量为[(i-1)n+j-1]size的位置直接读取。同样,如果想使用路由矩阵中第i行第j列元素,则可以来自于rij,也可以从文件中偏移量为[(i-1)n+j-1]size的位置直接读取。如果想使用cij或rij,则首先需要将最少站点直达矩阵或路由矩阵先导入内存。否则,通过元素位置定址法直接读取该元素。比如,从文件矩阵中首地址为[(i-1)n+j-1]size的地方读取第i行第j列元素。

以上的预设元素定位读取算法只能查找起始站点vi到目标站点vj中各站点之间的最短路径,而不能查找出起始站点vi到目标站点vj的最短路径。因此,需要进一步用迪杰特斯拉算法或者弗洛伊德算法计算出从起始站点到目标站点的最短路径。

2、利用迪杰特斯拉算法计算出从起始站点到目标站点的最短路径

用传统的迪杰特斯拉算法进行公交线路查询的步骤如下:

(1)输入起点站begin和终点站end;

(2)将最少站点直达矩阵的内容导入内存矩阵c=(cij)n×n中;

(3)求站点begin到其他所有站点的最短路径,该过程循环执行:

1)初始化用行向量disti(i=1,2,…,n),使得disti=cbegin,i;

2)如果disti=∞,那么previ=0;否则,previ=begin;

3)初始化distbegin=0和sbegin=1;

4)使wm=∞和wm=∞。循环搜索wm=distu=min{disti|i∈{1,2,…,n}}

5)使su=1;对于i∈{1,2,…,n},如果distu+cu,i<disti,那么disti=distu+cu,i和previ=u;

6)如果u=end,则跳到步骤8);

7)循环执行步骤1)到步骤6);

8)设置栈指针top=0和stack0=end,使j=end,循环执行入栈操作j=prevj,top=top+1,stacktop=j,直到prevj=end;

9)通过出栈的方式显示从起始站点begin到终点站点的最短路径。

对传统的迪杰特斯拉算法进行改进,不再将最少站点直达矩阵的内容导入内存矩阵c=(cij)n×n中,而是直接从预设外存的矩阵文件中读取所需要的元素;

(1)输入起点站begin和终点站end;

(2)求站点begin到其他所有站点的最短路径,该过程循环执行:

1)从最少站点直达矩阵文件通过文件指针偏移量读取第begin行的数据x=x1x2…xn;

2)初始化用行向量disti(i=1,2,…,n),使得disti=xi;

3)如果disti=∞,那么previ=0;否则,previ=begin;

4)初始化distbegin=0和sbegin=1;

5)使wm=∞和wm=∞。循环搜索wm=distu=min{disti|i∈{1,2,…,n}};

6)使su=1;对于i∈{1,2,…,n},从最少站点直达矩阵的第u行第i列读取元素y。如果distu+y<disti,那么disti=distu+y和previ=u;

7)如果u=end,则跳到步骤8);

8)设置栈指针top=0和stack0=end,使j=end,循环执行入栈操作j=prevj,top=top+1,stacktop=j,直到prevj=end;

9)通过出栈的方式显示从起始站点begin到终点站点的最短路径。

3、利用弗洛伊德算法计算出从起始站点到目标站点的最短路径

用传统的弗洛伊德算法进行公交线路查询的步骤如下:

(1)输入起点站begin和终点站end;

(2)将路由矩阵文件的内容导入内存路由矩阵r=(rij)n×n中;

(3)通过执行路由矩阵搜索法的模块inorder(r,begin,end)得到最优路径。

其中,路由矩阵搜索法的模块inorder(r,i,j)功能定义如下:

如果rij≠0,则需要递归搜索线路的过程如下:

(1)k=rij;

(2)递归执行inorder(r,i,k);

(3)输出站点k;

(4)递归执行inorder(r,k,j);

对传统的迪杰特斯拉算法进行改进,进行公交线路查询的步骤如下:

(1)输入起点站begin和终点站end;

(2)通过执行路由矩阵搜索法的模块inorder(fp,begin,end)得到最优路径。

其中,fp是指向路由矩阵文件的指针,则路由矩阵搜索法的模块inorder(fp,i,j)功能定义如下:

(1)将文件指针定位在距离文件首的[(i-1)n+j-1]size;

(2)从路由矩阵文件的当前处读取元素k;

(3)如果k≠0,则需要递归搜索线路的过程如下:

1)递归执行inorder(r,i,k);

2)输出站点k;

3)递归执行inorder(r,k,j);

为了验证,基于上述公交线路的查询方法,能够根据用户输入的起始站点和目标站点,节省设备终端的内存空间,提高公交线路的查询速度,为用户提供乘车路线的方案,以下进行具体说明:

假设,已知某城市的公交系统中共有3957个站点,并且其公交线路均为已知。

通过上述的算法可知,对于迪杰特斯拉算法而言,改进前后表现在读取最少站点矩阵的不同。而对于弗洛伊德算法而言,改进前后表现在读取路由矩阵的不同。

因此,改进前后各算法所占用的内存空间如表1所示。

表1改进前后各算法所占用的内存空间

从表1可以发现,改进后的迪杰特斯拉算法或者弗洛伊德算法都能够节省大量的内存空间。

至于查询所用的时间,取决于查询的起点站和终点站。因此,只能从具体的查询过程来进行比较。

如果对迪杰特斯拉算法进行改进,则查询一些乘车时间最短的乘车方案所花费的时间如表2所示。

表2从始站点到终站点乘车时间最短乘车方案的迪杰特斯拉算法搜索时间

从表2可以看出,改进后的迪杰特斯拉算法搜索时间比未改进的迪杰特斯拉算法搜索时间减少一半还要多。

如果对弗洛伊德算法进行改进,则查询一些乘车时间最短的乘车方案所花费的时间如表3所示。

表3从始站点到终站点乘车时间最短乘车方案的弗洛伊德算法搜索时间

从表3可以看出,改进后的弗洛伊德算法搜索时间比未改进的弗洛伊德算法搜索时间要大幅减少,节省的查询时间十分明显。

需要说明的是,以上仅为举例说明,并不对本申请的技术方案构成任何限定。

通过上述描述不难发现,本实施例中提供的公交线路的查询方法,首先响应用户的公交线路查询指令,提取公交线路查询指令中的起始站点和目标站点,然后从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,再将所述起始站点到所述目标站点的最短路径作为待选线路方案,最后从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。本发明将预设站点矩阵存放在预设外存中,不需要将矩阵导入内存中,节省了大量内存空间,同时也省去了存入内存需要消耗的时间,大大提升了用户体验。

进一步地,如图3所示,基于第一实施例提出本发明乘车方案的推荐方法的第二实施例,在本实施例中,在响应于用户输入的公交线路查询指令,从所述公交线路查询指令中提取起始站点和目标站点后,提前将最少站点直达矩阵和路由矩阵导入预设外存中,以便需要时可以直接从预设外存中读取到所需要的数据,详见图3中的步骤s00。

为了便于理解,以下结合图3进行具体说明:

在步骤s00中:提取到用户输入的起始站点和目标站点,在查找起始站点到目标站点的最短路径前,会检查外存中是否已经存入了最少站点直达矩阵和路由矩阵的数据,若已经存入则进行s20'的步骤,若没有存入,则将最少站点直达矩阵和路由矩阵存入预设外存中,最少站点直达矩阵和路由矩阵包含有起始站点到目标站点中各站点之间的最短距离。将最少站点直达矩阵和路由矩阵导入预设外存中,用于避免在需要读取数据时,还需要将最少站点直达矩阵和路由矩阵导入内存的操作。

相应地,步骤s20替换为步骤s20':在需要起始站点到目标站点中各站点的数据时,利用预设元素定位读取法直接从预设外存中读取,首先在预设外存中定位出起始站点和目标站点的元素位置,然后定位出起始站点和目标站点中各站点的元素位置,查找到路径最短的中间站点。

此外,本发明实施例还提出一种公交线路的查询装置。如图4所示,该公交线路的查询装置包括:获取模块10、查找模块20、确定模块30、展示模块40。

其中,获取模块10,用于响应于用户触发的线路查询指令,获取用户输入的起始站点和目标站点。查找模块20,用于从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度。确定模块30,用于将所述起始站点到所述目标站点的最短路径作为最优线路方案。展示模块40,用于从所述最优线路方案中选取至少一个最优线路方案,并将选取的最优线路方案展示。

需要说明的是,本实施例中所说的预设外存,其中存储的主要是最少站点直达矩阵和路由矩阵。

通过上述描述不难发现,本实施例中提供的公交线路的查询装置,首先响应用户的公交线路查询指令,提取公交线路查询指令中的起始站点和目标站点,然后从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,再将所述起始站点到所述目标站点的最短路径作为待选线路方案,最后从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。本发明将预设站点矩阵存放在预设外存中,不需要将矩阵导入内存中,节省了大量内存空间,同时也省去了存入内存需要消耗的时间,大大提升了用户体验。

此外,需要说明的是,以上所描述的装置实施例仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的公交线路的查询方法,此处不再赘述。

此外,本发明实施例还提出一种可读存储介质,所述可读存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有公交线路的查询程序,所述公交线路的查询程序被处理器执行时实现如下操作:

响应于用户输入的公交线路查询指令,从所述公交线路查询指令中提取起始站点和目标站点;

从预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,所述预设外存中存储有各个站点之间的路径长度;

将所述起始站点到所述目标站点的最短路径作为待选线路方案;

从所述待选线路方案中选取最优线路方案,并将所述最优线路方案展示。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

将预设站点矩阵导入所述预设外存中,所述预设站点矩阵中存有各个站点之间的路径长度;

所述利用预设元素定位读取算法,从所述预设外存中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,具体包括:

利用预设元素定位读取算法,从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

利用预设元素定位读取算法通过下式从所述预设外存中的预设站点矩阵中查找所述起始站点到所述目标站点的线路中各中间站点之间的最短路径长度,

d=[(i-1)n+j-1]size,

其中,size为所述预设站点矩阵中每个元素的空间大小,i为所述预设站点矩阵的行元素,j为所述预设站点矩阵的列元素,d为所述最短路径长度。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

利用所述迪杰特斯拉算法,从所述预设外存中查找所述起始站点到所述目标站点之间所有最短路径,循环计算从所述起始站点到所述各中间站点的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

利用所述弗洛伊德算法,遍历所述起始站点到所述目标站点中所有站点之间的最短路径,将所述起始站点到所述目标站点的最短路径作为待选线路方案。

进一步地,所述公交线路的查询程序被处理器执行时还实现如下操作:

将总路径长度最短的待选线路方案作为最优线路方案,并将所述最优线路方案展示。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1