[发明专利]一种在空间网络数据库中查找最近k个点对的广度优先方法无效
申请号: | 201010175152.7 | 申请日: | 2010-05-13 |
公开(公告)号: | CN101840434A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 孙未未;陈楚南;刘未末;荆一楠;何震瀛 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 20043*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 空间 网络 数据库 查找 最近 广度 优先 方法 | ||
技术领域
本发明属于空间数据库技术领域,具体涉及一种在空间网络数据库中查找最近k个点对的广度优先方法。
背景技术
近年来,随着无线通讯技术、地理信息系统特别是定位技术的发展,以及计算机信息处理能力的提高,空间数据库在现实中得到了很好的应用,成为了当今的研究热点之一,其发展前景被广泛看好。
在空间数据库中,数据的存储是基于存储对象的空间地理位置信息而进行组织的,所进行的查询也是与查询对象的空间地理位置信息有关的空间查询。作为空间数据库中最常见的空间查询之一,最近k个点对查询是,对输入两个数据集合S和T,S的每个元素与T的每个元素构成点对,计算这些点对的距离,选取最小的k个返回。
在现有的最近k个点对的查询方法中,大多数方法都是针对欧氏几何空间环境下的空间数据库而提出的。在欧氏几何空间环境下,点与点之间的距离是直线距离,而在空间网络环境下,点与点之间的距离是由两点在网络中的最短路径距离决定的,因此针对欧氏几何空间环境下的查询方法无法直接应用到空间网络环境下。在空间网络环境下,现有的最近k个点对查找方法是以深度优先方法进行查找的,由于该方法在查找过程中会找出很多冗余的点对,因此对空间网络的顶点和边的访问量很大,导致查找速度很慢。因此亟需要对此方法进行改进,以提高查找速度。
发明内容
本发明的目的是针对空间网络数据库中最近k个点对的问题,提出一种广度优先的方法,以提高查找速度。
本发明提出的查找方法,通过以广度优先的查找顺序,既保证了最终查找的点对是最近的k个,又减少了查找过程中对空间网络的顶点和边的访问次数,加快了查找速度。
首先对一些基本概念进行定义:
定义1.网络(G):表示顶点(vertex)之间邻接关系的拓扑结构,由顶点集合(V)以及顶点之间的边的集合(E)构成。
定义2.两点间距离(distance):两点之间最短路径的长度。
定义3.最近邻居(NN):对输入的查询点(或中心点)q和查询目标集合S={S1,S2,…,Sn},在S中找出与q之间距离最小的顶点Si,Si即为q的最近邻居(q.NN)。
定义4.点对及点对距离:对顶点集合S和T,S中的顶点Si与T中的顶点Tj构成点对(Si,Tj),Si与Tj之间的距离为点对(Si,Tj)的距离。
定义5.最近k个点对:对顶点集合S和T,在所有点对中取距离最小的k个,称这k个点对为S和T的最近k个点对。
定义6.集合大小|S|:集合S所包含元素的个数。
根据以上定义,对于输入的顶点集合S和T,S={S1,S2,…,Sm},T={T1,T2,…,Tn},本发明提出的最近k个点对查找方法是基于以下性质的:
(1)以T为查询目标集合,假设已经找到了S中的每个顶点Si的第一个最近邻居Si.1NN,这m个由中心点Si和Si.1NN构成点对(Si,Si.1NN),i=1,2,…,m,在这m个点对中,设距离最小的点对为(Sj,Sj.1NN),则(Sj,Sj.1NN)一定是S和T的第一个最近点对。
(2)假设当前已找出第i个最近点对(Sx,Sx.tNN),其中,i=2、3、…、k-1,Sx.tNN表示Sx的第t个最近邻居,则查找Sx的第t+1个最近邻居,构成新的点对,那么找出的所有点对中距离第i+1小的点对一定是S和T的第i+1个最近点对。
基于以上性质,本发明方法以广度优先的顺序查找两个集合的最近k个点对,具体步骤是:
(1)对于输入的顶点集合S和T,设m=|S |,n=|T|,S={S1,S2,…,Sm},T={T1,T2,…,Tn},不失一般性,假设m<n。
(2)以T为查询目标集合,查找S中的每个顶点Si的第1个最近邻居Si.1NN,这m个由中心点Si和Si.1NN构成点对(Si,Si.1NN),i=1,2,…,m,在这m个点对中取距离最小的点对,设为(p1,q1),p1∈S,q1∈T,则(p1,q1)为S和T的第一个最近点对。
(3)对(2)中求出的第1个最近点对的中心点p1,查找p1的第2个最近邻居p1.2NN,p1与p1.2NN构成第m+1个点对(Sj,Sj.2NN),在(2)、(3)中求出的m+1个点对中取距离第2小的,设为(p2,q2),则(p2,q2)是S和T的第二个最近点对。
(4)对已求出的S和T的第t(0<t<k)个最近点,对重复步骤(3),计算下一个最近点对,直至t=k为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010175152.7/2.html,转载请声明来源钻瓜专利网。