当前位置: 首页 > 专利查询>东北大学专利>正文

一种基于区域覆盖的k近邻查询方法技术

技术编号:6978199 阅读:324 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种基于区域覆盖的k近邻查询方法,属于移动数据索引技术领域,将空间进行网格划分,数据点保存在对应的网格中,再将网格作为四分树的叶子结点存储起来,同时将网格作为一个移动对象保存在Voronoi图中,查询时首先根据对象的坐标找到其所在的网格,进而找到该网格在Voronoi图中的位置,该网格内的对象按照距离的升序组织成结果链表,同时根据Voronoi图把相邻的网格按距离的升序放入访问链表中,进行距离比较,最终找到该对象的K个最近邻。本方法综合利用Voronoi图和虚拟网格四分树的索引结构,利用哈希表快速查找定位,从而提高了查询的效率。

【技术实现步骤摘要】

本专利技术属于移动数据索引
,特别涉及。
技术介绍
随着科技的进步,特别是无线通信技术、全球定位系统(GlcAal Positioning System, GPS)技术以及数据库技术的发展,移动对象数据库技术逐渐成为数据库领域的研究热点,其中移动对象数据的K近邻查询方法是研究中的一个重要领域。所谓的K近邻 (KNN,K Nearest Neighbor)查询是指在空间中寻找距离给定点前K个最近的对象,其中K 可以为一个也可以为多个。但是过去的大部分研究工作都是针对处于静态环境下的K近邻查询,该环境下目标点的属性值保持不变或很少需要更新,这方面的研究已经比较成熟;对于在动态环境中,查询对象和被查询目标都是移动的情况下的K近邻查询问题,目前国内外这方面的研究都还处于不成熟阶段。移动对象的K近邻查询应用非常广泛,具体的应用领域主要体现在以下四个方面,首先是在交通导航与交通调度上的应用,比如人们在出行时可以通过服务器查找距离自己最近的出租车信息并发出请求,以减少等车的时间。其次在数字化军事指挥方面上的应用,比如一个士兵通过无线定位设备向服务器实时报告自己的位置,并通过服务器查找距离自己最近的战友,来共同作战。再次在人群管理上的应用,例如在一个旅行团旅游时, 导游发出一个连续的范围查询对其周围的游客进行持续监控,从而避免游客的失散。最后在移动电子商务方面上的应用,例如一个商场可以通过服务器实时监控商场周围一公里范围内移动对象的情况,向他们发送该商场的各种服务信息、优惠活动信息,以吸引一些潜在的顾客。近年来,在空间数据库研究领域,K近邻(KNN)查询算法是一个研究重点与热点。 基于欧式距离的最近邻查询算法最早是由Roussopoulos等于1995年提出。作者使用分枝界定的R树遍历算法,提出了两个距离度量(即mindist和minmaxdist)以及三个启发式规则来过滤不包含最近邻居的结点,从而减少结点访问个数,减少磁盘1/0,进而有效地提高查询性能。随后,Kom等人开发了一个多步骤的最近邻查询算法,该算法通过多次扫描数据集来获得最终的查询结果。Berchtold等人探讨了基于Voronoi cells的最近邻查询算法。 kidl和Kriegel提出了一种最佳的多步骤k最近邻查询处理方法,并且用大量的实验证明了他们提出的算法性能大大优于先前己有的最近邻查询算法。Cheung等进一步改进该算法,在保证剪枝效率的情况下,移除了两种既不能增强剪枝效果又具有高计算复杂度的剪枝规则,减少了 CPU计算代价。Hjaltson等提出了一种基于BF的最近邻查询算法来最小化1/0代价,使用了 PMR-tree四叉树索引结构结合优先队列的方法,该方法使得查询时不需要遍历所有的对象,通过利用剪枝策略提高查询效率,而且根据优先队列的特性,对于查找K近邻效率更高。Kolahdouzan等提出了一种解决空间网络数据库中KNN查询的VN3方法。这种方法预计算出目标点的网络Voronoi多边形(NVPs)以及一些网络距离。然而,在需要查找的 NNs数目增加及目标点数目增加的情况下,VN3中NVPs的预计算需要巨大的计算花费。因此,在目标点是高密度的情况下,VN3的效率将极大退化。Bx-iTree是Christian S. Jensen等在2004年提出的一种对于移动点的B+_tree索引结构。该索引结构使用B+-tree作为基础索引结构,而B+-tree是一维索引,而区域覆盖的索引结构要求是最低是二位索引结构。因此Bx-Tree首先对空间进行网格划分,然后使用 Hilbert曲线对网格进行编码,这样二维网格就可以使用B+-Tree对其进行索引。Bx-Tree 索引移动物体时,不是索引物体的位置,而是使用一个线性函数代替物体的移动,在一段时间内保证最少更新一次。B+-Tree同时维护三棵子树,以保证结果的准确性。Su Chen和Beng Chin Ooi等人在2008年改进了 Βχ-Tree树索引结构,提出了 SfB结构。SfB树是一种自可调的移动对象B+树索引结构,首先在时间上,SfB树将底层 B+树划分为两棵子树BTtl和BT1,每个移动对象根据更新的时间选择相应的子树进行索引, 其中两棵子树随着时间交替进行移动对象管理;其次在空间上,根据区域内移动对象的分布,根据密度的不同选取一个参考点集,并根据参考点Voronoi块对区域进行分块,然后在不同的分块选取不同的网格粒度划分对移动对象进行索引,对于基于SfB树的最近邻查询方法,采取的是不断扩大范围查询半径,直到查询区域内的移动对象个数满足最近邻查询的条件为止,方法的缺点是采用不断的调用范围查询算法,时间代价较大。
技术实现思路
为克服上述方法的不足,本专利技术提出了。它综合利用了 Voronoi图和虚拟网格四分树VGQ两种索引结构,同时利用哈希表具有快速查找定位的特点,将一些重要的数据信息存放在哈希表中,以方便快速的查找定位,从而提高了查询的效率。VGQ(Virtual Grid Quadtree)即虚拟网格四分树,它是结合网格文件、压缩四分树及查询效率较高的哈希结构三种索引技术的优点,形成的一种基于区域覆盖的移动对象索引结构。首先使用网格把空间进行剖分,形成很多小的区域,移动对象就分布在这些小区域中。对这些网格的处理是采用压缩四分树的索引结构,压缩四分树(Compressed Quadtree)是在传统基本四分树的基础上的改进,它的主要思想是在建立索引的时候,将四分树索引中冗余的空间索引结点删除掉,以提高内存的利用率。接着用哈希表来进一步提高查找效率。Voronoi图根据对象集合中元素的各个位置,把空间区域划分成许多单元区域,即Voronoi区域。一个Voronoi区域与其生成对象是——对应的,并且不同的Voronoi 区域之间互不重叠,这就构成了空间的一个划分。Voronoi图的优势在于可以把一个空间按照空间中对象的分布,把对象联结成一张网状结构,使得对象与对象之间的遍历变得很方便。Vor-VGQ结构是Voronoi图和VGQ结合的索引结构。首先将空间进行网格划分, 数据点保存在对应的网格中,然后将网格作为四分树的叶子结点存储起来,同时将网格作为一个移动对象保存在Voronoi图中。在进行查询时首先根据对象的坐标找到其所在的网格,进一步找到该网格在Voronoi图中的位置,把该网格内的对象按照距离的升序组织成结果链表,同时根据Voronoi图把相邻的网格按距离的升序放入访问链表中,然后进行距离的比较,最终找到该对象的K个最近邻。基于区域覆盖的k近邻查询方法包括以下步骤步骤1 录入人员位置信息,方法为每一个对象向上报告自己的当前坐标,确定查询空间;步骤2 把查询空间划分为网格;首先将整个查询空间划分成MXN个虚拟的空间网格单元,其中,M表示横着将空间分为M份,N表示竖着将空间分为N份,如图1所示;对于点p(x,y)所在的网格id,计算公式如下px = (int)x/hXpy = (int)y/hYid = px+py X divX+1式中,χ和y表示点ρ的横坐标和纵坐标,hX和hY分别表示网格单元的水平宽度和垂直高度,divX表示网格文件在水平方向上的划分个数;步骤3 对移动对象进本文档来自技高网
...

