本发明专利技术是一种基于自适应骨干网的快速公交选线算法,主要应用于城市的公交、地铁线路查询领域,能够解决现有的公交线路查询、选择算法不能支持多次换乘、查询时间过长的问题。本发明专利技术提出自适应骨干网构建技术,首先构建公交网络中的自适应骨干网,然后依次根据如下原则选择任意两个站点之间的可行线路组合:一、如果两个站点之间存在公交线路直达,那么可以不经过骨干网;二、如果这两个站点之间不存在直达的公交线路,就只能换乘,但必须在骨干站点进行换乘,同时使换乘次数尽可能少;三、在所有可行的线路组合中根据乘客不同的出行需求再选择最优的线路组合。
【技术实现步骤摘要】
为群众出行提供准确、及时、优化的公交线路信息服务是方便群众生活、提高公交线网的运行效率、提升城市形象的一项重要举措。要提供这种服务就必须设计合理的公交线路选择算法。公交线路是固定的,而人们要考虑的因素较多且各有偏重,比如最小换乘次数、距离、费用、时间等。鉴于此,该选择算法综合考虑各种因素,根据查询者的要求设计一套合理的出行计划,并提供各种因素下的最优方案以供选择。
技术介绍
文献论证指出乘客对公交线路的选择受多种因素影响,其中“换乘次数”是影响的首要因素。文献给出,1999年在南京市的8个主要公交站点进行了的一次《公交乘客出行心理》问卷调查(收回有效问卷440份),结果显示,41.16%的乘客在选择公交线路时首选考虑的是换乘最少,其次是路程最短。在鞍山、无锡进行的调查也得到类似的结果。文献分析指出,乘客在选择公交线路时不太注意费用问题和时间问题,因此可以认为,“换乘次数最少”是首选目标,“路程最短”、“费用最少”和“时间最短”三个影响因素的重要性依次下降。 目前国内使用的公交线路选择算法多数是Dijkstra算法和Floyd算法。Dijkstra算法是网络图中单源最短路径求解算法,Floyd算法是多源最短路径算法,实现任意两站点的公交线路选择需要的时间复杂度分别为O(|V|2)、O(|V|3),而且并不能满足“换乘次数最少”的首选目标,难以满足查询者的实际需求。同时,当站点数量很多,成千上万时,过高的时间复杂度也让查询时间与查询者希望的实时查询相差甚远。为了实现“换乘次数最少”的目标,目前还有使用改进的Dijkstra算法和Floyd算法,但只能支持一次换乘,若一次换成无法到达则查询失败。
技术实现思路
3.1名词解释 (1)公交线路网络城市的公交线路可以抽象成网络图——公交站点抽象成图中的结点,任意两个公交站点之间的各条公交线路抽象成这两个结点之间的有向边,记为G=(V,E),其中V是所有公变站点的集合,E是任意两个公交站点之间叫的有向公交线路的集合,L是所有公交线路的集合。 本说明书中的公交线路网络以北京市主城区的公交线路网络为例。 北京市主城区共计设有公交站点3957个(编号从0001至3957)、公交线路520条(编号从001至520),设vi表示编号为i的公交站点,lj表示编号为j的公交线路,则v={v1,v2,…,v3957},L={l1,l2,…,l520)。若站点vi和站点vj(i,j∈)位于公交线路lk(k∈)的上行线(或下行线)上,且vi的下一站点即为vj,则有向边(i,j)是图G的一条边。每条公交线路必然经过若干公交站点,每个公交站点必然在至少一条公交线路上,设经过站点vi的所有公交线路的集合为L(vi),经过站点vi的所有公交线路上的站点的集合为V(L(vi))。 (2)骨干站点和骨干网若站点vi满足L(vi)≥n(n∈N),则定义vin为“满足下界n的骨干站点”。设Vn={vin|i∈∧L(vi)≥n}是所有满足下界刀的骨干站点的集合,En是任意两个满足下界n的骨干站点之间的各条有向公交线路的集合,Ln是所有经过满足下界n的骨干站点的公交线路的集合。定义由满足下界n的骨干站点和这些骨干站点之间的各条有向公交线路组成的网络图为“n度骨干网”,记为Gn=(Vn,En)。由于n度骨干网Gn=(Vn,En)是公交线路网络G=V,E)的有向子图。 (3)“n度骨干网”的规模即“n度骨干网”包含的骨干站点数目。当骨干网的度n确定了之后,骨干网的规模也随之确定。 3.2符号表 V 所有公交站点的集合 Vi编号为i的公交站点 L 所有公交线路的集合 lj编号为j的公交线路 |A| 集合A的度数,A为公交站点的集合或公交线路的集合 V(A) A上所有公交站点的集合,A为公交线路或公交线路的集合 VB(A)A上所有骨干站点的集合,A为公交线路或公交线路的集合 L(vi)经过公交站点vi的公交线路的集合 vin 满足下界n的编号为i的骨干站点 Vn 所有满足下界n的骨干站点的集合 Ln 经过满足下界n的骨干站点的公交线路的集合 任意两个满足下界n的骨干站点之间的各条有向公交线路的 En 集合 vstart由查询者任意给出的起始站点 vend由查询者任意给出的目的站点 φ空集 3.3核心思想 为了解决多次换乘问题,引入了骨干网,这样做的好处是当输入规模很大时,能有效降低算法的时间复杂度,获得近似最优解。骨干网上的骨干站点总数较小,然而却覆盖了极大的公交线路,通过骨干站点进行换乘,能以较小的换乘次数以较大的概率达到目的站点。因此,本文的讨论中规定,换乘必须在骨干站点上实现。 如果不仅仅是公交线路网络,而是公交地铁混合线路,可以做如下抽象将地铁站点周围的公交站点都看作骨干站点,将地铁线路看作公交线路,这样就可以将重心放在公交线路网络上,使得算法具有更强的适应性。 虽然引入了骨干网来来从一定程度上代表公交地铁混合线路网,但是骨干网的规模应该多大呢?规模太小则不足以反映公交线路网的特点,规模太大则没有起到简化问题的作用。因此我们引入了自适应算法,它能够根据不同的输入,动态的控制骨干网的规模,例如当用户输入了一个较为偏僻的公交站点,则骨干网应该能够动态扩大;反之若用户输入的公交站点是骨干站点时,骨干网应该能够动态缩小。这样既能保证求解的全面性,又能保证求解的快速性。 3.4骨干网的可行性验证 骨干网是公交线路网的抽象,是解决问题的基础,因此它应该在最大程度上反映公交线路网的特点,能代表公交线路网。为此,我们要求一、骨干网应该能够覆盖绝大多数公交线路;二、在公交线路上可达的目的站点也应该以极大的概率在骨干网上可达,由于骨干网络是连通的,故骨干网络上的站点两两可达,因此可以认为以下公式成立 其中骨干线路指包含骨干站点的公交线路。 表1可行性验证 由表1可见,当|Vn|=335时(n=20),Ln=505,即仅仅占公交站点总数的8.47%的骨干站点,却覆盖了多达97.12%的公交线路,且任意两站点在骨干网上可达的概率高达96.25%。因此可以认为,骨干站点可以解决绝大多数的换乘问题。 3.5基于自适应骨干网的快速公交选线算法思想 本算法假设1、任何两个站点通过有限次换乘可达;2、换乘只能在骨干站点上实现。换乘站只能为骨干站点的限制可能导致得到的线路不是最优线路,但是考虑到实际情况,这却很可能是最优的,因为骨干站点都是十余条、数十条公交线路交汇的地区,也必然是人流密集的地区,对于陌生的查询者来说是便于记忆和识别的。 骨干网建立的方法有多种,可根据实际情况自由选择,下面给出两种建立方法 (1)自适应骨干网的建立算法基本思想当查询者任意给出起始站点vstart和目的站点vend后,首先根据vstart确定最大的u,使得vstart∈V(Lu),u也就是通过vstart的公交线路的条数。其次根据vend确定最大的v,使得vend∈V(Lv),v也就是通过vend的公交线路的条数。则骨干网的度n=min(u,v),然后可以通过骨干网的度n确定其规模。 (2)固定折中本文档来自技高网...
【技术保护点】
算法的基本思想本算法假设:1、任何两个站点通过有限次换乘可达;2、换乘只能在骨干站点上实现。换乘站只能为骨干站点的限制可能导致得到的线路不是最优线路,但是考虑到实际情况,这却很可能是最优的,因为骨干站点都是十余条、数十条公交线路交汇的地区,也必然是人流密集的地区,对于陌生的查询者来说是便于记忆和识别的。两种骨干网的建立方法如下:(1)自适应骨干网的建立算法基本思想:当查询者任意给出起始站点v↓[start]和目的站点v↓[end]后,首先根据v↓[start]确定最大的u,使得v↓[start]∈V(L↑[u]),u也就是通过v↓[start]的公交线路的条数。其次根据v↓[end]确定最大的v,使得v↓[end]∈V(L↑[v]),v也就是通过v↓[end]的公交线路的条数。则骨干网的度n=min(u,v),然后可以通过骨干网的度n确定其规模。(2)固定折中骨干网建立算法基本思想:骨干网的度n越大,则骨干网的规模越小,覆盖的公交线路越少;反之骨干网的度n越小,则骨干网的规模越大,覆盖的公交线路越多。为了提高求解的准确性,当然希望骨干网覆盖的公交线路越多越好,为了降低运算的复杂度,也就要求干网的规模越小越好。为了解决此矛盾,可采用折中的思想,定义y=n*x%,其中n为“n度骨干网”的度,x%是“n度骨干网”覆盖的公交线路条数占总公交线路条数的百分比(也可选择任意两站点在骨干网上可达的概率进行计算)。先求使得y值最大时的骨干网的度n,然后可以通过骨干网的度n确定其规模。基于骨干网的线路选择算法的基本思想是:查询者任意给出起始站点v↓[start]和目的站点v↓[end],首先计算L(v↓[start])和L(v↓[end]),判断L(v↓[start])∩L(v↓[end])是否为φ,若不为φ则说明v↓[start]和v↓[end]有公交线路直达,记录直达的公交线路;否则说明v↓[start]和v↓[end]没有公交线路直达,需要进行换乘。若v↓[start]和v↓[end]没有公交线路直达,进而考虑一次换乘的情况,计算经过站点v↓[start]的所有公交线路上的骨干站点的集合V↓[B](L(v↓[start]))和经过站点v↓[end]的所有公交线路上的骨干站点的集合V↓[B](L(v↓[end])),判断V↓[B](L(v↓[start]))∩V↓[B](L(v↓[end]))是否为φ,若不为φ则说明v↓[s...
【技术特征摘要】
【专利技术属性】
技术研发人员:常飞,王嘉寅,吴楠茜,
申请(专利权)人:西安交通大学,
类型:发明
国别省市:87[中国|西安]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。