基于动态裁剪的移动对象反向近邻查询方法.pdf

上传人:32 文档编号:965148 上传时间:2018-03-21 格式:PDF 页数:11 大小:440.06KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010545434.1

申请日:

2010.11.12

公开号:

CN102004771A

公开日:

2011.04.06

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20101112|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

浙江大学

发明人:

寿黎但; 陈珂; 陈刚; 胡天磊; 张栋

地址:

310027 浙江省杭州市西湖区浙大路38号

优先权:

专利代理机构:

杭州求是专利事务所有限公司 33200

代理人:

林怀禹

PDF下载: PDF下载
内容摘要

本发明公开了一种基于动态裁剪的移动对象反向近邻查询方法。使用TPR-tree对移动对象建立索引;开发移动对象反向近邻查询处理框架,在过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;对过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算;对获得的结果点及其有效时间段进行合并,获得在每个子时间段上的反向近邻查询结果集。

权利要求书

1.一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于该方法的步骤如下:1)使用TPR-tree对移动对象建立索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;2)开发移动对象反向近邻查询处理框架,该处理框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;3)开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;4)在步骤3)实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;5)根据步骤4)中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算;6)对步骤5)中获得的结果点及其有效时间段进行合并,最终获得在每个子时间段上的反向近邻查询结果集。2.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤1)中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPR-tree对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPR-tree自身进行处理,该索引层的处理逻辑对上层查询透明。3.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤2)使用基于过滤-精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得;该框架是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显;过滤阶段保证裁剪力度的前提下依然能够获得所有该时间段内反向近邻查询保守结果集;在后续的精炼阶段使用移动对象近邻查询来对所有的候选集进行验证。4.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤3)将两种移动对象反向近邻裁剪策略整合为一个裁剪算法,两个裁剪策略分别为:1)移动对象支配域裁剪策略;2)包围盒对角线长度裁剪策 略;对于单个数据对象仅使用移动对象支配域,对于节点则先使用包围盒对角线长度裁剪然后使用移动对象支配域裁剪策略;裁剪算法有两个参数,一个是需要判断的TPR-tree中间节点或者移动对象,另一个是包含任意多个移动对象的集合;算法流程描述如下:如果需要判断的是TPR-tree的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪;遍历集合,判断该节点在查询时间段内扫过的区域是否在几何中某个候选对象的支配域中,如果是则立即返回真;如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。5.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤4)中移动对象反向近邻查询处理过滤算法的具体步骤如下:i)初始化一个优先队列,优先级定义为该节点或者移动对象在查询时间段内与查询点的最小距离,将TPR-tree的根节点放入队列中;ii)初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或节点;iii)如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优先队列的第一个元素,调用步骤3)中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤;如果不能被裁剪则执行iv);iv)如果当前元素是一个移动对象,则将其放入候选对象集合,跳回iii)继续执行;如果当前元素是一个叶子节点,则跳到v)执行;否则跳到vi)执行;v)对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到iii)继续执行;iv)对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到iii)继续执行。6.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤5)中移动对象反向近邻查询的精炼算法的具体步骤如下:i)首先遍历候选集合中的每个候选点,为每个候选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段;接着计算 在查询时间段上其他候选点离它的距离是否小于查询点到它的距离,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段;如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试的待验证集合,该集合初始为空;ii)如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点;依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向近邻时域减小,则将其放入每个候选点关联的待验证集合中;若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;iii)取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到ii)处。7.根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于:步骤6)根据步骤5)中所报告的查询点的反向近邻和有效的时间段,合并成规范的结果集合。 

说明书

基于动态裁剪的移动对象反向近邻查询方法

技术领域

本发明涉及空间数据库的索引与查询技术,特别是涉及一种基于动态裁剪策略的移动对象反向近邻查询方法。

背景技术

空间数据库是用于存储空间(地理)和非空间数据的数据库系统,它能根据数据的空间分布特征进行索引,在数据模型上提供空间分析的方法和查询语言中提供空间查询。空间数据库与一般数据库最大的不同是它包含“空间”(或者)几何的概念,它是以事物的空间特性作为数据基本属性并据此建立索引并提供上层服务的一种特殊的数据库。目前,空间数据库被广泛应用于地理信息系统GIS、计算机辅助设计CAD、多媒体信息系统MMIS以及数据仓库DWH,为以上系统提供数据存储和查询的解决方案。

