[发明专利]一种在空间网络数据库中查找最近k个点对的广度优先方法无效
申请号: | 201010175152.7 | 申请日: | 2010-05-13 |
公开(公告)号: | CN101840434A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 孙未未;陈楚南;刘未末;荆一楠;何震瀛 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 20043*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 空间 网络 数据库 查找 最近 广度 优先 方法 | ||
1.一种空间网络数据库中查找最近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个最近点对为止。
2.根据权利要求1所述的方法,其特征在于步骤(2)中所述查找第1个最近点对的步骤如下:
a)对集合S中的每个中心点Si(i=1,2,…,m),查找Si的第1个最近邻居Si.1NN,每个Si与Si.1NN构成点对(Si,Si.1NN);
b)将m个点对(Si,Si.1NN)(i=1,2,…,m)按点对的距离进行排序,存放在集合A中;
c)选取集合A中距离最小的点对(Sj,Sj.1NN)作为第1个最近点对;
d)将点对(Sj,Sj.1NN)从集合A中删除。
3.根据权利要求1所述的方法,其特征在于步骤(3)中所述查找第2个最近点对的步骤如下:
a)对步骤(2)求出的第1个最近点对(Sj,Sj.1NN),查找Sj的第2个最近邻居Sj.2NN,Sj与 Sj.2NN构成新的点对(Sj,Sj.2NN),将新点对添加到集合A中;
b)选取集合A中距离最小的点对作为第2个最近点对;
c)将第2个最近点对从集合A中删除。
4.根据权利要求1所述的方法,其特征在于步骤(4)中所述查找第3、4、…、k个最近点对的步骤如下:
a)假设当前已找出第i个最近点对(Sx,Sx.tNN),其中,i=2、3、…、k-1,Sx.tNN表示Sx的第t个最近邻居,则查找Sx的第t+1个最近邻居,构成新的点对,添加到集合A中;
b)选取集合A中距离最小的点对作为第i+1个最近点对。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010175152.7/1.html,转载请声明来源钻瓜专利网。