一种多重背景下的Top-k路径序列查询方法及系统

文档序号:29454999发布日期:2022-03-30 12:34阅读:189来源:国知局
一种多重背景下的Top-k路径序列查询方法及系统
一种多重背景下的top-k路径序列查询方法及系统
技术领域
1.本发明涉及路径规划领域,具体涉及一种多重背景下的top-k路径序列查询方法及系统。


背景技术:

2.随着移动网络以及gps(global positioning system,全球定位系统)技术的快速发展,人们比以前更容易获得更加详细的道路信息,同时,大量的高精度轨迹数据提高了路网匹配的精确性。逐渐增加的交通工具种类和数量为人们的出行带来了更多可选择的路线,各种导航服务的功能也日趋完善,它们通过计算给出在指定的源点和目的地之间的通行路径。道路网络的查询也从传统路网上每条道路具有固定权重的路径查询扩展到路网上路径权重随时间改变的动态路网上的路径查询;而在查询时,静态权重(如距离)与动态权重(如旅行时间、油耗、旅行花费等)也往往作为对每条路径进行top-k排序的依据。在现实的道路网络中,在不同时间进行查询时同一组源点和目的地之间的最优路径往不同,这是因为查询时间的差异导致了相同路径所需动态权重的变化。
3.在时间依赖路网上进行查询时经常不能得到当前情况下的最优路径,在正常的出行过程中,道路交通状况往往会随着时间以及天气、节假日等因素产生变化,此外道路本身的属性(如高速路、主干路、支路等)也会给我们的选择带来影响。工作日的早高峰和晚高峰时段经常会发生不同程度的拥堵,如何合理规划路径来绕过高峰期的拥堵路段或是尽量减少经过拥堵路段就是一个大的挑战。天气情况会影响驾驶速度,如雨雪天气、大雾天的行车速度会变慢,导致整体的旅行时间变长、道路属性的选择发生变化,从而使得到达每一个节点的时间发生改变,后续规划的路径也不得不做出调整。另外还存在着限时限行车道,在查询时同样要考虑这种情况。因此,在不同的查询时间与天气背景下,用户发起路径查询后得到的结果是不同的,需要在查询过程中结合当前的时间依赖路网、天气因素与道路属性才能得到更为优秀的查询结果。
4.最优路径序列查询也是一直以来的研究热点,通过不同的策略序列(如饭店

加油站

电影院)找到具有最小动态花费或者静态花费的路径。这一查询方式在路线规划、危机管理、供应链管理和物流运输中有许多实际应用。osr(optimal sequenced route,最优顺序路由)查询仅仅考虑了在静态路网上查找距离最短的路径序列,top-k optimal sequenced route查询考虑了每个人对相同的策略点具有不同偏好这一情况,参见图1所示,例如从起点s出发到超市a需要的花费为15,到超市b需要的花费为20,但超市b有打折活动,此时如果只推荐最短路径可能不符合用户的偏好,因此该查询可以返回满足给定策略序列的前k条最优路径。然而,这些查询方法仅适用于静态路网,并没有在具有多重背景的时间依赖路网上进行考虑,在不同背景下用户以相同的策略序列进行查询时得到的top-k路径是不同的。
5.对于具有多重背景的时间依赖路网,在实现应用过程中需要面临以下几个问题:(1)如何将天气属性以及道路属性融入时间依赖路网之中;(2)如何处理十字路口这样的重
要交通节点;(3)如何在不同的时间背景下进行有效查询;(4)怎样过滤不必要的探索路径从而有效提高路径查询效率。


技术实现要素:

