CN103345509A - 获取路网上复反向最远邻居的层次分区树方法及系统 - Google Patents

获取路网上复反向最远邻居的层次分区树方法及系统 Download PDF

Info

Publication number
CN103345509A
CN103345509A CN2013102798990A CN201310279899A CN103345509A CN 103345509 A CN103345509 A CN 103345509A CN 2013102798990 A CN2013102798990 A CN 2013102798990A CN 201310279899 A CN201310279899 A CN 201310279899A CN 103345509 A CN103345509 A CN 103345509A
Authority
CN
China
Prior art keywords
node
distance
road network
subregion
farthest
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.)
Granted
Application number
CN2013102798990A
Other languages
English (en)
Other versions
CN103345509B (zh
Inventor
姚斌
邢昊原
李飞飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201310279899.0A priority Critical patent/CN103345509B/zh
Publication of CN103345509A publication Critical patent/CN103345509A/zh
Application granted granted Critical
Publication of CN103345509B publication Critical patent/CN103345509B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种获取路网上复反向最远邻居的层次分区树方法及系统,包括:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点,能够在路网上快速搜索到查询点的单反向邻居。

Description

获取路网上复反向最远邻居的层次分区树方法及系统
技术领域
本发明涉及一种获取路网上复反向最远邻居的层次分区树方法及系统。
背景技术
空间数据库(spaitial database)是指提供了空间数据类型(spatial database type,SDT)和相应实现支持的数据库(参见文献1:Güting R H.An introduction tospatial database systems[J].The VLDB Journal,1994,3(4):357-399)。随着移动计算与云计算的日益发展,空间相关算法的应用日益增多。距离查询(proximityquery)包括最近邻居(Nearest Neighbor)查询、反向最近邻居(Reverse NearestNeighbor)查询、反向最远邻居查询(Reverse Furthest Neighbor)等,是空间数据库查询中最常见的类型之一。本发明关注在路网(road network)数据库上的反向最远邻居(reverse furthest neighbor,RFN)查询,即给定一组路网上的数据集P与查询集Q,我们希望求取P中所有与Q相比距离q更远的点。该问题根据P与Q是否相同可划分为单反向最远邻与复反向最远邻问题。该问题在实践中拥有重大意义,例如在开设新的商店时,我们希望得知受某一竞争对手影响最小的点。如果我们将不同地点之间的影响程度以带权的边表示,这一问题就相当于在路网上求取以现有商户地点为查询点的单反向最远邻居问题。进一步说,寻找一个受现有的所有竞争对手相对影响最小的点,可以转化为目标点在这一路网上求以竞争对手地点为查询集Q的复反向最远邻居数量的最大化问题。
据我们所知,目前对于路网上单反向最远邻问题所提出的唯一解决方案是Tran等人对于路网上反向最远邻的研究,他们以路网中的每一个兴趣点为生成点预处理建立Voronoi分区,然后使用分区的邻接性质对分区进行遍历,以枚举查询点可能的反向最远邻居(reverse furthest neighbor)。但这一方法在路网中兴趣点数量大时,将与暴力算法没有本质区别。而对于复反向最远邻问题目前尚无有关解决方案。
在其他相关研究方面,最引人注意的是最近邻居(nearest neighbor)问题(参见文献2,文献3:Hjaltason G R,Samet H.Distance browsing in spatial databases[J].ACM Transactions on Database Systems(TODS),1999,24(2):265-318,文献4:Berchtold S,
Figure BDA00003463578000021
Keim D A,etc.A cost model for nearest neighbor search inhigh-dimensional data space[A].In Proceedings of the sixteenth ACMSIGACT-SIGMOD-SIGART symposium on Principles of database systems[C],1997:78-86,文献5,文献6:Jagadish H,Ooi B C,Tan K-L,etc.iDistance:An adaptiveB+-tree based indexing method for nearest neighbor search[J].ACM Transactions onDatabase Systems(TODS),2005,30(2):364-397,文献7:Tao Y,Papadias D,ShenQ.Continuous nearest neighbor search[A].In Proceedings of the28th internationalconference on Very Large Data Bases[C],2002:287-29)与反向最近邻居(参见文献8:Korn F,Muthukrishnan S.Influence sets based on reverse nearest neighborqueries[J].ACM SIGMOD Record,2000,29(2):201-212,文献9:Singh A,Ferhatosmanoglu H,High dimensional reverse nearest neighborqueries[A].In Proceedings of the twelfth international conference on Information andknowledge management[C],2003:91-98,文献10:Tao Y,Papadias D,Lian X.Reverse kNN search in arbitrary dimensionality[A].In Proceedings of the Thirtiethinternational conference on Very large data bases-Volume30[C],2004:744-755,文献11:Achtert E,
Figure BDA00003463578000032
Figure BDA00003463578000033
etc.Efficient reverse k-nearest neighbor searchin arbitrary metric spaces[A].In Proceedings of the2006ACM SIGMODinternational conference on Management of data[C],2006:515-526,文献12:Sankaranarayanan J,Samet H.Distance oracles for spatial networks[A].In DataEngineering,2009.ICDE′09.IEEE25th International Conference on[C],2009:652-663)问题。以R-Tree(参见文献13:Guttman A.R-trees:a dynamic indexstructure for spatial searching[M].ACM,1984)为基础的深度(参见文献2:Roussopoulos N,Kelley S,Vincent F.Nearest neighbor queries[A].In1995:71-79)与广度(参见文献5:Cui B,Ooi B C,Su J,etc.Contorting high dimensional data forefficient main memory KNN processing[A].In Proceedings of the 2003 ACMSIGMOD international conference on Management of data[C],2003:479-490)优先搜索、增量欧氏限制(Incremental Euclidean Restriction)、增量网络扩展(Invremental Network Expansion,参见文献14:Papadias D,Zhang J,Mamoulis N,etc.Query processing in spatial network databases[A].In2003:802-813)与Voronoi图相关的技术(参见文献8~12)被广泛用于解决欧氏空间(Euclidean space)与路网上的相应问题,但由于反向最远邻居问题不具有最近邻居问题所具有的本地性特点,这些解决方案难以应用在本发明所解决的问题上。
欧氏空间上的最远邻居问题由Yao等人加以描述(参见文献15:Yao B,Li F,Kumar P.Reverse furthest neighbors in spatial databases[A].In2009:664-675)。他们提出了递进最远区(progressive furthest cell,PFC)算法与凸包最远区(convexhull furthest cell)算法以处理该问题。上述算法均基于最远Voronoi去的概念来确定某一点是否是查询点q的反向最远邻居。给定某一查询点q,它关于某个数据集Q的最远voronoi区fvc(q,Q)是一个多边形区域,该区域内的所有点都是q的反向最远邻居。PFC算法使用R-Tree索引,不断取数据点构建垂直平分线讲解空间分割并取较远的一侧来求取这一区域。而CHFC算法则利用凸包的性质对这一算法进行剪枝:如果q在查询集Q的凸包内,则问题一定无解,否则亦可以将搜索范围限制在Q与查询点q的凸包之内。Liu等人使用枢轴点和索引对这一算法进行了改进(参见文献16:Liu J,Chen H,Furuse K,etc.An efficientalgorithm for reverse furthest neighbors query with metric index[A].In Database andExpert Systems Applications[C],2010:437-451,文献17:Jianquan L.Efficient queryprocessing for distance-based similarity search[J].2012)。但由于路网上的点与R-Tree索引无直接关系,也没有严格定义的凸包,这些方法均无法直接应用于本发明所解决的问题。
相关的其它参考文献还包括:
文献18:Goldberg A V,Harrelson C.Computing the shortest path:A searchmeets graph theory[A].In Proceedings of the sixteenth annual ACM-SIAMsymposium on Discrete algorithms[C],2005:156-165;
文献19:Jing N,Huang Y-W,Rundensteiner E A.Hierarchical encoded pathviews for path query processing:An optimal model and its performance evaluation[J].Knowledge and Data Engineering,IEEE Transactions on,1998,10(3):409-432;
文献20:Erwig M,Hagen F.The graph Voronoi diagram with applications[J].Networks,2000,36(3):156-163;
文献21:Jung S,Pramanik S.An efficient path computation model forhierarchically structured topographical road maps[J].Knowledge and DataEngineering,IEEE Transactions on,2002,14(5):1029-1046;
文献22:Aurenhammer F.Voronoi diagrams-a survey of a fundamentalgeometric data structure[J].ACM Computing Surveys(CSUR),1991,23(3):345-405。
发明内容
本发明的目的在于提供一种获取路网上复反向最远邻居的层次分区树方法及系统,能够在路网上快速搜索到查询点的单反向邻居。
为解决上述问题,本发明提供一种获取路网上复反向最远邻居的层次分区树方法,包括:
步骤一:对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
步骤二:对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
步骤三:选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
步骤四:使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
步骤五:定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000061
其中edge(d,d′)表示d与d′之间的边,
Figure BDA00003463578000067
表示分区SGi的所有结点;
步骤六:将某结点q到某分区或子分区SGi的上界和下界分别定义为q到内的任何结点的最大和最小距离,记为
Figure BDA00003463578000062
Figure BDA00003463578000063
分区或子分区SGi的直径定义为
Figure BDA00003463578000064
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000065
Figure BDA00003463578000066
q′的边界定义与q类似;
步骤七:预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
步骤八:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于
Figure BDA00003463578000071
fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
步骤九:为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
进一步的,在上述方法中,所述步骤九中的根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分的步骤包括:
步骤九一:将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到步骤九二;如果SGi中包含S中的结点,则转到步骤九三:
步骤九二:将该SGi排除;
步骤九三:如果SGi中包含S中的结点,进一步判断:如果
Figure BDA00003463578000072
则将SGi中的所有点划分入距离q′更近的部分;如果
Figure BDA00003463578000073
则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
进一步的,步骤九三中计算的步骤如下,当
Figure BDA00003463578000083
时,则时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure BDA00003463578000086
使用q到
Figure BDA00003463578000087
的上界来估计
Figure BDA00003463578000088
ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,
Figure BDA000034635780000810
可以使用三角不等式估计,
Figure BDA000034635780000811
的定义同
Figure BDA000034635780000812
是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
进一步的,在上述方法中,步骤九三中计算
Figure BDA000034635780000813
的方法如下,
Figure BDA000034635780000814
进一步的,在上述方法中,步骤九三中计算分区SGi中所有结点d′至q的距离的步骤包括:
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA000034635780000816
由于任何从q到
Figure BDA000034635780000817
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA000034635780000818
构造一个保留q和
Figure BDA000034635780000819
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
进一步的,在上述方法中,构造一个保留q和间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
进一步的,在上述方法中,构造一个保留q和边界节点
Figure BDA000034635780000821
间距离的捷径子图G′的步骤中,预先保存所有边界节点之间的距离,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
进一步的,在上述方法中,计算分区SGi中所有结点至q′距离的步骤包括:
Figure BDA00003463578000091
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA00003463578000092
由于任何从q′到
Figure BDA00003463578000093
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA00003463578000094
构造一个保留q′和
Figure BDA00003463578000095
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
进一步的,在上述方法中,构造一个保留q′和
Figure BDA00003463578000096
间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
进一步的,在上述方法中,构造一个保留q′和边界节点
Figure BDA00003463578000097
间距离的捷径子图G′的步骤中,预先保存所有边界节点
Figure BDA00003463578000098
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
根据本发明的另一面,提供一种获取路网上复反向最远邻居的层次分区树系统,包括:
模块一,用于对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
模块二,用于对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
模块三,用于选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
模块四,用于使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
模块五,用于定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000101
其中edge(d,d′)表示d与d′之间的边,
Figure BDA00003463578000102
表示分区SGi的所有结点;
模块六,用于将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure BDA00003463578000103
内的任何结点的最大和最小距离,记为
Figure BDA00003463578000105
分区或子分区SGi的直径定义为
Figure BDA00003463578000106
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000107
Figure BDA00003463578000108
q′的边界定义与q类似;
模块七,用于预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
模块八,用于对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
模块九,用于为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
进一步的,在上述系统中,所述模块九包括:
九一子单元,用于将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到九二子单元;如果SGi中包含S中的结点,则转到九三子单元;
九二子单元,用于将该SGi排除;
九三子单元,用于如果SGi中包含S中的结点,进一步判断:如果
Figure BDA00003463578000111
则将SGi中的所有点划分入距离q′更近的部分;如果则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
进一步的,在上述系统中,所述九三子单元,用于当
Figure BDA00003463578000113
时,则
Figure BDA00003463578000115
Figure BDA00003463578000116
时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure BDA00003463578000121
使用q到
Figure BDA00003463578000122
的上界来估计
Figure BDA00003463578000123
ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,
Figure BDA00003463578000125
可以使用三角不等式估计,
Figure BDA00003463578000126
的定义同是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
进一步的,在上述系统中,所述九三子单元计算
Figure BDA00003463578000128
的公式如下,
Figure BDA00003463578000129
进一步的,在上述系统中,所述九三子单元用于:
Figure BDA000034635780001210
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA000034635780001211
由于任何从q到
Figure BDA000034635780001212
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA000034635780001213
构造一个保留q和间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
进一步的,在上述系统中,所述九三子单元构造一个保留q和
Figure BDA000034635780001215
间距离的捷径子图G′时,使用HEPV和HiTi技术。
进一步的,在上述系统中,所述九三子单元构造一个保留q和
Figure BDA000034635780001216
间距离的捷径子图G′时,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
进一步的,在上述系统中,所述九三子单元用于:
Figure BDA000034635780001217
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA00003463578000131
由于任何从q′到
Figure BDA00003463578000132
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA00003463578000133
构造一个保留q′和
Figure BDA00003463578000134
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
进一步的,在上述系统中,所述九三子单元构造一个保留q′和
Figure BDA00003463578000135
间距离的捷径子图G′时,使用HEPV和HiTi技术。
进一步的,在上述系统中,所述九三子单元构造一个保留q′和边界节点
Figure BDA00003463578000136
间距离的捷径子图G′时,预先保存所有边界节点
Figure BDA00003463578000137
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
与现有技术相比,本发明通过步骤一:对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);步骤二:对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};步骤三:选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;步骤四:使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;步骤五:定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000138
其中edge(d,d′)表示d与d′之间的边,
Figure BDA00003463578000141
表示分区的所有结点;步骤六:将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure BDA00003463578000143
内的任何结点的最大和最小距离,记为
Figure BDA00003463578000144
Figure BDA00003463578000145
分区或子分区SGi的直径定义为
Figure BDA00003463578000146
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000147
q′的边界定义与q类似;步骤七:预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;步骤八:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);步骤九:为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点,能够在路网上快速搜索到查询点的单反向邻居。
附图说明
图1是本发明一实施例的复反向最远邻居问题(BRFN)示例。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
本发明提供一种获取路网上复反向最远邻居的层次分区树方法,包括:
步骤一:如图1所示,对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
步骤二:对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
步骤三:选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
步骤四:使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
步骤五:定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000151
其中edge(d,d′)表示d与d′之间的边,表示分区SGi的所有结点;
步骤六:将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure BDA00003463578000161
内的任何结点的最大和最小距离,记为
Figure BDA00003463578000163
分区或子分区SGi的直径定义为
Figure BDA00003463578000164
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000165
Figure BDA00003463578000166
q′的边界定义与q类似;
步骤七:预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
步骤八:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于
Figure BDA00003463578000167
fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
步骤九:为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
进一步的,所述步骤九中的根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分的步骤包括:
步骤九一:将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到步骤九二;如果SGi中包含S中的结点,则转到步骤九三:
步骤九二:将该SGi排除;
步骤九三:如果SGi中包含S中的结点,进一步判断:如果则将SGi中的所有点划分入距离q′更近的部分;如果
Figure BDA00003463578000172
则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
进一步的,步骤九三中计算
Figure BDA00003463578000173
的步骤如下,当
Figure BDA00003463578000174
Figure BDA00003463578000175
时,则
Figure BDA00003463578000176
Figure BDA00003463578000177
时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure BDA00003463578000178
使用q到的上界来估计
Figure BDA000034635780001710
ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,
Figure BDA000034635780001712
可以使用三角不等式估计,
Figure BDA000034635780001713
的定义同
Figure BDA000034635780001714
是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
进一步的,步骤九三中计算
Figure BDA000034635780001715
的方法如下,
Figure BDA000034635780001716
进一步的,步骤九三中计算分区SGi中所有结点d′至q的距离的步骤包括:
Figure BDA000034635780001717
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;具体的,作为代表性的最短路径算法,Dijkstra算法由E.W.Dijkstra在1959年提出,算法使用标记方法从源点开始,每次扩展距离已标记集合最近的点,从而求得到已知点的最短路径(可参见文献1);
Figure BDA00003463578000181
由于任何从q到
Figure BDA00003463578000182
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA00003463578000183
构造一个保留q和
Figure BDA00003463578000184
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
进一步的,构造一个保留q和
Figure BDA00003463578000185
间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
进一步的,构造一个保留q和边界节点
Figure BDA00003463578000186
间距离的捷径子图G′的步骤中,预先保存所有边界节点
Figure BDA00003463578000187
之间的距离,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
进一步的,计算分区SGi中所有结点至q′距离的步骤包括:
Figure BDA00003463578000188
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA00003463578000189
由于任何从q′到
Figure BDA000034635780001810
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA000034635780001811
构造一个保留q′和
Figure BDA000034635780001812
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
进一步的,构造一个保留q′和
Figure BDA000034635780001813
间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
进一步的,构造一个保留q′和边界节点
Figure BDA000034635780001814
间距离的捷径子图G′的步骤中,预先保存所有边界节点
Figure BDA000034635780001815
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
实施例二
本发明还提供另一种获取路网上复反向最远邻居的层次分区树系统,包括:
模块一,用于对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
模块二,用于对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
模块三,用于选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
模块四,用于使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
模块五,用于定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000191
其中edge(d,d′)表示d与d′之间的边,表示分区SGi的所有结点;
模块六,用于将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure BDA00003463578000201
内的任何结点的最大和最小距离,记为
Figure BDA00003463578000202
Figure BDA00003463578000203
分区或子分区SGi的直径定义为
Figure BDA00003463578000204
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000206
q′的边界定义与q类似;
模块七,用于预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
模块八,用于对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于
Figure BDA00003463578000207
fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
模块九,用于为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
进一步的,所述模块九包括:
九一子单元,用于将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到九二子单元;如果SGi中包含S中的结点,则转到九三子单元;
九二子单元,用于将该SGi排除;
九三子单元,用于如果SGi中包含S中的结点,进一步判断:如果
Figure BDA00003463578000211
则将SGi中的所有点划分入距离q′更近的部分;如果
Figure BDA00003463578000212
则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
进一步的,所述九三子单元,用于当
Figure BDA00003463578000213
Figure BDA00003463578000214
时,则
Figure BDA00003463578000215
Figure BDA00003463578000216
时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure BDA00003463578000217
使用q到
Figure BDA00003463578000218
的上界来估计
Figure BDA00003463578000219
ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,
Figure BDA000034635780002111
可以使用三角不等式估计,
Figure BDA000034635780002112
的定义同
Figure BDA000034635780002113
是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
进一步的,所述九三子单元计算
Figure BDA000034635780002114
的公式如下,
进一步的,在上述系统中,所述九三子单元用于:
Figure BDA000034635780002116
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;
由于任何从q到的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA00003463578000221
构造一个保留q和
Figure BDA00003463578000222
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
进一步的,所述九三子单元构造一个保留q和
Figure BDA00003463578000223
间距离的捷径子图G′时,使用HEPV和HiTi技术。
进一步的,所述九三子单元构造一个保留q和
Figure BDA00003463578000224
间距离的捷径子图G′时,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
进一步的,所述九三子单元用于:
Figure BDA00003463578000225
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure BDA00003463578000226
由于任何从q′到
Figure BDA00003463578000227
的路径都必然经过该分区或子分区SGi的边界节点
Figure BDA00003463578000228
构造一个保留q′和
Figure BDA00003463578000229
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
进一步的,所述九三子单元构造一个保留q′和
Figure BDA000034635780002210
间距离的捷径子图G′时,使用HEPV和HiTi技术。
进一步的,所述九三子单元构造一个保留q′和边界节点间距离的捷径子图G′时,预先保存所有边界节点
Figure BDA000034635780002212
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
本发明通过步骤一:对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);步骤二:对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};步骤三:选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;步骤四:使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;步骤五:定义路网G上每一个分区或子分区SGi的边界结点为
Figure BDA00003463578000231
其中edge(d,d′)表示d与d′之间的边,
Figure BDA00003463578000232
表示分区SGi的所有结点;步骤六:将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure BDA00003463578000233
内的任何结点的最大和最小距离,记为
Figure BDA00003463578000234
Figure BDA00003463578000235
分区或子分区SGi的直径定义为
Figure BDA00003463578000236
类似的定义结点q到结点d的上界和下界分别为
Figure BDA00003463578000237
q′的边界定义与q类似;步骤七:预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;步骤八:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于
Figure BDA00003463578000239
fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);步骤九:为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点,能够在路网上快速搜索到查询点的单反向邻居。
实施例二的其它详细内容具体可参见实施例一,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (20)

