CN105787076A - 一种不确定空间数据上的单色相互最近邻查询处理方法 - Google Patents

一种不确定空间数据上的单色相互最近邻查询处理方法 Download PDF

Info

Publication number
CN105787076A
CN105787076A CN201610118192.5A CN201610118192A CN105787076A CN 105787076 A CN105787076 A CN 105787076A CN 201610118192 A CN201610118192 A CN 201610118192A CN 105787076 A CN105787076 A CN 105787076A
Authority
CN
China
Prior art keywords
minf
rfn
rnn
beta pruning
arest neighbors
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
Application number
CN201610118192.5A
Other languages
English (en)
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.)
Nanjing University of Information Science and Technology
Original Assignee
Nanjing University of Information Science and Technology
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 Nanjing University of Information Science and Technology filed Critical Nanjing University of Information Science and Technology
Priority to CN201610118192.5A priority Critical patent/CN105787076A/zh
Publication of CN105787076A publication Critical patent/CN105787076A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种不确定空间数据上的单色相互最近邻查询处理方法,包括步骤:遍历R树,得到查询对象q的最近邻候选集nnq,并将此过程中剪枝的结点和对象保存在最小堆Hrfn内;将nnq中的对象插入Hrfn中;将Hrfn中的元素插入集合Sstemp;遍历Hrfn得到q的反向最近邻候选集rnnq;求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq;对mnnq中每个对象o,遍历集合Sstemp查询o的最近邻候选集nno;求出nno与nnq的并集得到o的概率计算列表;计算mnnq中每个对象的概率值;将概率值大于阈值的对象作为结果返回。本发明方法与现有方法相比,运行效率高,I/O代价低、查询时间短,用于处理LBS中对应的查询问题,能够提高查询处理效率。

Description

一种不确定空间数据上的单色相互最近邻查询处理方法
技术领域
本发明涉及一种不确定空间数据上的单色相互最近邻查询处理方法,属于时空数据库(Spatio-TemporalDataBase,STDB)中基于位置服务(Location-basedDatabase,LBS)信息查询的技术领域。
背景技术
时空数据库是数据库领域的重要分支,时空查询是时空数据库中的重要操作,根据空间条件可以分为:范围查询、最近邻查询、反向最近邻查询等等。相互最近邻查询是最近邻查询、反向最近邻查询的变形和扩展,其计算结果是给定点的最近邻,同时也以给定点为最近邻的数据点。相互最近邻查询在诸如数据挖掘、模式识别和决策支持等领域有着重要的应用价值。
目前相互最近邻查询主要分为两大类:单色相互最近邻查询和双色相互最近邻查询。在单色相互最近邻查询中,查询发出者q和目标对象属于同一个数据集D。因此一个数据对象o被认为是查询发出者q的相互最近邻,当且仅当数据集中任一对象o′与q间的距离大于o与q间的距离,同时o′与o间的距离大于o与q间的距离。即 其中dist(,)是两个对象之间的距离函数。在双色相互最近邻查询中有A、B两类对象,其中查询发出者q属于A类,而目标对象属于B类。一个数据对象o被认为是查询发出者q的相互最近邻,当前仅当B类对象中(除o外的)任一对象o′与q间的距离大于o与q间距离的同时,与A类对象中(除q外的)任一对象o″的距离也大于o与q间距离,即
在时空数据库中最常用的索引结构是基于R树的,或者是其派生出来的。R树是一种高度平衡树,可以实现完全动态索引。本发明用到的索引结构即为R树。
由于定位技术、网络的带宽、系统存储等多种因素的限制,时空对象的数据只能以离散方式获取。此外,由于测量误差、具体应用的特点(如位置隐私保护)等因素使得时空数据库中存储的信息往往和对象的实际数据不一致。位置不确定性是时空数据库、LBS等领域不可回避的问题。一般用一个空间区域表示对象在某一时刻可能的位置范围,称为不确定域,用概率密度函数来表示对象位置在不确定域内的概率分布情况。
2008年,Gao在DKE上发表文章Ontheefficientmutualnearestneighborqueryprocessinginspatialdatabases,给出了精确数据集上单色相互最近邻查询处理的方法。梁瑜等提出了双色不确定相互最近邻查询问题,解决了查询对象来自于不确定数据集,而目标对象属于一个精确点集的查询处理问题。但是以上方法不能处理查询发出者和目标对象均来自于同一不确数据集的单色相互最近邻查询问题。发明人一在博士论文《位置不确定移动对象查询处理关键技术研究》(南京航空航天大学,2013年10月)中提出了一种基于多轮最近邻搜索技术的方法,虽然可以解决此问题,但是存在以下缺陷:(1)对R树多次从根结点重复访问,因而I/O代价较高;(2)候选集过大,一方面引起不必要的I/O操作,另一方面增加了精炼步骤中的概率计算量,使得时间代价过高。综合以上两点,现有的方法在处理不确定空间数据上的单色相互最近邻查询时效率较低。
发明内容
本发明的目的是提供一种基于不确定空间数据集的单色相互最近邻查询处理方法,克服现有技术中概率计算量大、I/O访问次数高的缺陷。
本发明解决其技术问题所采用的方案是:一、利用重用技术避免重复从根结点访问R树,从而减少了反向最近邻搜索和概率计算列表构造过程中的I/O操作;二、通过反向最近邻查询与最近邻查询的结果求交,获得更小的候选对象集,即减少了概率计算量又降低了I/O次数。
本发明技术方案如下:
本发明提供一种基于不确定空间数据集的单色相互最近邻查询处理方法,包括步骤:
步骤1:初始化最小堆Hrfn,令集合Stemp为空;
步骤2:遍历R树,得到查询对象q的最近邻候选集nnq,并且将此过程中剪枝的结点和对象保存在最小堆Hrfn中,具体过程如下:
步骤2.1:初始化最小堆H,设R树的根结点为root,将<root,0>插入H,令变量minf为无穷大;
步骤2.2:在H非空的情况下循环执行步骤2.3~2.6,否则转去执行步骤2.7;
步骤2.3:取出H堆顶元素<E,dt>;
步骤2.4:如果dt>minf,则执行步骤2.7;
步骤2.5:如果E是非叶子结点,则依次对E中的每一项e进行如下操作:
首先,计算查询q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝且将<e,de>插入Hrfn
返回执行步骤2.2;
步骤2.6:如果E是叶子结点,则依次对E中的每一项e进行如下操作:
首先判断e是否是q,如果不是则计算q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将e作为q的最近邻候选对象插入nnq,再将nnq中所有到q的最近距离大于当前minf的对象删除,同时将这些对象插入Hrfn;如果De大等于minf,则进一步判断de是否小于minf,是则将e作为q的最近邻候选对象插入nnq,否则e被剪枝且将<e,de>插入Hrfn
如果e是q,则将<q,0>插入Hrfn
返回执行步骤2.2;
步骤2.7:在H非空的情况下循环取出H的堆顶元素<E,dt>,并插入Hrfn
步骤2.8:返回nnq
步骤3:将q的最近邻候选集nnq中的对象以到q的最近距离为关键字插入Hrfn中;
步骤4:将Hrfn中的元素同时插入集合Stemp
步骤5:遍历Hrfn得到q的反向最近邻候选集rnnq,具体如下:
步骤5.1:初始化反向最近邻候选集rnnq,令其为空集;
步骤5.2:在Hrfn非空的情况下循环执行步骤5.3~5.6,否则执行步骤5.7;
步骤5.3:取出Hrfn的堆顶元素<E,dt>;
步骤5.4:只要E完全位于rnnq中某一个候选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则执行步骤5.5~5.6;
其中剪枝区域PRo由平面中到q的最近距离大于到对象o最远距离的所有点组成;
步骤5.5:如果E是数据对象且E不是q,则将E插入反向最近邻候选集rnnq,并将rnnq中位于E的剪枝区域PRE内的对象作标记;
步骤5.6:如果E是结点,则对E中的每一项e判断,只要e完全位于rnnq中某一个侯选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则将e插入Hrfn
步骤5.7:将rnnq中作了标记的对象删除;
步骤5.8:返回rnnq
步骤6:求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq
步骤7:对mnnq中每个对象o,遍历集合Stemp得到o的最近邻候选集,记作nno,具体如下:
步骤7.1:初始化最小堆H,令变量minf为无穷大;
步骤7.2:依次对Stemp中每个元素e执行步骤7.3~7.4,访问完Stemp中所有元素后执行步骤7.5;
步骤7.3:如果e是数据对象且不是o,则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后判断De是否小于minf,是则令minf=De,并且将e作为o的最近邻候选对象插入nno,如果De大等于minf,则进一步判断de是否小于minf,是则将e作为o的最近邻候选对象插入nno,否则e被剪枝;
步骤7.4:如果e是结点则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝;
步骤7.5~7.9:与步骤2.2~2.6类似,但是被剪枝的对象不需要插入Hrfn,此外,步骤2.5~2.6中的q和nnq在步骤7.8~7.9换成o和nno,其余部分相同;
步骤7.10:返回nno
步骤8:为mnnq中每个对象o构造概率计算列表Sno,Sno为nno与nnq的并集且排除o和q;
步骤9:按下式计算mnnq中每个对象o的概率值
P M N N _ q , o = &Integral; n ( q , o ) f ( q , o ) p r { d i s t ( q , o ) = r } &Pi; &ForAll; o &prime; &Element; Sn o p r { d i s t ( q , o &prime; ) &GreaterEqual; r } p r { d i s t ( o , o &prime; ) &GreaterEqual; r } d r - - - ( 1 )
其中n(q,o)和f(q,o)分别是q与o的最近距离和最远距离;
步骤10:将概率值大于概率阈值的候选对象插入结果集并返回。
为了克服现有技术I/O和时间开销大的缺陷,本方法提高了不确空间数据集上单色相互最近邻查询处理的性能指标。
本发明解决其技术问题所采用的技术方案:针对现有技术对索引R树多次从根结点重复访问的缺陷,通过重用第一次最近邻搜索时访问过的结点和对象,避免在后继的反向最近邻搜索、以及候选对象概率计算列表构造过程中重复从根结点访问索引;利用一次最近邻和一次反向最近邻搜索获得候选对象,比利用现有方法中多次最近邻搜索获取候选对象,能够得到更小的候选对象集,从而降低了概率计算量和概率计算列表构造过程中的I/O代价。
有益效果
与背景技术相比,本发明有以下优点:
(1)完成了不确定性数据集上的单色相互最近邻查询;
(2)在时间代价和I/O访问次数上优于现有方法。
本发明方法在不同不确定性大小、不同数据集分布等情况下,与现有方法相比,运行效率高,即I/O代价低、查询时间短。本方法用于处理LBS中对应的查询处理问题,能够提高查询处理效率。
附图说明
图1是本发明一种基于不确定空间数据的单色相互最近邻查询方法的流程图。
图2是在一个不确定数据集上进行最近邻搜索的原理图,(a)搜索q的不确定最近邻,(b)搜索h的不确定最近邻,(c)搜索i的不确定最近邻,(d)搜索c的不确定最近邻,(e)搜索e的不确定最近邻,(f)搜索b的不确定最近邻。
图3是为图2所示数据集构造的R树。
图4是在不确定数据集上进行反向最近邻搜索的原理图,(a)剪枝区域PR(h),(b)剪枝区域PR(i),(c)剪枝区域PR(c),(d)剪枝区域PR(e)。
图5是本发明方法与现有方法在CPU时间上的对比,(a)在数据集LB上,(b)在数据集CA上。
图6是本发明方法与现有方法在I/O次数上的对比,(a)在数据集LB上,(b)在数据集CA上。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
如图1所示出,本发明一种基于不确定数据集的单色相互最近邻查询方法,包括以下步骤:
步骤1:初始化最小堆Hrfn,令集合Stemp为空;
步骤2:遍历R树,得到查询对象q的最近邻候选集nnq,并且将此过程中剪枝的结点和对象保存在最小堆Hrfn中,具体过程如下:
步骤2.1:初始化最小堆H,设R树的根结点为root,将<root,0>插入H,令变量minf为无穷大;
步骤2.2:在H非空的情况下循环执行步骤2.3~2.6,否则转去执行步骤2.7;
步骤2.3:取出H堆顶元素<E,dt>;
步骤2.4:如果dt>minf,则执行步骤2.7;
步骤2.5:如果E是非叶子结点,则依次对E中的每一项e进行如下操作:
首先,计算查询q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝且将<e,de>插入Hrfn
返回执行步骤2.2;
步骤2.6:如果E是叶子结点,则依次对E中的每一项e进行如下操作:
首先判断e是否是q,如果不是则计算q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将e作为q的最近邻候选对象插入nnq,再将nnq中所有到q的最近距离大于当前minf的对象删除,同时将这些对象插入Hrfn;如果De大等于minf,则进一步判断de是否小于minf,是则将e作为q的最近邻候选对象插入nnq,否则e被剪枝且将<e,de>插入Hrfn
如果e是q,则将<q,0>插入Hrfn
返回执行步骤2.2;
步骤2.7:在H非空的情况下循环取出H的堆顶元素<E,dt>,并插入Hrfn
步骤2.8:返回nnq
步骤3:将q的最近邻候选集nnq中的对象以到q的最近距离为关键字插入Hrfn中;
步骤4:将Hrfn中的元素同时插入集合Stemp
步骤5:遍历Hrfn得到q的反向最近邻候选集rnnq,具体如下:
步骤5.1:初始化反向最近邻候选集rnnq,令其为空集;
步骤5.2:在Hrfn非空的情况下循环执行步骤5.3~5.6,否则执行步骤5.7;
步骤5.3:取出Hrfn的堆顶元素<E,dt>;
步骤5.4:只要E完全位于rnnq中某一个候选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则执行步骤5.5~5.6;
其中剪枝区域PRo由平面中到q的最近距离大于到对象o最远距离的所有点组成;
步骤5.5:如果E是数据对象且E不是q,则将E插入反向最近邻候选集rnnq,并将rnnq中位于E的剪枝区域PRE内的对象作标记;
步骤5.6:如果E是结点,则对E中的每一项e判断,只要e完全位于rnnq中某一个侯选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则将e插入Hrfn
步骤5.7:将rnnq中作了标记的对象删除;
步骤5.8:返回rnnq
步骤6:求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq
步骤7:对mnnq中每个对象o,遍历集合Stemp得到o的最近邻候选集,记作nno,具体如下:
步骤7.1:初始化最小堆H,令变量minf为无穷大;
步骤7.2:依次对Stemp中每个元素e执行步骤7.3~7.4,访问完Stemp中所有元素后执行步骤7.5;
步骤7.3:如果e是数据对象且不是o,则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后判断De是否小于minf,是则令minf=De,并且将e作为o的最近邻候选对象插入nno,如果De大等于minf,则进一步判断de是否小于minf,是则将e作为o的最近邻候选对象插入nno,否则e被剪枝;
步骤7.4:如果e是结点则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝;
步骤7.5~7.9:与步骤2.2~2.6类似,但是被剪枝的对象不需要插入Hrfn,此外,步骤2.5~2.6中的q和nnq在步骤7.8~7.9换成o和nno,其余部分相同;
步骤7.10:返回nno
步骤8:为mnnq中每个对象o构造概率计算列表Sno,Sno为nno与nnq的并集且排除o和q;
步骤9:按下式计算mnnq中每个对象o的概率值
P M N N _ q , o = &Integral; n ( q , o ) f ( q , o ) p r { d i s t ( q , o ) = r } &Pi; &ForAll; o &prime; &Element; Sn o p r { d i s t ( q , o &prime; ) &GreaterEqual; r } p r { d i s t ( o , o &prime; ) &GreaterEqual; r } d r - - - ( 1 )
其中n(q,o)和f(q,o)分别是q与o的最近距离和最远距离;
步骤10:将概率值大于概率阈值的候选对象插入结果集并返回。
在具体实施过程中,如果对象不确定区域的形状不是圆形的,可以先求出不确定区域的最小外包圆,然后在最小外包圆的基础上进行步骤1~步骤10的处理,在步骤9时可以在不确定区域内用蒙特卡洛方法完成概率计算。因此本发明对任意形状的不确定对象均是适用的。
本发明提出的方法命名为TS,发明人一在博士论文《位置不确定移动对象查询处理关键技术研究》(南京航空航天大学,2013年10月)中提出的一种基于多轮最近邻搜索技术的方法,记作BS,其步骤如下:
步骤1:遍历R树,得到查询对象q的最近邻候选集nnq
步骤2:对nnq中每个对象o,遍历R树查询对象o的最近邻候选集nno
步骤3:对nnq中每个对象o,如果q是nno中的元素,则把o插入相互最近邻候选集mnnq,求nno与nnq的并集且排除o和q,得到o的概率计算列表;
步骤4:计算mnnq中每个对象的概率值;
步骤5:判断概率值是否大于概率阈值,是则将对象插入结果集并返回。
下面通过,图2、图3及图4共同说明TS方法相对与BS方法的优势。
TS方法执行完步骤2后,根据图2(a)可知nnq={h,i,c,e,b}。在此过程中被剪枝的结点和对象按照到q的最近距离为主键被保存在最小堆Hrfn中,Hrfn中的内容为 H rfn = { ( q , 0 ) , ( N 5 , 50 - 1 ) , ( d , 80 - 2 ) , ( a , 113 - 2 ) } ;
执行完步骤3后, H rfn = { ( q , 0 ) , ( h , 10 - 2 ) , ( i - 18 - 2 ) , ( c , 34 - 2 ) , ( e , 37 - 2 ) , ( b , 50 - 2 ) , ( N 5 , 50 - 1 ) , ( d , 80 - 2 ) , ( a , 113 - 2 ) } ;
执行完步骤4后,Stemp={q,h,i,c,e,b,N5,d,a};
执行完步骤5后,得到rnnq={h,i,c};
执行完步骤6后,求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq,mnnq={h,i,c};
执行完步骤7后,得到nnh={q,i,e,b,g},nni={q,h,g,f},nnc={e,d,q},见图2(b)~(d);
执行完步骤8后,Snh={i,c,e,b,g},Sni={h,c,e,b,g,f},Snc={h,e,i,b,d};
步骤9中只需对3个对象h,i,c分别在概率计算列表Snh,Sni和Snc上计算概率。
如果采用BS方法,也先是遍历R树进行q的最近邻查询,但是在此过程中不记录被剪枝的结点和对象,根据图2(a),执行完步骤1后nnq={h,i,c,e,b};
步骤2中5次遍历R树分别对h,i,c,e,b进行最近邻查询,得到nnh={q,i,e,b,g},nni={q,h,g,f},nnc={e,d,q},nne={c,d,b,q},nnb={a,e,h},见图2(b)~(f);
执行步骤3,得到mnnq={h,i,c,e};同时得到Snh={i,c,e,b,g},Sni={h,c,e,b,g,f},Snc={h,e,i,b,d},Sne={h,c,i,b,d};
步骤4需对4个对象h,i,c,b分别在概率计算列表Snh,Sni,Sne和Snb上计算概率。
在图2~图4所示实例中,TS从根结点访问R树1次,而BS方法从根结点访问R树6次,两种方法获得的候选对象数目分别为3个和4个。可见TS方法在I/O次数及计算代价上都低于BS方法。
下面给出BS方法和TS方法在两个真实数据集LB和CA上的性能对比。图5给出了两种方法CPU时间的对比,当对象不确定性越大,TS方法性能越优于BS方法。图6中给出了两种方法I/O次数的对比,显然TS方法I/O次数的增长速度远小于BS方法。

Claims (1)

1.一种不确定空间数据上的单色相互最近邻查询处理方法,其特征在于,包括如下步骤:
步骤1:初始化最小堆Hrfn,令集合Stemp为空;
步骤2:遍历R树,得到查询对象q的最近邻候选集nnq,并且将此过程中剪枝的结点和对象保存在最小堆Hrfn中,具体过程如下:
步骤2.1:初始化最小堆H,设R树的根结点为root,将<root,0>插入H,令变量minf为无穷大;
步骤2.2:在H非空的情况下循环执行步骤2.3~2.6,否则转去执行步骤2.7;
步骤2.3:取出H堆顶元素<E,dt>;
步骤2.4:如果dt>minf,则执行步骤2.7;
步骤2.5:如果E是非叶子结点,则依次对E中的每一项e进行如下操作:
首先,计算查询q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝且将<e,de>插入Hrfn
返回执行步骤2.2;
步骤2.6:如果E是叶子结点,则依次对E中的每一项e进行如下操作:
首先判断e是否是q,如果不是则计算q与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将e作为q的最近邻候选对象插入nnq,再将nnq中所有到q的最近距离大于当前minf的对象删除,同时将这些对象插入Hrfn;如果De大等于minf,则进一步判断de是否小于minf,是则将e作为q的最近邻候选对象插入nnq,否则e被剪枝且将<e,de>插入Hrfn
如果e是q,则将<q,0>插入Hrfn
返回执行步骤2.2;
步骤2.7:在H非空的情况下循环取出H的堆顶元素<E,dt>,并插入Hrfn
步骤2.8:返回nnq
步骤3:将q的最近邻候选集nnq中的对象以到q的最近距离为关键字插入Hrfn中;
步骤4:将Hrfn中的元素同时插入集合Stemp
步骤5:遍历Hrfn得到q的反向最近邻候选集rnnq,具体如下:
步骤5.1:初始化反向最近邻候选集rnnq,令其为空集;
步骤5.2:在Hrfn非空的情况下循环执行步骤5.3~5.6,否则执行步骤5.7;
步骤5.3:取出Hrfn的堆顶元素<E,dt>;
步骤5.4:只要E完全位于rnnq中某一个候选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则执行步骤5.5~5.6;
其中剪枝区域PRo由平面中到q的最近距离大于到对象o最远距离的所有点组成;
步骤5.5:如果E是数据对象且E不是q,则将E插入反向最近邻候选集rnnq,并将rnnq中位于E的剪枝区域PRE内的对象作标记;
步骤5.6:如果E是结点,则对E中的每一项e判断,只要e完全位于rnnq中某一个侯选对象o的剪枝区域PRo内,则返回步骤5.2执行,否则将e插入Hrfn
步骤5.7:将rnnq中作了标记的对象删除;
步骤5.8:返回rnnq
步骤6:求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq
步骤7:对mnnq中每个对象o,遍历集合Stemp得到o的最近邻候选集,记作nno,具体如下:
步骤7.1:初始化最小堆H,令变量minf为无穷大;
步骤7.2:依次对Stemp中每个元素e执行步骤7.3~7.4,访问完Stemp中所有元素后执行步骤7.5;
步骤7.3:如果e是数据对象且不是o,则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后判断De是否小于minf,是则令minf=De,并且将e作为o的最近邻候选对象插入nno,如果De大等于minf,则进一步判断de是否小于minf,是则将e作为o的最近邻候选对象插入nno,否则e被剪枝;
步骤7.4:如果e是结点则:
首先计算o与e之间的最远和最近距离,分别记作De和de
然后,判断De是否小于minf,是则令minf=De,并且将<e,de>插入H,否则继续判断de是否小于minf,是则将<e,de>插入H,否则e被剪枝;
步骤7.5~7.9:与步骤2.2~2.6类似,但是被剪枝的对象不需要插入Hrfn,此外,步骤2.5~2.6中的q和nnq在步骤7.8~7.9换成o和nno,其余部分相同;
步骤7.10:返回nno
步骤8:为mnnq中每个对象o构造概率计算列表Sno,Sno为nno与nnq的并集且排除o和q;
步骤9:按下式计算mnnq中每个对象o的概率值
P M N N _ q , o = &Integral; n ( q , o ) f ( q , o ) p r { d i s t ( q , o ) = r } &Pi; &ForAll; o &prime; &Element; Sn o p r { d i s t ( q , o &prime; ) &GreaterEqual; r } p r { d i s t ( o , o &prime; ) &GreaterEqual; r } d r - - - ( 1 )
其中n(q,o)和f(q,o)分别是q与o的最近距离和最远距离;
步骤10:将概率值大于概率阈值的候选对象插入结果集并返回。
CN201610118192.5A 2016-03-02 2016-03-02 一种不确定空间数据上的单色相互最近邻查询处理方法 Pending CN105787076A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610118192.5A CN105787076A (zh) 2016-03-02 2016-03-02 一种不确定空间数据上的单色相互最近邻查询处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610118192.5A CN105787076A (zh) 2016-03-02 2016-03-02 一种不确定空间数据上的单色相互最近邻查询处理方法

