一种不确定单色相互最近邻查询处理方法与流程

文档序号:15200098发布日期:2018-08-19 10:38阅读:376来源:国知局

本发明属于时空数据库技术领域,具体地涉及一种不确定单色相互最近邻查询处理方法。



背景技术:

时空数据库是数据库领域的重要分支,时空查询是时空数据库中的重要操作,根据空间条件可以分为:范围查询、最近邻查询、反向最近邻查询等等。相互最近邻查询是最近邻查询、反向最近邻查询的变形和扩展,其计算结果是给定点的最近邻,同时也以给定点为最近邻的数据点。相互最近邻查询在诸如数据挖掘、模式识别和决策支持等领域有着重要的应用价值。

在单色相互最近邻查询中,查询发出者q和目标对象属于同一个数据集d。因此一个数据对象o被认为是查询发出者q的相互最近邻,当且仅当数据集中任一对象o′与q间的距离大于o与q间的距离,同时o′与o间的距离大于o与q间的距离。即dist(q,o)≤dist(q,o′)∧dist(o,q)≤dist(o,o′)},其中dist(,)是两个对象之间的距离函数。

在时空数据库中最常用的索引结构是基于r树的,或者是其派生出来的。r树是一种高度平衡树,可以实现完全动态索引。本发明用到的索引结构即为r树。

由于定位技术、网络的带宽、系统存储等多种因素的限制,时空对象的数据只能以离散方式获取。此外,由于测量误差、具体应用的特点(如位置隐私保护)等因素使得时空数据库中存储的信息往往和对象的实际数据不一致。位置不确定性是时空数据库、lbs等领域不可回避的问题。一般用一个空间区域表示对象在某一时刻可能的位置范围,称为不确定域,用概率密度函数来表示对象位置在不确定域内的概率分布情况。

博士论文《位置不确定移动对象查询处理关键技术研究》(南京航空航天大学,2013年10月)中提出了一种基于多轮最近邻搜索技术的方法(记为mn),虽然可以解决此问题,但是存在以下缺陷:(1)对r树多次从根结点重复访问,因而i/o代价较高;(2)候选集过大,一方面引起不必要的i/o操作,另一方面增加了精炼步骤中的概率计算量,使得时间代价过高。

在专利号为201610118192.5的发明专利《一种不确定空间数据上的单色相互最近邻查询处理方法》(记为nr)中,提出:首先,利用重用技术避免重复从根结点访问r树,从而减少了反向最近邻搜索和概率计算列表构造过程中的i/o操作;其次,通过反向最近邻查询与最近邻查询的结果求交,获得更小的候选对象集,既减少了概率计算量又降低了i/o次数。相对于方法mn,性能有很大改进。

但是,nr方法仍然有以下改进的空间:(1)方法nr需要进行反向最近邻查询,虽然利用了重用技术,但是i/o开销仍然较高,且其中一部分是可以避免的;(2)在反向最近邻查询过程中,被gp规则剪枝的对象没能用于后继对象的排除,这也会引起不必要的i/o操作和时间代价。



技术实现要素:

本发明的目的在于针对现有技术的缺陷或问题,提供一种不确定单色相互最近邻查询处理方法。

本发明的技术方案如下,一种不确定单色相互最近邻查询处理方法,包括如下步骤:

步骤1:初始化最小堆hrfn,令集合stemp,ocand,opru为空;

步骤2:遍历r树,在此过程中更新并得到所有对象到查询对象q的最远距离的最小值minf,并将到q的最近距离大于minf的结点及对象剪枝,同时按到q的最近距离为关键字将被剪枝的结点和对象保存至最小堆hrfn中,未能被剪枝的对象保存在集合nnq中;

步骤3:将nnq中的每个对象o按照其到q的最近距离为关键字插入hrfn中;同时在集合ocand上使用gp规则对对象o进行判断,如果o符合条件,则将o插入集合opru,否则将o插入集合ocand;

步骤4:将hrfn中的元素全部插入集合stemp。

步骤5:在集合opru上使用gp规则,找出集合ocand中一定不是q的反向最近邻的对象,并作标记;

步骤6:遍历集合stemp,依次对集合ocand中每个未作标记的对象o进行最近邻查询,得到各自的候选集nno;

步骤7:依次对集合ocand中每个未作标记的对象o构造各自的概率计算列表sno,sno为nno与nnq的并集且排除o和q;

