基于Voronoi图的路网k聚集最近邻居节点查询方法

文档序号:6424264阅读:270来源:国知局
专利名称:基于Voronoi图的路网k聚集最近邻居节点查询方法
技术领域
本发明属于空间数据库技术领域,具体涉及一种在路网中解决A聚集最近邻居节点查询方法。
背景技术
道路网络中的A最近邻居节点α-ΝΝ)查询及其变种越来越受到研究者们的关注。 其中,k聚集最近邻居节点α-ΑΝΝ)查询能为多个查询点返回聚集距离最小的前A个被查对象,因此具有较高的研究价值及广阔的应用前景。目前解决该查询问题的主要方法是根据Α*算法在路网上通过逐步扩展来搜寻结果,这样会导致响应时间很长,不能满足用户的需求。本发明所涉及的正是为了解决这个问题。空间数据库领域最开始关注于欧氏空间,最近几年对道路网络的研究越来越受到关注。相比于欧氏空间,在路网环境下处理查询更为复杂。因为无论是目标节点还是查询点都被限制在某条路径上,在路径外的目标节点和查询点是没有意义的,这样两节点之间的距离为它们最短路径中各路径的权值总和;而在欧氏空间中,目标节点和查询点可以任意分布在二维或高维空间中,两节点之间的距离为它们的直线距离。道路网络可以用一张带权值的无向图来表示,其中,路网中的路口被视为无向图中的顶点,路网中的路径为无向图中的边。我们可以表示一个路网{V, M,r是路口的集合,万是路径的集合。目标节点的集合/7 二 fIP1, P2,.., Pj。不同于常规的i-NN查询以及其他的变种,A-ANN查询中有多个查询点。此夕卜, 々-ANN查询所返回的结果依赖于特定的聚集函数。聚集函数通常有求和C / )、最大值 Oa^)和最小值( i/7)三种。对于不同的聚集函数,查询结果及其意义不同。不妨拿多个人员聚餐作为一个例子,μ 函数使得所有人员到餐馆的总距离和最小,这样可以确保总成本最低;而ffl^函数使得到达餐馆所花时间最多(相对于其他人员)的那个人员的时间值最小,这样可以确定聚餐的最早开始时间;最后函数使得其中一个人的到达成本(到达时间)最小(最早),这样可以尽早地点菜。如

图1所示为一个模拟处理后的路网图。空心顶点巧,…,表示道路的路口, 图中的每条边都表示一条道路,边上的权值表示从该条道路的一个路口到另一个路口所花的时间;点A,P2, A为目标节点,也即我们要查找的节点,比如上文例子中的餐馆。此外, 还有分别位于Ci1和q2这两个位置的查询点,现在假如我们想要知道对于查询点q” Q2的 2-ANN结果。不妨令集合/7 = [P1, P2,仏},集合々=[Q1, Q2], dist (Pi,必表示从查询点集合々到目标节点A.的聚集距离。不难发现,当聚集函数为仰 时,必对0^,Q) = 18, Clistip2, Q) = 17, Clistip3, Q) = 20,所以对于集合々的2-ΑΝΝ为[ρ2,外丨。当聚集函数为 max 騎,dist ip” Q) = IQ, dist (ρ2, Q) = Wdistip3, Q) = 13,2_ANN 为[ρ” ζ 』,当聚集函数为組·/ 时,必对(^,Q) = 8, distip2, Q) = 4,dist{p3, Q) = 7,2_ΑΝΝ 为{/7力 P3) ο一个路网Voronoi图(NVD)是由路网#和目标节点集合P共同决定的。图2是一
3个图1的NVD例子,在NVD中,由边和虚线所围起来的区域称为路网Voronoi格(Network Voronoi Cell,NVC),每一个NVC对应一个目标节点,可以相应表示为NVP Coi),目标节点称为对应NVC的生成点,所有生成点的集合也就是目标节点的集合。因为我们可以描述一个 NVD 为=NVD (P) = {NVP (P1),NVP ( ),…,NVP ipn)}。目前解决道路网络中的左-ANN查询的方法主要有三种。第一种为 IER{Incremental Euclidean Restriction),利用R树对目标节点进行索引,利用一个优先级队列存储所有查询点到目标节点的聚集欧氏距离,IER要利用A*算法计算所有查询点到目标节点的聚集路网距离,同时更新目前的最佳聚集路网距离值知对_必对,直到ifeifo Q)(查询点到/7的空间聚集距离)< best—dist^±0注意该算法利用的一个重要性质是查询点7到目标节点的欧氏空间距离(直线距离)要小于等于它们之间的路网距离。这种方法在路网距离不是很接近于欧氏距离时,性能表现较差。第二种方法称为TA(Threshc)Id Algorithm),该方法纯粹利用A*算法对各查询点在路网上进行扩展,其关键是利用了阈值Γ对算法进行控制。这种方法虽然对路网距离与欧氏距离的关系不敏感,但查询响应时间较长,用户可能难以接受。第三种方法是 CE (Concurrent Expansion),它与第二种方法的区别是求路网聚集距离的时机不同。这种方法的性能表现比TA更差。上述三种方法均存在较大的缺陷,因此亟需要提出一种查询时间响应快的方法以满足用户的要求。本发明提出的方法是在基于NVD中々NN查询的基础上的。在NVD中解决i-NN查询问题的方法主要包含两个过程过滤过程和精确计算过程。在过滤过程中会生成一个候选集合,候选集合中包含了所有的可能成为下一个NN的目标节点。每当获得查询点的下一个NN时,过滤过程会把所有与该下一个NN相邻的NVC加入到候选集合中,我们可以通过R 树索引找到查询点的1-NN。精确计算过程会计算查询点到新加入到候选集合NVC的距离,同时会更新查询点到边界点的距离,该过程的思想类似于伪Tfeira算法。第个NN所在的NVC —定是与 ^-NN中某个NVC是相邻的,这个性质确保了该方法的正确性。