在所有空间数据库的索引技术中,R-tree及其变种因为简单易用和有效性而应用最为广泛。R-tree是B-tree在高维空间上的扩展,空间位置相近的数据点被聚类到最小包围盒MBR里,这些最小包围盒又根据空间局部性递归的进行聚类,直至到达根节点。TPR-tree是R-tree在移动对象索引上扩展,它能够对移动对象进行有效的索引并进行未来查询。TPR-tree在结构上与R-tree类似,具备R-tree的大多数特性。与R-tree相比,TPR-tree除最小包围盒MBR外还有最小速度包围盒VBR,所以TPR-tree上任意节点在任意时刻的位置都可以通过MBR和VBR计算获得。因此TPR-tree的绑定最小包围盒只有在重新计算的那个时刻才是最小的。

空间数据库上的查询方法多种多样,其中最常见的就是最近邻查询。最近邻查询通常依照深度优先或最好优先的策略对R-tree进行访问,获得离查询点最近的数据点。反向最近邻查询是在最近邻查询的基础上提出的另一种重要的空间查询,它能返回以查询点为最近邻的所有数据点的集合。但传统的反向最近邻查询多针对数据点集为静态的情况,随着无线通讯技术的快速发展,移动设备的使用越来越广泛,如何对移动对象进行动态反向最近邻查询是一个新的课题。

发明内容

本发明的目的在于提供一种基于动态裁剪的移动对象反向近邻查询的方法。

本发明解决其技术问题采用的技术方案的步骤如下:

1)使用TPR-tree对移动对象建立索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;

2)开发移动对象反向近邻查询处理框架,该处理框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;

3)开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;

4)在步骤3)实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;

5)根据步骤4)中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算;

6)对步骤5)中获得的结果点及其有效时间段进行合并,最终获得在每个子时间段上的反向近邻查询结果集。

步骤1)中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPR-tree对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPR-tree自身进行处理,该索引层的处理逻辑对上层查询透明。

步骤2)使用基于过滤-精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得;该框架是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显;过滤阶段保证裁剪力度的前提下依然能够获得所有该时间段内反向近邻查询保守结果集;在后续的精炼阶段使用移动对象近邻查询来对所有的候选集进行验证。

步骤3)将两种移动对象反向近邻裁剪策略整合为一个裁剪算法,两个裁剪策略分别为:1)移动对象支配域裁剪策略;2)包围盒对角线长度裁剪策略;对于单个数据对象仅使用移动对象支配域,对于节点则先使用包围盒对角线长度裁剪然后使用移动对象支配域裁剪策略;

裁剪算法有两个参数,一个是需要判断的TPR-tree中间节点或者移动对象,另一个是包含任意多个移动对象的集合;算法流程描述如下:如果需要判断的是TPR-tree的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪;遍历集合,判断该节点在查询时间段内扫过的区域是否在几何中某个候选对象的支配域中,如果是则立即返回真;如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。

步骤4)中移动对象反向近邻查询处理过滤算法的具体步骤如下:

i)初始化一个优先队列,优先级定义为该节点或者移动对象在查询时间段内与查询点的最小距离,将TPR-tree的根节点放入队列中;

ii)初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或节点;

iii)如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优先队列的第一个元素,调用步骤3)中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤;如果不能被裁剪则执行iv);

iv)如果当前元素是一个移动对象,则将其放入候选对象集合,跳回iii)继续执行;如果当前元素是一个叶子节点,则跳到v)执行;否则跳到vi)执行;

v)对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到iii)继续执行;

iv)对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到iii)继续执行;

步骤5)中移动对象反向近邻查询的精炼算法的具体步骤如下:

i)首先遍历候选集合中的每个候选点,为每个候选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段;接着计算在查询时间段上其他候选点离它的距离是否小于查询点到它的距离,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段;如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试的待验证集合,该集合初始为空;

ii)如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点;依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向近邻时域减小,则将其放入每个候选点关联的待验证集合中;若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;

iii)取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到ii)处。

步骤6)根据步骤5)中所报告的查询点的反向近邻和有效的时间段,合并成规范的结果集合。

本发明具有的有益效果是:

本发明充分利用了空间数据库引擎和空间数据库动态索引技术的现有研究和实现成果,基于已有系统可以非常方便快捷的开发基于动态裁剪的移动对象反向近邻查询处理引擎,使用者可根据具体应用环境选择合适的查询时间段,提供最好的性能。

附图说明

图1是本发明实施步骤流程图。

图2是基于裁剪的移动对象反向近邻查询系统工作原理示意图。