Publications (1)

Publication Number Publication Date
CN105787076A true CN105787076A (zh) 2016-07-20

Family

ID=56386861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610118192.5A Pending CN105787076A (zh) 2016-03-02 2016-03-02 一种不确定空间数据上的单色相互最近邻查询处理方法

Country Status (1)

Country Link
CN (1) CN105787076A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570062A (zh) * 2016-10-08 2017-04-19 中国人民解放军理工大学 一种路网轨迹不确定移动对象范围查询系统及方法
CN111552988A (zh) * 2020-04-21 2020-08-18 西安电子科技大学 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570062A (zh) * 2016-10-08 2017-04-19 中国人民解放军理工大学 一种路网轨迹不确定移动对象范围查询系统及方法
CN111552988A (zh) * 2020-04-21 2020-08-18 西安电子科技大学 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统
CN111552988B (zh) * 2020-04-21 2023-05-02 西安电子科技大学 基于蒙特卡罗抽样的前向安全k近邻检索方法及系统

Similar Documents

Publication Publication Date Title
CN102810118B (zh) 一种变权网k近邻搜索方法
CN104462190B (zh) 一种基于海量空间轨迹挖掘的在线的位置预测方法
CN103533501A (zh) 一种地理围栏生成方法
CN106528815B (zh) 一种路网移动对象概率聚集查询方法及系统
CN108834077B (zh) 基于用户移动特性的跟踪区划分方法、装置及电子设备
CN110069500B (zh) 一种非关系型数据库动态混合索引方法
CN103747419A (zh) 一种基于信号强度差值与动态线性插值的室内定位方法
CN108009265B (zh) 一种云计算环境下的空间数据索引方法
CN102737042A (zh) 建立问句生成模型的方法和装置以及问句生成方法和装置
CN112085125A (zh) 基于线性自学习网络的缺失值填补方法、存储介质及系统
CN105550368A (zh) 一种高维数据的近似最近邻检索方法及检索系统
CN105654187A (zh) 控制系统中点定位方法之网格二叉树法
CN105787076A (zh) 一种不确定空间数据上的单色相互最近邻查询处理方法
CN103945238A (zh) 一种基于用户行为的社区探测方法
CN114485611B (zh) 基于北斗网格码的三维空间最短路径规划方法和装置
CN103559209A (zh) 一种Voronoi Diagram与虚拟网格结合的高效空间最近邻查询方法
CN104424189B (zh) 基于云平台的定位解算方法和系统
Abbasifard et al. Efficient indexing for past and current position of moving objects on road networks
CN103020319A (zh) 一种实时移动空间关键字近似Top-k查询方法
CN105138527A (zh) 一种数据分类回归方法及装置
CN110263108B (zh) 一种基于道路网的关键词Skyline模糊查询方法及系统
CN116628025A (zh) 一种基于邻接矩阵的高效图流测量方法
CN104794237B (zh) 网页信息处理方法及装置
CN107657474B (zh) 一种商圈边界的确定方法及服务端
CN105701511A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160720

WD01 Invention patent application deemed withdrawn after publication