1.一种获取路网上复反向最远邻居的层次分区树方法,其特征在于,包括:
步骤一:对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
步骤二:对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
步骤三:选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
步骤四:使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
步骤五:定义路网G上每一个分区或子分区SGi的边界结点为
Figure FDA00003463577900011
其中edge(d,d′)表示d与d′之间的边,
Figure FDA00003463577900014
表示分区SGi的所有结点;
步骤六:将某结点q到某分区或子分区SGi的上界和下界分别定义为q到
Figure FDA00003463577900015
内的任何结点的最大和最小距离,记为
Figure FDA00003463577900012
Figure FDA00003463577900013
分区或子分区SGi的直径定义为
Figure FDA00003463577900021
类似的定义结点q到结点d的上界和下界分别为
Figure FDA00003463577900022
Figure FDA00003463577900023
q′的边界定义与q类似;
步骤七:预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
步骤八:对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于
Figure FDA00003463577900024
fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
步骤九:为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
2.如权利要求1所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,所述步骤九中的根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分的步骤包括:
步骤九一:将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到步骤九二;如果SGi中包含S中的结点,则转到步骤九三:
步骤九二:将该SGi排除;
步骤九三:如果SGi中包含S中的结点,进一步判断:如果则将SGi中的所有点划分入距离q′更近的部分;如果则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
3.如权利要求2所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,步骤九三中计算
Figure FDA00003463577900033
的步骤如下,当
Figure FDA00003463577900034
Figure FDA00003463577900035
时,则
Figure FDA00003463577900036
Figure FDA00003463577900037
时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure FDA00003463577900038
使用q到
Figure FDA00003463577900039
的上界来估计 ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,可以使用三角不等式估计,
Figure FDA000034635779000313
的定义同
Figure FDA000034635779000314
是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
4.如权利要求2所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,步骤九三中计算
Figure FDA000034635779000315
的方法如下,
Figure FDA000034635779000316
5.如权利要求2所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,步骤九三中计算分区SGi中所有结点d′至q的距离的步骤包括:
Figure FDA000034635779000317
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;
Figure FDA00003463577900041
由于任何从q到
Figure FDA00003463577900042
的路径都必然经过该分区或子分区SGi的边界节点
Figure FDA00003463577900043
构造一个保留q和
Figure FDA00003463577900044
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
6.如权利要求5所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,构造一个保留q和
Figure FDA00003463577900045
间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
7.如权利要求5所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,构造一个保留q和边界节点
Figure FDA00003463577900046
间距离的捷径子图G′的步骤中,预先保存所有边界节点
Figure FDA00003463577900047
之间的距离,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
8.如权利要求2所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,计算分区SGi中所有结点至q′距离的步骤包括:
Figure FDA00003463577900048
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure FDA00003463577900049
由于任何从q′到
Figure FDA000034635779000410
的路径都必然经过该分区或子分区SGi的边界节点
Figure FDA000034635779000411
构造一个保留q′和
Figure FDA000034635779000412
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
9.如权利要求8所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,构造一个保留q′和间距离的捷径子图G′的步骤中,使用HEPV和HiTi技术。
10.如权利要求8所述的获取路网上复反向最远邻居的层次分区树方法,其特征在于,构造一个保留q′和边界节点
Figure FDA00003463577900052
间距离的捷径子图G′的步骤中,预先保存所有边界节点
Figure FDA00003463577900053
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
11.一种获取路网上复反向最远邻居的层次分区树系统,其特征在于,包括:
模块一,用于对于给定路网G上的某一结点p和路网G上的所有结点VG,如果路网G上存在结点q,q与p的路网距离||q-p||不小于p到VG当中任何点p’的距离||p′-p||,则定义q为p相对于VG的最远邻居,记为fn(p,VG);
模块二,用于对于给定路网G上的所有结点VG和路网G上的查询集Q,定义q∈Q的复反向最远邻居是所有VG中距离q比Q中其它所有点都远的点的集合,即BRFN(q,Q,VG)={p|p∈VG,fn(p,Q)=q};
模块三,用于选择路网G上的多个结点L作为地标,使用Dijkstra算法预计算每个结点L到所述剩下无子分区的分区或子分区上所有结点的距离;
模块四,用于使用自顶向下的方法构造路网G的HP树,路网G中的结点划分为m个分区SGi,并且将每个分区递归的划分为若干个子分区SGi,直至达到所需的分区数量与层数;
模块五,用于定义路网G上每一个分区或子分区SGi的边界结点为
Figure FDA00003463577900061
其中edge(d,d′)表示d与d′之间的边,
Figure FDA00003463577900062
表示分区SGi的所有结点;
模块六,用于将某结点q到某分区或子分区SGi的上界和下界分别定义为q到内的任何结点的最大和最小距离,记为
Figure FDA00003463577900064
分区或子分区SGi的直径定义为
Figure FDA00003463577900066
类似的定义结点q到结点d的上界和下界分别为
Figure FDA00003463577900067
Figure FDA00003463577900068
q′的边界定义与q类似;
模块七,用于预计算某分区SGi内子分区SGi的边界结点间的距离,同时预计算所有边界结点各自在所在分区和子分区SGi内的最远邻居;
模块八,用于对于路网G,某一查询集Q,构建路网G关于查询集Q的最远Voronoi图,定义某一查询点q∈Q在所述最远Voronoi图上的最远Voronoi区是这样一部分结点fvc(q,Q),满足对于fn(p,Q)=q,即所有fvc(q,Q)所包含的点p均以q作为其相对于Q的最远邻居,则BRFN(q,Q,VG)=fvc(q,Q);
模块九,用于为了获取fvc(q,Q),首先建立一个包含路网G上所有点VG的潜在解的集合S,每次从Q的其余结点中取出一个结点q′,根据所述集合S中每个潜在解到q和q′的距离将S划分为两部分后,将距离查询点q较近的部分从S中删除,直至Q的所有其余结点q′都取出过后,所述最远Voronoi图中最终未删除的部分即为fvc(q,Q),其中,所述潜在解为路网G上的某一结点。
12.如权利要求11所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述模块九包括:
九一子单元,用于将HP树的所有分区压入一遍历队列,每次从所述队列中弹出一个分区SGi,如果SGi中不包含S中的结点,则转到九二子单元;如果SGi中包含S中的结点,则转到九三子单元;
九二子单元,用于将该SGi排除;
九三子单元,用于如果SGi中包含S中的结点,进一步判断:如果则将SGi中的所有点划分入距离q′更近的部分;如果
Figure FDA00003463577900072
则将SGi中的所有点划分入距离q更近的部分;如果以上均不满足,则判断SGi是否有子分区,如果有子分区,则将其子分区压入所述遍历队列,如果没有子分区,则计算分区SGi中所有结点d分别至q和q′的距离,并根据所述结点d分别至q和q′的距离判断结点d到q和q′谁更近,将距离q和q′更近的结点d分别划分入对应部分内。
13.如权利要求12所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元,用于当
Figure FDA00003463577900073
Figure FDA00003463577900074
时,则
Figure FDA00003463577900076
时,由于任何从q通往SGi的路径必须经过SGi的边界结点
Figure FDA00003463577900077
使用q到
Figure FDA00003463577900078
的上界来估计
Figure FDA00003463577900079
ub SG i q = min b ∈ bd SG i ( ub q b + ub SG i b ) , 其中,
Figure FDA000034635779000711
可以使用三角不等式估计,的定义同是从所述预计算的所有边界结点间的距离和各自在所在分区和子分区SGi内的最远邻居中获取。
14.如权利要求12所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元计算
Figure FDA00003463577900081
的公式如下,
Figure FDA00003463577900082
15.如权利要求12所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元用于:
以q为源点进行一次Dijkstra算法以获得q到该分区或子分区SGi中的所有结点d′的距离;
Figure FDA00003463577900084
由于任何从q到
Figure FDA00003463577900085
的路径都必然经过该分区或子分区SGi的边界节点
Figure FDA00003463577900086
构造一个保留q和
Figure FDA00003463577900087
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q到该分区或子分区SGi中的所有结点d′的距离。
16.如权利要求15所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元构造一个保留q和
Figure FDA00003463577900088
间距离的捷径子图G′时,使用HEPV和HiTi技术。
17.如权利要求15所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元构造一个保留q和
Figure FDA00003463577900089
间距离的捷径子图G′时,使用q所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
18.如权利要求12所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元用于:
Figure FDA000034635779000810
以q′为源点进行一次Dijkstra算法以获得q′到该分区或子分区SGi中的所有结点d′的距离;
Figure FDA00003463577900091
由于任何从q′到
Figure FDA00003463577900092
的路径都必然经过该分区或子分区SGi的边界节点
Figure FDA00003463577900093
构造一个保留q′和
Figure FDA00003463577900094
间距离的捷径子图G′,并在所述捷径子图G′上进行距离计算得到q′到该分区或子分区SGi中的所有结点d′的距离。
19.如权利要求18所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元构造一个保留q′和
Figure FDA00003463577900095
间距离的捷径子图G′时,使用HEPV和HiTi技术。
20.如权利要求18所述的获取路网上复反向最远邻居的层次分区树系统,其特征在于,所述九三子单元构造一个保留q′和边界节点
Figure FDA00003463577900096
间距离的捷径子图G′时,预先保存所有边界节点
Figure FDA00003463577900097
之间的距离,使用q′所在的分区,SGi和预先保存的两个分区边界节点之间的距离构造捷径子图G′。
CN201310279899.0A 2013-07-04 2013-07-04 获取路网上复反向最远邻居的层次分区树方法及系统 Expired - Fee Related CN103345509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310279899.0A CN103345509B (zh) 2013-07-04 2013-07-04 获取路网上复反向最远邻居的层次分区树方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310279899.0A CN103345509B (zh) 2013-07-04 2013-07-04 获取路网上复反向最远邻居的层次分区树方法及系统

