一种VoronoiDiagram与虚拟网格结合的高效空间最近邻查询方法

文档序号:6514899阅读:255来源:国知局
一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法
【专利摘要】本发明公开了一种VoronoiDiagram与虚拟网格结合的高效空间最近邻查询方法,包括以下步骤:(1)使用VoronoiDiagram划分二维空间中的数据点,形成N个VoronoiCell;(2)使用虚拟网格将二维空间划分为若干个网格单元,确定网格单元的边长并进行编号;(3)设计计算虚拟网格单元和VoronoiCell之间的对应关系的方法,并存储在一个哈希表中;(4)计算查询点位置所在的网格单元,并确定对应的网格单元的编号;(5)在哈希表中查找查询点位置所在的网格单元所对应的VoronoiCell,并从中计算选择距离查询点位置最近的数据点返回给用户。本发明适用于大规模均匀分布的二维数据集,能够将空间最近邻查询的时间复杂度从O(logN)降低到O(1),极大地提高了空间最近邻查询的效率。
【专利说明】—种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法
【技术领域】
[0001]本发明涉及一种最近邻查询方法,尤其涉及一种使用Voronoi Diagram与虚拟网格结合的索引结构的高效空间最近邻查询方法。
【背景技术】
[0002]近年来,随着智能手机的普及,人们越来越多地使用手机进行定位、查找、浏览和分享信息;越来越多的设施如餐馆、商店、电影院等的地理位置可以利用手机中的电子地图来获取。这种面向智能手机用户的基于地理位置信息的服务已经被人们广泛接受。随着信息技术的不断发展,这类基于地理位置信息的应用和服务也会越来越多。
[0003]在这些应用和服务中,较为常见的基于地理位置信息的服务是搜索用户当前位置附近的、满足用户所定义的关键词的设施。在这类应用中,如何高效处理用户当前地理位置的空间查询,即空间关键词查询,是一项重要的研究课题。由于大量用户通过移动终端在同一时间发起查询,并且期望在很短的时间内得到答案,因此,并发查询量大、查询实时性要求高是当前基于地理位置信息的服务应用面临的主要挑战。
[0004]如何提高空间最近邻的查询效率,是空间关键词查询和很多基于地理位置信息的服务应用中面临的一个基础且十分重要的关键问题。在查找查询位置的空间最近邻时,现有的方法通常都借助于R-Tree类型的索引结构。而R-Tree类型的索引是基于磁盘的数据结构,使用R-Tree搜索查询点在空间中的邻域的时间复杂度是O (log N),其中N为数据点的总数,需要花费大量的查询时间;并且,找到查询点在空间中的邻域之后,现有的方法必须查看所有与该邻域相交的划分区域即最小边界矩形中的点,以从中找出查询点的空间最近邻,这样又进一步增加了计算的开销。

【发明内容】

[0005]本发明的目的是提供一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法,适用于大规模均匀分布的二维数据集,能够将空间最近邻查询的时间复杂度从0(log N)降低到0(1),提高空间最近邻查询的效率。
[0006]本发明采用下述技术方案:
[0007]—种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法,包括以下步骤:
[0008]A:使用Voronoi Diagram划分二维空间中的数据点,形成N个Voronoi Cell,N为数据点个数,每个Voronoi Cell为一个凸多边形且仅包含I个数据点;
[0009]B:使用虚拟网格将二维空间划分为若干个等大的正方形网格单元,确定网格单元的边长,并对虚拟网格进行编号;
[0010]C:设计计算虚拟网格单元和Voronoi Cell之间的对应关系的方法,并将该对应关系存储在一个哈希表中;[0011]D:计算查询点位置所在的网格单元,并确定查询点位置所对应的网格单元的编号;
[0012]E:根据步骤D中计算出的网格单元编号,在步骤C中所建立的存储网格单元与Voronoi Cell对应关系的哈希表中,查找查询点位置所在的网格单元所对应的VoronoiCell,并从中计算选择距离查询点位置最近的数据点返回给用户。
[0013]所述的步骤B包括以下步骤:
[0014]B1:使用虚拟网格将二维空间划分为若干个等大的正方形网格单元,通过公式
【权利要求】
1.一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法,其特征在于,包括以下步骤: A:使用Voronoi Diagram划分二维空间中的数据点,形成N个Voronoi Cell, N为数据点个数,每个Voronoi Cell为一个凸多边形且仅包含I个数据点; B:使用虚拟网格将二维空间划分为若干个等大的正方形网格单元,确定网格单元的边长,并对虚拟网格进行编号; C:设计计算虚拟网格单元和Voronoi Cell之间的对应关系的方法,并将该对应关系存储在一个哈希表中; D:计算查询点位置所在的网格单元,并确定查询点位置所对应的网格单元的编号; E:根据步骤D中计算出的网格单元编号,在步骤C中所建立的存储网格单元与VoronoiCell对应关系的哈希表中,查找查询点位置所在的网格单元所对应的Voronoi Cell,并从中计算选择距离查询点位置最近的数据点返回给用户。
2.根据权利要求1所述的VoronoiDiagram与虚拟网格结合的高效空间最近邻查询方法,其特征在于,所述的步骤B包括以下步骤: B1:使用虚拟网格将二维空间划分为若干个等大的正方形网格单元,通过公式
3.根据权利要求2所述的VoronoiDiagram与虚拟网格结合的高效空间最近邻查询方法,其特征在于,所述的步骤C包括以下步骤: Cl:计算与每个Voronoi Cell的各边相交的网格单元:对于每一个Voronoi Cell的任意一条边的两个端点%和ei,计算边% — ei与纵向网格线和横向网格线的交点;按照eQ到方向,按照横坐标值的大小关系有序排列上述交点及%和ei两个顶点所组成的点的集合;对排序之后的集合中的所有点依次计算集合中所有相邻两点的中点,对每个中点使用步骤C中的公式(2)计算该中点所在的网格单元的编号,中点所在的网格单元所组成的集合即为与边% — θι相交的网格单元; C2:计算Voronoi Cell包含的网格单元:与任意一个Voronoi Cell的各边所相交的网格单元围成的区域所包含的所有网格单元,即为VOTonoi Cell包含的网格单元; C3:将与Voronoi Cell相交和Voronoi Cell包含的网格单兀和该Voronoi Cell的对应关系存储在一个哈希表中,哈希表的键key即为网格单元编号,哈希表的值value即为该网格单元对应的Voronoi Cell的编号。
【文档编号】G06F17/30GK103559209SQ201310470050
【公开日】2014年2月5日 申请日期:2013年10月10日 优先权日:2013年10月10日
【发明者】张重生 申请人:河南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1