发明内容
本发明的目的在于提出一种查询时间响应快的路网k聚集最近邻居节点α-ΑΝΝ) 查询方法,以满足用户的要求。本发明提出的解决i-ANN查询的方法,是一种预处理的方法。我们利用路网NVD 的特点,把路网模型转化为NVD的模型,在NVD的模型基础上解决々-ANN查询。在介绍本发明的发明内容之前,需要给出一些常见符号的定义。符号定义表如表1所示。表1.符号说明
符号描述P目标节点的集合Q查询点的集合,化{&,-,qjSi已经计算出的查询点Qi的所有最近邻居节点的集合P Hnn查询点 A 的 I-NNC^7im [P、Piknn查询点A的第A个最近邻居节点dist^某个目标节点当前到所有查询点的聚集距离
权利要求
1.一种基于Voronoi图的路网A聚集最近邻居节点查询方法,其特征在于具体步骤为(a)通过空间数据库索引查找出每一个查询点的1-NN,然后初始化每一个查询点的扩展集合Si = \PnJ ,Pilnn表示查询点的第一个NN ;(b)初始化一个优先级队列H,H中的元素形式为(p”diStaJ,其中,为目标节点, diStagg穌Pi当前到所有查询点的聚集距离;(c)按照某种策略不断计算某个查询点&的下一个NN,用//表示,把//加入&的扩展集合A ;如果//在队列//中,那么更新目标节点//的 、 _,否则计算//的当前聚集距离必对_,接着把ip', distagg)插入队列;(d)在处理完目标节点//之后,对于每次出队的元素,判断其目标节点是否被所有的查询点扩展到;如果不是的话,对于出队元素的目标节点,更新它的当前聚集距离 、 _, 然后再插入队列;如果是的话,那么第一个出队元素的目标节点是1-ΑΝΝ,第二个出队元素的目标节点是2-ΑΝΝ ;依次类推,得到FANN ;其中,NN表示最近邻居节点,ANN表示聚集最近邻居节点。
2.根据权利要求1所述的基于Voronoi图的路网A聚集最近邻居节点查询方法,其特征在于决定计算哪一个查询点的下一个NN的策略有三种(1)、目前扩展距离最小优先,即优先计算使得i/iwC^.—_Qj) (1 <= i <=n)值最小的查询点的下一个NN ;这里,Pi furthest nn表示查询点Qi最新计算出的最近邻居节点, dist (Pi furthest nn,力)表示节点i_furthest_nn 到查询点Ch的路网最短距离;(2)、目前扩展距离最大优先,即优先计算使得i/iwC^.—_Qj) (1 <= i <=n)值最大的查询点的下一个NN;(3)、按查询点编号顺序,这种策略是循环的依次扩展查询点,即首先计算查询点Cll的下一个NN,再计算q2的下一个NN,直至计算qn的下一个NN,再接着计算计算查询点Ch的下一个NN,不断的循环进行。
全文摘要
本发明属于空间数据库技术领域,具体涉及一种基于Voronoi图的路网k聚集最近邻居节点查询(k-ANN)方法。其步骤为首先通过R树索引求出每一个查询点的第一个最近邻居节点(1-NN),然后构造一个优先级队列存储所有查询点的1-NN,权值为查询点到目标节点的当前聚集距离,接着按照某种顺序在路网Voronoi图的基础上对某个查询点进行扩展,更新这个查询点下一个NN的聚集距离,对优先级队列进行插入或更新等操作,直到发现队首的目标节点被所有查询点扩展到,那么该目标节点就是1-ANN。从队列中删除1-ANN后,第二次满足条件的是2-ANN,依此类推。本发明在用户查询的响应时间和页面访问量上有着出色的性能。
文档编号G06F17/30GK102253961SQ20111012711
公开日2011年11月23日 申请日期2011年5月17日 优先权日2011年5月17日
发明者孙未未, 朱良, 毛鼎鼎, 荆一楠, 陈坤杰, 陈楚南 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1