Publications (2)

Publication Number Publication Date
CN103345509A true CN103345509A (zh) 2013-10-09
CN103345509B CN103345509B (zh) 2016-08-10

Family

ID=49280304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310279899.0A Expired - Fee Related CN103345509B (zh) 2013-07-04 2013-07-04 获取路网上复反向最远邻居的层次分区树方法及系统

Country Status (1)

Country Link
CN (1) CN103345509B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699698A (zh) * 2013-12-05 2015-06-10 深圳先进技术研究院 基于海量数据的图查询处理方法
CN105574214A (zh) * 2016-03-04 2016-05-11 湖南工业大学 一种基于IDistance的细粒度位码过滤的相似性检索方法
CN109492028A (zh) * 2018-11-09 2019-03-19 新疆工程学院 一种海量时间序列数据相似性连接计算方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145526B (zh) * 2017-04-14 2020-06-05 浙江大学 一种路网下地理社交关键字反最近邻查询处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098192A1 (en) * 2001-02-28 2004-05-20 Kabushiki Kaisha Toshiba Route guidance apparatus and method
CN101369982A (zh) * 2008-10-13 2009-02-18 北京邮电大学 用于车载Ad hoc网络中的数据包贪婪转发的方法
CN104618979A (zh) * 2015-01-30 2015-05-13 广东迅通科技股份有限公司 一种基于路口辅助的自适应分区路由方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098192A1 (en) * 2001-02-28 2004-05-20 Kabushiki Kaisha Toshiba Route guidance apparatus and method
CN101369982A (zh) * 2008-10-13 2009-02-18 北京邮电大学 用于车载Ad hoc网络中的数据包贪婪转发的方法
CN104618979A (zh) * 2015-01-30 2015-05-13 广东迅通科技股份有限公司 一种基于路口辅助的自适应分区路由方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699698A (zh) * 2013-12-05 2015-06-10 深圳先进技术研究院 基于海量数据的图查询处理方法
CN105574214A (zh) * 2016-03-04 2016-05-11 湖南工业大学 一种基于IDistance的细粒度位码过滤的相似性检索方法
CN105574214B (zh) * 2016-03-04 2019-04-09 湖南工业大学 一种基于IDistance的细粒度位码过滤的相似性检索方法
CN109492028A (zh) * 2018-11-09 2019-03-19 新疆工程学院 一种海量时间序列数据相似性连接计算方法

Also Published As

Publication number Publication date
CN103345509B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
Rocha-Junior et al. Top-k spatial keyword queries on road networks
Gupta et al. Top-k interesting subgraph discovery in information networks
Li et al. G*-tree: An efficient spatial index on road networks
CN108932347B (zh) 一种分布式环境下基于社会感知的空间关键字查询方法
Baum et al. Speed-consumption tradeoff for electric vehicle route planning
CN106897374B (zh) 一种基于轨迹大数据最近邻查询的个性化推荐方法
CN104699698A (zh) 基于海量数据的图查询处理方法
CN103345509B (zh) 获取路网上复反向最远邻居的层次分区树方法及系统
Jung et al. Processing generalized k-nearest neighbor queries on a wireless broadcast stream
CN109190052B (zh) 一种分布式环境下基于社会感知的空间索引方法
Zhou et al. Efficient approaches to k representative g-skyline queries
Reddy et al. An enhanced travel package recommendation system based on location dependent social data
Ali et al. The maximum trajectory coverage query in spatial databases
Yang et al. Recommending profitable taxi travel routes based on big taxi trajectories data
Huang et al. A grid based trajectory indexing method for moving objects on fixed network
John et al. Dynamic sorting and average skyline method for query processing in spatial-temporal data
CN103365984B (zh) 获取路网上单反向最远邻居的地标方法及系统
Goncalves et al. Making recommendations using location-based skyline queries
CN103336827B (zh) 获取路网上复反向最远邻居的暴力搜索方法及系统
CN103324746B (zh) 获取路网上复反向最远邻居的递进最远分区方法及系统
AbdulAzeem et al. A framework for ranking uncertain distributed database
CN103365983B (zh) 获取路网上单反向最远邻居的层次分区方法及系统
Huang et al. Processing continuous K-nearest skyline query with uncertainty in spatio-temporal databases
Yu et al. A distributed hybrid index for processing continuous range queries over moving objects
CN103336827A (zh) 获取路网上复反向最远邻居的暴力搜索方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810

Termination date: 20190704