图3是移动对象反向近邻查询处理实例示意图。

具体实施方式

现结合附图和具体实施例对本发明的技术方案作进一步说明。

1.如图1,图2所示,本发明具体实施过程和工作原理如下:

1)使用TPR-tree对移动对象建立索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;

2)开发移动对象反向近邻查询处理框架,该框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间。

3)开发适用于移动对象反向近邻裁剪的高效算法;

4)在步骤3)实现反向近邻动态裁剪高效算法上实现移动对象反向近邻查询处理过滤算法;

5)根据步骤4)中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算。

6)对5)中获得的结果点及其有效时间段进行整合,最终获得在每个子时间段上的反向近邻查询结果集。

步骤1)中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPR-tree对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPR-tree自身进行处理,该索引层的处理逻辑对上层查询透明。

步骤2)使用基于过滤-精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得。该框架的好处是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显。过滤阶段保证一定的裁剪力度的前提下依然能够获得所有该时间段内反向近邻查询保守结果集。在后续的精炼阶段使用移动对象近邻查询来对所有的候选集进行验证。

步骤3)将两种移动对象反向近邻裁剪策略整合为一个高效的裁剪算法,两个裁剪策略描述如下:

1)移动对象支配域性质:给定一个查询点和一个移动对象,在某一查询时间段内该移动对象的支配域是时间段内所有时刻移动对象和查询点的中垂线所划分的包含移动对象的半平面的交集。并且可以证明该支配域正好等于起始点的半平面交集。任意移动对象如果其在查询时间段内的移动轨迹整个落在另一个移动对象的支配域上,表示在整个查询时间段内该移动对象到另一移动对象的距离始终小于它到查询点的距离,所以该对象在整个查询时间段上不可能成为查询点的反向近邻,该对象可以被直接裁剪。同样,对于TPR-tree的中间节点,只要其在查询时间段上扫过的区域整个落在某个移动对象的支配域上,则该节点可以整个被裁剪。

2)包围盒对角线长度性质:对于TPR-tree的任意中间节点,如果在整个查询时间段上该中间节点的包围盒对角线长度均小于查询点到该节点的最小距离,则意味着对于包围盒中的任意移动对象在查询时间内总存在另一个移动对象它们的距离始终小于到查询点的距离,所以该中间节点可以被整个裁剪。图2所示的距离函数计算与比较模块提供支持。

裁剪算法可以描述如下:如果需要判断的是TPR-tree的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪。遍历当前的候选对象集合,判断该节点在查询时间段内扫过的区域是否在某个候选对象的支配域中,如果是则立即返回真。如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。

步骤4)中移动对象反向近邻查询处理过滤算法的具体步骤如下:

1)初始化一个优先队列,优先级定义为该节点或者移动对象在查询时间段内与查询点的最小距离,该最小距离由图2所示距离函数计算与比较模块提供,将TPR-tree的根节点放入队列中;

2)初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或中间节点;

3)如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优先队列的第一个元素,如图2所示,调用步骤3)中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤。如果不能被裁剪则执行4);

4)如果当前元素是一个移动对象,则将其放入候选对象集合,跳回3)继续执行;如果当前元素是一个叶子节点,则跳到5)执行;否则跳到6)执行;

5)对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到3)继续执行;

6)对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到3)继续执行;

根据图2所示的系统工作原理图,应用程序可以向移动对象反向近邻查询发起一个关于某个查询点和某段时间的查询请求,以图3所示数据集为例,pi(1<=i<=15)为移动对象,Nj(1<=j<=11)为TPR-tree的节点,查询点为q,查询时间段为[0,5]。步骤4)中移动对象方向近邻查询处理过滤算法的具体实施方式如下:

1)初始时先访问根节点,对它的每个子结点调用裁剪算法,由于三个子结点N1,N2,N3的对角线长度在整个查询时间段上均小于查询点到它们的最小距离,另外由于当前的候选对象集合为空,所以三个子结点均不能被裁剪,都被放入优先队列。

2)下一个访问的是N1,同样的也去检查它的三个子结点,由于N5,N6的对角线长度在查询时间段内小于它们到查询点的最小距离所以N5,N6被放入被裁剪集合,只有N4被放入优先队列。

3)接着N3被访问,N10,N11均未被裁剪被插入到优先队列中,紧接着访问的是叶子节点N4,同样的它的子结点,也就是移动对象p1,p2也不能被裁剪所以也被插入到优先队列中。