6.针对现有技术中存在的缺陷,本发明的目的在于提供一种多重背景下的top-k路径序列查询方法及系统,能够提高道路查询时的效率,高效实现在多重背景下的时间依赖路网中的top-k路径序列查询。
7.为达到以上目的,本发明提供的一种多重背景下的top-k路径序列查询方法,具体包括以下步骤:
8.基于时间函数定义时间依赖路网,并对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,并将天气因素作为查询条件进行时间依赖路网路径序列查询的定义;
9.基于路口端点连接算法,并结合所述时间依赖路网对路网的路口节点进行预处理,将路口节点的邻接节点进行连接,得到路口连接表;
10.对时间依赖路网中的每个节点均建立顶点索引,形成顶点索引集,所述顶点索引包括反向连接查询表和正向连接查询表,所述反向连接查询表包括可以到达当前节点的所有邻接节点,以及到达当前节点时所经过道路的时间函数和道路属性,所述正向连接查询表包含当前节点可以到达的所有邻接节点,以及到达邻接节点时所经过道路的时间函数和道路属性;
11.根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径;
12.对路径间的支配关系进行定义,基于多重背景路网下路径支配算法,输入查询的源点、目的地、出发时间、策略序列、出发时的天气和所需的路径序列数,得到包含预设数目最优路径的最优路径序列集。
13.在上述技术方案的基础上,所述时间依赖路网具体为:
14.gm=(vm,em,fm,cm,rm)
15.其中,gm表示时间依赖路网,vm表示一组节点,每个节点表示路网中不同的策略点,em表示一组边集,每条边表示连接两个不同节点的路径,对于边e=(vi,vj),存在时间函数fm,vi和vj表示边e的两个顶点对应的节点,cm用于存储节点的策略属性,当存在一个节点v∈vm时,则策略属性函数c(v)返回节点v的策略属性,rm用于存储道路属性,当存在边e∈em时,则道路属性函数r(e)返回边e的道路属性。
16.在上述技术方案的基础上,所述对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,其中:
17.对时间函数的定义过程为:
18.定义时间依赖路网上的时间函数fe(t)为离散函数,时间依赖路网中的每一条边e=(vi,vj)∈em,都存在时间函数fe(ti)=te,用于表示在时间ti从节点vi发起查询到达节点vj,需要的时间为te;
19.对于策略序列的定义过程为:
20.在真实的道路网络中,每一个节点均具有策略属性,路网上所有顶点的策略属性
的集合为策略集s,在出行过程中以一个特定的序列对节点按顺序访问,则称该序列为策略序列c,策略序列c=《c1,c2,...,cj》,表示在查询的过程中需要以c1,c2,...,cj这一顺序依次访问j个对应属性策略点,cj表示第j个策略点属性,对于策略序列中的每一个策略属性,存在ci∈s(1≤i≤j),ci表示第i个策略点属性;
21.对于道路属性的定义过程为:
22.两个节点之间的连接路径e=(vi,vj),则路径e的道路属性r(e)=ri,ri表示路径e的道路属性。
23.在上述技术方案的基础上,
24.所述天气因素对道路选择的影响包括通行影响和旅行时间影响;
25.定义天气因素影响系数用于表示不同天气给不同属性道路行驶时间带来的影响,所述天气因素影响系数为正常天气下某一属性道路的行驶时间,与天气为w时同一属性道路的行驶时间间的比值,w表示天气类型。
26.在上述技术方案的基础上,得到路口连接表的具体步骤包括:
27.依次遍历路网的节点vi,若节点vi的邻接点中存在路口节点v,则将连接节点vi和路口节点v的边即为e1;
28.遍历路口节点v的各邻接节点vj,将边e2,即(v,vj)加入到元组ei中,构成新路径《vi,v,vj》;
29.将边e1和边e2的时间函数合并,并保留道路属性,得到路口连接表。
30.在上述技术方案的基础上,所述反向连接查询表具体为:
31.l
in
(vj)=(vi,fe(t),r(e))
32.其中,l
in
(vj)表示反向连接查询表,l
in
(vj)中,vi表示可以到达节点vj的节点,边e=(vi,vj),fe(t)表示边e的时间函数,r(e)表示边e的道路属性。
33.在上述技术方案的基础上,所述正向连接查询表具体为:
34.l
out
(vj)=(vi,fe(t),r(e))
35.其中,l
out
(vj)表示正向连接查询表,l
out
(vj)中,vi表示节点vj可以到达的节点,边e=(vj,vi),fe(t)表示边e的时间函数,r(e)表示边e的道路属性。
36.在上述技术方案的基础上,所述根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径,具体步骤包括:
37.输入当前需查询的起始节点vi、想要查询节点vi所临接的策略属性、查询时间t、当前天气w;
38.建立路径集bifs_list,所述路径集bifs_list用于存放节点vi到达下一个策略属性节点的所有路径与到达时间组成的元组;
39.遍历路网中的所有节点,找到策略属性为目标属性c的节点vj开始循环,重复遍历节点vi的正向连接查询表l
out
(vi)和节点vj的反向连接查询表l
in
(vj),找点节点va∈l
out
(vi)和节点vb∈l
in
(vj),当va=vj时,节点vi的下一个邻接节点即为所需要的策略点,连接节点vi和节点vj;当va=vb时,连接节点,路径《vi,va,va,vj》为查询所得路径;反之,则将节点va作为下一个查询节点l
out
(vi)进行查询,直到遍历完所有的节点;
40.查询得到当前天气w下的道路属性r(vi,vj),根据道路属性以及天气得到对应的天
气因素影响系数计算得到到达下一个策略点的时间,并将路径加入至路径集bifs_list中;
41.根据到达时间由低到高顺序对路径集bifs_list中路径进行排序,得到排序后的路径集bifs_list,并根据排序后的路径集bifs_list,选择可以到达策略点的第k条路径。
42.本发明提供的一种多重背景下的top-k路径序列查询系统,包括:
43.定义模块,其用于基于时间函数定义时间依赖路网,并对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,并将天气因素作为查询条件进行时间依赖路网路径序列查询的定义;
44.连接模块,其用于基于路口端点连接算法,并结合所述时间依赖路网对路网的路口节点进行预处理,将路口节点的邻接节点进行连接,得到路口连接表;
45.建立模块,其用于对时间依赖路网中的每个节点均建立顶点索引,形成顶点索引集,所述顶点索引包括反向连接查询表和正向连接查询表,所述反向连接查询表包括可以到达当前节点的所有邻接节点,以及到达当前节点时所经过道路的时间函数和道路属性,所述正向连接查询表包含当前节点可以到达的所有邻接节点,以及到达邻接节点时所经过道路的时间函数和道路属性;
46.查询模块,其用于根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径;
47.确定模块,其用于对路径间的支配关系进行定义,基于多重背景路网下路径支配算法,输入查询的源点、目的地、出发时间、策略序列、出发时的天气和所需的路径序列数,得到包含预设数目最优路径的最优路径序列集。
48.在上述技术方案的基础上,所述时间依赖路网具体为:
49.gm=(vm,em,fm,cm,rm)
50.其中,gm表示时间依赖路网,vm表示一组节点,每个节点表示路网中不同的策略点,em表示一组边集,每条边表示连接两个不同节点的路径,对于边e=(vi,vj),存在时间函数fm,vi和vj表示边e的两个顶点对应的节点,cm用于存储节点的策略属性,当存在一个节点v∈vm时,则策略属性函数c(v)返回节点v的策略属性,rm用于存储道路属性,当存在边e∈em时,则道路属性函数r(e)返回边e的道路属性。
51.与现有技术相比,本发明的优点在于:首先通过一种十字路口连接算法,来简化由于十字路口的存在所带来的查询复杂问题,其次建立节点的正反向查询标签索引,通过连接标签索引作为查询临近策略点的基础算法,最后,提出了一种基于路径支配的剪枝算法,通过道路之间的路径支配关系来进行合理剪枝,以此提高道路查询时的效率,高效实现在多重背景下的时间依赖路网中的top-k路径序列查询。
附图说明
52.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1为本发明实施例中一种路网的示意图;
54.图2为本发明实施例中一种多重背景下的top-k路径序列查询方法的流程图;
55.图3为本发明实施例中一种路口的示意图。
具体实施方式
56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。
57.参见图2所示,本发明实施例提供的一种多重背景下的top-k路径序列查询方法,具体包括以下步骤:
58.s1:基于时间函数定义时间依赖路网,并对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,并将天气因素作为查询条件进行时间依赖路网路径序列查询的定义;
59.时间依赖路网的路径权重大多以简洁的离散函数表示,这一表示方式可以使路径权重的表示更为多样和直观,因此本发明的时间依赖路网的路径权重采用时间函数表示。
60.s2:基于路口端点连接算法,并结合所述时间依赖路网对路网的路口节点进行预处理,将路口节点的邻接节点进行连接,得到路口连接表;
61.s3:对时间依赖路网中的每个节点均建立顶点索引,形成顶点索引集,所述顶点索引包括反向连接查询表和正向连接查询表,所述反向连接查询表包括可以到达当前节点的所有邻接节点,以及到达当前节点时所经过道路的时间函数和道路属性,所述正向连接查询表包含当前节点可以到达的所有邻接节点,以及到达邻接节点时所经过道路的时间函数和道路属性;
62.s4:根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径;
63.s5:对路径间的支配关系进行定义,基于多重背景路网下路径支配算法,输入查询的源点、目的地、出发时间、策略序列、出发时的天气和所需的路径序列数,得到包含预设数目最优路径的最优路径序列集。
64.本发明实施例中,时间依赖路网具体为:
65.gm=(vm,em,fm,cm,rm)
66.其中,gm表示时间依赖路网,vm表示一组节点,每个节点表示路网中不同的策略点,em表示一组边集,每条边表示连接两个不同节点的路径,对于边e=(vi,vj),存在时间函数fm,vi和vj表示边e的两个顶点对应的节点,cm用于存储节点的策略属性,当存在一个节点v∈vm时,则策略属性函数c(v)返回节点v的策略属性,rm用于存储道路属性,当存在边e∈em时,则道路属性函数r(e)返回边e的道路属性。
67.即一个多重背景下的时间依赖路网可以描述为gm=(vm,em,fm,cm,rm)。参见图1所示,策略属性为超市的节点有a和c,策略属性为银行的节点有b和d,策略属性为餐厅的节点有e和f,节点a与b代表十字路口的交点,节点s与t分别代表源点与目的地。
68.本发明实施例中,对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,其中:
69.(1)对时间函数的定义过程为:
70.定义时间依赖路网上的时间函数fe(t)为离散函数,时间依赖路网中的每一条边e=(vi,vj)∈em,都存在时间函数fe(ti)=te,用于表示在时间ti从节点vi发起查询到达节点vj,需要的时间为te;
71.时间依赖路网上路径的时间函数fe(t)是一种简洁的离散函数,在实际交通情况下,同一路径上车辆交通流的时间依赖函数遵循先进先出特性。在真实的路网中,道路的交通情况往往会随着时间以一定的规律分布;
72.对于fe(ti)=te,也可以表示为即在节点vj出发的时间减去在节点vi的出发时间以及在节点vj停留的时间,而到达节点vj的时间则可以表示为arr(vj)=ti+fe(ti),arr(vj)表示到达节点vj的时间;
73.一段路径p通常为多条边的集合p=《e1=(v1,v2),e2=(v2,v3),...,ek=(vi,vj)》,其行驶时间可以表示为trt(p)=arr(vj)-ti,为trt(p)表示路径p的行驶时间;
74.(2)对于策略序列的定义过程为:
75.在真实的道路网络中,每一个节点均具有策略属性,路网上所有顶点的策略属性的集合为策略集s,在出行过程中以一个特定的序列对节点按顺序访问,则称该序列为策略序列c,策略序列c=《c1,c2,...,cj》,表示在查询的过程中需要以c1,c2,...,cj这一顺序依次访问j个对应属性策略点,cj表示第j个策略点属性,对于策略序列中的每一个策略属性,存在ci∈s(1≤i≤j),ci表示第i个策略点属性;
76.在真实的道路网络中,每一个节点往往有不同的策略属性,如餐厅、加油站、电影院等,路网上所有节点策略属性的集合称为策略集s;同时定义|c|为策略序列的策略总数,|ci|为策略属性为ci的节点数目;
77.(3)对于道路属性的定义过程为:
78.两个节点之间的连接路径e=(vi,vj),则路径e的道路属性r(e)=ri,ri表示路径e的道路属性。
79.道路属性可以分为高速公路、主干道、支路以及住宅路等,例如对于道路属性集r=《r1,r2,r3》,分别代表高速公路、主干路和支路,如e=(s,a),有r(e)=r3,表示从节点s到节点a的这条道路为支路。
80.本发明实施例中,天气因素对道路选择的影响包括通行影响和旅行时间影响;定义天气因素影响系数用于表示不同天气给不同属性道路行驶时间带来的影响,所述天气因素影响系数为正常天气下某一属性道路的行驶时间,与天气为w时同一属性道路的行驶时间间的比值,w表示天气类型。
81.天气条件对日常出行方案的影响较大,因此本发明将天气这一因素加入查询条件,天气对道路选择的影响通常分为两种:第一种是通行影响,在极端天气情况下,人们会放弃一些属性道路,比如在雨雪天气人们出行时往往不会选择高速公路;第二种是旅行时间影响,不同天气情况对于不同属性道路的旅行时间有不同影响,比如雨天在不同属性道路上的行驶速度相较于正常天气下的速度会偏慢,因此整体的行驶时间会变长,这样到达下一个策略点(节点)的时间也会发生改变,对后面的路径拓展也会产生影响。
82.例如,正常天气下某一属性道路的行驶时间为在天气为w时,该条路径的行驶时间为则天气因素影响系数即为速度影响比该系数反映不同天气给
不同属性道路行驶时间带来的影响,对天气因素影响系数δ建立一个影响系数集δ=(δ1,δ2,...,δn),集合中δn表示不同天气以及道路属性下的影响系数。
83.例如,对于多重背景下的时间依赖路网gm=(vm,em,fm,cm,rm)上的查询可以定义为q=(s,d,t,c,w,k),表示在时间t、天气情况为w时出发,找到从顶点s到顶点d、旅行时间少的前k条的路径集假设查询时天气的影响系数集为δ=(δ1,δ2,...,δn),那么路径集中每一条路径的旅行时间可以表示为对于路径集ζ中的路径存在
84.同时,路径和v1=s,vq=d所经过的顶点需要满足策略序列的要求。
85.举例说明,发起一次多重背景下的top-k路径序列查询q=(s,t,10:00,《su,ba,re》,snow,2),su表示超市,ba表示银行,re表示餐厅,snow表示天气为雪天,查询返回在雪天上午10:00从节点s出发,经过超市,银行,餐厅这一策略顺序到达终点且所花费时间前2小的路径,参见图1所示,可以得到多条符合策略序列的路径p1=《s,a,d,f,t》、p2=《s,a,c,d,b,e,t》、p3=《s,a,a,b,e,t》,假设雪天出行时不通过高速路,该天气对于主干路与支路的影响系数δ分别为0.6、0.5,并且在每个策略点的停留时间不超过一个小时,那么由于p1经过了高速路,可以进行剪枝,p2与p3的旅行时间分别为trt(p2)=216、trt(p3)=247,因此返回查询路径集为{p2,p3}。
86.本发明实施例中,得到路口连接表的具体步骤包括:
87.s201:依次遍历路网的节点vi,若节点vi的邻接点中存在路口节点v,则将连接节点vi和路口节点v的边即为e1;
88.s202:遍历路口节点v的各邻接节点vj,将边e2,即(v,vj)加入到元组ei中,构成新路径《vi,v,vi》;
89.s203:将边e1和边e2的时间函数合并,并保留道路属性,得到路口连接表。利用获得的路口连接表iel_list,查询处理时可以直接获得从路口起始点到路口连接点之间的时间函数与道路属性。
90.路口是路网中的一种十分重要的道路形态,作为两条道路的交叉点,路口在交通出行中发挥了极大的作用,目前也有越来越多的算法寻找实时路网上的路口并对其进行合理标定。但是,在以往的路径查询论文中并没有很好地对十字路口进行处理,甚至忽略了路口这一道路属性的存在,因此本发明提出处理这一特殊的道路情况的有效算法。
91.因为路口的连接多条道路这一特殊性,不能对其进行直接处理,参见图3所示,为路网中的一个十字路口与其拓扑图,图3中,十字路口的中心点为a,经过该点的道路上的顶点都可以相互连通,如,从点a开始经过中心点a的路径一共有三条:《a,a,b》、《a,a,c》、《a,a,d》,在查询处理过程中如果对每个十字路口遍历其邻接点会带来不必要的计算时间,影响查询的实时处理,因此,本发明在这一步对路口进行预处理,将其邻接点进行连接,建立如((《a,a,b》,f
aab
(t),2),(《a,a,c》,f
aac
(t),2),(《a,a,d》,f
aad
(t),2))这样的连接表,其中,f
aab
(t)、f
aac
(t)、f
aad
(t)均表示经过相应当前路径上的时间函数。
92.本发明实施例中,反向连接查询表具体为:
93.l
in
(vj)=(vi,fe(t),r(e))
94.其中,l
in
(vj)表示反向连接查询表,l
in
(vj)中,vi表示可以到达节点vj的节点,边e
=(vi,vj),fe(t)表示边e的时间函数,r(e)表示边e的道路属性。
95.正向连接查询表具体为:
96.l
out
(vj)=(vi,fe(t),r(e))
97.其中,l
out
(vj)表示正向连接查询表,l
out
(vj)中,vi表示节点vj可以到达的节点,边e=(vj,vi),fe(t)表示边e的时间函数,r(e)表示边e的道路属性。
98.实际的路网规模往往较大,在查询过程中会消耗大量时间,为了提高查询处理的效率,本发明对路网图中的节点建立标签索引集来辅助查询。记录所有节点的可达节点会在处理过程中占用更多的存储空间,尤其是在现实中的大型路网上使用会让空间开销更为巨大,此外将不同属性的道路合并会使得天气对道路的影响难以计算,因此本发明可以只对路口节点进行连接,对于其他节点则建立标签索引集。
99.本发明实施例中,根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径,具体步骤包括:
100.s401:输入当前需查询的起始节点vi、想要查询节点vi所临接的策略属性、查询时间t、当前天气w;得到路网图中每个节点的顶点索引集后,可以根据节点索引集建立的两个标签l
out
(v)和l
in
(v)对道路结点的临近策略点进行查询。
101.s402:建立路径集bifs_list,所述路径集bifs_list用于存放节点vi到达下一个策略属性节点的所有路径与到达时间组成的元组;
102.s403:遍历路网中的所有节点,找到策略属性为目标属性c的节点vj开始循环,重复遍历节点vi的正向连接查询表l
out
(vi)和节点vj的反向连接查询表l
in
(vj),找点节点va∈l
out
(vi)和节点vb∈l
in
(vj),当va=vj时,节点vi的下一个邻接节点即为所需要的策略点,连接节点vi和节点vj;当va=vb时,连接节点,路径《vi,va,va,vj》为查询所得路径;反之,则将节点va作为下一个查询节点l
out
(vi)进行查询,直到遍历完所有的节点;
103.s404:查询得到当前天气w下的道路属性r(vi,vj),根据道路属性以及天气得到对应的天气因素影响系数计算得到到达下一个策略点的时间,并将路径加入至路径集bifs_list中;计算公式为
104.s405:根据到达时间由低到高顺序对路径集bifs_list中路径进行排序,得到排序后的路径集bifs_list,并根据排序后的路径集bifs_list,选择可以到达策略点的第k条路径。
105.即当va=vb时,便需要对两端路径(vi,va)和(va,vj)进行连接,同样使用上面的公式对其计算,处理好后将(p,t)加入到路径集bifs_list中;当查询不到邻接点时,将va加入到下一个l
out
(vi)条目中以上面的方法进行查询,同时保留路径《vi,va》及到达va的时间t,按照上述方式遍历完所有l
out
(vi)和l
in
(vj)中的条目,最后找到的所有可达对应属性的策略点路径、根据到达时间由低到高进行排序,得到排序后路径集bifs_list,然后根据排序好后的路径集,选择可以到达策略点的第k条路径。
106.本发明中,对于路径间的支配关系,例如在图1中,存在两条路径p1=《s,a,d》和p2=《s,a,c,d》,在天气为w的某一时刻t进行查询,两条路径的旅行时间分别为trt(p1)=25,trt(p2)=40,可以看出在这一背景下路径p1所需的旅行时间比p2要少,因此可以认为在此背景下路径p1在节点d支配路径p2。
107.在一个多重背景路网下,假设天气为w时,在某一时刻t出发,满足策略序列c=《c1,c2,...,cj》的路径集合包含两条路径如果且trt(p1)≤trt(p2),那么称在时间t天气w这一背景下路径p1在顶点处支配路径p2,可以表示为p1<p2,称p1为支配路径或者为skyline路径,称p2为被支配路径。
108.获得一组支配路径与被支配路径后,可以优先考虑在支配路径的基础上继续进行道路拓展,而暂不考虑被支配路径上的道路拓展。假设两条路径和存在支配关系p1<p2,trt(p1)≤trt(p2),对两条路径在符合策略序列的基础上继续进行拓展后,得到两条拓展后的路径列的基础上继续进行拓展后,得到两条拓展后的路径并且这两条路径的拓展路径都为p
*
=《v
i+1
,v
i+2
,...,t》。拓展后的路径的行驶时间可以表示为trt(p
′1)=trt(p1)+trt(p
*
)与trt(p
′2)=trt(p2)+trt(p
*
)),因为两条路径在拓展路径上的行驶时间是相同的,而且路径p1与p2存在支配关系,所以可以得到trt(p
′1)≤trt(p
′2)。利用这一方法可以在支配路径的拓展路径成为top-k最优路径序列之后,再对被支配路径进行拓展,因为由被支配路径产生的拓展路径并不优于支配路径拓展所得的路径,所以在找到一条最优路线之后,再去寻找其支配的路径,计算该路径的拓展路径能否成为下一条最优路线。查询中利用此方法进行剪枝可以很大程度减少计算的次数,提高查找效率。
109.在时间依赖路网上使用路径支配算法时可能会出现算法失效的情况,这是因为我们在时间依赖路网上进行查询时,查询时间背景的差异可能导致所花费的旅行时间出现不同。假设两条路径p1,p2存在支配关系p1<p2,当查询时间为t时,两条路径的行驶时间为trt(p1)与trt(p2),那么对两条道路进行道路拓展时,发起查询的时间分别为t1=t+trt(p1),t2=t+trt(p2),根据支配关系可得t1≤t2。当t1=t2时,在路径p
*
上拓展时查询时间相同,所以trt(p
′1)=trt(p
′2)一定成立。但是当t1《t2时,对于拓展路径上的时间函数由于查询时间背景不同,我们无法确定与之间的关系,从而无法得到拓展后的两条路径权重trt(p
′1),trt(p
′2)之间的大小关系。因此这种路径支配关系并不适用于上述场景。
110.实际生活中时间依赖路网上所产生的时间函数一般为梯度较缓的线性函数,旅行时间在短时间内并不会产生太大的变化。当两个查询的背景时间差在一个可接受的范围内,我们可以认为不同的查询时间并不会影响支配路径之后的拓展,因此设定一个阈值ξ,当支配路径与被支配路径之间的权重差小于该阈值即trt(p2)-trt(p1)≤ξ时,我们忽略不同时间背景的影响;当超过该阈值时则认为两条路径之间不构成支配关系。
111.本发明中,对于基于支配关系的top-k路径查询算法,具体如下:
112.对于多重背景下的top-k路径序列查询q=(s,d,t,c,w,k),该算法输入查询的源点与目的地(s,d)、出发时间t、策略序列c=《c1,c2,...,cj》、出发时的天气w以及所需的路径序列数k,输出前k条最优路径序列集mcdr_l。首先建立一个初始查询队列q

