CN108733803B - 一种道路网络下多用户空间关键词查询方法 - Google Patents

一种道路网络下多用户空间关键词查询方法 Download PDF

Info

Publication number
CN108733803B
CN108733803B CN201810480584.5A CN201810480584A CN108733803B CN 108733803 B CN108733803 B CN 108733803B CN 201810480584 A CN201810480584 A CN 201810480584A CN 108733803 B CN108733803 B CN 108733803B
Authority
CN
China
Prior art keywords
undirected graph
vertex
interest
road network
point
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.)
Expired - Fee Related
Application number
CN201810480584.5A
Other languages
English (en)
Other versions
CN108733803A (zh
Inventor
王勇
郝玉洁
林劼
张译权
杨晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201810480584.5A priority Critical patent/CN108733803B/zh
Publication of CN108733803A publication Critical patent/CN108733803A/zh
Application granted granted Critical
Publication of CN108733803B publication Critical patent/CN108733803B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于道路网络的空间关键词查询方法,包括基于道路网络的空间关键词数据处理步骤、构造道路网络索引步骤、构造查询请求步骤、查询初始化步骤和数据查询步骤。本发明提供了一种基于道路网络的空间关键词查询方法,建立了一种新的能够有效索引道路网络的索引结构,适用于道路网络下的多用户查询的场景中,为用户提供更加准确地查询结果,提高用户查询满意度。

Description

一种道路网络下多用户空间关键词查询方法
技术领域
本发明涉及空间关键词查询领域,尤其涉及一种基于道路网络的多用户空间关键词查询方法。
背景技术
随着位置服务和智能终端的普及,基于位置的社交网络应用与人们的生活息息相关。在这类网络中,用户会发起多种多样的查询请求以满足自己的查询需求,例如:top-k查询、 skyline查询和范围查询等。然而,这些查询仅能支持单用户发起的查询请求,却对多用户情景下的查询请求无能为力。此外,在基于位置的社交网络应用中,用户的位置信息和兴趣点的可达性均受道路网络的限制;两个兴趣点之间的距离由二者间经由道路网络的最短路径决定,而不是由空间欧式距离决定。因此,需要设计一种能够应用于道路网络的多用户空间关键词查询方法。
专利申请号CN201610195409.2公开了一种多用户决定的空间数据查询验证方法,该方法能够提供一种多用户决定的空间数据查询验证方法,能够应用于多用户决定的场景中;一组用户可以提供自己所在的位置和偏好来得到一组满足用户需求的兴趣点;该方法可以在空间数据外包的服务模式下执行,为查询用户提供高效且准确的查询功能。由于该方法没有能够有效索引道路网络中兴趣点的索引结构,且查询方法不适用于道路网络环境,因此,该方法仅能应用于空间环境中,而无法应用于道路网络中。
专利申请号CN201310056531.8公开了一种道路网络环境下不确定时空轨迹数据的范围查询方法,过程如下:先将道路网络划分成k个划分区域;根据边和划分的对应关系建立哈希表;计算划分区域的边界点,并建立空间二维R树索引;计算每个划分中边界点之间的最短路径距离;对每个划分建立一个一维R树时间段索引,对每棵一维R树,建立存储轨迹数据的B+树;其次计算确定轨迹和不确定轨迹的最早到达时间和最晚离开时间,并将单元段集合和划分起止时间插入时间间隔组件;最后根据查询点所在的划分,计算划分边界点与查询点的距离信息,从而得到查询结果。该方法仅能应用于单用户范围查询情景,无法应用于多用户关键词查询情景;该方法中的索引结构仅允许从查询点所在的划分开始,根据划分边界点到查询点的距离,由近及远遍历每个划分,直到找到符合要求的结果;而这种索引结构无法处理包含多个查询点的多用户空间查询。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于道路网络的多用户空间关键词查询方法,能够适用于多用户查询的场景中,且能够适用于道路网络环境下的查询场景,为用户提供更加准确地查询结果,提高用户查询满意度。
本发明的目的是通过以下技术方案来实现的:
一种基于道路网络的空间关键词查询方法,具体的,包括以下步骤:基于道路网络的空间关键词数据处理步骤S1、构造道路网络索引步骤S2、构造查询请求步骤S3、查询初始化步骤S4、数据查询步骤S5;
S1.基于道路网络的空间关键词数据处理步骤:将道路网络建模为无向图,用顶点表示道路网络中的路口,用边表示道路网络中的一段道路;将度大于三的顶点记为交叉点;将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;
S2.构造道路网络索引:给定无向图
Figure DEST_PATH_IMAGE002
,以交叉点为核心构造Snode,以Snode为核心抽象无向图G,并在此基础上为道路网络G构造层级索引结构HI,为基于道路网络的多用户空间关键词查询提供有效的索引结构;
定义如下概念:
Snode:给定无向图
Figure DEST_PATH_IMAGE004
,定义Sn是无向图G的一个Snode当且仅当满足如下两个条件:(1)图Sn是无向图G的子图;(2)图Sn中仅存在一个度大于等于三的顶点;图Sn可表示为
Figure DEST_PATH_IMAGE006
,其中,
Figure DEST_PATH_IMAGE008
是图Sn的顶点集且
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
是图Sn的边集且
Figure DEST_PATH_IMAGE014
Figure DEST_PATH_IMAGE016
为位于图Sn上的所有兴趣点的关键词集合的并集,即
Figure DEST_PATH_IMAGE018
Figure DEST_PATH_IMAGE020
是图Sn中唯一度大于等于三的顶点的位置信息;
邻居点集合:给定顶点
Figure DEST_PATH_IMAGE022
和无向图
Figure 970837DEST_PATH_IMAGE002
,顶点
Figure 278190DEST_PATH_IMAGE022
的邻居点集合
Figure DEST_PATH_IMAGE024
可表示为
Figure DEST_PATH_IMAGE026
,且该集合中每个顶点
Figure DEST_PATH_IMAGE028
需要满足一下三个条件:(1)顶点
Figure 668981DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
)在无向图G中且与顶点
Figure 719982DEST_PATH_IMAGE022
相邻,即
Figure DEST_PATH_IMAGE032
Figure DEST_PATH_IMAGE034
;(2)顶点
Figure 658988DEST_PATH_IMAGE028
的度小于三,即
Figure DEST_PATH_IMAGE036
;(3)顶点
Figure 402822DEST_PATH_IMAGE028
未被其他Snode包含覆盖;
S3.构造查询请求:给定四元数组,k代表查询结束后返回的兴趣点个数,U代表一组查询用户,Ω为兴趣点集合,G代表已被抽象化为无向图的道路网络;
S4.查询初始化:定义查询结果集R,并将其初始化为空;计算层级索引结构HI中顶点的价值
Figure DEST_PATH_IMAGE038
S5.数据查询:层级标识位j标识此时遍历的无向图所在的层级,将HI.height赋值给层级标识位j(
Figure DEST_PATH_IMAGE040
);无向图
Figure DEST_PATH_IMAGE042
被初始化为
Figure DEST_PATH_IMAGE044
,表示遍历将从层级索引结构
Figure DEST_PATH_IMAGE046
所存储的最顶层无向图
Figure DEST_PATH_IMAGE048
开始;维持一个根据兴趣点价值大小排序的最小堆
Figure DEST_PATH_IMAGE050
来保存待遍历的兴趣点,依次遍历无向图
Figure 919123DEST_PATH_IMAGE042
中所有兴趣点,分别计算他们的价值并将这些兴趣点加入最小堆
Figure 321286DEST_PATH_IMAGE050
,判断以下两个停止条件是否被满足:(1)结果集R中兴趣点数量未达到用户所要求的k个;(2)层级标识位j大于等于零;只有这两个条件都满足才会继续执行查询;最小堆
Figure 459006DEST_PATH_IMAGE050
弹出价值最小的兴趣点current,并根据其状态对其进行处理;当查询不再继续进行时,将结果集R返回给查询用户。
进一步地,所述步骤S1包括以下子步骤:
S11.道路网络建模:将道路网络建模为无向图G=(V,E),V表示G的顶点集,E表示G的边集;顶点集的顶点v代表道路网络中的路口或者道路中点,边集中的边
Figure DEST_PATH_IMAGE052
表示道路网络中的一段道路;每一条边都有相应的非负权重
Figure DEST_PATH_IMAGE054
,代表从一个端点到另一个端点的代价;将度大于三的顶点记为交叉点;
S12.兴趣点构造:将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;每一个兴趣点p同样可表示为
Figure DEST_PATH_IMAGE056
,
Figure DEST_PATH_IMAGE058
是p的唯一标识,
Figure DEST_PATH_IMAGE060
为一组描述兴趣点p的关键词,
Figure DEST_PATH_IMAGE062
为兴趣点p的位置信息,表示兴趣点p位于道路网络G的边e上,其距离边e的端点v的长度为
Figure DEST_PATH_IMAGE064
进一步地,所述步骤S2包括以下子步骤:
S21.基础索引结构初始化:定义一种基础索引结构存储无向图G,包含四个组件:(1)边点组件GC,利用顶点划分和边缘划分分别存储无向图G的点集
Figure DEST_PATH_IMAGE066
和边集
Figure DEST_PATH_IMAGE068
;(2)邻居组件AD,存储每个顶点v的所有相邻顶点;给定顶点v,邻居组件AD存储该顶点的邻居表
Figure DEST_PATH_IMAGE070
。且顶点
Figure DEST_PATH_IMAGE072
为顶点v的邻居,
Figure DEST_PATH_IMAGE074
为边
Figure DEST_PATH_IMAGE076
的权重;(3)映射组件MS,存储两种映射关系,分别为从虚拟顶点到Snode的映射(
Figure DEST_PATH_IMAGE078
)和从虚拟兴趣点到Snode的映射(
Figure DEST_PATH_IMAGE080
);这些映射所指向的Snode的具体组成
Figure 674873DEST_PATH_IMAGE006
的具体组成也存储在映射组件MS中;(4)空间组件SC,存储无向图G中每条边的具体信息;每一条边用一个折线文件存储,记录位于这条边上的顶点和兴趣点的具体信息;
S22.层级索引结构HI初始化:定义层级索引结构
Figure DEST_PATH_IMAGE082
以分层索引给定的道路网络G,
Figure DEST_PATH_IMAGE084
Figure DEST_PATH_IMAGE086
Figure DEST_PATH_IMAGE088
,...,且这些道路网络均被表示为无向图;每个无向图存储于含有四个组件的基础索引结构
Figure DEST_PATH_IMAGE090
中;用
Figure DEST_PATH_IMAGE092
Figure DEST_PATH_IMAGE094
Figure DEST_PATH_IMAGE096
Figure DEST_PATH_IMAGE098
分别表示无向图
Figure DEST_PATH_IMAGE100
的边点组件,邻居组件,映射组件和空间组件;给定的道路网络G被定义为第0层无向图,表示为
Figure 881733DEST_PATH_IMAGE084
;根据prim算法计算
Figure 87586DEST_PATH_IMAGE084
的最小生成树,并将该最小生成树作为第1层无向图,表示为
Figure 79813DEST_PATH_IMAGE086
Figure DEST_PATH_IMAGE102
是不存在的,
Figure DEST_PATH_IMAGE104
为空集;用于标识无向图层数的标识位
Figure DEST_PATH_IMAGE106
被置为1,即
Figure DEST_PATH_IMAGE108
S23.无向图G抽象:给定无向图
Figure DEST_PATH_IMAGE110
,通过深度优先搜索遍历整个无向图,并构造Snode以索引无向图
Figure DEST_PATH_IMAGE112
S24.层级索引结构HI构造:通过调用GraphAbstraction算法来对无向图
Figure 821242DEST_PATH_IMAGE044
进行抽象以得到更上一层的无向图
Figure DEST_PATH_IMAGE114
及相应的映射组件
Figure DEST_PATH_IMAGE116
;用于标识无向图层数的标识位j上移一层(
Figure DEST_PATH_IMAGE118
)表示下一次图的抽象是在更上一层无向图;
S25.抽象停止条件:执行完步骤S24后得到无向图
Figure 453080DEST_PATH_IMAGE044
,如果无向图
Figure 197045DEST_PATH_IMAGE044
中不存在度大于3的顶点,则层级索引结构HI构造完成,用HI.height记录抽象层数(
Figure DEST_PATH_IMAGE120
),将包含所有无向图的层级索引结构
Figure DEST_PATH_IMAGE122
作为查询索引结构;否则,无向图
Figure 756028DEST_PATH_IMAGE044
中存在度大于3的顶点,跳转至步骤S23,继续执行无向图抽象。
进一步地,所述步骤S4包括以下子步骤:
S41.结果集R初始化:定义查询结果集R,并将其初始化为空;
S42.价值计算:计算层级索引结构HI中顶点的价值
Figure 560036DEST_PATH_IMAGE038
进一步地,所述步骤S5中检查最小堆
Figure 23379DEST_PATH_IMAGE050
弹出价值最小的兴趣点current的状态并进行相应处理分为以下两种情况:
(1)如果该层的映射组件
Figure DEST_PATH_IMAGE124
包含兴趣点current,可以判定弹出的兴趣点current是代表Snode的虚拟兴趣点,层级标识位j减1(
Figure DEST_PATH_IMAGE126
),无向图
Figure 23565DEST_PATH_IMAGE042
更新,表示层级下移,待遍历的无向图
Figure 990384DEST_PATH_IMAGE042
被替换成层级索引结构HI中下一层无向图
Figure 230872DEST_PATH_IMAGE044
;根据映射组件MS得到兴趣点current所代表的Snode Sn;计算Snode Sn所包含的所有兴趣点的价值,并在清空最小优先堆列TE后将这些兴趣点重新加入最小优先堆列TE;
(2)如果该层的映射组件
Figure 915931DEST_PATH_IMAGE124
不包含兴趣点current,可以判定弹出的兴趣点current不是代表Snode的虚拟兴趣点,而是真实存在于道路网络中的兴趣点,将这一兴趣点放入结果集R;参照新更新的本轮查询结果集R,重新计算最小堆TE中所有兴趣点的价值,并根据重新计算的兴趣点价值更新最小堆TE。
进一步地,所述步骤S23包括以下子步骤:
S231.交叉点检索:给定无向图
Figure 516546DEST_PATH_IMAGE110
,通过深度优先搜索遍历该无向图并将其中度大于3的顶点放入队列
Figure DEST_PATH_IMAGE128
中;参照邻居点集合的定义,依次遍历队列
Figure DEST_PATH_IMAGE130
中的所有顶点并为其中的每一个顶点分别构造其相应的邻居点集合;
S232.Snode构造:依次遍历队列
Figure DEST_PATH_IMAGE132
中所有顶点,参照Snode的定义,以每个顶点
Figure DEST_PATH_IMAGE134
为核心点,辅以邻居点集合
Figure DEST_PATH_IMAGE136
,分别构造Snode
Figure DEST_PATH_IMAGE138
;将无向图G中所有Snode
Figure DEST_PATH_IMAGE140
分别合并成一个虚拟顶点v,并将从顶点v到Snode
Figure 400188DEST_PATH_IMAGE140
的映射关系
Figure 77157DEST_PATH_IMAGE078
存储于映射组件
Figure DEST_PATH_IMAGE142
;由于顶点v为用于替代Snode
Figure 702042DEST_PATH_IMAGE140
的虚拟顶点,在相同位置创建虚拟兴趣点
Figure DEST_PATH_IMAGE144
以代表Snode
Figure 325922DEST_PATH_IMAGE140
所包含的兴趣点,
Figure DEST_PATH_IMAGE146
,
Figure DEST_PATH_IMAGE148
;从兴趣点
Figure DEST_PATH_IMAGE150
到Snode
Figure 188704DEST_PATH_IMAGE140
的映射关系
Figure 770995DEST_PATH_IMAGE080
也存储在映射组件
Figure 679915DEST_PATH_IMAGE142
中。
本发明的有益效果是:(1)允许一组用户在能够在道路网络的环境下发起多用户空间关键词查询;(2)比原有的空间关键词查询方法具有更快的查询速度和更短的响应时间,减少了用户的开支。
附图说明
图1为本发明的流程图;
图2为本发明中的基础索引结构;
图3为本发明中的层级索引结构;
图4为本发明中的数据查询过程中的流程图;
图5为本发明的流程简图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种交互式多用户空间关键词查询方法,包括以下步骤:
S1.基于道路网络的空间关键词数据处理步骤:将道路网络建模为无向图,用顶点表示道路网络中的路口,用边表示道路网络中的一段道路;将度大于三的顶点记为交叉点;将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;
S2.构造道路网络索引:给定无向图
Figure 373064DEST_PATH_IMAGE002
,以交叉点为核心构造Snode,以Snode为核心抽象无向图G,并在此基础上为道路网络G构造层级索引结构HI,为基于道路网络的多用户空间关键词查询提供有效的索引结构;
定义如下概念:
Snode:给定无向图
Figure 903403DEST_PATH_IMAGE004
,定义Sn是无向图G的一个Snode当且仅当满足如下两个条件:(1)图Sn是无向图G的子图;(2)图Sn中仅存在一个度大于等于三的顶点。图Sn可表示为
Figure 656595DEST_PATH_IMAGE006
,其中,
Figure 803542DEST_PATH_IMAGE008
是图Sn的顶点集且
Figure 549650DEST_PATH_IMAGE010
Figure 200075DEST_PATH_IMAGE012
是图Sn的边集且
Figure 124168DEST_PATH_IMAGE014
Figure 492833DEST_PATH_IMAGE016
为位于图Sn上的所有兴趣点的关键词集合的并集,即
Figure 782912DEST_PATH_IMAGE018
Figure 553422DEST_PATH_IMAGE020
是图Sn中唯一度大于等于三的顶点的位置信息;
邻居点集合:给定顶点
Figure 648417DEST_PATH_IMAGE022
和无向图
Figure 504377DEST_PATH_IMAGE002
,顶点
Figure 343020DEST_PATH_IMAGE022
的邻居点集合
Figure 217304DEST_PATH_IMAGE024
可表示为
Figure 483200DEST_PATH_IMAGE026
,且该集合中每个顶点
Figure 560878DEST_PATH_IMAGE028
需要满足一下三个条件:(1)顶点
Figure 468791DEST_PATH_IMAGE028
Figure 948314DEST_PATH_IMAGE030
)在无向图G中且与顶点
Figure 634379DEST_PATH_IMAGE022
相邻,即
Figure 464932DEST_PATH_IMAGE032
Figure 645377DEST_PATH_IMAGE034
;(2)顶点
Figure 979407DEST_PATH_IMAGE028
的度小于三,
Figure 836373DEST_PATH_IMAGE036
;(3)顶点
Figure 154222DEST_PATH_IMAGE028
未被其他Snode包含覆盖;
S3.构造查询请求:给定四元数组,k代表查询结束后返回的兴趣点个数,U代表一组查询用户,Ω为兴趣点集合,G代表已被抽象化为无向图的道路网络;
S4.查询初始化:定义查询结果集R,并将其初始化为空;计算层级索引结构HI中顶点的价值
Figure 872779DEST_PATH_IMAGE038
S5.数据查询:如图4所示,层级标识位j标识此时遍历的无向图所在的层级,将HI.height赋值给层级标识位j(
Figure 592474DEST_PATH_IMAGE040
);无向图
Figure 371074DEST_PATH_IMAGE042
被初始化为
Figure 159907DEST_PATH_IMAGE044
,表示遍历将从层级索引结构
Figure 682155DEST_PATH_IMAGE046
所存储的最顶层无向图
Figure 256356DEST_PATH_IMAGE048
开始;维持一个根据兴趣点价值大小排序的最小堆
Figure 205858DEST_PATH_IMAGE050
来保存待遍历的兴趣点,依次遍历无向图
Figure 967140DEST_PATH_IMAGE042
中所有兴趣点,分别计算他们的价值并将这些兴趣点加入最小堆
Figure 807926DEST_PATH_IMAGE050
,判断以下两个停止条件是否被满足:(1)结果集R中兴趣点数量未达到用户所要求的k个;(2)层级标识位j大于等于零。只有这两个条件都满足才会继续执行查询;最小堆
Figure 971054DEST_PATH_IMAGE050
弹出价值最小的兴趣点current,并根据其状态对其进行处理;当查询不再继续进行时,将结果集R返回给查询用户。
进一步地,所述的步骤S1包括以下子步骤:
S11.道路网络建模:将道路网络建模为无向图G=(V,E),V表示G的顶点集,E表示G的边集;顶点集的顶点v代表道路网络中的路口或者道路中点,边集中的边
Figure 91457DEST_PATH_IMAGE052
表示道路网络中的一段道路;每一条边都有相应的非负权重
Figure 871194DEST_PATH_IMAGE054
,代表从一个端点到另一个端点的代价;将度大于三的顶点记为交叉点;
S12.兴趣点构造:将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;每一个兴趣点p同样可表示为
Figure 735245DEST_PATH_IMAGE056
,
Figure 2147DEST_PATH_IMAGE058
是p的唯一标识,
Figure 824610DEST_PATH_IMAGE060
为一组描述兴趣点p的关键词,
Figure 560484DEST_PATH_IMAGE062
为兴趣点p的位置信息,表示兴趣点p位于道路网络G的边e上,其距离边e的端点v的长度为
Figure 228226DEST_PATH_IMAGE064
进一步地,所述步骤S2包括以下子步骤:
S21.基础索引结构初始化:如图2所示,定义一种基础索引结构存储无向图G,包含四个组件:(1)边点组件GC(Edge and Vertex component),利用Vertex partition和Edgepartition分别存储无向图G的点集
Figure 349635DEST_PATH_IMAGE066
和边集
Figure 342999DEST_PATH_IMAGE068
;(2)邻居组件AD(Adjacency component),存储每个顶点v的所有相邻顶点。给定顶点v,邻居组件AD存储该顶点的邻居表
Figure 566170DEST_PATH_IMAGE070
。且顶点
Figure 772023DEST_PATH_IMAGE072
为顶点v的邻居,
Figure 29829DEST_PATH_IMAGE074
为边
Figure 195361DEST_PATH_IMAGE076
的权重;(3)映射组件MS(Mapping component),存储两种映射关系,分别为从虚拟顶点到Snode的映射(
Figure 640248DEST_PATH_IMAGE078
)和从虚拟兴趣点到Snode的映射(
Figure 915372DEST_PATH_IMAGE080
);这些映射所指向的Snode的具体组成
Figure 27684DEST_PATH_IMAGE006
的具体组成也存储在映射组件MS中;(4)空间组件SC(Spatial component),存储无向图G中每条边的具体信息;每一条边用一个折线文件存储,记录位于这条边上的顶点和兴趣点的具体信息;
S22.层级索引结构HI初始化:如图3所示,定义层级索引结构
Figure 831692DEST_PATH_IMAGE082
以分层索引给定的道路网络G,
Figure 544302DEST_PATH_IMAGE084
Figure 91958DEST_PATH_IMAGE086
Figure 58777DEST_PATH_IMAGE088
,...,且这些道路网络均被表示为无向图;每个无向图存储于含有四个组件的基础索引结构
Figure 33687DEST_PATH_IMAGE090
中;用
Figure 968013DEST_PATH_IMAGE092
Figure 319360DEST_PATH_IMAGE094
Figure 140686DEST_PATH_IMAGE096
Figure 552076DEST_PATH_IMAGE098
分别表示无向图
Figure 708119DEST_PATH_IMAGE100
的边点组件,邻居组件,映射组件和空间组件;给定的道路网络G被定义为第0层无向图,表示为
Figure 863157DEST_PATH_IMAGE084
;根据prim算法计算
Figure 804568DEST_PATH_IMAGE084
的最小生成树,并将该最小生成树作为第1层无向图,表示为
Figure 121280DEST_PATH_IMAGE086
Figure 515352DEST_PATH_IMAGE102
是不存在的,
Figure 723349DEST_PATH_IMAGE104
为空集;用于标识无向图层数的标识位
Figure 519266DEST_PATH_IMAGE106
被置为1,即
Figure 272459DEST_PATH_IMAGE108
S23.无向图G抽象:给定无向图
Figure 419406DEST_PATH_IMAGE110
,通过深度优先搜索遍历整个无向图,并构造Snode以索引无向图
Figure 650667DEST_PATH_IMAGE112
S24.层级索引结构HI构造:通过调用GraphAbstraction算法来对无向图
Figure 550359DEST_PATH_IMAGE044
进行抽象以得到更上一层的无向图
Figure 740032DEST_PATH_IMAGE114
及相应的映射组件
Figure 108697DEST_PATH_IMAGE116
;用于标识无向图层数的标识位j上移一层(
Figure 143649DEST_PATH_IMAGE118
)表示下一次图的抽象是在更上一层无向图;
S25.抽象停止条件:执行完步骤S24后得到无向图
Figure 914159DEST_PATH_IMAGE044
,如果无向图
Figure 258421DEST_PATH_IMAGE044
中不存在度大于3的顶点,则层级索引结构HI构造完成,用HI.height记录抽象层数(
Figure 114382DEST_PATH_IMAGE120
),将包含所有无向图的层级索引结构
Figure 953025DEST_PATH_IMAGE122
作为查询索引结构;否则,无向图
Figure 578041DEST_PATH_IMAGE044
中存在度大于3的顶点,跳转至步骤S23,继续执行无向图抽象。
进一步地,所述步骤S3包括以下定义:
Figure DEST_PATH_IMAGE152
,式中表示用户组U中第i+1个用户,n表示用户组U中用户的个数,每一个用户u均可表示为
Figure DEST_PATH_IMAGE154
Figure DEST_PATH_IMAGE156
为用户u的唯一标识;u. λ为其位置信息,可表示为
Figure DEST_PATH_IMAGE158
,表示用户u位于道路网络G的边e上,其距离边e的端点v的长度为
Figure 499730DEST_PATH_IMAGE064
Figure DEST_PATH_IMAGE160
为用户u的关键词需求;将用户提供的所有关键词称为查询关键词,记为
Figure DEST_PATH_IMAGE162
,式中,,表示地点集合P中第i+1个地点对象,s表示地点集合Ω中地点对象的个数,每一个兴趣点p同样可表示为
Figure 770217DEST_PATH_IMAGE056
,
Figure 678130DEST_PATH_IMAGE058
是p的唯一标识,
Figure 157653DEST_PATH_IMAGE060
为一组描述兴趣点p的关键词,
Figure 109297DEST_PATH_IMAGE062
为兴趣点p的位置信息,表示兴趣点p位于道路网络G的边e上,其距离边e的端点v的长度为
Figure 674271DEST_PATH_IMAGE064
定义如下概念:
标准谷歌距离:给定两个关键词x和y,二者间的标准谷歌距离为:
Figure DEST_PATH_IMAGE164
,式中f(x)和f(y)分别为谷歌搜索关键词x和y时返回的网页数目,f(x,y)为谷歌同时搜索关键词x和y的网页数目,N为谷歌索引的网页总数目;两个关键词的标准谷歌距离越小,其文本相关性越高;
文本相关度:给定兴趣点p和用户u,兴趣点p所携带的关键词与用户u所提供的关键词需求的文本相关度为:;
道路网络距离:给定兴趣点
Figure DEST_PATH_IMAGE166
和用户u,
Figure DEST_PATH_IMAGE168
Figure DEST_PATH_IMAGE170
分别代表兴趣点
Figure DEST_PATH_IMAGE172
到用户u和兴趣点
Figure DEST_PATH_IMAGE174
到兴趣点
Figure DEST_PATH_IMAGE176
的道路网络距离,即二者间的最短加权路径长度;
代价函数
Figure DEST_PATH_IMAGE178
:给定结果集R和四元数组Q,代价函数
Figure 369563DEST_PATH_IMAGE178
为:
Figure DEST_PATH_IMAGE180
,式中
Figure DEST_PATH_IMAGE182
为,
Figure DEST_PATH_IMAGE184
为;
给定后,理想结果是最终k个兴趣点存储在结果集R中,且代价函数
Figure DEST_PATH_IMAGE186
最小。
进一步地,所述步骤S4包括以下子步骤:
S41.结果集R初始化:定义查询结果集R,并将其初始化为空;
S42.价值计算:计算层级索引结构HI中顶点的价值
Figure 624964DEST_PATH_IMAGE038
进一步地,如图4所示,所述步骤S5中检查最小堆
Figure 232663DEST_PATH_IMAGE050
弹出价值最小的兴趣点current的状态并进行相应处理分为以下两种情况:
(1)如果该层的映射组件
Figure 550512DEST_PATH_IMAGE124
包含兴趣点current,可以判定弹出的兴趣点current是代表Snode的虚拟兴趣点,层级标识位j减1(
Figure 269069DEST_PATH_IMAGE126
),无向图
Figure 238031DEST_PATH_IMAGE042
更新,表示层级下移,待遍历的无向图
Figure 16631DEST_PATH_IMAGE042
被替换成层级索引结构HI中下一层无向图
Figure 556197DEST_PATH_IMAGE044
;根据映射组件MS得到兴趣点current所代表的Snode Sn;计算Snode Sn所包含的所有兴趣点的价值,并在清空最小优先堆列TE后将这些兴趣点重新加入最小优先堆列TE;
(2)如果该层的映射组件
Figure 78445DEST_PATH_IMAGE124
不包含兴趣点current,可以判定弹出的兴趣点current不是代表Snode的虚拟兴趣点,而是真实存在于道路网络中的兴趣点,将这一兴趣点放入结果集R;参照新更新的本轮查询结果集R,重新计算最小堆TE中所有兴趣点的价值,并根据重新计算的兴趣点价值更新最小堆TE。
进一步地,所述步骤S23包括以下子步骤:
S231.交叉点检索:给定无向图
Figure 652646DEST_PATH_IMAGE110
,通过深度优先搜索遍历该无向图并将其中度大于3的顶点放入队列
Figure 851415DEST_PATH_IMAGE128
中;参照邻居点集合的定义,依次遍历队列
Figure 612698DEST_PATH_IMAGE130
中的所有顶点并为其中的每一个顶点分别构造其相应的邻居点集合;
S232.Snode构造:依次遍历队列
Figure 204216DEST_PATH_IMAGE128
中所有顶点,参照Snode的定义,以每个顶点
Figure 367344DEST_PATH_IMAGE022
为核心点,辅以邻居点集合
Figure 737014DEST_PATH_IMAGE024
,分别构造Snode
Figure DEST_PATH_IMAGE188
;将无向图G中所有Snode
Figure DEST_PATH_IMAGE190
分别合并成一个虚拟顶点v,并将从顶点v到Snode
Figure 454435DEST_PATH_IMAGE190
的映射关系
Figure DEST_PATH_IMAGE192
存储于映射组件
Figure DEST_PATH_IMAGE194
;由于顶点v为用于替代Snode
Figure 499577DEST_PATH_IMAGE190
的虚拟顶点,在相同位置创建虚拟兴趣点
Figure DEST_PATH_IMAGE196
以代表Snode
Figure 986053DEST_PATH_IMAGE190
所包含的兴趣点,
Figure DEST_PATH_IMAGE198
,
Figure DEST_PATH_IMAGE200
;从兴趣点
Figure DEST_PATH_IMAGE202
到Snode
Figure 464308DEST_PATH_IMAGE190
的映射关系
Figure DEST_PATH_IMAGE204
也存储在映射组件
Figure 183871DEST_PATH_IMAGE194
中。

