一种公交线路换乘方法技术领域
本发明属于涉及交通信息领域,主要应用于在公众出行信息服务平台中传
递公交线路换乘确定方法。
背景技术
公共交通在现代都市中起着越来越重要的作用,是人们出行的首要选择。
但随着城市化进程的加快,公交半径进一步扩大,换乘成为公众乘车首要考虑
的因素。因此有必要建立一个快捷的公交线路换乘方案。
目前,公交查询系统主要采用Dijkstra的方法,从平面上利用距离来减少搜
索区域提高效率,但是在计算距离过程中,增加了计算开销。另外,Dijkstra方法
的前提是乘客在任何公交站台都考虑转车,实际上这样的乘车方案没有任何意
义。本发明从分析公共交通网络特性着手,建立了站点的公交网络通达矩阵,并
在其基础上设计了更加合理的换乘路线方法:换乘次数最少为首要条件,站数
最少为次要条件。
发明内容
本发明旨在克服现有技术缺陷,目的在于提供一种能够提高公交换乘效率
的方法。站站之间以“换乘次数最少为首要条件,站数最少为次要条件”的最
优乘车路线方法。该方法首先求出站站之间的换乘矩阵,然后根据换乘矩阵计
算得到经过站点的数目。
为实现上述目的,本发明采用的技术方案方向如下:
1)从站点入手,构造连通有向图,即把公交线路视为“边”,若两公交站点
中有共同线路就相连。从中选取与换乘次数、站点个数相关的最优乘车出行方
案;
2)在保证换乘次数相同的前提下经过的站点最少。
具体讲,本发明采用的技术方案是:
第一步、建立换乘矩阵得到最少换乘次数
把站点视为“节点”,把线路视为“边”,若两站点中有共同线路就相连,
构造连通有向图,记为G(V,E),式中V、E分别是G的节点集合和边集合。
然后利用图论理论对网络换乘进行分析,建立换乘矩阵H=(hmn),式中的m、n
属于V,hmn为从节点m到节点n的最少换乘次数。
对图1建立初始换乘矩阵。如果任意两个站点m、n之间可以直达,则hmn=
1,否则hmn=0。这样就可获得初始换乘矩阵H0(6×6)。如图2所示。
假设公交网络有q个站点。结合公交网络有向图的实际,可得换乘矩阵(q
×q)的方法如下:
①初始换乘矩阵H0:首先输入所有站点,如果任意两个站点m、n之间可以直
达,则hmn=1,否则hmn=0(m、n=1,2,…,q)。这样就可获得初始换乘矩阵
H0。
②一次换乘矩阵H1:初始换乘矩阵H0中若hmn=1则保持不变。对于H0中的任
一hmn=0,如果存在一个k(k=1,2,…,q),使得hmk=1且hkn=1,则hmn=2;
否则保持不变。对H0中的所有hmn进行上述运算,就可得到一次换乘矩阵H1。
如果H1中所有hmn≠0,则停止,否则继续下一步;
③二次换乘矩阵H2:一次换乘矩阵H1中的hmn若1≤hmn≤2则保持不变。对于
H1中的任一hmn=0,如果存在一个k,使得hmk=2且hkn=1,则hmn=3;否则保
持不变。对H1中的所有的hmn进行上述运算,就可得到二次换乘矩阵H2。如果
H2中所有hmn≠0或者H2=H1,则停止,否则继续下一步;
④n次换乘矩阵Hn:假设已得到n-1次换乘矩阵Hn-1,Hn-1中的hmn若1≤hmn≤
n-1则保持不变。如果Hn-1中的任一hmn=0,如果存在一个k,使得hmn=n且hkn=1,
则hmn=n+1;否则hmn=0保持不变。对Hn中的所有的hmn进行上述运算,就可得
到n次换乘矩阵Hn。如果Hn中所有hmn≠0或者Hn=Hn-1,则停止,否则继续下
一步。
为了便于对换乘次数理解,需要特别说明的是:0表示所对应的两站点不能
连通,非0元素减1表示两站点间实际的换乘次数。
图3为根据方法得到的最终换乘矩阵。也就是说图1代表的公交网络经过三
次矩阵运算就可以得到最终的换乘矩阵。在解决了换乘次数问题之后,下面的
方法就是解决在换乘次数相等的条件下站点数目的问题。
第二步、换乘次数相等条件下站点数目最少方法
对图3而言,
对任意两个站点m与n,分别选出所有经过站点m及站点n的线路,其中
经过站点m的所有线路集合记为Lm,经过站点n的所有线路集合记为Ln。
(1)直达车方法
若hmn=1,此时表示从m到n有直达车。对任意Li∈Lm∩Ln,若此时m,
n在这条线路中的位置分别为im,in,则经过的站点为Cnm=|in-im|。这样的Li有
r条,则统计r个Cnm。
(2)一次换乘方法
若hmn=2,此时必须转一次车才可以到达终点。对任意的k∈{1,2,…,q}∧
(k≠m)∧(k≠n),若存在这样的k,使得hmk=1且hkn=1,那么找出同时经过站点
m、k的线路集合Lmk(r1条),同时经过站点k、n的线路集合Lkn(r2条)。按
照直达车方法分别算出r1条站点m、k间的站数Ckm,r2条站点k、n间的站数
Cnk。
m、n间总站数Cnm=Cnk+Ckm,统计Cnm的值(最多个数为r1×r2)。
(3)n(n≥2)次换乘方法
若hmn=n+1,此时必须转n次车才可以到达终点。对任意的k∈{1,2,…,q
}∧(k≠m)∧(k≠n),若存在这样的k,使得hmk=n且hkn=1(hmk=1且hkn=n类
似),那么找出同时经过站点m、k的线路集合Lmk(r1条),同时经过站点k、n
的线路集合Lkn(r2条)。按照n-1次换乘方法算出r1条站点m、k间的站数Ckm,
按照直达车方法算出r2条站点k、n间的站数Cnk。
m、n间总站数Cnm=Cnk+Ckm,统计Cnm的值(最多个数为r1×r2)。同法可以
算出hmk=1且hkn=n时m、n间总站数Cnm,统计若干个Cnm的值。
在换乘次数相同的前提下,求出集合Cnm中最小的N个,则这N个结果对
应的N种线路组合便是站数较短的线路。
附图说明
图1是本发明第一步中一个简单的公交网络图;
图2是本发明第一步中初始换乘矩阵图;
图3是本发明第一步中三次换乘矩阵图;
图4是本发明效果分析中三种公交方法的路径搜索运行时间图;
图5是本发明效果分析中两种公交网络模型占用存储空间图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述,并非对其保护范
围的限制。
第二步、换乘次数相等条件下站点数目最少方法
对任意两个站点x与y,分别选出所有经过站点x及站点y的线路,其中经
过站点x的所有线路集合记为Mx,经过站点y的所有线路集合记为My。
1直达车方法
若Mx∩My≠Φ,则此时表示从x到y的直达车。对任意Li∈Mx∩My,
若
1.Li∈Mo(Mo表示单行线的集合),此时x,y在这条线路中的位置分别为ix,
iy。有以下两种情况:
(1)当ix>iy时,则说明此线路虽然直接连接了x与y,但运行方向是反向,
此条线路行不通;
(2)当ix<iy时,则计算ci=iy-ix。
2.Li∈Md(Md表示双行线的集合),则计算ci=|iy-ix|。
3.Li∈Ms(Ms表示环形线的集合),则存在如下两种情况:
(1)当ix>iy时,则计算ci=iy+p-ix(其中p为Li线路上总的站点数);
(2)当ix<iy时,则计算ci=iy-ix.
求出最少站点数cm=min{c1,c2,…},因此Lm便是最佳的乘车线路,并类似
地求出次佳的两条线路供用户参考选择。
2一次换乘方法
若Mx∩My=Φ,这时必须转车才可以到达终点,对任意的Li∈Mx,Lj∈
My,若H2(i,j)=1,则可行线路为Li+Lj。
假设共有r种可行线路,对上述可行线路取Li和Lj的第一个公共站点z,
则此时相当于从x到z有直达车Li,从z到y有直达车Lj,按照直达车方法分
别得站点数为ci和cj,用Cs表示从Li转到Lj的一次转车到达的总站数,则
有Cs=ci+cj,(s=1,2,3,...,r)
从{C1,C2,...,Cr}中选出最小的三个,与之对应的三种线路即推荐给用
户的三种最佳路线。
3两次换乘方法
若一次换乘方法结果为Φ,则此时至少要转两次车才可以到达终点,对任
意的Li∈Mx,Lj∈My,若H2(i,j)=2,从H2中求得k,使得H2(i,k)=1和
H2(k,j)=1,则线路Li+Lk+Lj便是一个可行线路的组合。
假设有r种这样的组合,类似一次转乘,求出Li和Lk的第一个交点e,Lk
与Lj的第一个交点f。这样就相当于从x到e有直达车Li,从e到f有直达车
Lk,从f到y有直达车Lj。
按照转一次换乘方法求出Li,Lk,Lj线路中相应的站点数ci,ck,cj。
按照Cs=ci+ck+cj(s=1,2,…,r)计算出二次转车各种可行线路组合要经
过的站点数,求出{C1,C2,...,Cr}中最小的三个,则这三个结果对应的三种
可行线路组合便是换乘两次时路程较短的线路。
方法比较、分析
本方法将对站点的搜索转化为对线路的搜索,从而将几千甚至上万个数据
的处理优化为对几百个数据的处理,大大缩短了运算时间。不仅如此,而且更
符合乘客的查询要求(线路)。经检验输入起点与终点,所得结果必为由起点到
终点的路径。在转车次数的限定条件下,大大缩小了求解最佳路线的运算量。
另外,由于公交线路很少变动的特点,在项目实施的过程中,可以将换乘矩阵
存储为一个静态的表供所有的查询代码公用,这样用来生成换乘矩阵的大量时
间就可以省去,使系统的实时性得到显著的提高。如果出现公交线路变动的情
况,只需要重新生成一个静态的换乘矩阵即可。
其次,模型也应用于多种交通工具并用的线路选择问题。如同时考虑公汽
与地铁线路,由于同一地铁站对应多个公交站点,则可将地铁线路视为一条连
通的公交汽车线,只需在数据处理时以“L”和“T”字头分别代表汽车和地铁
线,应用本方法同样可获得最优线路选择。
实验环境:WindowsXP操作系统、酷睿2双核(2.0G)CPU、4G内存的
笔记本。
1)运行时间对比分析
图4为Dijkstra方法、改进的A*方法和公交换乘方法三种方法对某公交网
络(500条公交线,3000个公交站点)的路径搜索运行时间结果。5次实验起点
和终点的距离越来越长,即分别穿越道路网络的约1/5、2/5、3/5、4/5和整个
道路网。
结论:
1.后两种方法与Dijkstra方法相比在时间上有明显优势。
2.当起点和终点穿越网络的范围变大时,前两种方法在运行时间上增加明
显,而公交换乘方法运行时间平稳。
2)占用存储空间对比分析
以公交线路为“节点”建立有向图和以公交站点为“节点”建立有向图两种公
交网络模型占用存储空间的对比如图5所示。
结论:以公交线路为“节点”建立有向图比以公交站点为“节点”建立有向图所
占用的存储空间要明显少很多。