CN109902711B - 一种时间依赖路网上的移动对象k近邻查询算法 - Google Patents
一种时间依赖路网上的移动对象k近邻查询算法 Download PDFInfo
- Publication number
- CN109902711B CN109902711B CN201910030613.2A CN201910030613A CN109902711B CN 109902711 B CN109902711 B CN 109902711B CN 201910030613 A CN201910030613 A CN 201910030613A CN 109902711 B CN109902711 B CN 109902711B
- Authority
- CN
- China
- Prior art keywords
- time
- query
- road network
- active
- objects
- 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
- Traffic Control Systems (AREA)
- Navigation (AREA)
Abstract
本发明公开了一种时间依赖路网上的移动对象K近邻查询算法,包括如下步骤:(1)查询用户发起查询请求;用户需向系统提出查询要求,请求反馈所有满足要求的K个结果;(2)初始化相关信息;(3)确定查询发起的位置、查询时间和最大等待时间;(4)从查询点开始扩展路网,找出若干近邻活跃点;(5)对若干近邻活跃点上的活跃对象进行计算和排序;(6)返回时间最小的前K个活跃对象给用户,作为K近邻查询结果。本发明设计了高效启发值,并使用了倒排网格索引管理移动对象和辅助启发值的计算。
Description
技术领域
本发明涉及数据库技术领域,尤其是一种时间依赖路网上的移动对象K近邻查询算法。
背景技术
随着移动终端的迅猛发展,基于位置的服务(LBS)成为了路网中的重要应用。在LBS中,用户可能会搜索自己感兴趣的地理点(Point of interest,POI)(如餐厅、加油站等)以及到这些地理点的路线和所需时间。而实际上,道路的交通时间在很大程度上取决于交通流量,即道路交通状况会随着时间的变化而发生改变。在车辆通行的高峰时期,路网可能会形成堵塞,道路的通行时间会增加,而在凌晨等时间段车辆稀少,道路的通行时间会相应减少。因此,道路的通行时间不是固定的,而是一个关于时间的函数,现在有关静态路网的查询没有考虑到这个问题。
路网通行时间的变化给计算最短路径和估计路线时间带来了巨大挑战,但是考虑交通状况对提高基于位置的服务质量至关重要,也具有更高的实际参考价值,因此在这种情况下,可以将路网建模为时间依赖路网。与静态路网模型不同的是,在时间依赖路网中,道路的权值(通过这条路的时间)随一天之中时间的变化而变化。因此在寻找K近邻等查询问题中,查询结果取决于查询发起的时间。查询发起的时间不同,即使是相同的查询,查询结果也可能不同。
时间依赖路网中的K近邻查询是指用户在某一时刻发起查询,查找满足条件且能最快到达的K个对象,但大多数现有工作只是针对静态兴趣点(如餐厅,加油站等),没有考虑到移动兴趣点的情况,但查询移动兴趣点K近邻在日常生活中有非常大的需求量,例如生活中的一种场景:一位用户在路口想要寻找一辆能最快到达自己的出租车,假设有十辆出租车可用,出租车公司需要计算哪一辆车到该用户的最短路径所需时间较少,遂派单给该车辆。从这个例子中可以发现,与静态对象K近邻查询算法TD-KNN不同的是,本发明提出的算法旨在针对查询时间依赖路网下的移动对象K近邻。
发明内容
本发明所要解决的技术问题在于,提供一种时间依赖路网上的移动对象K近邻查询算法,设计了高效启发值,并使用了倒排网格索引管理移动对象和辅助启发值的计算。
为解决上述技术问题,本发明提供一种时间依赖路网上的移动对象K近邻查询算法,包括如下步骤:
(1)查询用户发起查询请求;用户需向系统提出查询要求,请求反馈所有满足要求的K个结果;
(2)初始化相关信息;
(3)确定查询发起的位置、查询时间和最大等待时间;
(4)从查询点开始扩展路网,找出若干近邻活跃点;
(5)对若干近邻活跃点上的活跃对象进行计算和排序;
(6)返回时间最小的前K个活跃对象给用户,作为K近邻查询结果。
优选的,步骤(2)中,初始化相关信息具体为:使用全天道路通行时间的最小值作为权值,在内存中创建反向时间依赖路网;建立倒排网格索引,将路网顶点依据其坐标映射到各自的网格单元中。
优选的,步骤(4)中,从查询点开始扩展路网,找出若干近邻活跃点具体为:扩展过程中给路网中每个顶点都赋予启发值,代表它们与最近移动对象距离的乐观估计,以启发值从小到大的顺序访问,找到若干近邻活跃点并存放于临时优先队列中。
优选的,步骤(5)中,对若干近邻活跃点上的活跃对象进行计算和排序具体为:对步骤(4)中产生的近邻活跃点,读取其上的活跃对象和它们之间的距离,计算每个活跃对象到查询点的时间,并以该时间排序存放于另一优先队列中,一旦该队列第K个对象的时间小于步骤(3)中新添加活跃点的时间,步骤(3)停止。
本发明的有益效果为:(1)针对以往研究假设移动对象恰好在路网顶点上的不足,提出一种新的移动对象映射方法,使得最终结果更加接近真实值;(2)设计了合适的网格索引结构来管理移动对象并辅助启发值的计算;(3)算法采用增量式网络扩展和A* 算法来确保有效的剪枝和更快的响应时间,并在提出的索引结构基础上设计选取了合理的启发值以指导路网的高效扩展。
附图说明
图1为本发明的算法流程示意图。
图2为本发明的活跃点和活跃对象示意图。
图3为本发明网格索引示意图。
图4为本发明的启发值计算示意图。
具体实施方式
一种时间依赖路网上的移动对象K近邻查询算法,包括如下步骤:
(1)查询用户发起查询请求;用户需向系统提出查询要求,请求反馈所有满足要求的K个结果;
(2)初始化相关信息;
(3)确定查询发起的位置、查询时间和最大等待时间;
(4)从查询点开始扩展路网,找出若干近邻活跃点;
(5)对若干近邻活跃点上的活跃对象进行计算和排序;
(6)返回时间最小的前K个活跃对象给用户,作为K近邻查询结果。
如图2所示,说明了活跃点和活跃对象的定义和关系。假设m是在路径e(u,v)上向顶点v移动的对象,则称v是活跃点,并称m是顶点v上的活跃对象。有活跃对象的顶点称为活跃点,反之为非活跃点。在图2中,m在边e(A,B)上由B移动向A且距离A 点的偏移量为o,则m是活跃点A上的一个活跃对象,B点和C点均为非活跃点。从m 点到任何顶点u的最短路径距离为m到v的距离加上v到u的最短路径距离,即 d(m,u)=o+d(v,u)。我们的方法保留了偏移量o并将其应用到之后的最快路径的计算中,所以结果更加接近真实值。
我们为每个活跃点设计一个结构来保存该点上的活跃对象。假设活跃点V上有两个活跃对象m1和m2,它们距离V的距离分别为10和20,则活跃点V拥有两个属性:
(1)Moving_Objects,代表V点上的活跃对象。
(2)Offset,代表该活跃对象相对于V点的偏移量。
如图3所示,说明了路网上普通顶点和活跃点的映射方法和倒排网格索引结构。
由于网格可以很好地利用空间特性,因此我们为移动对象设计网格索引。该索引用均匀的网格将平面区域划分成大小相等的若干块,每一块区域唯一对应一个单元格,对于空间中的点x,函数index(x)可以检索到包含点x的网格单元,我们通过组合倒排索引和空间网格划分来设计倒排网格索引以管理空间对象的位置。首先,我们给出倒排网格索引的定义。
倒排网格索引:给定一个由欧式空间中一组数据点组成的大规模数据集P。每个数据点p∈P由(p.x,p.y)表示。每个维度上每个单元格的范围为δ。网格单元c[i,j]表示第i列和第j行的单元格,最左下角单元格为c[0,0]。每个单元格维护一个对象列表,其中包含封闭活跃点的标示符。根据规则,点p落在单元格δ是一个参数,我们可以根据不同数据集的密集程度做出相应调整。
不失一般性,我们假设服务空间是一个正方形,我们可以将空间划分为大小为δ*δ的规则网格单元。我们将普通顶点和活跃点均映射到网格中,利用网格单元来进行管理,但每个单元只保存落入该单元的活跃点信息,每个单元中活跃点的信息存储在对象数组中,对象标识是这个数组的索引。图3显示了一个通过4*4的单元格网格索引并使用键值对来进行管理的例子,例如<c1,{a1,a2,a3}>。
算法执行阶段分为预处理和查询两部分:
预处理阶段:
(1)使用全天道路通行时间的最小值作为权值,在内存中创建路网图的反向时间依赖路网。
(2)建立倒排网格索引,将路网顶点依据其坐标映射到各自的网格单元中。
查询阶段:
在路网的扩展搜索中,我们希望有机会成为q最近邻的POI获得最大的优先扩展权。对于顶点来说,我们希望距离最近POI近的顶点能够被优先扩展,我们利用网格索引来计算每个顶点距离与自己最近POI之间的距离。下面结合图4介绍启发值的计算:
第一步假设顶点v,查找v所属网格单元c,通过索引,得到c中所有活跃点集合A。
第二步计算v和A中每个点的欧式距离,找出距离最小的活跃点a,dmin=dE(v,a)。
第三步计算v和c相邻的8个网格单元Ci(1≤i≤8)的距离,如果距离小于dmin,计算v和Ci中所有活跃点的距离,如果小于dmin,更新dmin。
第四步如果v所在网格单元和相邻网格单元中都不存在活跃点,则给dmin赋予一个较大默认值,表示v离任何一个活跃点都还有较远距离。H(v)=dmin/Vmax,Vmax表示路段上允许的最大速度。
如图1所示,是本发明所使用的方法,本发明针对时间依赖路网上的移动对象,设计了可以高效查询K近邻的算法。主要过程是:
步骤1查询用户发出查询请求,请求反馈所有满足要求的K个结果。
步骤2系统初始化相关信息:使用全天道路通行时间的最小值作为权值,在内存中创建反向时间依赖路网;建立倒排网格索引,将路网顶点依据其坐标映射到各自的网格单元中。
步骤3明确查询发起的位置、查询时间和用户最大等待时间。
步骤4从查询点开始扩展路网,找出若干近邻活跃点:扩展过程中给路网中每个顶点都赋予启发值,代表它们与最近移动对象距离的乐观估计。以启发值从小到大的顺序访问,找到若干近邻活跃点并存放于临时优先队列中。
步骤5对若干近邻活跃点上的活跃对象进行计算和排序:对上步产生的近邻活跃点,读取其上的活跃对象和它们之间的距离,计算每个活跃对象到查询点的时间,并以该时间排序存放于另一优先队列中。一旦该队列第K个对象的时间小于步骤C中新添加活跃点的时间,步骤C停止。
步骤6返回时间最小的前K个活跃对象给用户,作为K近邻查询结果。
在上述过程中,本发明的方法在以下几个方面对时间依赖路网移动对象K近邻查询作出了贡献:
(1)针对以往研究假设移动对象恰好在路网顶点上的不足,提出一种新的移动对象映射方法,使得最终结果更加接近真实值。
(2)设计了合适的网格索引结构来管理移动对象并辅助启发值的计算。
(3)算法采用增量式网络扩展和A*算法来确保有效的剪枝和更快的响应时间,并在提出的索引结构基础上设计选取了合理的启发值以指导路网的高效扩展。
Claims (2)
1.一种时间依赖路网上的移动对象K近邻查询算法,其特征在于,包括如下步骤:
(1)查询用户发起查询请求;用户需向系统提出查询要求,请求反馈所有满足要求的K个结果;
(2)初始化相关信息;使用全天道路通行时间的最小值作为权值,在内存中创建反向时间依赖路网;建立倒排网格索引,将路网顶点依据其坐标映射到各自的网格单元中;
(3)确定查询发起的位置、查询时间和最大等待时间;
(4)从查询点开始扩展路网,找出若干近邻活跃点;扩展过程中给路网中每个顶点都赋予启发值,代表它们与最近移动对象距离的乐观估计,以启发值从小到大的顺序访问,找到若干近邻活跃点并存放于临时优先队列中;
(5)对若干近邻活跃点上的活跃对象进行计算和排序;
(6)返回时间最小的前K个活跃对象给用户,作为K近邻查询结果。
2.如权利要求1所述的时间依赖路网上的移动对象K近邻查询算法,其特征在于,步骤(5)中,对若干近邻活跃点上的活跃对象进行计算和排序具体为:对步骤(4)中产生的近邻活跃点,读取其上的活跃对象和它们之间的距离,计算每个活跃对象到查询点的时间,并以该时间排序存放于另一优先队列中,一旦该队列第K个对象的时间小于步骤(3)中新添加活跃点的时间,步骤(3)停止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030613.2A CN109902711B (zh) | 2019-01-14 | 2019-01-14 | 一种时间依赖路网上的移动对象k近邻查询算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030613.2A CN109902711B (zh) | 2019-01-14 | 2019-01-14 | 一种时间依赖路网上的移动对象k近邻查询算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902711A CN109902711A (zh) | 2019-06-18 |
CN109902711B true CN109902711B (zh) | 2023-03-31 |
Family
ID=66943632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910030613.2A Active CN109902711B (zh) | 2019-01-14 | 2019-01-14 | 一种时间依赖路网上的移动对象k近邻查询算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902711B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985530B (zh) * | 2020-07-08 | 2023-12-08 | 上海师范大学 | 一种分类方法 |
CN112183589B (zh) * | 2020-09-14 | 2022-04-22 | 西北工业大学 | 一种低采样率下的实时车辆k近邻查询方法 |
CN112328877B (zh) * | 2020-11-03 | 2022-03-25 | 南京航空航天大学 | 时间依赖路网上多用户的skyline查询的方法 |
CN112836145B (zh) * | 2021-02-18 | 2023-06-02 | 沈阳航空航天大学 | 动态有向路网中面向移动对象的近邻查询方法 |
CN116956349B (zh) * | 2023-07-29 | 2024-03-19 | 哈尔滨理工大学 | 一种基于时间依赖路网中的k近邻隐私保护查询方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473248B (zh) * | 2012-12-17 | 2017-06-23 | 东北大学 | 一种路网环境下的连续移动k近邻查询方法 |
CN103559213B (zh) * | 2013-10-10 | 2016-08-17 | 河南大学 | 一种公路网高效空间最近邻查询方法 |
CN108304542B (zh) * | 2018-01-31 | 2021-09-03 | 沈阳航空航天大学 | 一种时间依赖路网中的连续k近邻查询方法 |
-
2019
- 2019-01-14 CN CN201910030613.2A patent/CN109902711B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109902711A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902711B (zh) | 一种时间依赖路网上的移动对象k近邻查询算法 | |
CN102810118B (zh) | 一种变权网k近邻搜索方法 | |
Xiong et al. | Sea-cnn: Scalable processing of continuous k-nearest neighbor queries in spatio-temporal databases | |
CN109271467B (zh) | 一种方向感知的路网移动对象k近邻查询方法 | |
CN106570062A (zh) | 一种路网轨迹不确定移动对象范围查询系统及方法 | |
CN103559213B (zh) | 一种公路网高效空间最近邻查询方法 | |
CN106845703B (zh) | 一种考虑转向延误的城市路网时变k最短路径搜索方法 | |
CN102567497A (zh) | 一种最匹配模糊轨迹问题的查询方法 | |
CN111353107A (zh) | 一种面向路网移动对象的连续k近邻查询方法及系统 | |
CN102012908B (zh) | 障碍物环境中可视移动近邻的查询方法 | |
Akulakrishna et al. | Efficient storage of big-data for real-time gps applications | |
CN114117260B (zh) | 时空轨迹索引与查询处理方法、装置、设备及介质 | |
CN112380460B (zh) | 一种基于近似算法的最短路径查询方法和系统 | |
CN113465612B (zh) | 一种基于双层索引的并行路径规划方法及系统 | |
CN112836145B (zh) | 动态有向路网中面向移动对象的近邻查询方法 | |
CN114999162A (zh) | 一种道路交通流量获取方法和装置 | |
Huang et al. | A spatial indexing approach for high performance location based services | |
CN115578860A (zh) | 城市密集路网环境下车辆出行路径识别方法 | |
CN109446294B (zh) | 一种并行的相互子空间Skyline查询方法 | |
Lü et al. | A heuristic path-estimating algorithm for large-scale real-time traffic information calculating | |
CN112183589B (zh) | 一种低采样率下的实时车辆k近邻查询方法 | |
CN114979134A (zh) | 边缘计算环境中服务迁移的路径选择方法 | |
Xia et al. | Carpooling algorithm with the common departure | |
CN117671392B (zh) | 国土空间数据的网格划分方法、装置、设备及介质 | |
CN114064995B (zh) | 一种路网环境下基于位置的静态skyline查询方法 |
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 |