CN109711633B - 一种基于MapReduce的公共交通出行路径规划索引方法 - Google Patents
一种基于MapReduce的公共交通出行路径规划索引方法 Download PDFInfo
- Publication number
- CN109711633B CN109711633B CN201811642741.4A CN201811642741A CN109711633B CN 109711633 B CN109711633 B CN 109711633B CN 201811642741 A CN201811642741 A CN 201811642741A CN 109711633 B CN109711633 B CN 109711633B
- Authority
- CN
- China
- Prior art keywords
- path
- vertex
- weak
- graph
- canonical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于MapReduce的公共交通出行路径规划索引方法,具体包括以下步骤:S1.确定时态图G的顶点集V上的全序关系,根据确定的顶点集V的全序关系对时态图G进行子图的划分;S2.对于划分的每个子图,分别使用MapReduce集群中的各个计算节点读取其分区数据,然后通过Map函数计算每个子图的弱规范路径,并将结果以映射形式保存在弱规范路径索引集I中;S3.使用Cleanup函数将弱规范路径索引集I中的每个映射转成键值对;S4.使用Reduce函数将键值对中键等于顶点vi且顶点vi是起点的映射加入集合Iout中,把键等于顶点vj且顶点vj是终点的映射加入集合Iin中,然后按照分布式时间路径索引的定义,对集合Iout和集合Iin中的映射进行排序,最后得到时态图G的分布式时间路径索引。
Description
技术领域
本发明涉及智能交通技术领域,更具体地,涉及一种基于MapReduce的公共交通出行路径规划索引方法。
背景技术
城市公共交通系统是现代化城市交通的重要组成部分,在当今城市社会生活中扮演着不可或缺的角色。使用公共交通工具的人们在出行前往往需要进行路线规划,繁忙的人们已经习惯了寻找公交站点、候车、坐车、换乘的出行方式,他们对于交通工具的选择越来越多,对于出行路线的选择也越来越多,对于出行的便利性需求越来越迫切,希望出行的时间更少一些,希望以更快速、更精准的方式完成出行目的。现已存在一些应用软件尝试帮助人们达到这样的出行目的,如百度地图和高德地图。然而,这些应用软件为用户规划出行路径时不考虑公共交通工具的时刻信息,用户在出行前无法从这些应用软件中知道在路径上到达每个站点的准确时间,即这些应用软件不考虑公交的时刻信息,给用户提供静态的路径规划。例如,广州地铁的乘客想查询从广州南站到广州塔站的地铁路线,这样的路线有很多条,当乘客想知道最早到达广州塔的路线时,由于静态的路径规划缺乏时间信息,无法知道乘客经过沿途每个站点的到达时刻和出发时刻,也无法为乘客提供最早达到广州塔的路线。同时由于静态的路径规划提供的路线是固定不变的,即使在地铁停运时间内也会为乘客提供不可行的路线,而无法识别哪些已经停运的地铁路线。出现以上问题的原因是因为静态的路径规划完全不考虑公共交通系统的时刻表信息,而这些时刻表信息是大量地存在于公交系统中的,许多地图应用软件没有利用这些信息,挖掘其中的价值。
针对传统的静态图及在其上进行静态路线规划的不足,Huanhuan Wu等人在VLDB2014上提出了时态图(Temporal Graph)的概念。公共交通网络可以看作时态图的一种应用,时态图比静态图有更强的表达能力和应用潜力,比如,带有时刻表信息的公共汽车、地铁、高铁、航班飞机等公共交通网络。不过,Huanhuan Wu等人给出的时态图上路线规划算法只能求出满足给定的单个时间区间和单个起点和终点的路径。Sibo Wang等人在SIGMOD2015上提出的TTL(Time Table Labelling)算法解决了已有算法的不足。该算法分为两个阶段:索引阶段和查询阶段。在索引阶段,TTL算法考虑了用户所有可能的出行时间和所有起点、终点,为每个可能的出行需求进行路径规划,并把路径规划的结果保存到索引中。在查询阶段,根据用户出行需求从索引中快速查询路径。不过,TTL算法索引建立时间往往较长,如SIGMOD论文实验结果所示在CPU为8核,内存为64G的服务器上,在Sweden数据集(约5万个顶点、400万条边)的索引时间就超过了16分钟。
针对TTL算法索引建立效率低的不足,本发明提出了一种基于MapReduce的公共交通出行路径规划索引方法。这种方法比TTL算法建立索引的效率更高,且索引查询性能与TTL算法相近。
要使用分布式计算框架MapReduce计算路径规划的解,其核心是实现最短路径的分布式计算方法。现已存在一些Dijkstra和Floyd-Warshall等求最短路径的经典算法的分布式实现方案。Dijkstra算法利用了“最短路径的子路径也是最短的”这一性质,能轻易地应用到简单有(无)向图中。但这一性质在时态图中并不成立,因此经典最短路径算法不能直接应用到时态图上。
在TTL算法在建立索引的过程中,每次迭代找到的路径都需要与前面迭代找到的路径进行比较,确定当前找到的路径是否更优。这种依赖关系不适用于分布式并行计算。本发明提出的方法把时态图划分为多个子图,与MapReduce计算框架结合,在各个子图上并行地建立分布式路径索引。
发明内容
本发明给出了大规模时态图下把路径规划进行索引化的一种基于MapReduce的公共交通出行路径规划索引方法。与已有TTL算法的集中式索引方法不同,本发明提出的DTPI(Distributed Temporal Path Index)算法能在分布式环境下分割时态图并在各个子图上并行地进行路径规划。
将问题并行计算的关键是找到问题的划分方法,使得划分后的各个子问题相互独立。其中,子图的划分和结果的合并都需要巧妙的设计和复杂的计算。本发明给出一种简明的问题划分方法,这种方法无需额外的开销来划分子问题,且只需线性时间来合并计算结果。划分方法是以弱规范路径(Weak Canonical Path)为基础的。下面先给出本发明的相关定义。
定义1(时态图):时态图G=(V,E),其中V是G的顶点集,E是G的有向边集,e∈E由四元组构成,e=<u,v,Td,Ta>,其中u,v∈V,u表示有向边的弧尾,v表示有向边的弧头,Td是从u到v的出发时间,Ta是从u到v的到达时间。将时态图G应用到公共交通网络时,用五元组表示一条边,即e=<u,v,Td,Ta,b>,表示交通工具b在时刻Td从站点u出发,在时刻Ta到达站点v。
例如,图1是一个有6个顶点v1,v2,…,v6和14条边的公共交通网络时态图,对图1中的部分边进行编号,如图2所示。每条边上的有序对<Td,Ta>表示该边的出发时间(到达时间)是Td(Ta),不同形状(实线、虚线、点线)的边表示不同的公共交通工具(b1,b2,b3)。例如,边e1表示为<v1,v2,10,11,b1>。
定义2(路径):时态图G上的一条路径P定义为G中边的一个序列<e1,e2,…,ek>,使得对任意i∈[1,k-1],ei+1的弧尾等于ei的弧头,并且ei+1的出发时间大于等于ei的到达时间。
例如,图1中的边序列<e1,e2,e3>是一条路径,因为e2的弧尾是v2,等于e1的弧头,并且e2的出发时间大于等于e1的到达时间,e3的弧尾等于e2的弧头,并且e3的出发时间大于等于e2的到达时间。而边序列<e2,e4>不是路径,因为e4的出发时间小于e2的到达时间,不满足路径的定义。
定义3(强规范路径):对于时态图G=(V,E),给定顶点集V上的一个全序关系O,u,v∈V,从顶点u到顶点v的路径P是强规范路径当且仅当P满足:
(1)序限制:路径P上的所有顶点中,起点u或者终点v是全序关系O中序最高的顶点;
(2)支配限制:不存在从顶点u到顶点v的路径P’,使得P’的出发时间不比P早且到达时间比P早。
例如,考虑图1中的公共交通网络,给定全序关系O(v1)<O(v2)<...<O(v6),路径P1=<e1,e2>是在时刻10从v1乘坐b1在时刻11到达v2后,再乘坐b2在时刻12到达v6形成的路径,则P1是一条强规范路径,因为不存在从v1到v6的其它路径使得出发时间大于等于P1的出发时间且到达时间比P1小,并且起点v1在全序关系O中比v2和v6的序更高。相反,在时刻7乘坐b3从v6到v3的路径P2=<e4,e5>不是强规范路径,因为路径P2中顶点v1在全序关系O中的序比起点v6和终点v3的序更高,不满足强规范路径的序限制。
定义4(轴点):给定时态图G=(V,E)和顶点集V上的全序关系O,轴点是路径P上除起点和终点以外在全序关系O中序最高的顶点,且当P上只有两个顶点时,轴点为空(null)。
例如,图1中的路径P=<e1,e2,e3>,在给定全序关系O(v1)<O(v2)<...<O(v6)的情况下,P的轴点是v2。因为路径P上除了起点v1和终点v4外,剩下顶点v2和v6,而v2在全序关系O中的序高于其它剩下顶点,因此v2是P的轴点。
定义5(TTL索引):给定G=(V,E)和V上的全序关系O,记C为G上的所有强规范路径集合,对任意P∈C,令u、v、Td、Ta、b和p分别表示路径P的起点、终点、出发时间、到达时间、交通工具和轴点,在集合Lout(u)或Lin(v)中,P被映射为一个索引l=<w,Td,Ta,b,p>,并且满足:
(1)如果O(u)>O(v),则w=v且l∈Lout(u);
(2)如果O(u)<O(v),则w=u且l∈Lin(v)。
G中所有顶点的Lout和Lin构成的集合称为TTL索引。
例如,给定全序关系O(v1)<O(v2)<...<O(v6),在图1中,Lout(v2)={<v1,8,10,b1,null>},Lin(v2)={<v1,9,10,b2,null>,<v1,10,11,b1,null>},Lout(v3)={<v1,7,9,b2,null>},Lin(v3)={<v1,8,10,b3,null>},则图1中v2和v3的TTL索引为{Lout(v2),Lin(v2),Lout(v3),Lin(v3)}。
和SIGMOD2015论文类似,本发明考虑三种规划查询。
定义6(路径规划查询):三种路径规划查询定义如下:
(a)最早到达路径EAP(Earliest Arrival Path):给定时态图G中的起点u、终点v和开始时刻t,从u出发到v,并且出发时间不早于时刻t的最早到达B的路径。
(b)最晚出发路径LDP(Latest Departure Path):给定时态图G中的起点u、终点v和结束时刻t,在时刻t之前到达v,最晚从u出发的路径。
(c)最短耗时路径SDP(Shortest Duration Path):给定时态图G中的起点u、终点v、开始时刻t和结束时刻t’,从u出发到达v,并且出发时间不早于t,到达时间不晚于t’的持续时间最短的路径。
例如,在图1中,从v1到v5且开始时刻为10的最早到达路径查询,其查询结果是<e1,e6>。从v1到v4且结束时刻为13的最晚出发路径查询,其查询结果是<e1,e2,e3>。从v6到v5且开始时刻和结束时刻分别为7和15的最短耗时路径查询,其查询结果是<e3,e7>。
下面说明路径规划查询可通过TTL索引得到。例如,给定全序关系O(v1)<O(v2)<...<O(v6),在图1中,Lout(v2)={<v1,8,10,b1,null>},Lin(v2)={<v1,9,10,b2,null>,<v1,10,11,b1,null>},Lout(v3)={<v1,7,9,b2,null>},Lin(v3)={<v1,8,10,b3,null>},Lout(v4)={<v1,5,9,b2,v3>,<v3,5,7,b2,null>},Lin(v4)={<v1,10,13,null,v2>,<v2,11,13,b2,v6>,<v3,10,13,b3,null>}。注意,当交通工具b=null时表示该索引映射的路径发生了交通工具的换乘。对于从v3到v2且开始时刻为6的最早到达路径查询,Lout(v3)中的索引<v1,7,9,b2,null>与路径<e8>关联,Lin(v2)中索引<v1,9,10,b2,null>与路径<e9>关联,把这两个索引表示的路径拼接起来,得到最早到达路径EAP为<e8,e9>。对于从v1到v2且结束时刻为12的最晚出发路径查询,Lin(v2)中的索引<v1,10,11,b1,null>与路径<e1>关联,故最晚到达路径LDP为<e1>。对于从v1到v4且开始时刻和结束时刻分别为8和13的耗时最短路径查询,Lin(v4)中的索引<v1,10,13,null,v2>与路径<e1,e2,e3>关联,故最短耗时路径SDP为<e1,e2,e3>
接下来介绍本发明提出的DTPI索引及相关定义。
定义7(弱规范路径):对于时态图G=(V,E),给定顶点集V上的一个全序关系O,u,v∈V,从顶点u到顶点v的路径P是弱规范路径当且仅当P满足:
(1)序限制:路径P上的所有顶点中,起点u或者终点v是全序关系O中序最高的顶点;
(2)支配限制:不存在从顶点u到顶点v的路径P’,使得P’满足序限制并且P’的出发时间不比P早且到达时间比P早。
与强规范路径定义相比,弱规范路径要求在条件(2)支配限制中P’要满足序限制。例如,在图1中,给定全序关系O(v1)<O(v2)<...<O(v6),路径<e11>是弱规范路径。即使<e12,e2>比<e11>更短,但<e12,e2>不满足序限制,所以<e11>是一条弱规范路径。但<e11>不是强规范路径,因为存在路径<e12,e2>使得<e12,e2>的出发时间不比<e11>早并且到达时间比<e11>早,也即<e12,e2>的时间区间[6,12]支配了<e11>的时间区间[6,17],所以<e11>不是强规范路径。
定义8(弱规范路径映射):给定时态图G=(V,E)和V上的全序关系O,记C’为G上所有的弱规范路径集合,对于任意P∈C’,令u、v、Td、Ta、b和p分别表示路径P的起点、终点、出发时间、到达时间、交通工具和轴点,P被映射为一个五元组i(P)=<w,Td,Ta,b,p>,且满足:
(1)如果O(u)>O(v),则w=v;
(2)如果O(u)<O(v),则w=u。
则i(P)称为P的弱规范路径映射,并记I为G上所有弱规范路径映射构成的集合,i∈I。
例如,图1中的弱规范路径P=<e1,e2,e3>,则i(P)=<v1,10,13,null,v2>。
定义9(小于关系f):给定弱规范路径映射集合I,对任意i1、i2∈I,i1=<v,Td,Ta,b,p>,i2=<v’,Td’,Ta’,b’,p’>,定义在I上的一个小于关系f,f(i1)<f(i2)当且仅当:
(1)O(v)<O(v’),或者
(2)O(v)=O(v’)且Td<Td’。
例如,图1中弱规范路径<e1,e6>的映射i1=<v1,10,13,b1,v2>,弱规范路径<e10,e7>的映射i2=<v3,10,15,b3,v4>,由于O(v1)<O(v3),所以f(i1)<f(i2)。又如弱规范路径<e9>的映射i3=<v1,9,10,b2,null>,弱规范路径<e1>的映射i4=<v1,10,11,b1,null>,此时f(i3)<f(i4)。
定义10(DTPI索引):给定时态图G=(V,E)和顶点集V上的全序关系O,G上所有弱规范路径映射构成的集合为I,对任意i∈I,记弱规范路径映射i表示的起点和终点分别为u和v,为每个顶点x∈V定义两个有序集Iout(x)和Iin(x),并满足以下条件:
(1)如果O(u)>O(v),则i∈Iout(u);
(2)如果O(v)>O(u),则i∈Iin(v);
(3)有序集Iout(x)={i1,i2,…,in}和Iin(x)={i1’,i2’,…,im’},对任意s∈[1,n-1]和t∈[1,m-1]都有f(is)<f(is+1)和f(it)<f(it+1)。
则DTPI(G)={Iout(x)∪Iin(x)|x∈V},称为时态图G的DTPI索引。
根据定义可知,Iout(x)里包含了顶点x到达其它顶点的弱规范路径映射,Iin(x)里包含了其它顶点到达顶点x的弱规范路径映射。例如,图1中的顶点v2和v4形成的DTPI索引如图4所示,其中Iin(v4)中的映射<v2,11,13,b2,v6>表示的是弱规范路径P=<e2,e3>。从图4可看到,Iout(v4)中映射记录的终点v的序都比v4高,Iin(v4)中所有映射记录的起点v的序都比v4高,满足DTPI索引定义的条件(1)和(2),并且Iout(v4)和Iin(v4)中的映射按照v和Td先后排序,满足DTPI索引定义的条件(3)。所以,图4中的Iout(v4)和Iin(v4)属于图1的DTPI索引。
定理1:TTL索引是DTPI索引的子集。
证明:设路径P是从TTL索引中查找得到的从u到v的任意一条最早到达(最晚出发、耗时最短)路径,假设DTPI索引的Iout(u)和Iin(v)中不存在i1∈Iout(u)和i2∈Iin(v)使得i1和i2形成路径P,那么必有:
Case 1:P本身不是弱规范路径;
Case 2:不存在顶点k使得u到k和k到v都是弱规范路径。
令顶点w是路径P所有顶点中的最高序,如果w等于u或者v,那么P本身就是弱规范路径,与Case 1矛盾;如果w不等于u或v,那么子路径u到w是弱规范路径,w到v也是弱规范路径,与Case 2矛盾。因此,属于TTL的路径索引也属于DTPI索引,即TTL索引是DTPI索引的子集,证毕。
定理1表明,时态图上路径规划查询的结果包含在DTPI索引中,也即,路径规划查询结果或者在Iout索引集中,或者在Iin索引集中,或者由Iout索引集和Iin索引集中表示的路径拼接而成。因此,只要求出所有的弱规范路径,建立DTPI索引,即可从中进行路径规划查询。
要分布式并行建立所有弱规范路径的索引,先要划分原问题为多个子问题。给定时态图G=(V,E)及定义在V上的一个全序关系O,O(v1)<O(v2)<...<O(vi)<...<O(vn-1)<O(vn),根据弱规范路径的定义,以vi为起点或终点的任意弱规范路径P中必不包含有v1,v2,...,vi-1。也即,用vi计算弱规范路径时,只需考虑顶点vi,vi+1,...,vn-1,vn以及与这些顶点相连的时态边构成的子图。根据DTPI索引定义,把以vi为起点的弱规范路径保存在这条路径的终点x的Iin(x)索引集合中,把以vi为终点的弱规范路径保存在这条路径的起点y的Iout(y)索引集合中。
为实现以上发明目的,采用的技术方案是:
一种基于MapReduce的公共交通出行路径规划索引方法,应用MapReduce计算框架的Map函数、Cleanup函数和Reduce函数进行分布式时间路径索引的构建,具体包括以下步骤:
S1.确定时态图G的顶点集V上的全序关系,根据确定的顶点集V的全序关系对时态图G进行子图的划分;
S2.对于划分的每个子图,分别使用MapReduce集群中的各个计算节点读取其分区数据,然后通过Map函数计算每个子图的弱规范路径,并将结果以映射形式保存在弱规范路径索引集I中;
S3.使用Cleanup函数将弱规范路径索引集I中的每个映射转成键值对;
S4.使用Reduce函数将键值对中键等于顶点vi且顶点vi是起点的映射加入集合Iout中,把键等于顶点vj且顶点vj是终点的映射加入集合Iin中,然后按照分布式时间路径索引的定义,对集合Iout和集合Iin中的映射进行排序,最后得到时态图G的分布式时间路径索引。
优选地,所述划分的子图的数量与MapReduce集群中计算节点的数量一致。
优选地,所述步骤S2中,通过Map函数计算每个子图的弱规范路径的具体过程如下:
以子图的每条边为起始路径,利用一个最小堆来记录当前路径遍历到的边和轴点,并利用一个哈希表来记录最短路径;在遍历过程中,如果发现当前的路径比哈希表记录的路径更优,则更新哈希表中相应的最短路径;所有边遍历完毕后,得到子图的弱规范路径索引,保存在I中。
本发明提出分布式时态路径索引算法DTPI,能够根据计算顶点的不同来划分子图,在子图上计算相应的弱规范路径映射。所求子问题是时态图顶点集子集V’形成的时态子图的弱规范路径映射。在分布式环境中计算节点越多,子问题可划分得越小,各个子问题只需少量的计算资源,整个问题可以更快地计算完成。
附图说明
图1为公共交通网络的案例示意图。
图2为图1中部分边的编号以及编号表示的边的示意图。
图3为图1的一个子图的示意图。
图4为图1中顶点v2和v4的DTPI索引的示意图。
图5为4个欧美城市的公交网络形成的时态图规模示意图。
图6为基于MapReduce的DTPI算法框架的示意图。
图7为不同城市公交网络在不同计算节点的集群上建立DTPI索引的时间比较示意图。
图8为TTL算法建立索引的时间和DTPI算法在不同计算节点数量K下建立索引的时间比较示意图。
图9表示随着计算节点数量的增加DTPI算法建立4个城市路径索引的时间变化趋势示意图。
图10为DTPI算法在不同节点数量的集群中对不同规模时态图建立索引的时间增长趋势示意图。
图11为DTPI算法和TTL算法建立的索引大小比较示意图。
图12为DTPI算法在不同规模时态图上的索引大小增长趋势示意图。
具体实施方式
实施例1
下面结合算法伪代码描述、附图和具体实施方式对本发明做进一步地详细说明。
本发明提供的方法首先确定时态图G的顶点集V上的全序关系,再进行子图划分。在本发明中,全序关系根据顶点在输入顺序先后确定,越先输入的顶点,序越高。例如顶点的输入顺序是v1,v2,…,vn,则顶点的全序关系为O(v1)<O(v2)<...<O(vn)。
子图划分的数量,根据集群中计算节点数量确定。例如,对于图1中的时态图G,如果集群有3个计算节点,则把G划分为3个子图。具体地,把顶点集V完整不重地随机划分为3个子集,再根据每个子集中的最高序顶点确定一个子图。假设随机划分得到3个子集为{v1,v5}、{v2,v4}和{v3,v6},给定全序关系O(v1)<O(v2)<...<O(v6),子集{v3,v6}确定的子图是顶点集{v3,v4,v5,v6}以及这些顶点相连的所有边构成的图,如图3所示。
在MapReduce框架中,集群中的各个计算节点读取分区数据,各个计算节点的Map函数执行算法处理分区数据。每个计算节点的所有Map函数执行完毕后,执行Cleanup函数做一些如关闭数据流、释放资源等清理工作。Reduce函数负责把Map的计算输出进行合并。
基于MapReduce的DTPI算法框架如图6所示。MapReduce计算框架的3个主要函数:Map函数、Cleanup函数和Reduce函数,其中Map函数是DTPI算法的主要部分。结合算法伪码描述和图6看,集群中各个计算节点的Map函数输入子图Gk,计算Gk上的所有弱规范路径,结果以映射形式保存在弱规范路径索引集I中。在DTPI算法计算弱规范路径过程中,以Gk的每条边为起始路径,利用一个最小堆来记录当前路径遍历到的边和轴点,并利用一个哈希表来记录最短路径。在遍历过程中,如果发现当前的路径比哈希表记录的路径更优,则更新哈希表中相应的最短路径。所有边遍历完毕后,得到Gk的弱规范路径索引,保存在I中。
MapReduce计算框架是以键值对的形式来处理数据,所以在Map阶段计算得到的弱规范路径映射需要转成键值对的形式才能让Reduce函数处理。Cleanup函数把Map函数输出的I中每个映射转成键值对。Reduce函数接收到这些键值对后,把键等于vi且vi是起点的映射加入Iout(vi)中,把键等于vj且vj是终点的映射加入Iin(vj)中。然后按照DTPI索引定义的条件(3),对Iout和Iin中的映射进行排序,最后得到G的DTPI索引。
算法举例。考虑图1中顶点v1的一条出边e1。对于顶点v1,首先选择出发时间最大的出边进行计算,即e1。满足更新条件(Map函数13行),在哈希表中更新v1到v2出发时间为10的当前最早到达时间t(v2)=11,并把顶点v2的所有满足条件的出边加入最小堆,即e2和e6。执行过程跳到Map函数第7行,取出边e2,在哈希表中更新v1到v6的最早到达时间为t(v6)=12,把顶点v6的满足条件的出边e3加入最小堆。接着从最小堆中取出满足更新条件的e6,在哈希表中更新v1到v5的最早到达时间t(v5)=13,接着把v5满足条件的出边加入最小堆。从最小堆中取出e3,在哈希表中更新v1到v4的最早到达时间t(v4)=13,把v4满足条件的出边e7加入最小堆。从最小堆中取出e7,由于e7的到达时间大于v5当前的最早到达时间t(v5)=13,因此不进行更新。这时最小堆中没有满足更新条件的边了,最后遍历哈希表中的数据(Map数第21行),得到的弱规范路径映射有:Iin(v2)={<v1,10,11,-1>},Iin(v4)={<v1,10,13,v2>},Iin(v5)={<v1,10,13,v2>},Iin(v6)={<v1,10,12,v2>}。接下来继续按出发时间从大到小选择v1的出边,直到v1的全部出边计算完成,得到以v1为起点的所有映射。然后接着计算v1的所有入边,得到以v1为终点的所有弱规范路径映射,至此,顶点v1计算完毕。
算法复杂度分析。对于有m条边和n个顶点的时态图G,DTPI算法每次选取一个顶点进行迭代,最坏情况下会遍历到G的每条边。每次迭代维护一个最小堆,其时间复杂度为O(nlogn),故每次迭代的时间复杂度为O(m+nlogn),总的时间复杂度为O(n·m+n2·logn)。最坏情况下,从每个顶点的每条出边出发都能到达其它所有顶点,所以空间复杂度为O(n·m)。DTPI算法还需要额外的网络传输开销。一般地,假设集群环境有α(≥2)个节点,那么α-1个节点执行map函数,一个节点既运行map函数也运行reduce函数。map函数的节点都会发送中间结果给reduce函数节点。其中,中间结果主要是弱规范路径键值对。
算法实验结果。数据集采用TTL算法论文实验中的其中4个时态公共交通网络,它们都是以Google公司GoogleTransitDataFeed项目中给出的General Transit FeedSpecification(GTFS)格式来保存时态公共交通网络数据。这些数据集的大小如图5所示,它们可以从GoogleTransitDataFeed项目中获得。使用Austin、Berlin、Rome和Toronto四个城市的公共交通网络数据,分别做实验。
实验比较DTPI算法在4个城市不同规模的公交网络和不同计算节点数量K下建立DTPI索引的时间和空间大小。结合图5和图7可以看到,DTPI算法对不同规模的公交网络进行预处理建立索引所需的时间不同。当计算节点数量K=1时,相当于集中式计算,随着计算节点增多,建立索引的时间不断下降,但节点数量增加为n台时,总的计算时间不是集中式计算时间的1/n倍,因为DTPI算法还需要额外的节点之间的网络传输开销。
图8比较了在不同数据集上TTL算法建立索引的时间和DTPI算法建立分布式索引的时间。可以看到,基于MapReduce的DTPI算法利用分布式计算优势,建立索引的时间比TTL算法更快,并且每增加一个计算节点,建立索引的时间都有所下降。当K=2时,DTPI算法建立索引的时间约为TTL算法的一半;当K=3时,DTPI算法建立索引的时间大约是K=2时的一半。随着K增大至4和5,DTPI算法建立索引的时间并没有减少为前一个K值时的大约一半。即随着计算节点的增加,建立索引时间的下降速度逐渐变小。这是因为,一方面,计算节点数量K越多,子图划分得越多,而总的计算时间取决于计算的最慢的那个子图。当K值较小时,子图划分得较均匀,即子图的大小相当。当K值较大时,子图划分得越多,出现子图大小不均匀的概率就越大,导致数据倾斜。另一方面,随着集群计算节点的增多,节点之间网络传输开销等也增大。
图9详细展示了4个城市在不同计算节点数量下建立索引所需时间的变化。随着计算节点数量的增加,建立4个城市路径索引的时间都呈现相似的下降趋势,因为计算资源越多,时态图的子图划分得越小,每个节点的计算量也越少,总的计算时间不断减小。以时态图的顶点平均度d(d=m/n)来刻画时态图的规模,由图10可知,无论在何种节点数量的集群中,随着时态图的规模增大,建立索引的时间都呈现增长趋势。这是因为顶点平均度越大,说明一个顶点的边越多,而DTPI算法每次需要从时态图中选取一条边进行迭代,所以顶点平均度越大,建立索引的时间越长。
图11比较了DTPI算法和TTL算法建立的索引大小,虽然DTPI算法建立的索引空间大小比TTL算法的稍大,但实验中发现在索引中进行路径规划查询时,两种索引的查找时间相差较小。从图12可以看到,随着时态图规模增大,索引空间大小先是急剧增长,然后趋于平缓。因为由图5知,后三个数据集的顶点数量是第一个数据集的3到4倍,而且后三个数据集的顶点数量相差不大,因此索引空间大小先是急剧增长后趋于平缓。此外,当顶点数量n不变,边数m趋于无穷大时,显然建立索引的时间趋于无穷大,因为DTPI算法在建立索引过程中最坏情况下会遍历到每条边,但索引空间大小不会趋于无穷大。索引记录的是弱规范路径,随着m增大,时态图中形成的路径也越多,但并不是所有路径都是弱规范路径。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (3)
1.一种基于MapReduce的公共交通出行路径规划索引方法,其特征在于,应用MapReduce计算框架的Map函数、Cleanup函数和Reduce函数进行分布式时间路径索引的构建,具体包括以下步骤:
步骤S1.确定时态图G的顶点集V上的全序关系,根据确定的顶点集V的全序关系对时态图G进行子图的划分;
定义时态图:时态图G=(V,E),其中V是G的顶点集,E是G的有向边集,e∈E由四元组构成,e=<u,v,Td,Ta>,其中u、v∈V,u表示有向边的弧尾,v表示有向边的弧头,Td是从u到v的出发时间,Ta是从u到v的到达时间;将时态图G应用到公共交通网络时,用五元组表示一条边,即e=<u,v,Td,Ta,b>,表示交通工具b在时刻Td从站点u出发,在时刻Ta到达站点v;
步骤S2.对于划分的每个子图,分别使用MapReduce集群中的各个计算节点读取其分区数据,然后通过Map函数计算每个子图的弱规范路径,并将结果以映射形式保存在弱规范路径索引集I中;
定义弱规范路径:对于时态图G=(V,E),给定顶点集V上的一个全序关系O,u、v∈V,从顶点u到顶点v的路径P是弱规范路径当且仅当P满足:
1)序限制:路径P上的所有顶点中,起点u或者终点v是全序关系O中序最高的顶点;
2)支配限制:不存在从顶点u到顶点v的路径P′,使得P′满足序限制并且P′的出发时间不比P早且到达时间比P早;
定义弱规范路径映射:给定时态图G=(V,E)和V上的全序关系O,记C′为G上所有的弱规范路径集合,对于任意P∈C′,令u,v,Td,Ta,b和p分别表示路径P的起点、终点、出发时间、到达时间、交通工具和轴点,P被映射为一个五元组i(P)=<w,Td,Ta,b,p>,且满足:
如果O(u)>O(v),则w=v;
如果O(u)<O(v),则w=u;
则i(P)称为P的弱规范路径映射,并记I为G上所有弱规范路径映射构成的集合,i∈I;
步骤 S3.使用Cleanup函数将弱规范路径索引集I中的每个映射转成键值对;
步骤 S4.使用Reduce函数将键值对中键等于顶点vi且顶点vi是起点的映射加入集合Iout中,把键等于顶点vj且顶点vj是终点的映射加入集合Iin中,然后按照分布式时间路径索引的定义,对集合Iout和集合Iin中的映射进行排序,最后得到时态图G的分布式时间路径索引。
2.根据权利要求1所述的基于MapReduce的公共交通出行路径规划索引方法,其特征在于,所述划分的子图的数量与MapReduce集群中计算节点的数量一致。
3.根据权利要求2所述的基于MapReduce的公共交通出行路径规划索引方法,其特征在于,所述步骤S2中,通过Map函数计算每个子图的弱规范路径的具体过程如下:
以子图的每条边为起始路径,利用一个最小堆来记录当前路径遍历到的边和轴点,并利用一个哈希表来记录最短路径;在遍历过程中,如果发现当前的路径比哈希表记录的路径更优,则更新哈希表中相应的最短路径;所有边遍历完毕后,得到子图的弱规范路径索引,保存在I中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811642741.4A CN109711633B (zh) | 2018-12-29 | 2018-12-29 | 一种基于MapReduce的公共交通出行路径规划索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811642741.4A CN109711633B (zh) | 2018-12-29 | 2018-12-29 | 一种基于MapReduce的公共交通出行路径规划索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109711633A CN109711633A (zh) | 2019-05-03 |
CN109711633B true CN109711633B (zh) | 2022-09-20 |
Family
ID=66259609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811642741.4A Active CN109711633B (zh) | 2018-12-29 | 2018-12-29 | 一种基于MapReduce的公共交通出行路径规划索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109711633B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113255971A (zh) * | 2021-05-07 | 2021-08-13 | 广东省科学院智能制造研究所 | 基于MapReduce的最短路径规划方法、装置、终端设备及存储介质 |
CN113465612B (zh) * | 2021-07-02 | 2024-03-26 | 南京航空航天大学 | 一种基于双层索引的并行路径规划方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521051A (zh) * | 2011-12-05 | 2012-06-27 | 中国联合网络通信集团有限公司 | 应用于图算法的Map Reduce系统中的任务调度方法、装置和系统 |
CN102779025A (zh) * | 2012-03-19 | 2012-11-14 | 南京大学 | 一种基于Hadoop的并行化PLSA方法 |
CN106649391A (zh) * | 2015-11-03 | 2017-05-10 | 华为技术有限公司 | 处理图数据的方法和装置 |
CN108737492A (zh) * | 2018-03-29 | 2018-11-02 | 西安电子科技大学 | 一种基于大数据系统的导航与位置服务的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9448851B2 (en) * | 2013-06-19 | 2016-09-20 | International Business Machines Corporation | Smarter big data processing using collaborative map reduce frameworks |
US9776512B2 (en) * | 2014-11-10 | 2017-10-03 | Streetsmart Ltd. | Methods, circuits, devices, systems and associated computer executable code for driver decision support |
-
2018
- 2018-12-29 CN CN201811642741.4A patent/CN109711633B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521051A (zh) * | 2011-12-05 | 2012-06-27 | 中国联合网络通信集团有限公司 | 应用于图算法的Map Reduce系统中的任务调度方法、装置和系统 |
CN102779025A (zh) * | 2012-03-19 | 2012-11-14 | 南京大学 | 一种基于Hadoop的并行化PLSA方法 |
CN106649391A (zh) * | 2015-11-03 | 2017-05-10 | 华为技术有限公司 | 处理图数据的方法和装置 |
CN108737492A (zh) * | 2018-03-29 | 2018-11-02 | 西安电子科技大学 | 一种基于大数据系统的导航与位置服务的方法 |
Non-Patent Citations (1)
Title |
---|
基于大数据平台的动态车辆路径调度算法;唐德权 等;《计算机工程》;20180131;第44卷(第1期);第74-78页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109711633A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bastani et al. | A greener transportation mode: flexible routes discovery from GPS trajectory data | |
CN105678054B (zh) | 一种基于a星策略的最优多会合点路径搜索方法及装置 | |
Witt | Trip-based public transit routing | |
Bouros et al. | Dynamic pickup and delivery with transfers | |
WO2016188151A1 (zh) | 应用于实时合乘的最优多会合点路径搜索方法及装置 | |
CN109711633B (zh) | 一种基于MapReduce的公共交通出行路径规划索引方法 | |
US10404576B2 (en) | Constrained shortest path determination in a network | |
EP2691739A1 (en) | System and method for itinerary planning | |
Joshi et al. | Batching and matching for food delivery in dynamic road networks | |
Parmentier | Algorithms for non-linear and stochastic resource constrained shortest path | |
Artigues et al. | State-based accelerations and bidirectional search for bi-objective multi-modal shortest paths | |
Das et al. | Minimizing latency in online ride and delivery services | |
Wang et al. | Constrained route planning over large multi-modal time-dependent networks | |
CN113781817A (zh) | 一种基于共用计算的城市路网多源最短路径获取方法 | |
Dibbelt | Engineering algorithms for route planning in multimodal transportation networks | |
CN110245271B (zh) | 基于属性图的大规模关联数据划分方法及系统 | |
Li et al. | Keyword-aware dominant route search for various user preferences | |
Kumar et al. | Brief announcement: A greedy 2 approximation for the active time problem | |
Sauer et al. | Faster multi-modal route planning with bike sharing using ULTRA | |
CN101571404A (zh) | 考虑交叉口转向的最短路径拍卖算法 | |
Elkin et al. | Near-optimal distributed routing with low memory | |
CN112347216B (zh) | 一种基于动态路网的初始线路搜索方法 | |
Baum et al. | ULTRA: Unlimited Transfers for Efficient Multimodal Journey Planning | |
Ning et al. | An improved index based on mapreduce for path queries in public transportation networks | |
Li et al. | Reverse k nearest neighbor queries in time-dependent road networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |