CN108829695A - 路网上的弹性聚合最近邻查询G-max方法 - Google Patents
路网上的弹性聚合最近邻查询G-max方法 Download PDFInfo
- Publication number
- CN108829695A CN108829695A CN201810342545.9A CN201810342545A CN108829695A CN 108829695 A CN108829695 A CN 108829695A CN 201810342545 A CN201810342545 A CN 201810342545A CN 108829695 A CN108829695 A CN 108829695A
- Authority
- CN
- China
- Prior art keywords
- point
- tree
- road network
- distance
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种路网上的弹性聚合最近邻查询G‑max方法,包括如下步骤:第一步,建立G树索引;第二步,定义和初始化;第三步,如果队列为空,则结束;否则出队得到x,进入第四步;第四步,如果x是叶子节点,对于x里面所有的点v,计算如有必要更新最终结果,遍历后回到第三步;否则进入第五步;第五步,遍历x的子节点c,计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,记为τ;第六步,如果τ小于r*,将c的孩子节点入队,回到第三步;如果τ大于或等于r*,则结束。本发明可以有效减少弹性聚合函数的调用次数,并提高的效率,从而提升查询速度,降低成本。
Description
技术领域
本发明属于计算机领域,具体涉及空间数据库的查询方法,尤其涉及一种路网上的弹性聚合最近邻查询G-max(G树-最大值)方法。
背景技术
聚合最近邻查询(Aggregate nearest neighbor,以下简称ANN)是空间数据库中的经典查询,有广阔的应用场景,比如基于位置服务等。给定一组查询点集合Q,ANN在数据点集合V中寻找一个点,使得该点到Q中所有点的聚合距离最小。这个聚合函数一般是max或者sum。ANN问题已经在欧式空间[参见D.Papadias,Q.Shen,Y.Tao,and K.Mouratidis,“Group nearest neighbor queries,”in Data Engineering,2004.Proceedings.20thInternational Conference on.IEEE,2004,pp.301–312.]和路网上[参见D.Papadias,Q.Shen,Y.Tao,and K.Mouratidis,“Group nearest neighbor queries,”in DataEngineering,2004.Proceedings.20th International Conference on.IEEE,2004,pp.301–312.]得到研究。
在很多时候,考虑Q中的部分查询点则更有意义。考虑图1中的例子,数据点集合是V={v1,v2,…,v8,v9,}(圆形),查询点集合是Q={q1,q2,q3,q4}(三角形)。注意v3和q3,v5和q4分别共享同一个位置;q1位于(v2,v3)上,q2位于(v3,v6)上。假设V是建造港口的候选位置,Q是小型货运集散中心,且每个集散中心每天能存储1吨货物。现在V中寻找一个候选点,收集Q所有货物,并使得聚合距离最小。这时max-ANN的结果就是v2,距离为16;sum-ANN的结果也是v2,距离为52。因为v2相对是Q的“中心”,所以我们可以直观地理解这个结果。但是,如果港口每天仅需要2吨货物,即仅需要考虑50%的小型货物集散中心,而不是考虑Q中所有查询点。更准确地说,更一般的查询是允许用户指定一个参数目标是在V中寻找一个点,使得该点到Q中某个点的聚合距离最小,我们把这种查询称为弹性聚合最近邻查询(flexible aggregate nearest neighbor,以下简称FANN)。如果我们令则max-FANN的结果是v3,距离为2;sum-FANN的结果也是v3,距离为4。
本发明研究路网上的FANN问题。FANN查询最早是在欧式空间中提出[参见Y.Li,F.Li,K.Yi,B.Yao,and M.Wang,“Flexible aggregate similarity search,”inProceedings of the 2011 ACM SIGMOD international conference on management ofdata.ACM,2011,pp.1009–1020.]。相比与欧式空间,路网上的很多操作都更复杂。比如在欧式空间中确定两点间的最短距离可以在常数时间内确定,而在路网中该操作取决于最短路算法。为了在路网中提出更高效的FANN算法,有必要利用路网的拓扑结构,从而对不可能的候选点进行剪枝。
据了解,目前没有其他在路网上关于FANN的研究工作。我们对FANN的研究并不是路网上ANN[参见D.Papadias,Q.Shen,Y.Tao,and K.Mouratidis,“Group nearestneighbor queries,”in Data Engineering,2004.Proceedings.20th InternationalConference on.IEEE,2004,pp.301–312.]的简单扩展。[D.Papadias,Q.Shen,Y.Tao,andK.Mouratidis,“Group nearest neighbor queries,”in Data Engineering,2004.Proceedings.20th International Conference on.IEEE,2004,pp.301–312.]中的IER算法依赖R树,但R树在路网上表现并不好。[D.Yan,Z.Zhao,and W.Ng,“Efficientalgorithms for finding optimal meeting point on road networks,”Proceedings ofthe VLDB Endowment,vol.4,no.11,2011.]使用了凸包的方法来对不可能的点进行剪枝,但其可扩展性不好。[M.Safar,“Group k-nearest neighbors queries in spatialnetwork databases,”Journal of geographical systems,vol.10,no.4,pp.407–416,2008.][L.Zhu,Y.Jing,W.Sun,D.Mao,and P.Liu,“Voronoi-based aggregate nearestneighbor query processing in road networks,”in Proceedings of the 18thSIGSPATIAL International Conference on Advances in Geographic InformationSystems.ACM,2010,pp.518–521.]均使用Voronoi图对路网进行分区,但他们常导致划分的不均衡,从而导致效率不高。此外,由于新加入的参数FANN的结果会更难找到。Q中的任意点均能成为目标,其规模可达
因此,亟需研发一种能解决路网上的FANN问题的方法。
发明内容
本发明要解决的技术问题在于提供一种路网上的弹性聚合最近邻查询G-max(G树-最大值)方法,该方法能大大较少减少了的调用次数,从而提升查询速度,降低成本。
为解决上述技术问题,本发明采用如下技术方案:
本发明提供一种路网上弹性聚合最近邻查询G-max方法,包括如下步骤:
第一步,对整个路网建立G树索引;
第二步,定义和初始化:
定义路网G=(V,E,W),其中V表示顶点,E表示边,W表示边的权重,δ(vi,vj)表示vi到vj的路网距离;Q是查询集合(query objects),大小为M;FANN查询定义为:一个FANN查询是一个五元组返回一个三元组使得:
其中p*是V中使得弹性聚合距离最小的点,是Q的最优的弹性子集,r*就是此时的弹性聚合距离;
定义为弹性聚合函数,它接受一个属于V的点p,一个V的子集Q作为输入,返回一个对作为结果,满足:
其中是Q的一个子集且
初始化:将r*初始化为无穷大;构建一个优先级队列,将G树的根节点入队;
第三步,判断队列是否为空;如果队列为空,则结束;否则出队得到x;
第四步,判断x是否是叶子节点;如果x是叶子节点,对于x里面所有的v,计算如有必要更新最终结果,遍历之后回到第三步;否则,进入第五步;
第五步,遍历x的子节点c,计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,记为τ;
第六步,判断τ是否大于或等于r*;如果τ小于r*,将c的孩子节点入队,回到第三步;如果τ大于或等于r*,则结束。
作为本发明优选的技术方案,第一步中,所述对整个路网(图)建立G树索引具体为:首先对原图进行子图划分,每个子图互不相交,然后对子图进行类似的划分,通过这种递归的方式直到子图里面包含数据点的个数小于设置的阈值;计算每个G树子图的边界点的距离矩阵。
作为本发明优选的技术方案,所述距离矩阵在构造时采用以下G树上δ的实现方法:
给定路网点u和v,假设其所在的叶子节点分别为Cu和Cv;
当Cu=Cv,首先在该叶子节点内执行局部的Dijkstra算法;如果算法执行过程中不包含任何边界点,那么认为局部Dijkstra算法足够高效;否则,停止Dijkstra算法,使用下面的公式计算δ(u,v):
δ(u,v)=min{δ(u,b1)+δ(b1,b2)+δ(v,b2)|b1,b2∈Bc}
其中Bc是Cu或Cv的边界点的集合;
当Cu≠Cv,显然从u出发达到v的路径必定经过各自所在叶子节点的边界点,令CA为Cu和Cv的最小公共父节点,那么从u到v的最短路径一定会自底向上地从Cu到CA,再自顶向下地从CA到Cv,用公式表示为:
δ(u,v)=min(δ(u,b1)+δ(u,b2)+…+
δ(bm-1,bm)+…+δ(bn,v))
其中b1,b2,…,bn分别是Cu,..,Cv的边界点。
作为本发明优选的技术方案,所述G树上δ的实现方法,采用动态规划方法求解,将总目标δ(u,v)分解为一系列子目标,通过存储中间过程,在线性时间内得到δ(u,v)的值。
作为本发明优选的技术方案,第四步中,所述计算的结果具体为:使用上述G树上δ的实现方法,遍历Q中的点,计算δ(v,q),q∈Q的距离,取得前最小的最大值max即可。
作为本发明优选的技术方案,第五步中,所述Q中所有点到c的最小可能距离是G树节点到路网点的最小可能距离。
作为本发明优选的技术方案,第五步中,所述τ是一个动态阈值作为r*的下界,即任意p的聚合距离必须大于τ,因此如果τ大于或等于r*,则结束。
作为本发明优选的技术方案,第五步中,包括θ(u,v)的实现方法,具体如下:使用θ(u,v)进行剪枝,θ(u,v)作为距离的下界,直接把它看作是欧式距离;利用三角形不等关系:假设w是第三个点,那么δ(u,v)≥δ(w,u)-δ(w,v)和δ(u,v)≥δ(w,v)-δ(w,u)同时成立,因此θ(u,v)=max{|δ(w,u)-δ(w,v)|,dε(u,v)}。
作为本发明优选的技术方案,第五步中,所述θ(u,v)的实现方法中,为了进一步使θ(u,v)的界更紧,提前设置一些路标,把路标中的点依次作为第三个点,依据三角形不等关系,取最大的一个即可。
作为本发明优选的技术方案,第二步中,所述优先级队列,队列存储的元素是二元组<c,d>,其中c是G树节点,d的计算方式如下:计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,即为d,也就是第五步的τ,优先级根据d的大小排列。
与现有技术相比,本发明具有以下有益效果:
1、通过G树进行自顶向下的遍历,可以快速地访问整个路网。
2、G树存储的距离矩阵使得G树节点到路网点的距离的计算可以在线性时间内完成。这样能大大较少减少了的调用次数,从而提升查询速度,降低成本。
3、结合距离矩阵,利用G树δ的计算方法,提高了的执行效率。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是FANN的实例示意图。
图2是G树的一个例子的构造图。
图3是距离的预存储矩阵示意图。
图4是本发明路网上的弹性聚合最近邻查询G-max方法的流程图。
图5是本发明中“G树上σ的实现”的路径扩展示意图。
图6是本发明变化B参数下G树分区的效率示意图,其中图6(a)指索引大小、图6(b)指索引构建时间、图6(c)指查询时间(见图6(c))。
图7是本发明变化T参数下G树分区的效率示意图,其中图7(a)指索引大小、图7(b)指索引构建时间、图7(c)指查询时间(见图6(c))。
图8是本发明在不同大小的数据集上实验考察G树的可扩展示意图,其中图8(a)指索引大小、图8(b)指索引构建时间。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
1问题定义
路网可以表示为一个无向有权重的图,G(V,E,W),其中V是顶点集合,E是边的集合,W是E到正实数的映射,表示边的权重。令δ为定义在G上的距离函数,δ(vi,vj)表示vi到vj的路网距离。值得注意的是,边的权重不一定等于两点间的欧式距离。比如,它可以是经过该边需要的时间。显然,如果边的权重和欧式距离成比例,转化就很简单。我们采用类似于[M.L.Yiu,N.Mamoulis,and D.Papadias,“Aggregate nearest neighbor queries inroad networks,”IEEE Transactions on Knowledge and Data Engineering,vol.17,no.6,pp.820–833,2005.]的方法(归一化)来处理任意的权重。首先,我们计算一个比例系数:
,其中dε(vi,vj)表示vi到vj的欧式距离。然后我们将所有权重乘以上面的比例系数。这样,欧式距离依然是其下界。
我们使用Q表示查询点集合(query objects),大小为M。表示弹性参数,其中|V|=N,|Q|=M,在(0,1)之间。为了便于描述,我们假设所有的查询点均在图的顶点,即令g表示一个聚合函数,它定义在一个点p和一个点集P上,在本发明中它是max:
g(p,P)=max(δ(p,v1),δ(p,v2),...,δ(p,vk)),
其中|P|=k,vi属于P。
这样,我们就可以定义弹性聚合函数它接受一个属于V的点p,一个V的子集Q作为输入,返回一个对作为结果,满足:
其中是Q的一个子集且
我们的目标是在V中找到一个点p*使得rp最小。一个FANN查询可以正式定义为:一个FANN查询是一个五元组返回一个三元组使得:
其中p*是V中使得弹性聚合距离最小的点,是Q的最优的弹性子集,r*就是此时的弹性聚合距离。
给定G,Q和参数目标是在V中寻找一个点,使得该点到Q中某个点的聚合距离(一般是sum或者max)最小。
2.暴力方法
首先,我们先讨论的实现。给定一个p和Q,我们至多有多个选择来确定然而,没有必要去考虑每种可能。回顾Dijkstra算法(Dijkstra算法,是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止)的执行过程:在它的每次扩展步骤,它选择到起点最近的未访问过的点,并更新该点的邻居到起点的距离。这个过程也可以应用在首先,令p为起点,调用Dijkstra算法,直到Q中有个点被标记为访问过。此时这些被标记的点就是其聚合距离就是rp。不难发现,我们也可以把看成是关于p和Q的kNN查询,其中
根据上述FANN的定义,我们可以设计FANN的暴力解法:我们对每个V中的p均运行算法。过程中,我们维护一个最小的rp即可。值得一提的是,我们可以利用该rp或者利用欧式距离作为下界来实现提前介绍一轮迭代。类似的策略对任何使用的算法都有效。
现在我们考虑暴力方法的时间复杂度。因为和Dijkstra有相同的复杂度,即O(|E|+N lgN)(假设使用的最小堆为Fibonacci堆),其中|E|是路网中边的数目。因此,总时间为O(N|E|+N2lgN)。
直观上,我们有两种方法来优化该暴力算法:一是尽可能对V中的点进行剪枝(即减少的调用次数),二是提高的效率。本文下面的内容将着重讨论这两种方法。
3.基于G树的算法
我们使用索引结构G树来实现FANN算法。它能同时满足1)对V中的点尽可能的剪枝;2)提高的效率。
G树的构造:给定图G(V,E,W)的一个子图,我们首先根据他们邻接点的位置把子图中点分为内部点和边界节点。对于一个内部点,它所有的邻接点均在该点所属的同一个子图内。对于一个边界点,它至少有一个邻接点不在它所属的子图。G树是一棵平衡树。每个非叶节点有B(>=2)个孩子节点,每个叶子节点包含至多T个元素。我们可以使用递归的方法来构造G树。本文中我们对图进行划分,具体方法如下:首先,通过删除一些边或点得到粗粒度的图;然后,图被划分为较小规模;最后,再映射回原图。图2是G树的一个例子。
G树的存储:存储模型是G树的关键。为降低空间开销,仅在叶子节点存储点数据。每个节点由一个ID标识,并存储所有边界的ID,父节点的ID以及孩子节点的ID。需要注意的是,路网点的ID和树节点的ID不在同一个领域。我们在同层提前计算并存储一些距离。具体而言,非叶子节点维护其孩子的边界点的相互距离;叶子节点维护其边界点和所包含的路网点的距离。
以图2为例,G1的边界点是{v3,v4},G2的边界点是{v6,v7}。因此G0将维护{v3,v4,v6,v7}之间的距离。G3的边界点是{v3},因此需要维护{v1,v2,v3}之间的距离。我们使用矩阵表示预存储的距离(我们省略了矩阵的上半部分,因为δ(vi,vj)=δ(vj,vi)),如图3所示。
在G树上FANN的搜索:给定V上的两点u和v,我们使用θ(u,v)表示u和v之间的最小可能距离。类似地,给定G树的一个节点C,令BC为边界点的集合,并定义θ(u,C)为v到C的最小可能距离:
我们把在G树的FANN算法描述在以下算法中。我们从顶至下来遍历G树,开始队列中放入G树的根节点。当到达叶子节点时,其包含所有的路网点将被处理,并更新结果(第7-9行)。如果是达到非叶子节点,如果其下界大于当前最优值就可以对其内部的所有路网点以及队列中其他G树点进行剪枝(即结束算法),否则将其孩子节点放入队列(第10-16行)。
输入:G,Q,σ,g
输出:p*,r*
算法G树的max-FANN算法
如图4所示,本发明路网上的弹性聚合最近邻查询G-max方法,包括如下步骤:
第一步,首先对整个路网(图)建立G树索引。具体而言,首先对原图进行子图划分,每个子图互不相交,然后对子图进行类似的划分,通过这种递归的方式直到子图里面包含数据点的个数小于设置的阈值。然后计算每个G树子图的边界点的距离矩阵(构造距离矩阵时需要用到下文G树上δ的实现算法)。
第二步,初始化。r*初始化为无穷大;构建一个优先级队列,将G树的根节点入队。所述优先级队列,队列存储的元素是二元组<c,d>,其中c是G树节点,d的计算方式如下:计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,即为d,也就是第五步的τ,优先级根据d的大小排列。
第三步,判断队列是否为空;如果队列为空,结束算法;否则出队得到x。
第四步,判断x是否是叶子节点;如果x是叶子节点,对于x里面所有的v,计算(即下文的G树上的实现),如有必要更新最终结果,遍历之后回到第三步;否则,进入第五步。
第五步,遍历x的子节点c,计算Q中所有点到c的最小可能距离(即下文的θ(u,v)的实现),得到前最小距离的最大值max,记为τ。所述Q中所有点到c的最小可能距离是G树节点到路网点的最小可能距离。所述τ是一个动态阈值作为r*的下界,即任意p的聚合距离必须大于τ,因此如果τ大于或等于r*,则结束。
第六步,判断τ是否大于或等于r*;如果τ小于r*,将c的孩子节点入队,回到第三步。如果τ大于或等于r*,则结束算法。
优势:通过G树进行自顶向下的遍历,可以快速地访问整个路网;G树存储的距离矩阵使得G树节点到路网点的距离的计算可以再线性时间内完成。这样能大大较少减少了的调用次数;结合距离矩阵,G树上δ的计算方法能够提高的执行效率。
下面我们分别讨论如果G树上δ、以及θ(u,v)的实现。
G树上δ的实现:该方法可以应用在G树索引构造步骤,即上述第一步中。给定路网点u和v,假设其所在的叶子节点分别为Cu和Cv。当Cu=Cv,我们首先在该叶子节点内执行局部的Dijkstra算法。如果算法执行过程中不包含任何边界点,那么我们认为局部Dijkstra算法足够高效。否则,我们停止Dijkstra算法,使用下面的公式计算σ(u,v):
δ(u,v)=min{δ(u,b1)+δ(b1,b2)+δ(v,b2)|b1,b2∈Bc}
其中Bc是Cu或Cv的边界点的集合。
当Cu≠Cv,显然从u出发达到v的路径必定经过各自所在叶子节点的边界点。令CA为Cu和Cv的最小公共父节点。那么从u到v的最短路径一定会自底向上地从Cu到CA,再自顶向下地从CA到Cv。比如说,图2中v1到v6的最短路径一定会经过G3,G1,G2,G5的边界点,其过程如图5所示。我们用公式可以表示为:
δ(u,v)=min(δ(u,b1)+δ(u,b2)+…+
δ(bm-1,bm)+…+δ(bn,v))
其中b1,b2,…,bn分别是Cu,..,Cv的边界点。我们可以使用动态规划方法求解。具体而言,我们的总目标δ(u,v)可以分解为一系列子目标,通过存储中间过程,即可以在线性时间内得到δ(u,v)的值。
G树上的实现:该方法可以应用在上述步骤的第四步。使用G树上δ的实现,我们遍历Q中的点,计算δ(v,q),q∈Q的距离,取得前最小的最大值max,即为
θ(u,v)的实现:该方法可以应用在上述步骤的第五步。我们已经看到上述算法中使用θ(u,v)进行剪枝。θ(u,v)作为距离的下界,我们当然可以直接把它看作是欧式距离。但很多时候,这个下界不够紧。我们可以利用三角形不等关系:假设w是第三个点,那么δ(u,v)≥δ(w,u)-δ(w,v)和δ(u,v)≥δ(w,v)-δ(w,u)同时成立。因此θ(u,v)=max{|δ(w,u)-δ(w,v)|,dε(u,v)。为了进一步使θ(u,v)的界更紧,我们随机提前设置一些路标,把路标中的点依次作为“第三个点”,根据三角形不等关系,取最大的一个即可。一般路标的数目足够小,因此预处理的代价也很小。
4.G树分区
本节我们考察不同参数下G树分区的效率。因为很难从理论上确定B和T的最优值,我们用2,4,6,8,10,12来变化B,用50,100,150,200,250,300,350来变化T。图6展示了变化B时索引大小(见图6(a))、索引构建时间(见图6(b))、查询时间(见图6(c))。我们发现B=6时性能最好。图7展示了变化T时索引大小、索引构建时间、查询时间。
5.G树的可扩展性
我们把G树和ROAD、CH等索引结构进行比较,通过在不同大小的数据集上实验考察G树的可扩展,如图8所示。不难发现,G树和CH在索引大小和索引构建时间两方面性能类似,都比较出色。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (10)
1.一种路网上的弹性聚合最近邻查询G-max方法,其特征在于,包括如下步骤:
第一步,对整个路网建立G树索引;
第二步,定义和初始化:
定义路网G=(V,E,W),其中V表示顶点,E表示边,W表示边的权重,δ(vi,vj)表示vi到vj的路网距离;Q是查询集合(query objects),大小为M;FANN查询定义为:一个FANN查询是一个五元组返回一个三元组使得:
其中p*是V中使得弹性聚合距离最小的点,是Q的最优的弹性子集,r*就是此时的弹性聚合距离;
定义为弹性聚合函数,它接受一个属于V的点p,一个V的子集Q作为输入,返回一个对作为结果,满足:
其中是Q的一个子集且
初始化:将r*初始化为无穷大;构建一个优先级队列,将G树的根节点入队;
第三步,判断队列是否为空;如果队列为空,则结束;否则出队得到x;
第四步,判断x是否是叶子节点;如果x是叶子节点,对于x里面所有的v,计算如有必要更新最终结果,遍历之后回到第三步;否则,进入第五步;
第五步,遍历x的子节点c,计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,记为τ;
第六步,判断τ是否大于或等于r*;如果τ小于r*,将c的孩子节点入队,回到第三步;如果τ大于或等于r*,则结束。
2.如权利要求1所述的方法,其特征在于,第一步中,所述对整个路网建立G树索引具体为:首先原图进行子图划分,每个子图互不相交,然后对子图进行类似的划分,通过这种递归的方式直到子图里面包含数据点的个数小于设置的阈值;计算每个G树子图的边界点的距离矩阵。
3.如权利要求2所述的方法,其特征在于,所述距离矩阵在构造时采用以下G树上δ的实现方法:
给定路网点u和v,假设其所在的叶子节点分别为Cu和Cv;
当Cu=Cv,首先在该叶子节点内执行局部的Dijkstra算法;如果算法执行过程中不包含任何边界点,那么认为局部Dijkstra算法足够高效;否则,停止Dijkstra算法,使用下面的公式计算δ(u,v):
δ(u,v)=min{δ(u,b1)+δ(b1,b2)+δ(v,b2)|b1,b2∈Bc}
其中Bc是Cu或Cv的边界点的集合;
当Cu≠Cv,显然从u出发达到v的路径必定经过各自所在叶子节点的边界点,令CA为Cu和Cv的最小公共父节点,那么从u到v的最短路径一定会自底向上地从Cu到CA,再自顶向下地从CA到Cv,用公式表示为:
δ(u,v)=min(δ(u,b1)+δ(u,b2)+…+
δ(bm-1,bm)+…+δ(bn,v))
其中b1,b2,...,bn分别是Cu,..,Cv的边界点。
4.如权利要求3所述的方法,其特征在于,所述G树上δ的实现方法,采用动态规划方法求解,将总目标δ(u,v)分解为一系列子目标,通过存储中间过程,在线性时间内得到δ(u,v)的值。
5.如权利要求3或4所述的方法,其特征在于,第四步中,所述计算的结果具体为:使用所述G树上δ的实现方法,遍历Q中的点,计算δ(v,q),q∈Q的距离,取得前最小的最大值max即可。
6.如权利要求1所述的方法,其特征在于,第五步中,所述Q中所有点到c的最小可能距离是G树节点到路网点的最小可能距离。
7.如权利要求1所述的方法,其特征在于,第五步中,所述τ是一个动态阈值作为r*的下界,即任意p的聚合距离必须大于τ,因此如果τ大于或等于r*,则结束。
8.如权利要求1所述的方法,其特征在于,第五步中,包括θ(u,v)的实现方法,具体如下:使用θ(u,v)进行剪枝,θ(u,v)作为距离的下界,直接把它看作是欧式距离;利用三角形不等关系:假设w是第三个点,那么δ(u,v)≥δ(w,u)-δ(w,v)和δ(u,v)≥δ(w,v)-δ(w,u)同时成立,因此θ(u,v)=max{|δ(w,u)-δ(w,v)|,dε(u,v)}。
9.如权利要求8所述的方法,其特征在于,第五步中,所述θ(u,v)的实现方法中,为了进一步使θ(u,v)的界更紧,提前设置一些路标,把路标中的点依次作为第三个点,根据三角形不等关系,取最大的一个即可。
10.如权利要求1所述的方法,其特征在于,第二步中,所述优先级队列,队列存储的元素是二元组<c,d>,其中c是G树节点,d的计算方式如下:计算Q中所有点到c的最小可能距离,得到前最小距离的最大值max,即为d,也就是第五步的τ,优先级根据d的大小排列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810342545.9A CN108829695A (zh) | 2018-04-17 | 2018-04-17 | 路网上的弹性聚合最近邻查询G-max方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810342545.9A CN108829695A (zh) | 2018-04-17 | 2018-04-17 | 路网上的弹性聚合最近邻查询G-max方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108829695A true CN108829695A (zh) | 2018-11-16 |
Family
ID=64154607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810342545.9A Pending CN108829695A (zh) | 2018-04-17 | 2018-04-17 | 路网上的弹性聚合最近邻查询G-max方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829695A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490391A (zh) * | 2019-09-11 | 2019-11-22 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种多式联运运输方案的计算方法 |
CN111932011A (zh) * | 2020-08-10 | 2020-11-13 | 南宁市永恒影像有限公司 | 基于二元组块树的矩形优化排样方法及装置 |
CN111932011B (zh) * | 2020-08-10 | 2024-05-24 | 南宁市永恒影像有限公司 | 基于二元组块树的矩形优化排样方法及装置 |
-
2018
- 2018-04-17 CN CN201810342545.9A patent/CN108829695A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110490391A (zh) * | 2019-09-11 | 2019-11-22 | 中国铁道科学研究院集团有限公司电子计算技术研究所 | 一种多式联运运输方案的计算方法 |
CN111932011A (zh) * | 2020-08-10 | 2020-11-13 | 南宁市永恒影像有限公司 | 基于二元组块树的矩形优化排样方法及装置 |
CN111932011B (zh) * | 2020-08-10 | 2024-05-24 | 南宁市永恒影像有限公司 | 基于二元组块树的矩形优化排样方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Madkour et al. | A survey of shortest-path algorithms | |
Li et al. | G*-tree: An efficient spatial index on road networks | |
Chen et al. | Constrained skyline query processing against distributed data sites | |
CN106462620A (zh) | 巨型网络上的距离查询 | |
CN106250457B (zh) | 大数据平台物化视图的查询处理方法及系统 | |
CN106326637A (zh) | 一种基于局部有效路径度的链路预测方法 | |
Demiryurek et al. | Indexing network voronoi diagrams | |
CN105357247A (zh) | 基于分层云对等网络的多维属性云资源区间查找方法 | |
CN108829694A (zh) | 路网上的弹性聚合最近邻查询g树的优化方法 | |
Aljubayrin et al. | Skyline trips of multiple POIs categories | |
Liu et al. | FHL-cube: multi-constraint shortest path querying with flexible combination of constraints | |
CN103164487B (zh) | 一种基于密度与几何信息的数据聚类方法 | |
CN105138527A (zh) | 一种数据分类回归方法及装置 | |
CN108829695A (zh) | 路网上的弹性聚合最近邻查询G-max方法 | |
CN101719155B (zh) | 一种支持分布式多集群计算环境的多维属性范围查询的方法 | |
CN106020724A (zh) | 一种基于数据映射算法的近邻存储方法 | |
CN103345509B (zh) | 获取路网上复反向最远邻居的层次分区树方法及系统 | |
Ahmadi et al. | K-closest pairs queries in road networks | |
Xuan et al. | Network Voronoi diagram based range search | |
CN116304213B (zh) | 基于图神经网络的rdf图数据库子图匹配查询优化方法 | |
CN108763292A (zh) | 路网上的弹性聚合最近邻查询A-sum方法 | |
Gothwal et al. | The survey on skyline query processing for data-specific applications | |
CN108763294A (zh) | 路网上的弹性聚合最近邻查询G-sum方法 | |
CN115146020A (zh) | 一种基于最小聚合距离的多源skyline查询方法及系统 | |
CN109446294B (zh) | 一种并行的相互子空间Skyline查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181116 |