4)移动对象p1紧跟着被取出并成为第一个反向近邻候选对象,被放入到候选对象集合中。

5)后续的N10包含的两个移动对象p13,p14被放入优先队列,而N2的三个子节点由于对角线策略被放入杯裁剪集合,接着p13成为第二个候选对象放入候选对象集合;

6)优先队列中剩余的其他元素都因为被裁剪而放入杯裁剪集合中。

如图2所示,移动对象反向近邻过滤结束后紧接着进行移动对象的反向近邻精练,步骤5)中移动对象反向近邻查询的精炼算法的具体步骤如下:

1)首先遍历候选集合中的每个候选点,为每个候选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段。接着计算在查询时间段上其他候选点离它的距离是否小于查询点到它的距离,同样需要调用图2所示的距离函数计算与比较模块,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段。如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试的待验证集合,该集合初始为空。

3)如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点。依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向近邻时域减小,则将其放入每个候选点关联的待验证集合中。若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;

4)取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到3);

以图3所示数据集为例,步骤5)中的移动对象反向近邻精炼算法的具体实施方式如下:

1)经过步骤4)的过滤阶段,得到一个候选对象集合和一个被裁剪集合。分别为{p1,p13},{N5,N6,N7,N8,N9,N11}。首先由于p1到p13的距离在查询时间段上始终大于它们到查询点的距离,所以p1,p13仍然在整个时间段上有效。初始化它们的反向近邻有效时间列表,初始值为{[0,5]};

2)接下来使用被裁剪集合中的每个元素来验证p1,p13,由于p13和p14的距离在时间段[0,1.75]上小于p13到查询点的距离,所以p13对应的反向近邻有效时间列表别更新为{[1.75,5]},而对于p1,裁剪集合中不存在其他移动对象或者中间节点使得p1的反向近邻时间列表更新,即遍历被裁剪集合后带验证集合为空,所以在此处就直接报告p1在时间段[0,5]上是查询点的反向近邻。最后,取出所有余下的候选点那些对应的待验证集合中出现次数最,多的,即N7,使用N7的子节点进一步验证。同样的,使用N8也没有更新p13的反向近邻有效时间列表,此时由于p13的待验证集合为空,所以报告p13的反向近邻时间段位{[1.75,5]};

步骤6)根据步骤5)中所报告的查询点的反向近邻和有效的时间段,合并成规范的结果集合。

以上例子中步骤5)结束后返回的是<p1,{[0,5]}>和<p13,{[1.75,5]}>,整合后输出的规范的移动对象反向近邻查询结果为{<[0,1.75],{p1}>,<[1.75,5],{p1,p13}>}。

