论文导读:目前长三角是世界第六大城市群。提出了基于分层模式的交通网络模型。交通网络的结构设计。而城际线路相对来说比较少且一般比较固定。分层模式,长三角交通查询系统的设计。
目前长三角是世界第六大城市群,该城市群具有面向海洋,依托长江、内陆交通发达的区位,使得该地区商品经济发达,工业基础雄厚,外向型经济发达,城市与城市之间来往的人员也越来越多。到2010年,沪宁、沪杭和宁杭三条高速高路,已形成三小时快速交通圈,串联起长三角区域的三个中心城市(上海,南京,杭州),2010年7月和10月分别通车的沪宁、沪杭高铁更使得长三角城市崛起为一小时城市群,统称效应更加明显,在上海上班,在苏州、无锡安家这已经称为了现实,车流人流快速增长,基于如此高的流动性,提出长三角交通查询系统是非常必要的。
(一)与普通公交查询系统的区别
目前大部分公交查询系统存在一些考虑不周到的情况:
1.提供信息不全。目前的公交查询系统一般是输入起始站点和目的站点,查询得到的结果一般是“公交线路+中转站点+公交线路+…”,没有说明公交线路的始发时间、收班时间和发车间隔等信息,而这些信息对于一位不熟悉路线的旅客来说是非常有必要的。而本人所设计的系统则很好的将这些信息提供给旅客,给旅客更多信息的参考。
2.只是提供市内公交系统的查询。本文所设计的系统可以查询长三角城市任意两站点之间的转乘方案,并且把轨道交通和快速公交(BRT)也考虑在内。本人把公交、轨道交通、BRT统称公交。
3.本文所设计的系统将城市之间交通中的火车和长途汽车的所有班车信息(包括始发时间、达到时间、班次、票价等)提供给旅客。
(二)交通网络的结构设计
1.交通网络分层
长三角城市之间的公路交通网络主要有沪宁、沪杭、宁杭三条高速公路,以及京沪、苏嘉杭、沿江等高速公路为补充;铁路交通网络主要有沪宁铁路、沪杭铁路。而每个城市的市内交通包括了轨道交通、公交、快速公交(BRT)等。论文检测,分层模式。论文检测,分层模式。
考虑到交通网络里绝大部分线路是运行于城市内的交通线路,而城际线路相对来说比较少且一般比较固定,因此将网络系统分成两层:城际交通网络和市内交通网络。
图1和图2描述了长三角主要城市之间部分高速公路网络和铁路网络,在这里将每个城市抽象为一个节点,每个节点之间通过城际交通线路连接起来,组成一张无向图;而每个城市的市内交通中,将每个站点抽象成一个节点,个节点间通过公交线路连接起来,组成一张有向图(公交可能出现来回路线不同或环形路线的情况,所以是有向图)。
2.数据描述
对城际网络和市内网络分别进行数据的定义,它们的数据格式有所不同,见表1。在城际交通网络中,出行费用是旅客非常重要的参考依据,所以将费用放在数据格式中;而在市内交通中,公交线路的始发时间和终止时间是旅客非常重要的参考依据,而费用几乎都是相同的,所以市内交通将始发时间和终止时间放在数据格式中是很有必要的。在城际网络中,每个城市作为一个节点,而这个节点又决定了市内交通图,每个节点对应一张市内交通图。
城际交通网络和市内交通网络给出了各个公共交通的换乘关系。一般来说,2个城市之间任何两地的换乘次数不应该多于6次,包括2个城市市内的最多两次换乘,以及到长途车站(火车站)的两次换乘;而同一城市任何两地之间的换乘次数不应该多于两次。
在城际交通网络的城市节点中需要记录停靠站名称,目的是长三角的城市都有两个及两个以上的车站(包括火车站和长途汽车站),这样确定是哪一个停靠站后,就可以查询经过此停靠站的市内交通线路;城际线路的车票价格单独列出,可以查询任何两城市的价钱,因为火车一般需要经过多个站,旅客的上车站和下车站又是随机的;城际线路的停靠站,本文只列出长三角主要城市的站点;公交线路中将每一班公交车的始发时间和收班时间以及平均等待时间提供给旅客,让旅客作出更正确的选择。
(三)交通网络的分析
1.节点部分
节点包括了城市节点和公交车站节点,它们是网络中拾起或卸下资源的结点位置。在实际情况中,特别是公交站点的分布,同一条公交线路或多条公交线路所经历的公交站点是比较复杂的,它们的情况有很多种,下面针对一些常见的情况进行说明。
1)城市节点
城市节点主要记录了列车在此城市停靠的车站,把相同城市的不同车站(汽车站或火车站)抽象成一个点。例如上海火车站有上海站和上海南站,把这两个火车站抽象成一个城市节点“上海”。
2)公交车站节点
公交车站节点相对城市节点来说情况则复杂地多。
1)同一公交线路两个方向上的同名站点在不同的位置(见图3),将这两个站点抽象成一个节点(如图4)。论文检测,分层模式。
(2)不同线路的邻接站点的抽象比较复杂,下面以两条公交线路的情况来举例说明。
①站点地理位置完全相同,但站点名称不同(见图5)。
②两个站点地理位置不重合,但离开的比较近,比如步行3min就可以到达(见图6)。
可以将上述两种情况的不同站点抽象成一个站点(见图7),将这个站点命名为A=(a,w),其中a表示此站点的名称,w表示和a在w范围之内(可以是时间或距离)的任何一个点,w表示一个经验值,根据旅客的步行承受能力而定。
(3)如果出现旅客不知道站点叫什么名称,但知道站点周围标志建筑物,所以可以将这些相关因素和站点联系起来,把它们抽象成一个点。
2.线路部分
1)城际线路
城际线路的情况比较简单,一般都是单向的,所以可以将城际线路抽象成一条单向的线路。
2)市内线路
市内线路比较复杂,总的来说可以将它们分成三类。
(1)完全的双向公交线路,大部分公交线路上行线路下行线路是重复的,因而可以将这样的公交线路抽象成一条双向边连接各站点的线路,
(2)环型线路,一般城市里有部分公交线路是环型,如无锡105路线就是典型的环型公交线路,这种线路可以抽象成一个单向的环型。
(3)部分路段是单行线的线路,也就是有上行路线和下行路线之分,他们的路线大部分是重叠的,小部分是不一样的,这种线路可以抽象成部分路段是单向的,部分路段是双向的。论文检测,分层模式。
3.车票价格
车票价格主要是针对城际列车的票价,而公交和轨道交通的价格相对来说比较便宜且价格大多在2元以内,相对城际列车的票价可以忽略不计。考虑到长三角的城际列出特别多(包括货车和长途汽车),如果将每班列车每两站的价格表示出来,数据库相对来说就会加大。考虑到两城市之间的距离是固定的,认为相同类型的列车在两城市之间的票价应该是相同的。如D3009和D3031,两列车同为动车(即类型相同),从上海到南京(或南京到上海)的价钱应该是相同的。所以对城际列车的编号中应该有反映列车类型的编码。论文检测,分层模式。
(四)查询算法
1.站点说明
对于一个城市节点来说,它有可能包括几个站点,并且同一列车有可能经过一个城市的几个站点(如一般沪宁线上的动车都会经过南京站和南京西站),这两个站点虽然在同一个城市,但它们相隔的距离较远,所以城市站点本文认为是独立的站点,它们作为中转站的时候,不能将它们视为同一站点。而对于市内公交来说, 情况就完全不同,假设两条线路没有共同的站点,但有两站离得特别近(如有A站点和B站点,它们相隔X米,那么我们可以用A站点来表示B站点B=(A,X),反之也成立),那么这时可以将A和B站点看做是一个站点。
2.具体算法
本文中认为两城市之间的主要线路是长途汽车(火车)线路,不同的旅客他的需求是不一样的,所以提供给旅客两城市之间的交通线路的信息是非常必要的,这些信息应该包括列车的时间信息和费用信息等主要信息。旅客根据自己的需要选择特定的线路,由旅客所选的城际线路作为主线路来做具体的线路查询。具体算法如下:
1)旅客选择起始城市A和目的城市B,输入起始站点a和目的站点b,初始化city=A,flag=0,IsCheck=0。每个city对应一张市内地图,flag为1表示是城际查询,为0表示是市内查询,而IsCheck表示查询标志,0表示未查询,1表示已经查询。执行步骤2)。
2)比较A和B是否相同,相同则执行步骤4);否则设置flag=1,并执行步骤3);
3)旅客根据自己的约束条件(如时间小于1.5小时,费用小于70元等)查询所有满足约束条件的城际列车的信息,旅客根据自己的情况选择其中一条线路A_to_B(i);根据所选线路可以确定此城际线路所对应的公交站点和。执行步骤4)。
4)判断IsCheck的值,为1则执行步骤14);为0执行步骤5)。
5)判断flag的值,为0表示同城市之间的查询,设置BeginStation为a,设置EndStation为b,设置IsCheck为0,并执行步骤8);否则执行步骤6)。
6)判断city的值,为A表示查询的城市是A,使用城市A所对应的市内交通图,设置BeginStation为a,设置EndStation为,并执行步骤8);否则执行步骤7)。
7)判断city的值,为B表示查询的城市是B,使用城市B所对应的市内交通图,设置BeginStation为,设置EndStation为b,设置IsCheck为1,并执行步骤8);否则无需设置,直接执行步骤8)。
8)根据city的值查询对应的市内交通图,得到经过BeginStation的路线T1(i)(i表示线路编号),以及经过EndStation的路线T2(j),并执行步骤9)。
9)是否存在T1(i)=T2(j),存在则保存T1(i)线路,设置city的值为B,并执行步骤?;否则执行步骤10)。
10)经过线路T1(i)的站点S1(i,k)(k表示线路编号,而k表示车站编号)和经过T2(j)的站点S2(j,m),并执行步骤11)。
11)判断是否存在S1(i,k)= S2(j,m),存在则保存线路T1(i)、中转站S1(i,k)、线路T2(i),设置city的值为B,并执行步骤?;否则执行步骤12)。
12)找出经过站点S1(i,k)的线路T11(i),并找出它的其他站点ST(x,y),执行步骤13)。
13)判断是否存在ST(x,y)= S2(j,m),存在则保存线路T1(i)、中转站S1(i,k)、线路T11(i)、中转站ST(x,y)、线路T2(i),设置city的值为B,并执行步骤4);否则显示“没有换乘的路线”。
14)选择最优路线显示。论文检测,分层模式。
(五)总结
交通查询系统给现代人们提供了很多方便,而对于繁华的长三角城市群来说作用就更加显而易见了。本文针对普通的公交查询系统,提出了基于分层模式的交通网络模型,对长三角地区的交通网络进行统一管理,并设计了城际查询系统。此系统可以作为GSM移动通信系统的增值业务,让需要的人们可以通过发送短信请求来得到得到所需乘车路线。
参考文献:
[1]苏啸,曾子维.基于关联的城市公交换乘查询算法[J].计算机工程与设计,2006,27(3),519-521
[2]鲍江宏.基于矩阵运算的公交查询高效算法[J].计算机工程与应用,2008,44(10),198-200.
[3]汤筠筠,张代胜,陈朝阳.公交出行查询系统中出行路径选择模型的研究[J].合肥工业大学学报(自然科学版),2004,27(10).
[4]李旭华.公交线路网络分析关键技术研究[D].太原:中北大学,2005