步骤8:按下式依次计算集合ocand中每个未作标记的对象o的概率值:

其中nq,o和fq,o分别是q与o的最近距离和最远距离,dist(,)是两点之间的距离函数,pr{}表示某事件为真的概率;

步骤9:将概率值大于概率阈值的候选对象插入结果集并返回。

优选地,gp规则具体为:只要o完全位于集合s中某一个对象co的剪枝区域prco内,则称对象o符合gp规则,即o一定不是q的反向最近邻;其中剪枝区域prco由平面内到q的最近距离大于到对象co最远距离的所有点组成。在一种不确定单色相互最近邻查询处理方法的步骤3中s为集合ocand,步骤5中s为集合opru。

与现有方法相比,本发明提供的技术方案具有如下有益效果:

首先,所述不确定单色相互最近邻查询处理方法在完成查询对象q的最近邻搜索后,不直接进行q的反向最近邻搜索,而是利用gp规则将最近邻查询结果中一定不是q的反向最近邻的对象排除,从而在现有方法基础上进一步减少了i/o次数和时间代价;

其次,所述不确定单色相互最近邻查询处理方法利用前序步骤中排除的对象构造剪枝区域,再次使用gp规则来进一步缩小相互最近邻候选集,降低了i/o次数和相互最近邻概率的计算量,从而降低了时间代价;

此外,所述不确定单色相互最近邻查询处理方法在不同不确定性大小、不同数据集分布等情况下,与现有方法相比,运行效率高,即i/o代价低、查询时间短;本方法用于处理lbs中对应的查询处理问题,能够提高查询处理效率。

附图说明

图1是本发明实施例提供的不确定单色相互最近邻查询处理方法的流程图;

图2是在一个不确定数据集上进行最近邻搜索的原理图,(a)搜索q的不确定最近邻,(b)搜索h的不确定最近邻,(c)搜索i的不确定最近邻,(d)搜索c的不确定最近邻,(e)搜索e的不确定最近邻,(f)搜索b的不确定最近邻;

图3是为图2所示数据集构造的r树的示意图;

图4是在不确定数据集上使用gp规则剪枝的原理图,(a)剪枝区域prh,(b)剪枝区域pri,(c)剪枝区域prc,(d)剪枝区域pre;

图5是本发明方法与现有方法在时间代价上的对比图,(a)在数据集lb上,(b)在数据集ca上;

图6是本发明方法与现有方法在i/o次数上的对比图,(a)在数据集lb上,(b)在数据集ca上。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

除非上下文另有特定清楚的描述,本发明中的元件和组件,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。可以理解,本文中所使用的术语“和/或”涉及且涵盖相关联的所列项目中的一者或一者以上的任何和所有可能的组合。

如图1所示,一种不确定单色相互最近邻查询处理方法,包括以下步骤:

步骤1:初始化最小堆hrfn,令集合stemp,ocand,opru为空;

步骤2:遍历r树,在此过程中更新并得到所有对象到查询对象q的最远距离的最小值minf,并将到q的最近距离大于minf的结点及对象剪枝,同时按到q的最近距离为关键字将被剪枝的结点和对象保存至最小堆hrfn中,未能被剪枝的对象保存在集合nnq中;

步骤3:将nnq中的每个对象o按照其到q的最近距离为关键字插入hrfn中;同时在集合ocand上使用gp规则对对象o进行判断,如果o符合剪枝条件,则将o插入集合opru,否则将o插入集合ocand;而且,gp规则具体为:只要o完全位于ocand中某一个候选对象co的剪枝区域prco内,则o一定不是q的反向最近邻,o可以被排除,剪枝区域prco由平面中到q的最近距离大于到对象co最远距离的所有点组成;

步骤4:将hrfn中的元素全部插入集合stemp;

步骤5:在集合opru上使用gp规则,找出集合ocand中一定不是q的反向最近邻的对象,并作标记;

步骤6:遍历集合stemp,依次对集合ocand中每个未作标记的对象o进行最近邻查询,得到各自的候选集nno;

步骤7:依次对集合ocand中每个未作标记的对象o构造各自的概率计算列表sno,sno为nno与nnq的并集且排除o和q;

步骤8:按下式依次计算集合ocand中每个未作标记的对象o的概率值:

其中nq,o和fq,o分别是q与o的最近距离和最远距离,dist(,)是两点之间的距离函数,pr{}表示某事件为真的概率;

步骤9:将概率值大于概率阈值的候选对象插入结果集并返回。

如果将发明人在博士论文《位置不确定移动对象查询处理关键技术研究》(南京航空航天大学,2013年10月)中提出的一种基于多轮最近邻搜索技术的方法,记作mn方法,其步骤如下:

步骤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:判断概率值是否大于概率阈值,是则将对象插入结果集并返回。

如果将发明人在专利号为201610118192.5的发明专利《一种不确定空间数据上的单色相互最近邻查询处理方法》中提出的基于最近邻和反向最近邻搜索的方法,记作nr方法,其步骤如下:

步骤1:初始化最小堆hrfn,令集合stemp为空;

步骤2:遍历r树,得到查询对象q的最近邻候选集nnq,并且将此过程中剪枝的结点和对象保存在最小堆hrfn中;

步骤3:将q的最近邻候选集nnq中的对象以到q的最近距离为关键字插入hrfn中;

步骤4:将hrfn中的元素同时插入集合stemp;

步骤5:遍历hrfn得到q的反向最近邻候选集rnnq;

步骤6:求出nnq与rnnq的交集作为q的相互最近邻候选集mnnq;

步骤7:对mnnq中每个对象o,遍历集合stemp得到o的最近邻候选集,记作nno;

步骤8:为mnnq中每个对象o构造概率计算列表sno,sno为nno与nnq的并集且排除o和q;

步骤9:按下列公式计算mnnq中每个对象o的概率值;

步骤10:将概率值大于概率阈值的候选对象插入结果集并返回。

将本发明实施例提供的不确定单色相互最近邻查询处理方法,记作optnr方法,则通过图2、图3及图4共同说明optnr方法相对于mn方法和nr方法的优势。

如果采用mn方法,先是遍历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,e分别在概率计算列表snh,sni,snc和sne上计算概率。

如果采用nr方法,则:

执行完步骤2后,根据图2(a)可知nnq={h,i,c,e,b};在此过程中被剪枝的结点和对象按照到q的最近距离为主键被保存在最小堆hrfn中,则hrfn中的内容为

执行完步骤3后,

执行完步骤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上计算概率。

如果采用optnr方法,则:

步骤1~步骤2的结果和nr方法一致;

执行到步骤3时,利用gp规则对nnq={h,i,c,e,b}中的对象排除后,根据图4(a)~(c)得到ocand={h,i,c},opru={e,b},hrfn中的内容与方法nr中相同;

步骤4的结果与nr方法相同;

步骤5在上一轮被gp规则排除的对象集合opru上,再次使用gp规则对集合ocand中的对象进行判断,根据图4(d)可知,对象c完全位于pre内,所以可以排除c,于是对其进行标记,得到ocand={h,i,c*};

步骤6中仅需对ocand中未作标记的对象h和i进行最近邻查询,得到nnh={q,i,e,b,g},nni={q,h,g,f};

步骤7对h和i构造概率计算列表snh={i,c,e,b,g},sni={h,c,e,b,g,f}。

步骤8中只需对2个对象h和i分别在概率计算列表snh和sni上计算概率。

在图2~图4所示实例中,optnr方法和nr方法从根结点访问r树都是1次,而mn方法从根结点访问r树共6次,三种方法获得的候选对象数目分别为2个、3个和4个。

由于optnr方法在两个步骤中采用了gp规则:

第一次用gp规则对nnq中的对象进行判断,排除其中不可能是q的反向最近邻的对象,而nr方法则通过遍历hrfn得到q的反向最近邻集合rnnq之后再与nnq求交集,显然nnq中的对象大大少于hrfn中对象和结点的数量,因此方法optnr的i/o次数和计算量小于后者;

此外,optnr方法利用被排除的对象集合opru,对候选对象集ocand再次使用gp规则,进一步缩小了候选集,因此在步骤6中,其比nr方法少进行一次对象c的最近邻搜索,进一步减少了i/o次数,同时optnr方法的候选集规模更小,本例中optnr方法的候选集为{h,i},而nr方法的候选集为{h,i,c},于是前者在概率计算等步骤中花费的时间代价也进一步降低。因此optnr方法的i/o次数及时间代价是三种方法中最低的。

图5和图6分别给出了mn方法、nr方法和optnr方法在时间代价和i/o次数上的对比。显然optnr方法是三种方法中性能最优的。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1