一种关键词最优路径查询的分段并行拓展方法

文档序号:30941551发布日期:2022-07-30 02:14阅读:89来源:国知局
一种关键词最优路径查询的分段并行拓展方法

1.本发明属于空间数据查询技术领域,具体是一种关键词最优路径查询的分段并行拓展方法。


背景技术:

2.随着人们对旅游路径需求的多样化,路径查询不只是常见的最短路径查询,人们往往会综合考虑其他因素,如路径时间开销和路径覆盖的兴趣点。考虑如下的场景:当用户想要去某些地方旅游,希望找到一条从指定地点出发,途经满足用户指定的兴趣点,最后到达终点的路径,该路径在满足游客的行程预算(以下称为代价阈值)的前提下,所用时间越短越好。上述查询称为关键词最优路径查询(keyword-aware optimal route query,kor)。kor是一种满足关键词全覆盖、代价阈值(路径长度)和目标值(时间开销)最小的路径查询。该查询通常用于旅行规划、路径导航和其他应用程序。
3.缩短执行时间是kor优化的重要目标,但现在存在两个挑战。第一个挑战是降低搜索规模。现有最先进的技术要么利用邻边拓展,它本质上是从起点开始逐个顶点遍历;或者采用关键词顶点拓展,跳过与关键词无关的顶点不断拓展相邻顶点以外的关键词顶点,但该方法需要在预处理中计算精简skyline路径,时空开销巨大。虽然上述两种方法在拓展时采用各种剪枝策略来缩短执行时间,如近似支配剪枝、全局优先级拓展、可行解目标值剪枝、最小代价值剪枝等,但它们的搜索规模随着路径长度或搜索深度的增加呈指数增长,执行时间仍然令人难以接受。
4.第二个挑战是将现有的路径拓展方法与剪枝策略相结合,以进一步缩短执行时间。目前最先进的技术本质上是串行拓展,即在查询阶段或预处理阶段一次拓展一个顶点,但该方法已达到其性能壁垒。并行拓展路径或许是一个不错的选择。相关研究已经证实单约束下最短路径并行路径拓展的可行性,例如并行拓展单源最短路径和全源最短路径。但目前对于多约束最短路径并行拓展的研究尚未涉及。
5.现有技术存在以下问题:
6.(1)长路径搜索时,现有算法的搜索规模随路径长度或者搜索深度的增加呈指数增长,执行时间过长。
7.(2)并行拓展技术多应用于单约束条件下的最短路径查询,还未涉及到如kor问题的多约束路径查询的研究。为实现kor问题的并行拓展,本发明需探索如何将串行的多约束拓展并行化。


技术实现要素:

8.本发明为了解决上述问题,提供一种关键词最优路径查询的分段并行拓展方法。
9.本发明采取以下技术方案:一种关键词最优路径查询的分段并行拓展方法,包括以下步骤。
10.s100:计算查询图中任意两顶点间的最小代价值b(vi,vj)及最小代价值对应的目
标值o
σ
(vi,vj)和最小目标值o(vi,vj)及最小目标值对应的代价值b
τ
(vi,vj),同时记录查询图g=(v,e)中的最小代价值b
min
和最小目标值o
min

11.s200:关键词倒排列表构建:将顶点的所有关键词信息{v.w1,v.w2,...}组合成非重合的关键词集合,构建形如{wi:vj}的关键词倒排列表,记录关键词对应的顶点。
12.s300:跳过与查询关键词无关的顶点,构建目标值最小的关键词顶点路径记为以及代价值最小的关键词顶点路径记为
13.s400:对关键词顶点路径进行划分,并对划分后的路径分段并行拓展。
14.步骤s300包括以下步骤,
15.s310:给定一个查询vs、v
t
、和δ分别表示查询起点、查询终点、查询路径需要覆盖的关键词集合和代价阈值,隐藏没有包含中任意一个查询关键词的顶点,保留起点、终点和关键词顶点,构造一个简化的关键词顶点查询图g

,在实现过程中,直接根据s200中的关键词倒排列表获取关键词顶点,然后加入查询起点和查询终点,形成查询图g

;查询图g

包含的信息有:(1)预处理阶段获取的任意两顶点间的权值b(vi,vj)、o
σ
(vi,vj)、o(vi,vj)、b
τ
(vi,vj)以及查询图中的最小代价值b
min
、最小目标值o
min
;(2)查询起点、终点、关键词顶点。
16.s320:在关键词顶点查询图g

中,将关键词顶点排列组合,通过广度优先搜索对其遍历,最终返回满足关键词全覆盖和代价阈值的其中包括目标值最小的关键词顶点路径记为代价值最小的关键词顶点路径记为
17.步骤s320包括以下步骤,给定一个查询其中wi={vk,vm},wj={v
x
,vy}。
18.s321:首先在vs处构建初始标签将其置入优先级队列。
19.s322:从起点开始向所有关键词顶点拓展,并构建从vs到各关键词顶点的标签并计算全局优先度入队,其中全局优先度越小,全局优先级越高。
20.s323:选取全局优先级最高的标签出队,此时已经包含关键词wj,向尚未包含的关键词wi相关的顶点vi、vj拓展,构建新标签并判断新标签是否满足代价阈值和近似支配条件,若满足则计算全局优先度后入队,否则被舍弃。
21.s324:继续选取优先级别最高的标签拓展,重复过程s323,直至拓展至终点v
t
,选取满足关键词全覆盖、代价阈值和目标值最小的标签对应的路径记为
22.s325:继续选取优先级别最高的标签拓展,重复过程s323,直至拓展至终点v
t
,选取满足关键词全覆盖、代价阈值和代价值最小的标签对应的路径记为
23.步骤s322中,标签的全局优先度表示为从vs
到v
t
的最小目标值为o(vs,v
t
),设置优先级因子β,1<β<2,该标签的全局优先度越小,则该标签的全局优先级越高。
24.进行步骤s400前,对步骤s300中构建的目标值最小的关键词顶点路径以及代价值最小的关键词顶点路径进行选择,具体选择过程为:
25.在构建的过程中,返回的目标值最小的记为同时记录对应的目标值o
min
和代价值b
max
;返回的代价值最小的记为同时记录b
min
和o
max
;可得[b
min
,b
max
]及[o
min
,o
max
];为保证以为依据的路径拓展会返回有效路径,以o
max
作为目标值的上界,即最坏情况下返回的路径目标值为o
max
,即以为拓展依据的路径,由和组成的关键词顶点路径边界共有以下几种情况;
[0026]
1)不为空,不为空,且b
min
≤b
max
、o
min
≤o
max
,则在路径分段并行拓展中,以为准,并以o
max
作为目标值的上界,中的局部代价阈值约束每段路径拓展。
[0027]
2)为空,不为空,路径分段拓展以为准。
[0028]
3)为空,为空,说明代价阈值太低,提高代价阈值重新构建目标值最小的关键词顶点路径记为以及代价值最小的关键词顶点路径记为
[0029]
步骤s400具体包括以下步骤,
[0030]
s410:设置并行度,将关键词顶点路径划分为多段,关键词顶点路径中除首尾顶点外的所有顶点都是关键词顶点,使用关键词顶点对路径进行分割。
[0031]
s420:对路径分段进行并行拓展,在拓展路径分段时,判断从起始点顶点经过非关键词顶点到每段路径的目标顶点的所有路径的代价值是否小于等于目标顶点处的局部代价阈值,若是且不被近似支配,则进行适用并行拓展的可行解目标值剪枝策略对比,若符合判断条件,则计算全局优先度后入队,否则被舍弃。
[0032]
步骤s410中,设置并行度的原则是使各个路径分段中的关键词顶点尽量均匀以便拓展时各个路径分段中的顶点数相近,从而达到各路径分段的拓展时间接近的目的;在实际并行时,可以根据关键词顶点路径的中的关键词顶点的个数或者通过衡量每段局部代价阈值的大小设置并行度。
[0033]
步骤s420中,可行解目标值剪枝策略对比的判断不等式为:
[0034][0035]
其中,和代表关键词顶点,是从拓展到vk,vk是从到中间经过的一个顶点的标签;如果满足约束,则入队继续拓展,否则丢弃
[0036]
与现有技术相比,本发明具有以下有益效果:
[0037]
(1)本发明提供了一种将多约束kor问题转换为受限最短路径问题的思路,即首先构建满足关键词全覆盖和代价阈值的关键词顶点路径,然后在详细拓展中考虑目标值最小约束,将问题进行切分。
[0038]
(2)本发明针对长路径搜索执行时间长的问题,提出关键词最优路径查询的分段并行拓展方法(pse-kor),通过构建关键词顶点路径,然后以关键词顶点为边界将路径划分为多段,降低长路径搜索时的搜索规模(深度),然后采用并行拓展的方式,进一步缩短长路径kor的执行时间。
[0039]
(3)对于每个分段的路径拓展,提出局部代价阈值剪枝来约束拓展方向和搜索深度,同时降低各分段路径之间的关联度。同时利用近似支配剪枝、全局优先级拓展和适用并行拓展的可行解目标值剪枝策略,加速拓展。
附图说明
[0040]
图1为查询图结构图;
[0041]
图2为关键词顶点路径示意图;
[0042]
图3为关键词顶点路径的构建示意图;
[0043]
图4为关键词顶点路径示例。
具体实施方式
[0044]
本发明针对上述问题,提供了一种关键词最优路径查询的分段并行拓展方法,该方法首先跳过与查询关键词无关的顶点,仅对关键词顶点拓展,构建关键词顶点路径;然后以关键词顶点为边界,将路径划分为多段,并行拓展,最后拼接成完整路径。为降低各路段之间的关联度、降低搜索规模,本发明还提出局部代价阈值和适用于并行拓展的可行解目标值剪枝,配合并行拓展。
[0045]
在进一步说明之前,首先对kor定义进行说明:
[0046]
kor基于路网,路网可以抽象成如图1所示的查询图。
[0047]
定义1查询图:g=(v,e)由顶点集v和边集e构成。任意v∈v表示兴趣点,v的地理位置用经纬度表示,记为v.loc,v的关键词集合表示为连接邻接点vi和vj的路径(vi,vj)称为边,记为e,e∈e。每条边有两个属性:代价值b(vi,vj)和目标值o(vi,vj)。
[0048]
如图1所示,通常代价值表示边的长度,用括号外的数值表示;目标值表示经过边所需要的时间,用括号内的数值表示。表1列出图1中各顶点对应的关键词集合。
[0049]
表1顶点关键词信息
[0050]
[0051]
定义2路径:p=(v0,v1,....vn)表示一条从v0出发,经过v1,
…vn-1
,到达vn的路径,p覆盖的关键词表示为
[0052]
根据定义2,路径p的代价值和目标值分别为:根据定义2,路径p的代价值和目标值分别为:
[0053]
定义3kor:一个kor查询q是一个四元组vs、v
t
、和δ分别表示查询起点、终点、覆盖的关键词集合和代价阈值。用p
s,t
表示从vs到v
t
的路径集合,p
cand
表示满足关键词全覆盖和代价阈值的可行路径p的集合,即则kor的最优路径
[0054]
下面对本发明的技术方案做进一步说明:
[0055]
s100:利用floyd算法,计算查询图中任意两顶点间的最小代价值b(vi,vj)及最小代价值对应的目标值o
σ
(vi,vj)和最小目标值o(vi,vj)及最小目标值对应的代价值b
τ
(vi,vj),同时记录g=(v,e)中的最小代价值b
min
和最小目标值o
min
,并保存在内存中。
[0056]
s200:关键词倒排索引构建:将兴趣点的所有关键词信息{v.w1,v.w2,...}组合成非重合的关键词集合,构建关键词倒排索引表,记录关键词对应的兴趣点,如表2所示。
[0057]
表2关键词倒排索引表
[0058][0059]
s300:跳过与查询关键词无关的顶点,构建目标值最小的关键词顶点路径记为以及代价值最小的关键词顶点路径记为
[0060]
定义4关键词顶点:给定对于关键词若某个顶点覆盖关键词wi,即则称是覆盖关键词wi的一个顶点。
[0061]
定义5关键词顶点路径:给定从vs开始不断检查未覆盖的关键词,并向相应的顶点拓展,获得从vs拓展到v
t
的、满足关键词全覆盖和代价阈值的路径,不失一般性,记为称为关键词顶点路径。
[0062]
步骤s300包括以下步骤:
[0063]
s310:给定一个查询vs、v
t
、和δ分别表示查询起点、查询终点、查询路径需要覆盖的关键词集合和代价阈值,隐藏没有包含中任意一个查询关键词的顶点,保留起点、终点和关键词顶点,构造一个简化的关键词顶点查询图g

,在实现过程中,直接根据s200中的关键词倒排列表获取关键词顶点,然后加入查询起点和查询终点,形成查询图g

;查询图g

包含的信息有:(1)预处理阶段获取的任意两顶点间的权值b(vi,vj)、oσ
(vi,vj)、o(vi,vj)、b
τ
(vi,vj)以及查询图中的最小代价值b
min
、最小目标值o
min
;(2)查询起点、终点、关键词顶点。
[0064]
简化的关键词顶点查询图g

如图2所示。虚线连接关键词顶点,形成关键词顶点查询图。
[0065]
s320:在关键词顶点查询图g

中,将关键词顶点排列组合,通过广度优先搜索对其遍历,最终返回满足关键词全覆盖和代价阈值的其中包括目标值最小的关键词顶点路径记为代价值最小的关键词顶点路径记为如图3所示,可以返回具有最小目标值的关键词顶点路径。
[0066]
s320:在关键词顶点查询图g

中,将关键词顶点排列组合,通过广度优先搜索对其遍历,最终返回满足关键词全覆盖和代价阈值的其中包括目标值最小的关键词顶点路径记为代价值最小的关键词顶点路径记为
[0067]
步骤s320包括以下步骤,给定一个查询其中wi={vk,vm},wj={v
x
,vy}。
[0068]
s321:首先在vs处构建初始标签将其置入优先级队列。
[0069]
s322:从起点开始向所有关键词顶点拓展,并构建从vs到各关键词顶点的标签并计算全局优先度入队,其中全局优先度越小,全局优先级越高。
[0070]
标签的全局优先度表示为从vs到v
t
的最小目标值为o(vs,v
t
),设置优先级因子β,1<β<2,该标签的全局优先度越小,则该标签的全局优先级越高。
[0071]
s323:选取全局优先级最高的标签出队,此时已经包含关键词wj,向尚未包含的关键词wi相关的顶点vi、vj拓展,构建新标签并判断新标签是否满足代价阈值和近似支配条件,若满足则计算全局优先度后入队,否则被舍弃。
[0072]
代价阈值:路径在满足游客的行程预算。
[0073]
近似支配:假设给定一个参数α,α稍大于1(如α=1.1),若路径pi、pj的起点和终点相同,b(pi)≤b(pj)且则路径pi近似支配pj,pj被剪枝。
[0074]
目标修正:给定查询图g=(v,e)和查询已知标签最小代价值b
min
,最小目标值o
min
,其修正目标值为,其修正目标值为被称为修正比例,其中0《ε《1。
[0075]
s324:继续选取优先级别最高的标签拓展,重复过程s323,直至拓展至终点v
t
,选
取满足关键词全覆盖、代价阈值和目标值最小的标签对应的路径记为
[0076]
s325:继续选取优先级别最高的标签拓展,重复过程s323,直至拓展至终点vt,选取满足关键词全覆盖、代价阈值和代价值最小的标签对应的路径记为
[0077]
拓展结果体现在图4所示的g

中,v2、v4是在构建时被舍弃的关键词顶点。
[0078]
对步骤s300中构建的目标值最小的关键词顶点路径以及代价值最小的关键词顶点路径进行选择,具体选择过程为:
[0079]
在构建的过程中,返回的目标值最小的记为同时记录对应的目标值o
min
和代价值b
max
;返回的代价值最小的记为同时记录b
min
和o
max
。可得[b
min
,b
max
]及[o
min
,o
max
]。为保证以为依据的路径拓展会返回有效路径,以o
max
(即)作为目标值的上界,最坏情况下返回的路径目标值为o
max
,即以为拓展依据的路径。在拓展阶段,由和组成的关键词顶点路径边界共有以下几种情况:
[0080]
(1)不为空,不为空,且b
min
≤b
max
、o
min
≤o
max
,则在路径分段拓展中,以为准,并以o
max
作为目标值的上界,中的局部代价阈值约束每段路径拓展。
[0081]
(2)为空,不为空,路径分段拓展以为准。
[0082]
(3)为空,为空,说明代价阈值太低,提高代价阈值重新构建目标值最小的关键词顶点路径记为以及代价值最小的关键词顶点路径记为
[0083]
目标值最小的关键词顶点路径,因此该路径具有最小目标值o
min
,由于在求解时,目标是目标值最小,路径代价值的要求仅是满足代价阈值即可,因此约定中的路径代价值为b
max