基于动态裁剪的移动对象反向近邻查询方法.pdf_第1页
第1页 / 共11页
基于动态裁剪的移动对象反向近邻查询方法.pdf_第2页
第2页 / 共11页
基于动态裁剪的移动对象反向近邻查询方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《基于动态裁剪的移动对象反向近邻查询方法.pdf》由会员分享,可在线阅读,更多相关《基于动态裁剪的移动对象反向近邻查询方法.pdf(11页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102004771A43申请公布日20110406CN102004771ACN102004771A21申请号201010545434122申请日20101112G06F17/3020060171申请人浙江大学地址310027浙江省杭州市西湖区浙大路38号72发明人寿黎但陈珂陈刚胡天磊张栋74专利代理机构杭州求是专利事务所有限公司33200代理人林怀禹54发明名称基于动态裁剪的移动对象反向近邻查询方法57摘要本发明公开了一种基于动态裁剪的移动对象反向近邻查询方法。使用TPRTREE对移动对象建立索引;开发移动对象反向近邻查询处理框架,在过滤阶段得到整个时间段内查询点的所有可能的。

2、反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;对过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算;对获得的结果点及其有效时间段进行合并,获得在每个子时间段上的反向近邻查询结果集。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图2页CN102004784A1/2页21一种基于动态裁剪的移动对象反向近邻查询方法。

3、,其特征在于该方法的步骤如下1使用TPRTREE对移动对象建立索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;2开发移动对象反向近邻查询处理框架,该处理框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;3开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;4在步骤3实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;5根据步骤4中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间。

4、段计算;6对步骤5中获得的结果点及其有效时间段进行合并,最终获得在每个子时间段上的反向近邻查询结果集。2根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤1中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPRTREE对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPRTREE自身进行处理,该索引层的处理逻辑对上层查询透明。3根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤2使用基于过滤精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得;。

5、该框架是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显;过滤阶段保证裁剪力度的前提下依然能够获得所有该时间段内反向近邻查询保守结果集;在后续的精炼阶段使用移动对象近邻查询来对所有的候选集进行验证。4根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤3将两种移动对象反向近邻裁剪策略整合为一个裁剪算法,两个裁剪策略分别为1移动对象支配域裁剪策略;2包围盒对角线长度裁剪策略;对于单个数据对象仅使用移动对象支配域,对于节点则先使用包围盒对角线长度裁剪然后使用移动对象支配域裁剪策略;裁剪算法有两个参数,一个是需要判断的TPRTREE中间节点或者。

6、移动对象,另一个是包含任意多个移动对象的集合;算法流程描述如下如果需要判断的是TPRTREE的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪;遍历集合,判断该节点在查询时间段内扫过的区域是否在几何中某个候选对象的支配域中,如果是则立即返回真;如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。5根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤4中移动对象反向近邻查询处理过滤算法的具体步骤如下I初始化一个优先队列,优先级定。

7、义为该节点或者移动对象在查询时间段内与查询点权利要求书CN102004771ACN102004784A2/2页3的最小距离,将TPRTREE的根节点放入队列中;II初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或节点;III如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优先队列的第一个元素,调用步骤3中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤;如果不能被裁剪则执行IV;IV如果当前元素是一个移动对象,则将其放入候选对象集合,跳回III继续执行;如果当前元素是一个叶子节点,则跳到V执行。

8、;否则跳到VI执行;V对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到III继续执行;IV对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到III继续执行。6根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤5中移动对象反向近邻查询的精炼算法的具体步骤如下I首先遍历候选集合中的每个候选点,为每个候。

9、选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段;接着计算在查询时间段上其他候选点离它的距离是否小于查询点到它的距离,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段;如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试的待验证集合,该集合初始为空;II如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点;依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向。

10、近邻时域减小,则将其放入每个候选点关联的待验证集合中;若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;III取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到II处。7根据权利要求1所述的一种基于动态裁剪的移动对象反向近邻查询方法,其特征在于步骤6根据步骤5中所报告的查询点的反向近邻和有效的时间段,合并成规范的结果集合。权利要求书CN102004771ACN102004784A1/6页4基于动态裁剪的移动对象反向近邻查询方法技术领域0001本发明涉及空间数据库的索引与查询技术,特别是涉及一种基于动态裁剪策略的移动对象反向。

11、近邻查询方法。背景技术0002空间数据库是用于存储空间地理和非空间数据的数据库系统,它能根据数据的空间分布特征进行索引,在数据模型上提供空间分析的方法和查询语言中提供空间查询。空间数据库与一般数据库最大的不同是它包含“空间”或者几何的概念,它是以事物的空间特性作为数据基本属性并据此建立索引并提供上层服务的一种特殊的数据库。目前,空间数据库被广泛应用于地理信息系统GIS、计算机辅助设计CAD、多媒体信息系统MMIS以及数据仓库DWH,为以上系统提供数据存储和查询的解决方案。0003在所有空间数据库的索引技术中,RTREE及其变种因为简单易用和有效性而应用最为广泛。RTREE是BTREE在高维空间。

12、上的扩展,空间位置相近的数据点被聚类到最小包围盒MBR里,这些最小包围盒又根据空间局部性递归的进行聚类,直至到达根节点。TPRTREE是RTREE在移动对象索引上扩展,它能够对移动对象进行有效的索引并进行未来查询。TPRTREE在结构上与RTREE类似,具备RTREE的大多数特性。与RTREE相比,TPRTREE除最小包围盒MBR外还有最小速度包围盒VBR,所以TPRTREE上任意节点在任意时刻的位置都可以通过MBR和VBR计算获得。因此TPRTREE的绑定最小包围盒只有在重新计算的那个时刻才是最小的。0004空间数据库上的查询方法多种多样,其中最常见的就是最近邻查询。最近邻查询通常依照深度优。

13、先或最好优先的策略对RTREE进行访问,获得离查询点最近的数据点。反向最近邻查询是在最近邻查询的基础上提出的另一种重要的空间查询,它能返回以查询点为最近邻的所有数据点的集合。但传统的反向最近邻查询多针对数据点集为静态的情况,随着无线通讯技术的快速发展,移动设备的使用越来越广泛,如何对移动对象进行动态反向最近邻查询是一个新的课题。发明内容0005本发明的目的在于提供一种基于动态裁剪的移动对象反向近邻查询的方法。0006本发明解决其技术问题采用的技术方案的步骤如下00071使用TPRTREE对移动对象建立索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;00082开发移动对象反向近邻查。

14、询处理框架,该处理框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间;00093开发两种适用于移动对象反向近邻动态裁剪策略,整合成统一的移动对象反向近邻动态裁剪算法;说明书CN102004771ACN102004784A2/6页500104在步骤3实现反向近邻动态裁剪算法上实现移动对象反向近邻查询处理过滤算法;00115根据步骤4中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算;00126对步骤5中获得的结果点及其有效时间段进行合。

15、并,最终获得在每个子时间段上的反向近邻查询结果集。0013步骤1中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPRTREE对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPRTREE自身进行处理,该索引层的处理逻辑对上层查询透明。0014步骤2使用基于过滤精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得;该框架是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显;过滤阶段保证裁剪力度的前提下依然能够获得所有该时间段内反向近邻查询保守结果集;在后续的精炼阶段使用移。

16、动对象近邻查询来对所有的候选集进行验证。0015步骤3将两种移动对象反向近邻裁剪策略整合为一个裁剪算法,两个裁剪策略分别为1移动对象支配域裁剪策略;2包围盒对角线长度裁剪策略;对于单个数据对象仅使用移动对象支配域,对于节点则先使用包围盒对角线长度裁剪然后使用移动对象支配域裁剪策略;0016裁剪算法有两个参数,一个是需要判断的TPRTREE中间节点或者移动对象,另一个是包含任意多个移动对象的集合;算法流程描述如下如果需要判断的是TPRTREE的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪;遍历集合,判断该节点在查询时间段内扫过的区域。

17、是否在几何中某个候选对象的支配域中,如果是则立即返回真;如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。0017步骤4中移动对象反向近邻查询处理过滤算法的具体步骤如下0018I初始化一个优先队列,优先级定义为该节点或者移动对象在查询时间段内与查询点的最小距离,将TPRTREE的根节点放入队列中;0019II初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或节点;0020III如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优。

18、先队列的第一个元素,调用步骤3中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤;如果不能被裁剪则执行IV;0021IV如果当前元素是一个移动对象,则将其放入候选对象集合,跳回III继续执行;如果当前元素是一个叶子节点,则跳到V执行;否则跳到VI执行;0022V对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到III继续执行;0023IV对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节说明书CN102004771ACN。

19、102004784A3/6页6点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到III继续执行;0024步骤5中移动对象反向近邻查询的精炼算法的具体步骤如下0025I首先遍历候选集合中的每个候选点,为每个候选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段;接着计算在查询时间段上其他候选点离它的距离是否小于查询点到它的距离,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段;如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试。

20、的待验证集合,该集合初始为空;0026II如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点;依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向近邻时域减小,则将其放入每个候选点关联的待验证集合中;若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;0027III取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到II处。0028步骤6根据步骤5中所报告的查询点的反向近邻和有效的时间段,合并成规范。

21、的结果集合。0029本发明具有的有益效果是0030本发明充分利用了空间数据库引擎和空间数据库动态索引技术的现有研究和实现成果,基于已有系统可以非常方便快捷的开发基于动态裁剪的移动对象反向近邻查询处理引擎,使用者可根据具体应用环境选择合适的查询时间段,提供最好的性能。附图说明0031图1是本发明实施步骤流程图。0032图2是基于裁剪的移动对象反向近邻查询系统工作原理示意图。0033图3是移动对象反向近邻查询处理实例示意图。具体实施方式0034现结合附图和具体实施例对本发明的技术方案作进一步说明。00351如图1,图2所示,本发明具体实施过程和工作原理如下00361使用TPRTREE对移动对象建立。

22、索引,该索引层处理所有移动对象的更新操作,并对查询处理层透明;00372开发移动对象反向近邻查询处理框架,该框架包含过滤和精炼两个阶段,过滤阶段得到整个时间段内查询点的所有可能的反向近邻候选点集;在精炼阶段去除候选点中的错误点并确定每个反向近邻查询结果点的有效时间。00383开发适用于移动对象反向近邻裁剪的高效算法;00394在步骤3实现反向近邻动态裁剪高效算法上实现移动对象反向近邻查询处理过滤算法;说明书CN102004771ACN102004784A4/6页700405根据步骤4中过滤的结果,实现反向近邻查询的精炼算法,对所有查询候选点进行最近邻查询正确性验证和反向近邻有效子时间段计算。0。

23、0416对5中获得的结果点及其有效时间段进行整合,最终获得在每个子时间段上的反向近邻查询结果集。0042步骤1中需要先对移动对象建模,将移动对象表示为关于时间的线性函数,使用TPRTREE对当前时刻移动对象的状态建立索引,后续的更新,删除,添加操作都通过TPRTREE自身进行处理,该索引层的处理逻辑对上层查询透明。0043步骤2使用基于过滤精炼的查询处理框架,该框架能够保证查询结果的正确性,即所有在查询时间段内会成为查询点的反向近邻的移动对象都将被取得。该框架的好处是不需要预计算的时间和空间代价,并且计算代价随移动对象的数目和查询时间增长不明显。过滤阶段保证一定的裁剪力度的前提下依然能够获得所。

24、有该时间段内反向近邻查询保守结果集。在后续的精炼阶段使用移动对象近邻查询来对所有的候选集进行验证。0044步骤3将两种移动对象反向近邻裁剪策略整合为一个高效的裁剪算法,两个裁剪策略描述如下00451移动对象支配域性质给定一个查询点和一个移动对象,在某一查询时间段内该移动对象的支配域是时间段内所有时刻移动对象和查询点的中垂线所划分的包含移动对象的半平面的交集。并且可以证明该支配域正好等于起始点的半平面交集。任意移动对象如果其在查询时间段内的移动轨迹整个落在另一个移动对象的支配域上,表示在整个查询时间段内该移动对象到另一移动对象的距离始终小于它到查询点的距离,所以该对象在整个查询时间段上不可能成为。

25、查询点的反向近邻,该对象可以被直接裁剪。同样,对于TPRTREE的中间节点,只要其在查询时间段上扫过的区域整个落在某个移动对象的支配域上,则该节点可以整个被裁剪。00462包围盒对角线长度性质对于TPRTREE的任意中间节点,如果在整个查询时间段上该中间节点的包围盒对角线长度均小于查询点到该节点的最小距离,则意味着对于包围盒中的任意移动对象在查询时间内总存在另一个移动对象它们的距离始终小于到查询点的距离,所以该中间节点可以被整个裁剪。图2所示的距离函数计算与比较模块提供支持。0047裁剪算法可以描述如下如果需要判断的是TPRTREE的中间节点,则首先使用包围盒对角线长度裁剪策略尝试裁剪,如果未。

26、能裁剪,则继续使用移动对象支配域裁剪策略尝试裁剪。遍历当前的候选对象集合,判断该节点在查询时间段内扫过的区域是否在某个候选对象的支配域中,如果是则立即返回真。如果需要判断的是移动对象,则直接使用移动对象支配域策略尝试裁剪。上述裁剪如果都失败,则最终返回假,表示该中间节点或者移动对象不能被裁剪。0048步骤4中移动对象反向近邻查询处理过滤算法的具体步骤如下00491初始化一个优先队列,优先级定义为该节点或者移动对象在查询时间段内与查询点的最小距离,该最小距离由图2所示距离函数计算与比较模块提供,将TPRTREE的根节点放入队列中;00502初始化一个候选对象集合和一个被裁剪集合,分别来保存当前所。

27、有访问过的节点中未被裁剪的移动对象和被裁剪的移动对象或中间节点;说明书CN102004771ACN102004784A5/6页800513如果优先队列为空,则过滤算法结束,返回候选对象集合和被裁剪集合,否则取出优先队列的第一个元素,如图2所示,调用步骤3中的裁剪算法,如果能够被裁剪,则将此元素放入被裁剪集合,重复此步骤。如果不能被裁剪则执行4;00524如果当前元素是一个移动对象,则将其放入候选对象集合,跳回3继续执行;如果当前元素是一个叶子节点,则跳到5执行;否则跳到6执行;00535对于叶子节点中每个移动对象,调用裁剪算法进行判断,如果被裁剪,则将此移动对象放入被裁剪集合,如果不是则计算该。

28、移动对象在查询时间段内到查询点的最短距离,作为该移动对象的优先级并放入优先队列,跳到3继续执行;00546对于中间节点中每个子节点,调用裁剪算法进行判断,如果被裁剪则将此子节点放入被裁剪集合,如果不能则计算该节点在查询时间段内到查询点的最小距离,作为该子结点的优先级并放入优先队列,跳到3继续执行;0055根据图2所示的系统工作原理图,应用程序可以向移动对象反向近邻查询发起一个关于某个查询点和某段时间的查询请求,以图3所示数据集为例,PI1I15为移动对象,NJ1J11为TPRTREE的节点,查询点为Q,查询时间段为0,5。步骤4中移动对象方向近邻查询处理过滤算法的具体实施方式如下00561初始。

29、时先访问根节点,对它的每个子结点调用裁剪算法,由于三个子结点N1,N2,N3的对角线长度在整个查询时间段上均小于查询点到它们的最小距离,另外由于当前的候选对象集合为空,所以三个子结点均不能被裁剪,都被放入优先队列。00572下一个访问的是N1,同样的也去检查它的三个子结点,由于N5,N6的对角线长度在查询时间段内小于它们到查询点的最小距离所以N5,N6被放入被裁剪集合,只有N4被放入优先队列。00583接着N3被访问,N10,N11均未被裁剪被插入到优先队列中,紧接着访问的是叶子节点N4,同样的它的子结点,也就是移动对象P1,P2也不能被裁剪所以也被插入到优先队列中。00594移动对象P1紧跟。

30、着被取出并成为第一个反向近邻候选对象,被放入到候选对象集合中。00605后续的N10包含的两个移动对象P13,P14被放入优先队列,而N2的三个子节点由于对角线策略被放入杯裁剪集合,接着P13成为第二个候选对象放入候选对象集合;00616优先队列中剩余的其他元素都因为被裁剪而放入杯裁剪集合中。0062如图2所示,移动对象反向近邻过滤结束后紧接着进行移动对象的反向近邻精练,步骤5中移动对象反向近邻查询的精炼算法的具体步骤如下00631首先遍历候选集合中的每个候选点,为每个候选对象关联一个反向近邻有效时间区间列表,初始时该时间列表含有一个元素,即查询时间段。接着计算在查询时间段上其他候选点离它的距。

31、离是否小于查询点到它的距离,同样需要调用图2所示的距离函数计算与比较模块,如果在某些子时间段上判断为是则该候选点的反向近邻有效时间区间减去这些无效时间段。如果整个时间段上都被判断为无效,则该点被放入被裁剪集合中;否则,为每个候选对象关联一个需要进一步测试的待验证集合,该集合初始为空。00643如果候选对象集合为空,则返回;否则使用当前的被裁剪集合去尝试验证每个候选点。依次取出裁剪集合中的每个元素,如果是移动对象则使用它去更新每个候选点所说明书CN102004771ACN102004784A6/6页9关联的反向近邻有效时间列表,如果是中间节点并且有可能包含某些移动对象使得某个候选点的反向近邻时域。

32、减小,则将其放入每个候选点关联的待验证集合中。若一个候选点的带验证集合为空,则输出当前候选点和它的反向近邻有效时间段列表;00654取出所有候选点所关联的待验证集合中出线次数最大的一个节点,取出它所有的子结点放入被裁剪集合,跳到3;0066以图3所示数据集为例,步骤5中的移动对象反向近邻精炼算法的具体实施方式如下00671经过步骤4的过滤阶段,得到一个候选对象集合和一个被裁剪集合。分别为P1,P13,N5,N6,N7,N8,N9,N11。首先由于P1到P13的距离在查询时间段上始终大于它们到查询点的距离,所以P1,P13仍然在整个时间段上有效。初始化它们的反向近邻有效时间列表,初始值为0,5;。

33、00682接下来使用被裁剪集合中的每个元素来验证P1,P13,由于P13和P14的距离在时间段0,175上小于P13到查询点的距离,所以P13对应的反向近邻有效时间列表别更新为175,5,而对于P1,裁剪集合中不存在其他移动对象或者中间节点使得P1的反向近邻时间列表更新,即遍历被裁剪集合后带验证集合为空,所以在此处就直接报告P1在时间段0,5上是查询点的反向近邻。最后,取出所有余下的候选点那些对应的待验证集合中出现次数最,多的,即N7,使用N7的子节点进一步验证。同样的,使用N8也没有更新P13的反向近邻有效时间列表,此时由于P13的待验证集合为空,所以报告P13的反向近邻时间段位175,5;0069步骤6根据步骤5中所报告的查询点的反向近邻和有效的时间段,合并成规范的结果集合。0070以上例子中步骤5结束后返回的是和,整合后输出的规范的移动对象反向近邻查询结果为,。说明书CN102004771ACN102004784A1/2页10图1图2说明书附图CN102004771ACN102004784A2/2页11图3说明书附图CN102004771A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1