【技术保护点】
1.一种基于区域覆盖的k近邻查询方法,其特征在于:包括如下步骤:步骤1:录入人员位置信息,方法为:每一个对象向上报告自己的当前坐标,确定查询空间;步骤2:把查询空间划分为网格;首先将整个查询空间划分分成M×N个虚拟的空间网格单元,其中,M表示横着将空间分为M份,N表示竖着将空间分为N份,对于点p(x,y)所在的网格id,计算公式如下:px=(int)x/hXpy=(int)y/hYid=px+py×divX+1式中,x和y表示点p的横坐标和纵坐标,hX和hY分别表示网格单元的水平宽度和垂直高度,divX表示网格文件在水平方向上的划分个数;步骤3:对移动对象进行索引;把每一个空间网格单元抽象为空间中的一个点进行索引,将对动态移动对象的管理转换为网格单元管理,即只对存在移动对象的区域进行索引,对不存在移动对象的区域不进行索引,建立索引的具体方法为:对于划分后的每一个空间网格单元,若网格内区域存在移动对象,则将该空间网格单元插入到压缩四分树中;若其内部没有移动对象,则该网格并不真实存在;与此同时,采用增量构造方法以各个网格的中心点来建立Voronoi图;步骤4:根据基于区域覆盖的虚拟网格四分树与Voronoi图相结合的索引结构,进行K近邻查询。...

【技术特征摘要】

【专利技术属性】
技术研发人员:王波涛乔百友屈敬伟王小松
申请(专利权)人:东北大学
类型:发明
国别省市:89

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1