[0084]
代价值最小的关键词顶点路径,因此该路径具有最小目标值b
min
,由于在求解时,目标值代价值最小,对目标值没有约束,因此约定中的路径代价值为o
max

[0085]omin
:整张路网图的最小目标值;b
min
:整张路网图的最小代价值。
[0086]
由上文可知,在构建时获取的是目标值最小和代价值最小的两种关键词顶点路径,在实际拓展过程中根据上述三种情况选择具体拓展依据。
[0087]
s400:对关键词顶点路径进行划分,并对划分后的路径分段并行拓展。具体步骤如下:
[0088]
s410:设置并行度,将关键词顶点路径划分为多段,关键词顶点路径中除首尾顶点外的所有顶点都是关键词顶点,使用关键词顶点对路径进行分割。
[0089]
关键词顶点路径中除首尾顶点外的所有顶点都是关键词顶点,因此可以使用关键词顶点对路径进行分割。如图4所示,路径可分为三段vs→
v1、v1→
v3、v3→vt
或两段vs→
v1→
v3、v3→vt

[0090]
设置并行度的原则是使各个路径分段中的关键词顶点尽量均匀以便拓展时各个路径分段中的顶点数相近,从而达到各路径分段的拓展时间接近的目的;在实际并行时,可
以根据关键词顶点路径的中的关键词顶点的个数或者通过衡量每段局部代价阈值的大小设置并行度。
[0091]
s420:对路径分段进行并行拓展,在拓展路径分段时,判断从起始点顶点经过非关键词顶点到每段路径的目标顶点的所有路径的代价值是否小于等于目标顶点处的局部代价阈值,若是且不被近似支配,则进行适用并行拓展的可行解目标值剪枝策略对比,若符合判断条件,则计算全局优先度后入队,否则被舍弃。
[0092]
可行解目标值剪枝:当获取一条可行路径pi(pi∈p
cand
)时,将其目标值o(pi)作为剪枝条件,若路径pj(pj∈p
cand
)的目标值大于o(pi),即o(pi)<o(pj),则pj被剪枝。
[0093]
局部代价阈值:已知一条关键词顶点路径以及该路径的总代价值对于任意两个相邻的关键词顶点和当进行路径拓展时,把作为从到这段路径拓展的局部代价阈值。
[0094]
由于构建关键词顶点路径时,已经满足关键词全覆盖和代价阈值这两个约束条件,并且记录了每段路径的局部代价阈值,因此在并行拓展每段路径时可以使用局部代价阈值代替全局代价阈值约束。局部代价阈值仅对每段路经进行约束,与其他路径是独立的,因此可以降低路径之间的关联度。可行解目标值剪枝策略对比的判断不等式为:
[0095][0096]
其中,和代表关键词顶点,是从拓展到vk,vk是从到中间经过的一个顶点的标签;如果满足约束,则入队继续拓展,否则丢弃
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1