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

一种在空间网络数据库中查找最近k个点对的广度优先方法技术

技术编号:3997064 阅读:697 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于空间数据库技术领域,具体是一种在空间网络数据库中查找最近k个点对的广度优先方法。在该方法中,输入两个顶点集合S和T以及正整数k,以集合S中每个顶点Si作为中心点,以集合T为查询目标顶点集合,计算每个Si的第一个最近邻居,比较这些最近邻居与其中心点的距离,选取距离最小的最近邻居及其中心点作为第一个最近点对;然后查找第一个最近点对的中心点的第二个最近邻居,选取距离第二小的作为第二个最近点对;重复以上过程直到找到第k个最近点对。通过上述的广度优先查找顺序,既能找到距离最小的k个点对,又大大减少了查找过程中最近邻居的查找次数,从而降低了在查找过程中对空间网络的顶点和边的访问次数,加快了查找速度。

【技术实现步骤摘要】

本专利技术属于空间数据库
,具体涉及。
技术介绍
近年来,随着无线通讯技术、地理信息系统特别是定位技术的发展,以及计算机信 息处理能力的提高,空间数据库在现实中得到了很好的应用,成为了当今的研究热点之一, 其发展前景被广泛看好。在空间数据库中,数据的存储是基于存储对象的空间地理位置信息而进行组织 的,所进行的查询也是与查询对象的空间地理位置信息有关的空间查询。作为空间数据库 中最常见的空间查询之一,最近k个点对查询是,对输入两个数据集合S和T,S的每个元素 与T的每个元素构成点对,计算这些点对的距离,选取最小的k个返回。在现有的最近k个点对的查询方法中,大多数方法都是针对欧氏几何空间环境下 的空间数据库而提出的。在欧氏几何空间环境下,点与点之间的距离是直线距离,而在空间 网络环境下,点与点之间的距离是由两点在网络中的最短路径距离决定的,因此针对欧氏 几何空间环境下的查询方法无法直接应用到空间网络环境下。在空间网络环境下,现有的 最近k个点对查找方法是以深度优先方法进行查找的,由于该方法在查找过程中会找出很 多冗余的点对,因此对空间网络的顶点和边的访问量很大,导致查找速度很慢。因此亟需要 对此方法进行改进,以提高查找速度。
技术实现思路
本专利技术的目的是针对空间网络数据库中最近k个点对的问题,提出一种广度优先 的方法,以提高查找速度。本专利技术提出的查找方法,通过以广度优先的查找顺序,既保证了最终查找的点对 是最近的k个,又减少了查找过程中对空间网络的顶点和边的访问次数,加快了查找速度。首先对一些基本概念进行定义定义1.网络(G)表示顶点(vertex)之间邻接关系的拓扑结构,由顶点集合(V) 以及顶点之间的边的集合(E)构成。定义2.两点间距离(distance)两点之间最短路径的长度。定义3.最近邻居(NN)对输入的查询点(或中心点)q和查询目标集合S= {Si, 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 = {Sl,S2,-,Sm},T = {T1,T2,…, Τη},本专利技术提出的最近k个点对查找方法是基于以下性质的(1)以T为查询目标集合,假设已经找到了 S中的每个顶点Si的第一个最近邻居 Si. 1NN,这m个由中心点Si和Si. INN构成点对(Si, Si. 1NN),i = 1,2,…,m,在这m个 点对中,设距离最小的点对为(Sj,Sj. 1NN),则(Sj,Sj.lNN) 一定是S和T的第一个最近点对。(2)假设当前已找出第i个最近点对(Sx,Sx. tNN),其中,i = 2、3、…、k_l,Sx. tNN 表示Sx的第t个最近邻居,则查找Sx的第t+Ι个最近邻居,构成新的点对,那么找出的所 有点对中距离第i+Ι小的点对一定是S和T的第i+Ι个最近点对。基于以上性质,本专利技术方法以广度优先的顺序查找两个集合的最近k个点对,具 体步骤是(1)对于输入的顶点集合 S 和 T,设m= |S ,η = | T |,S = {Si,S2,…,Sm},T ={Τ1,Τ2,…,Τη},不失一般性,假设m< η。(2)以T为查询目标集合,查找S中的每个顶点Si的第1个最近邻居Si. 1ΝΝ,这 m个由中心点Si和Si. INN构成点对(Si,Si. 1NN),i = 1,2,…,m,在这m个点对中取距 离最小的点对,设为(pl,ql),Pl e S,ql e T,则(pl,ql)为S和T的第一个最近点对。(3)对(2)中求出的第1个最近点对的中心点pl,查找Pl的第2个最近邻居 pl. 2NN, pl与pl. 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为止。根据以上步骤进行的查找方法,共进行了 I S I +k次最近邻居查找,找出S和T的最 近k个点对。这样的查找方法既能很快的查找出最近k个点对,又保证了最终得出的结果 是正确的。附图2为本专利技术方法与
技术介绍
比较的实验结果,通过附图可以很清楚地验证 本专利技术方法与
技术介绍
相比在查找速度上的提高。附图说明图1所示为一个由17个顶点和20条边组成的空间网络,其中圆点nl,n2,…,nl7 表示17个顶点,连接圆点的直线表示连接两个顶点的边,直线上的整数表示该边的权值。 红色圆点为集合 S = {n6,n9,nl4},蓝色圆点为集合 T = {nl,n3,n5,nlO,nl2,nl3,nl5}。图2所示为本专利技术方法与
技术介绍
比较的实验结果,其中,集合S包含13个顶点, 集合T包含47个顶点,k取5、6、7、8、9、10。具体实施例方式下面以一个实例来说明本专利技术的具体实施方式。在由附图1表示的一个空间网络中,用户输入集合S和T以及正整数k,查询最近k 个点对,S = {n6,n9,nl4},T = {nl,n3,n5,nlO,η12,η13,η15},k = 4,那么按照以下步 骤进行查找(1)选取S为中心点集合,T为查询目标集合,查找n6、n9、nl4的第1个最近邻居, 分别为 n5、nlO、nl5,得到 3 个点对(n6,n5,5)、(n9,nlO,2)、(nl4,nl5,3),括号内第 3 个数表示该点对的距离; (2)找出(1)中3个点对中距离最小的点对,为(n9,nl0,2),则(n9, nlO)为S和 T的第1个最近点对;(3)对(2)中求出的第1个最近点对(n9,nlO)的中心点n9,查找η9的第2个最 近邻居,为η3,得到第4个点对(η9,η3,9);(4)找出(2)和(3)求出的 4 个点对(η6,η5,5)、(n9,nlO,2)、(nl4,nl5,3)、(n9, n3,9)中距离第2小的点对,为(nl4,nl5,3),则(nl4, nl5)为S和T的第2个最近点对;(5)对(4)求出的第2个最近点对(nl4,nl5)的中心点nl4,查找nl4的第2个最 近邻居,为nl2,得到第5个点对(nl4,nl2,4);(6)找出(2)、(3)、(5)求出的 5 个点对(n6,n5,5)、(n9,nlO,2)、(nl4,nl5,3)、 (n9,n3,9)、(nl4,nl2,4)中距离第 3 小的点对,为(nl4,nl2,4),则(nl4,nl2)为 S 和 T 的 第3个最近点对;(7)对(6)求出的第3个最近点对(nl4,nl2)的中心点nl4,查找nl4的第3个最 近邻居,为nl3,得到第6个点对(nl4,nl3,9);(8)找出(2)、(3)、(5)、(7)求出的 6 个点对(n6,n5,5)、本文档来自技高网
...

【技术保护点】
一种空间网络数据库中查找最近k个点对的广度优先方法,其特征在于具体步骤如下:1)对于查询用户输入的两个顶点集合S和T以及正整数k进行预处理:计算S和T各自包含的顶点个数,用m和n表示,选取顶点个数较小的集合作为中心点集合,另外一个为查询目标顶点集合;2)查找第1个最近点对:根据步骤(1)选定的中心点集合查询目标定点集合,假设中心点集合中心点Si(i=1,2,…,m),计算每个Si的第1个最近邻居,在这些中心点与最近邻居构成的点对集合中,选出第1个最近点对;3)查找第2个最近点对:根据步骤(2)找出的第一个最近点对,计算其中心点的下一个最近邻居,构成新的点对,添加到步骤(2)求出的点对集合,从中选出第2个最近点对;4)查找第3、4、…、k个最近点对:根据之前选出的第i个最近点对,i=2、3、…、k-1,重复步骤(3),计算出下一个最近点对,直到求出第k个最近点对为止。

【技术特征摘要】

【专利技术属性】
技术研发人员:孙未未陈楚南刘未末荆一楠何震瀛
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

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

1