Claims (6)

1.一种基于道路网络的多用户空间关键词查询方法,其特征在于,包括以下步骤:基于道路网络的空间关键词数据处理步骤S1、构造道路网络索引步骤S2、构造查询请求步骤S3、查询初始化步骤S4、数据查询步骤S5;
S1.基于道路网络的空间关键词数据处理步骤:将道路网络建模为无向图,用顶点表示道路网络中的路口,用边表示道路网络中的一段道路;将度大于三的顶点记为交叉点;将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;
S2.构造道路网络索引:给定无向图G={V,E},以交叉点为核心构造Snode,以Snode为核心抽象无向图G,并在此基础上为道路网络G构造层级索引结构HI,为基于道路网络的多用户空间关键词查询提供有效的索引结构;
定义如下概念:
Snode:给定无向图G={V,E},定义Sn是无向图G的一个Snode当且仅当满足如下两个条件:(1)图Sn是无向图G的子图;(2)图Sn中仅存在一个度大于等于三的顶点;图Sn可表示为Sn={Sn.V,Sn.E,Sn.ψ,Sn.λ},其中,Sn.V是图Sn的顶点集且
Figure FDA0003538880180000011
Sn.E是图Sn的边集且
Figure FDA0003538880180000012
Sn.ψ为位于图Sn上的所有兴趣点的关键词集合的并集,即Sn.ψ={∪p.ψ|p位于边e上且e∈Sn.E};Sn.λ是图Sn中唯一度大于等于三的顶点的位置信息;
邻居点集合:给定顶点
Figure FDA0003538880180000013
和无向图G={V,E},顶点
Figure FDA0003538880180000014
的邻居点集合Nei可表示为
Figure FDA0003538880180000015
Figure FDA0003538880180000016
且该集合中每个顶点
Figure FDA0003538880180000017
需要满足以下三个条件:(1)顶点
Figure FDA0003538880180000018
在无向图G中且与顶点
Figure FDA0003538880180000019
相邻,即
Figure FDA00035388801800000110
Figure FDA00035388801800000111
(2)顶点
Figure FDA00035388801800000112
的度小于三,即
Figure FDA00035388801800000113
(3)顶点
Figure FDA00035388801800000114
未被其他Snode包含覆盖;
S3.构造查询请求:给定四元数组Q={U,k,Ω,G},k代表查询结束后返回的兴趣点个数,U代表一组查询用户,Ω为兴趣点集合,G代表已被抽象化为无向图的道路网络;
S4.查询初始化:定义查询结果集R,并将其初始化为空;计算层级索引结构HI中顶点的价值Val;
S5.数据查询:层级标识位j标识此时遍历的无向图所在的层级,将HI.height赋值给层级标识位j,即j←HI.height;无向图G被初始化为Gj,表示遍历将从层级索引结构HI所存储的最顶层无向图GHI.height开始;维持一个根据兴趣点价值大小排序的最小堆TE来保存待遍历的兴趣点,依次遍历无向图G中所有兴趣点,分别计算他们的价值并将这些兴趣点加入最小堆TE,判断以下两个停止条件是否被满足:(1)结果集R中兴趣点数量未达到用户所要求的k个;(2)层级标识位j大于等于零;只有这两个条件都满足才会继续执行查询;最小堆TE弹出价值最小的兴趣点current,并根据其状态对其进行处理;当查询不再继续进行时,将结果集R返回给查询用户。
2.根据权利要求1所述的一种基于道路网络的多用户空间关键词查询方法,其特征在于,所述步骤S1包括以下子步骤:
S11.道路网络建模:将道路网络建模为无向图G=(V,E),V表示G的顶点集,E表示G的边集;顶点集的顶点v代表道路网络中的路口或者道路中点,边集中的边e(v,v')表示道路网络中的一段道路;每一条边都有相应的非负权重we,代表从一个端点到另一个端点的代价;将度大于三的顶点记为交叉点;
S12.兴趣点构造:将携带关键词的空间地点数据视为兴趣点p,均分布于道路网络G上;每一个兴趣点p同样可表示为<id,λ,ψ>,p.id是p的唯一标识,p.ψ为一组描述兴趣点p的关键词,p.λ=(e,||p,v||)为兴趣点p的位置信息,表示兴趣点p位于道路网络G的边e上,其距离边e的端点v的长度为||p,v||。
3.根据权利要求1所述的一种基于道路网络的多用户空间关键词查询方法,其特征在于,所述步骤S2包括以下子步骤:
S21.基础索引结构初始化:定义一种基础索引结构存储无向图G,包含四个组件:(1)边点组件GC,利用顶点划分和边缘划分分别存储无向图G的点集G.V和边集G.E;(2)邻居组件AD,存储每个顶点v的所有相邻顶点;给定顶点v,邻居组件AD存储该顶点的邻居表lv=<vi,we>;且顶点vi为顶点v的邻居,we为边
Figure FDA0003538880180000021
的权重;(3)映射组件MS,存储两种映射关系,分别为从虚拟顶点到Snode的映射
Figure FDA0003538880180000022
和从虚拟兴趣点到Snode的映射
Figure FDA0003538880180000023
这些映射所指向的Snode的具体组成Sn={Sn.V,Sn.E,Sn.ψ,Sn.λ}的具体组成也存储在映射组件MS中;(4)空间组件SC,存储无向图G中每条边的具体信息;每一条边用一个折线文件存储,记录位于这条边上的顶点和兴趣点的具体信息;
S22.层级索引结构HI初始化:定义层级索引结构HI={G0,G1,G2,…}以分层索引给定的道路网络G,G0,G1,G2,...,且这些道路网络均被表示为无向图;每个无向图存储于含有四个组件的基础索引结构BasicIndex中;用GCi,ADi,MSi和SCi分别表示无向图Gi的边点组件,邻居组件,映射组件和空间组件;给定的道路网络G被定义为第0层无向图,表示为G0;根据prim算法计算G0的最小生成树,并将该最小生成树作为第1层无向图,表示为G1;MS0是不存在的,MS1为空集;用于标识无向图层数的标识位j被置为1,即j←1;
S23.无向图G抽象:给定无向图Gj={V,E},通过深度优先搜索遍历整个无向图,并构造Snode以索引无向图Gj+1
S24.层级索引结构HI构造:通过构造道路网络索引来对无向图Gj进行抽象以得到更上一层的无向图Gj+1及相应的映射组件MSj+1;用于标识无向图层数的标识位j上移一层,即j←j+1,表示下一次图的抽象是在更上一层无向图;
S25.抽象停止条件:执行完步骤S24后得到无向图Gj,如果无向图Gj中不存在度大于3的顶点,则层级索引结构HI构造完成,用HI.height记录抽象层数,即HI.height←j,将包含所有无向图的层级索引结构HI={G0,G1,…,GHI.height}作为查询索引结构;否则,无向图Gj中存在度大于3的顶点,跳转至步骤S23,继续执行无向图抽象。
4.根据权利要求1所述的一种基于道路网络的多用户空间关键词查询方法,其特征在于,所述步骤S4包括以下子步骤:
S41.结果集R初始化:定义查询结果集R,并将其初始化为空;
S42.价值计算:计算层级索引结构HI中顶点的价值Val。
5.根据权利要求1所述的一种基于道路网络的多用户空间关键词查询方法,其特征在于,所述步骤S5中检查最小堆TE弹出价值最小的兴趣点current的状态并进行相应处理分为以下两种情况:
(1)如果该层的映射组件MSj包含兴趣点current,可以判定弹出的兴趣点current是代表Snode的虚拟兴趣点,层级标识位j减1,即j←j-1,无向图G更新,表示层级下移,待遍历的无向图G被替换成层级索引结构HI中下一层无向图Gj;根据映射组件MS得到兴趣点current所代表的Snode Sn;计算Snode Sn所包含的所有兴趣点的价值,并在清空最小优先堆列TE后将这些兴趣点重新加入最小优先堆列TE;
(2)如果该层的映射组件MSj不包含兴趣点current,可以判定弹出的兴趣点current不是代表Snode的虚拟兴趣点,而是真实存在于道路网络中的兴趣点,将这一兴趣点放入结果集R;参照新更新的本轮查询结果集R,重新计算最小堆TE中所有兴趣点的价值,并根据重新计算的兴趣点价值更新最小堆TE。
6.根据权利要求3所述的一种基于道路网络的多用户空间关键词查询方法,其特征在于,所述步骤S23包括以下子步骤:
S231.交叉点检索:给定无向图Gj={V,E},通过深度优先搜索遍历该无向图并将其中度大于3的顶点放入队列
Figure FDA0003538880180000031
中;参照邻居点集合的定义,依次遍历队列ΘG中的所有顶点并为其中的每一个顶点分别构造其相应的邻居点集合;
S232.Snode构造:依次遍历队列
Figure FDA0003538880180000041
中所有顶点,参照Snode的定义,以每个顶点
Figure FDA0003538880180000042
为核心点,辅以邻居点集合Nei,分别构造SnodeSni;将无向图G中所有SnodeSn分别合并成一个虚拟顶点v,并将从顶点v到SnodeSn的映射关系
Figure FDA0003538880180000043
存储于映射组件MS;由于顶点v为用于替代SnodeSn的虚拟顶点,在相同位置创建虚拟兴趣点pv=<pv,pv.λ,pv.ψ>以代表SnodeSn所包含的兴趣点,pv.λ=Sn.λ,pv.ψ=Sn.ψ;从兴趣点pv到SnodeSn的映射关系
Figure FDA0003538880180000044
也存储在映射组件MS中。
CN201810480584.5A 2018-05-18 2018-05-18 一种道路网络下多用户空间关键词查询方法 Expired - Fee Related CN108733803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810480584.5A CN108733803B (zh) 2018-05-18 2018-05-18 一种道路网络下多用户空间关键词查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810480584.5A CN108733803B (zh) 2018-05-18 2018-05-18 一种道路网络下多用户空间关键词查询方法

Publications (2)

Publication Number Publication Date
CN108733803A CN108733803A (zh) 2018-11-02
CN108733803B true CN108733803B (zh) 2022-04-29

Family

ID=63938687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810480584.5A Expired - Fee Related CN108733803B (zh) 2018-05-18 2018-05-18 一种道路网络下多用户空间关键词查询方法

Country Status (1)

Country Link
CN (1) CN108733803B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992590B (zh) * 2019-03-11 2021-06-29 中南民族大学 交通网络中带数字属性的近似空间关键字查询方法及系统
CN110059264B (zh) * 2019-04-24 2023-07-07 东南大学 基于知识图谱的地点检索方法、设备及计算机存储介质
CN110263108B (zh) * 2019-05-10 2023-07-11 南京航空航天大学 一种基于道路网的关键词Skyline模糊查询方法及系统
CN110147424B (zh) * 2019-05-21 2020-10-27 湖南大学 一种Top-k组合空间关键字查询方法和系统
CN112861024B (zh) * 2021-02-03 2023-08-01 北京百度网讯科技有限公司 确定路网矩阵的方法、装置、电子设备及存储介质
CN114064995B (zh) * 2021-11-18 2024-05-28 大连海事大学 一种路网环境下基于位置的静态skyline查询方法
CN115766528B (zh) * 2022-11-14 2024-03-26 西南科技大学 一种Top-K大象流的检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346444A (zh) * 2014-10-23 2015-02-11 浙江大学 一种基于路网反空间关键字查询的最佳选址方法
CN104376112A (zh) * 2014-11-27 2015-02-25 苏州大学 一种路网上空间关键字检索的方法
CN105868336A (zh) * 2016-03-28 2016-08-17 哈尔滨工程大学 路网中面向集合的空间关键词查询方法
CN107145526A (zh) * 2017-04-14 2017-09-08 浙江大学 一种路网下地理社交关键字反最近邻查询处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346444A (zh) * 2014-10-23 2015-02-11 浙江大学 一种基于路网反空间关键字查询的最佳选址方法
CN104376112A (zh) * 2014-11-27 2015-02-25 苏州大学 一种路网上空间关键字检索的方法
CN105868336A (zh) * 2016-03-28 2016-08-17 哈尔滨工程大学 路网中面向集合的空间关键词查询方法
CN107145526A (zh) * 2017-04-14 2017-09-08 浙江大学 一种路网下地理社交关键字反最近邻查询处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Efficiently Evaluating Range-Constrained Spatial Keyword Query on Road Networks;Wengen Li 等;《International Conference on Database Systems for Advanced Applications 2014》;20140711;283-295 *
多用户空间数据查询算法研究;段晓冉;《中国优秀硕士学位论文全文数据库信息科技辑》;20181015(第10期);I138-1049 *

Also Published As

Publication number Publication date
CN108733803A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108733803B (zh) 一种道路网络下多用户空间关键词查询方法
Rocha-Junior et al. Top-k spatial keyword queries on road networks
CN100523735C (zh) 一种基于小网格路网组织结构的快速地图匹配方法
USRE44876E1 (en) Proximity search methods using tiles to represent geographical zones
US20060218114A1 (en) System and method for location based search
US20120254153A1 (en) Shortest path determination in databases
KR101554569B1 (ko) 스카이라인 질의 시스템 및 방법
Abraham et al. HLDB: Location-based services in databases
Luo et al. Distributed Spatial Keyword Querying on Road Networks.
CN103512581A (zh) 一种路径规划方法和装置
CN107391636B (zh) top-m反近邻空间关键字查询方法
US20130144524A1 (en) Double-hub indexing in location services
US20220157167A1 (en) System for offsite navigation
US20110246478A1 (en) Navigation system with indexed term searching and method of operation thereof
Safar et al. Optimized skyline queries on road networks using nearest neighbors
US20220027427A1 (en) Business searching methods and apparatuses, electronic devices and storage media
CN117235285B (zh) 融合知识图谱数据的方法及装置
CN107257356B (zh) 一种基于超图分割的社交用户数据优化放置方法
CN107704475A (zh) 多层分布式非结构化数据存储方法、查询方法及装置
CN112711645A (zh) 一种位置点信息扩展方法、装置、存储介质和电子设备
Xu et al. Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach
CN112395462A (zh) 在图数据流中查找匹配子图方法及装置、设备、存储介质
CN113821550B (zh) 路网拓扑图的划分方法、装置、设备及计算机程序产品
CN108731688A (zh) 导航方法和装置
US20200225045A1 (en) Geographic routing engine

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220429

CF01 Termination of patent right due to non-payment of annual fee