(《s》,t,1),该序列从起点s开始,查询时间为t的第一条路径序列。接下来每一个节点v∈v建立支配表与被支配表v.ht
<c
与v.ht
>c
,并初始化两表为空。初始化查询序列集mcdr_l为空,定义策略标识num为0。查询开始,先判断队列q是否为空,且列表l中存在的序列数不能多于k。我们将从队列q中弹出的节点标记为ρ=(p=《v0,v1,...,vi》,t,x),其中p=《v0,v1,...,vi》为当前已经行驶过的路径序列,t为从点vi出发的时间,x表示上一个策略点到下一个策略点之间
所选路线的权重排名。对于当前的路径序列p=《v0,v1,...,vi》,首先从点vi进行拓展,寻找符合策略要求c的最临近顶点,并将找到的点记为v
i+1
。如果v
i+1
的节点支配表v
i+1
,ht
<c
为空集,那么就将拓展后的路径p=《v0,v1,...,vi,v
i+1
》加入到节点支配表v
i+1
,ht
<c
中。
113.当路径序列的vi=d且遍历完策略序列后,该条路径即为已查找到的一条路径序列,将ρ插入到序列l中。接下来开始查找所有的节点被支配表vj,ht
>c
,如果发现某一节点的被支配路径表不为空,那么就将该序列取出,记为(p

=《v0,v
′1,...,vi》,trt(p),-),并将其加入到队列q中。在拓展到新的节点后,如果该节点的路径支配表不为空则比较支配表中的路径p权重与当前路径p

的权重,如果两条路径的旅行时间差trt(p

)-trt(p)≤ξ,则这两条路径形成支配关系,将路径p

加入到当前节点的被支配表v
i+1
,ht
>c
中。如果不构成支配关系则将该序列插入到队列q中。进行判断后,如果当前节点序列p的节点数|p|》1,就重新寻找vi,找到其离v
i-1
第x+1近的策略点,将拓展后的路径记为p=《v0,v1,...,v
′i》,并将该条路径加入到队列q中。在查询完毕后,算法返回前k条最优路径序列集mcdr_l。
114.本发明对十字路口这一特殊的道路属性进行了处理,并且以一种高效的方式减少十字路口带来的计算冗余;对时间依赖路网定义进行延伸,将其从时间维度之上进行拓展、加入了道路属性,并解决了这一类路网上的路径序列查询问题;将路径序列查询从静态路网拓展到多重背景下的时间依赖路网上,并提出了优化的道路支配算法,成功解决了多重背景下时间依赖路网上top-k路径序列查询问题。
115.本发明实施例的多重背景下的top-k路径序列查询方法,首先通过一种十字路口连接算法,来简化由于十字路口的存在所带来的查询复杂问题,其次建立节点的正反向查询标签索引,通过连接标签索引作为查询临近策略点的基础算法,最后,提出了一种基于路径支配的剪枝算法,通过道路之间的路径支配关系来进行合理剪枝,以此提高道路查询时的效率,高效实现在多重背景下的时间依赖路网中的top-k路径序列查询。
116.本发明实施例提供的一种多重背景下的top-k路径序列查询系统,包括定义模块、连接模块、建立模块、查询模块和确定模块。
117.定义模块用于基于时间函数定义时间依赖路网,并对所述时间依赖路网进行时间函数、策略序列和道路属性的定义,并将天气因素作为查询条件进行时间依赖路网路径序列查询的定义;连接模块用于基于路口端点连接算法,并结合所述时间依赖路网对路网的路口节点进行预处理,将路口节点的邻接节点进行连接,得到路口连接表;建立模块用于对时间依赖路网中的每个节点均建立顶点索引,形成顶点索引集,所述顶点索引包括反向连接查询表和正向连接查询表,所述反向连接查询表包括可以到达当前节点的所有邻接节点,以及到达当前节点时所经过道路的时间函数和道路属性,所述正向连接查询表包含当前节点可以到达的所有邻接节点,以及到达邻接节点时所经过道路的时间函数和道路属性;查询模块用于根据临近策略点查询算法,并集合对时间依赖路网中的每个节点建立的顶点索引,对道路节点的临近策略点进行查询,得到可以到达策略点的多条路径;确定模块用于对路径间的支配关系进行定义,基于多重背景路网下路径支配算法,输入查询的源点、目的地、出发时间、策略序列、出发时的天气和所需的路径序列数,得到包含预设数目最优路径的最优路径序列集。
118.本发明实施例中,时间依赖路网具体为:
119.gm=(vm,em,fm,cm,rm)
120.其中,gm表示时间依赖路网,vm表示一组节点,每个节点表示路网中不同的策略点,em表示一组边集,每条边表示连接两个不同节点的路径,对于边e=(vi,vj),存在时间函数fm,vi和vj表示边e的两个顶点对应的节点,cm用于存储节点的策略属性,当存在一个节点v∈vm时,则策略属性函数c(v)返回节点v的策略属性,rm用于存储道路属性,当存在边e∈em时,则道路属性函数r(e)返回边e的道路属性。
121.以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
122.本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1