CN104573036B - 一种基于距离的求解二维空间中代表性节点集的方法 - Google Patents
一种基于距离的求解二维空间中代表性节点集的方法 Download PDFInfo
- Publication number
- CN104573036B CN104573036B CN201510021696.0A CN201510021696A CN104573036B CN 104573036 B CN104573036 B CN 104573036B CN 201510021696 A CN201510021696 A CN 201510021696A CN 104573036 B CN104573036 B CN 104573036B
- Authority
- CN
- China
- Prior art keywords
- skyline
- point
- radius
- points
- distance
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
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)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种新的基于距离的求解二维空间中代表性Skyl ine节点集的算法,输入数据集,用BNL算法计算数据集中的Skyl ine点集Q;对点集Q排序后求出初始点到其它任意Skyl ine点的曼哈顿距离值并存储;求出Skyline点集中的k个代表性Skyline点;返回k个代表性Skyl ine点。算法时间复杂度为O(k2log3m),远低于现有技术中DRS算法的时间复杂度。
Description
技术领域
本发明涉及一种新的基于距离的求解二维空间中代表性节点集的算法(NewDistance-based Representative Skyline,简称NDRS)。
背景技术
Skyline查询问题是由Borzsonyi在2001提出来的。近年来,Skyline的查询处理吸引了大批数据库研究者的注意力,迅速成为了数据库领域的一个研究热点,大量的Skyline查询处理算法孕育而生。已有的成果主要覆盖三个方面:
(1)集中式数据库上的Skyline查询处理:包括BNL算法(Block Nested Loop)、SFS算法(Sort Filter Skyline)、分治算法(Divide and Conquer)、位图算法(Bitmap)、索引算法(Index)[5]、NN算法(Nearest Neighbor)、BBS(Branch and Bound Skyline)[3]等。
(2)分布式数据库上的Skyline查询处理:包括针对普通分布式环境下的Skyline计算、特殊分布式环境下的Skyline计算、对等网络上的Skyline计算等。
(3)其它计算模型下的Skyline查询处理:包括Skyline结果集大小及计算开销估算、在任意子空间上的Skyline查询处理、在所有子空间上的Skyline查询处理以及在数据流上的Skyline查询处理等。
虽然传统定义下的Skyline算法已经相对成熟,但依然有很多方面需要仍需改进。最为突出的一点是在很多应用场景下经由Skyline查询反馈回来的Skyline点的数目过大,以至于其无法很好地服务于多目标决策。
为了解决这个问题,林学民等人于2007年首次提出了“代表性Skyline(Top-krepresentative Skyline,简称TRS)”概念,即从Skyline点集中选出k个Skyline点作为“代表性Skyline点”,而选出的k个节点需要满足以下条件:选出的k个Skyline点所支配(dominate)的数据集中的点的个数要大于或等于从Skyline点集中任意选取k个Skyline点所能支配(dominate)的数据集中点的个数。其中支配(dominate)的含义如下:给定两个d维坐标的点x=(x1,x2,…,xd)和y=(y1,y2,…,yd),如果对于任意的整数i∈[1,d],都有xi≤yi,且存在一个i使得xi<yi,则称点x支配点y。类似地,陶宇飞等人于2009年提出了“基于距离的代表性Skyline(Distance-based Representative Skyline)”的策略,其定义为:选出的k个点满足Er(κ,S)代表Skyline点集中所有非代表性skyline点到离其最近的代表性skyline点所能取得的最大距离值,然后通过动态规划算法求解得到最终的代表性Skyline点集,称为DRS算法。其中,κ表示“代表性Skyline”的点集,S指的是数据集中所有节点集合。本专利将主要采用基于距离的代表性Skyline的定义。
以上算法中,TRS算法有一个明显的缺点,即选出的“代表性Skyline点”有一定的偏向性,往往偏向于数据集中点相对密集的地方,同时它的时间复杂度(O(km2+nlog(m)))太高,其中的n表示数据集的点的个数,m表示Skyline点的个数。因此,在数据规模很大以及数据分布集中的场景下TRS的有效性将很难保证。基于DRS算法虽然很好地解决了TRS不能很好地代表整个Skyline点集的缺陷,但时间复杂度仍然过高(O(|D|.log(m)+m2(k-2))),其中|D|代表数据集的大小,这严重制约了算法的适用范围。
发明内容
本发明提供了一种新的基于距离的求解二维空间中代表性Skyline节点集的算法,算法时间复杂度为O(k2log3m),远低于DRS算法的时间复杂度。
本发明通过以下技术手段实现:
一种基于距离的求解二维空间中代表性节点集的算法,包含以下步骤:
S1,输入数据集,用BNL算法计算数据集中的Skyline点集Q;对点集Q排序后求出初始点到其它任意Skyline点的曼哈顿距离值并存储;
S2,求出Skyline点集中的k个代表性Skyline点;首先引入Testing(B)算法判断是否存在k个半径不大于B的圆环所能覆盖的区域能够包含整个Skyline点集,如果是,返回正确,否则返回错误;然后设定共k个下标,其中S0=1令1≤i≤k-1;满足Testing(radius(Si-1,Si))为错误且Testing(radius(Si-1,Si+1))为正确,则令Bopt=Er(κ,S),其中,κ代表“代表性Skyline点”集合,是输入值,S代表数据集中所有节点集合,||p,p′||表示点p与p′之间的欧式距离;
S3,将Bopt带入Testing(Bopt)中,返回k个代表性Skyline点。
其中,在所述的数据集中求区域[i,j]覆盖的多个Skyline点{pi,....pj}的中心点center(i,j)以及覆盖圆以中心点为圆心的最小半径radius(i,j),1≤i≤j≤m,其中m为Skyline点集的元素个数;定义满足
在二维空间中,NDRS算法所求解的代表性Skyline能够准确地代表Skyline点集的整体情况,通过反馈k个“代表性Skyline”点给决策者,再对决策者选定的“代表性Skyline点”对应区间展开,对区间内的Skyline点进行二次决策,完美解决了Skyline点集过大不利于决策者决策的难题,使Skyline技术更好地服务于多目标决策。在Skyline点集已知的情况下,相比于DRS算法,本发明的算法时间复杂度为O(k2log3m),远低于DRS算法的时间复杂度。
附图说明
图1为本发明算法过程示意图;
图2为点集示意图;
图3一个区域[i,j]所覆盖的多个Skyline点示意图
图4为区间[3,6]及区间[5,6]的覆盖圆环
图5为区间[1,5]的radius(i,j)随着center(i,j)的不同取值的改变情况。
具体实施方式
以下将结合附图对本发明的实施过程进行详细说明。
一种基于距离的求解二维空间中代表性节点集的算法,采用二分参数搜索技术,引入一个Testing函数,用于测试距离的可行性,并重新设计了一个新的计算半径的算法,使得程序执行时间大幅度减少。如图1所示,具体过程如下:
一、预处理
(1)计算数据集中对应的Skyline点集
在给定的数据集中,采用BNL算法,求出能够覆盖整个数据集的Skyline点集。
该算法的大体框架如下
输入:数据集G=(x,y)
输出:Skyline点集
1.1对数据集中的所有点按照x值从大到小进行排序;
1.2将排序好的数据集的第一个节点加入到Skyline点集中;
2按顺序对比当前点的y值和Skyline点集中y值最大的Skyline点对比,如果大于那个最大的Skyline点,则将当前点加入到Skyline点集中去,否则不加。循环此项操作,直至所有点都已搜索完毕。
3对Skyline点集排序并输出。
该预处理算法可以在O(nlogn)的时间复杂度内完成。
(2)求被一个区域[i,j]所覆盖的多个Skyline点{pi,....pj}的中心点center(i,j)以及覆盖圆以中心点为圆心的最小半径radius(i,j),其中m为Skyline点集的元素个数,1≤i≤j≤m。定义满足
算法大体框架如下:
输入:下标i,j;
输出:center(i,j)、radius(i,j);
1.1如果i=j,center(i,j)=i,radius(i,j)=0;
1.2否则,令left=i,right=j;当left<right.
1.2.1令
mid1=(left+right)/2,FR=||pj,pmid1||,FL=||pmid1,pi||;
1.2.2如果FR<FL,right=mid1;
1.2.3否则
1.2.3.1如果FR>FL,left+=mid1
1.2.3.2否则center(i,j)=mid1,radius(i,j)=||pj,pmid1||;
1.3Mid1=right;
1.4如果max{||pi,pmid1||,||pmid1,pj||}>max{max{||pi,pmid1-1||,||pmid1-1,pj||}},
1.4.1mid1=mid1-1;
1.4.2否则mid1不变
1.5返回center(i,j)=mid1,radius(i,j)=||pj,pmid1||;
求被区域[i,j]所覆盖的多个Skyline点{pi,....pj}的中心点)以radius(i,j)可以在O(log(m))的时间复杂度内完成。
二、由已知Skyline点集求解k个代表性Skyline点。
(1)引入Testing(B)算法判断是否存在k个当1≤i≤j≤m,radius(i,j)<=B时由半径为radius(i,j)的圆环所能覆盖的区域能够包含整个Skyline点集,如果是,返回正确,否则返回错误。
算法大体框架如下:
输入:B,排好序的Skyline点集(包含m个元素)、下标Si其中1≤i≤m。
输出:正确or错误
1.1其中1≤i≤m初始化p=0;
1.2当p<k-1
1.2.1二分搜索BiNSRCH(Si+1,j,Si+1)直至max(radius(Si+1,Si+1))<=B。同时在此过程中存储centre(Si+1,Si+1)做为B下的代表性Skyline,令p+=1;
1.3如果radius(Sk-1+1,Sk)<=B,返回正确,否则返回错误.
(2)为了求解满足的Er(κ,S),先设定共k个下标,其中S0=1令1≤i≤k-1满足Testing(radius(Si-1,Si))为错误且Testing(radius(Si-1,Si+1))为正确,则然后以此返回对应的k个代表性Skyline点。
该算法应用了Distance-Testing策略,即RSP算法,算法大体框架如下:
输入:排好序的Skyline点集(包含m个元素)、center(i,j),radius(i,j)当1≤i≤j≤m
输出:k个代表性Skyline点,Bopt。
1.1设{S0,S1,....Sk-1},其中其中S0=1
1.2 for b<-1to P-1执行
1.2.1 ilow<-Sb-1;ihigh<--m;
1.2.2当ilow<ihigh执行
imid<-(ilow+ihigh)/2;
1.2.3 B<-radius(Si-1,Si+1)
1.2.4如果Testing(B)then
Ihigh<-imid;
1.2.5否则
ilow<-imid+1;
1.2.6 Sk-1<-ihigh;
1.2.7 Bk-1<-radius(Sk-1+1,Sk-2)
BP<-radius(Sp-1,m)
1.3 Returnk个代表性Skyline点;
NDRS算法主要应用了Distance-Testing技术,它主要是在Skyline点集已知的情况下求解代表性Skyline点(简称“RSP”)的方案,并称之为DisBase算法。
DisBase算法主要思路是先从排好序的m个Skyline点对应下标中选S0=0,共k个下标,这些下标满足如下条件:当1≤i≤k-1时有radius(1,S1)<Bopt<raidus(1,S1+1),且radius(Si+1,Si+1)<Bopt<raidus(Si+1,Si+1+1)而最终的这部分的时间复杂度为O(klogm.然后由Testing(Bopt)返回最终的k个代表性Skyline点(即RSP),这部分的时间复杂度为O(k.logm),故算法的时间复杂度为O(k2log3m)。
以下是NDRS算法的具体思路及其正确性证明。
定理1:当B≥Bopt时,Testing(B)为正确.
证明:假设当B≥Bopt时,Testing(B)为错误,说明不存在任何由k个半径不大于B的圆能够完全覆盖整个Skyline点集,而B≥Bopt,那么也不可能存在任何由k个半径不大于Bopt的圆能够完全覆盖整个Skyline点集,即Testing(Bopt)为错误,与事实不符,由此可证定理1成立。
定理2:令Bopt为k个半径不大于Bopt的圆能完全覆盖Skyline点集的最小取值,则
证明:由{S0,S1,....Sk-1}本身定义可知,对于任意1≤i≤k-1,都满足Testing(radius(Si-1+1,Si+1))为正确.那我们只需证明Bopt存在于,之S中1即)可,即只需证明对第1个圆C1所覆盖的第一个Skyline点的下标为1,除1以外的第i个圆Ci所覆盖的第一个Skyline点的下标为Si-1+1。因为radius(1,S1)<Bopt,所以对于{2,...S1}不可能为Bopt所对应圆覆盖的第一个Skyline点的下标,同理可证,对任意}不可能为Bopt所对应圆覆盖的第一个Skyline点的下标,由此,定理2得证。
在现有技术中,求解Skyline的技术已经相对完善。在预处理生成Skyline点集的基础上,本发明通过NDRS算法进一步搜索出k个代表性Skyline点,大大降低了决策者的决策范围。
现在以图2中的点集为例,进一步说明算法的实施过程。
目的:求出k=3个代表性Skyline点。
一、预处理
1.1计算数据集中对应的Skyline点集
在给定的数据集{p1,p2,...,p12}中,采用BNL算法,求出能够覆盖整个数据集的Skyline点集{p1,p2...,p6}。
1.2求被一个如图3所示区域[i,j]所覆盖的多个Skyline点{pi,....pj}的中心点center(i,j)以及radius(i,j)可用如下方法,这里是在线算法,非离线算法。
求被区域[i,j]所覆盖的多个Skyline点{pi,....pj}的中心点center(i,j)以radius(i,j)可以在O(log(m))的时间复杂度内完成。
图4.为区间[3,6]及区间[5,6]的覆盖圆环,图5为区间[1,5]的radius(i,j)随着center(i,j)的不同取值的改变情况。易知可以通过比较FR、FL的大小经由二分法很快可以求出radius(1,5)=10,center(1,5)=3。二、由已知Skyline点集{p1,p2...,p6}求解3个代表性Skyline点。
如图5所示,经过预处理阶段已经求出了Skyline点集{p1,p2...,p6}并可在O(1)的时间内求出任意两个Skyline点之间的距离。(这里||p1,p2||=2,||p2,p3||=4,||p3,p4||=6,||p4,p5||=4,||p5,p6||=2),设有下标{S0,...Si},0<i<k,其中S0=1,这里,k=3.则需要求出S1,S2的值,S1,S2满足Testing(radius(Si-1,Si))为错误且Testing(radius(Si-1,Si+1))为正确.
具体求解步骤如下:
1)用二分法求S1,S2,设ilow=1,ihigh=6;imid=(ilow+ihigh)/2=3;
2)判断Testing(radius(1,3)),调用1.2中方法求得radius(1,3)=4,令B=4,Testing(B)可由二分法求解:
2.1)参考Testing算法伪代码,步骤如下:
1.设ilow2=1,ihigh2=6;imid2=(ilow2+ihigh2)/2=3;
2.radius(1,3)=B,则ilow2=4,ihigh2=6;imid2=5;
3.radius(4,5)>B,此时ilow2=4,ihigh2=imid2-1=4;
4.radius(5,6)=2<B,返回正确.
3)ilow=1,ihigh=imid=4;
3.1)imid=(ilow+ihigh)/2=2;
Testing(imid)=Testing(2),同2.1)方法可得Testing(2)为错误,由此可得S1=2.
1)ilow=3,ihigh=6,同理可得S2=3.
2)由Testing(Bopt)可返回对应center(i,j)作为代表性skyline点,求得代表性Skyline点为{p2,p4,p5}。
Claims (1)
1.一种基于距离的求解二维空间中代表性节点集的方法,包含以下步骤:
S1,输入数据集D,用BNL算法计算求得数据集D中由m个Skyline点所组成的子集Q={p1,p2…,pm},对排序好的点集Q,求出初始点到其它任意Skyline点的曼哈顿距离值并存储;
S2,求出已排序好的Skyline点集Q={p1,p2…,pm}中的k个代表性Skyline点,首先引入Testing(B)算法判断是否存在k个以Q中任意两个下标分别为i,j(1≤i≤j≤m)的skyline点pi,pj距离值为半径的圆环所能覆盖的区域能够包含整个Skyline点集,如果存在,返回正确,否则返回错误;然后设定{S0,S1,....Sk-1},共k个下标,其中S0=1令1≤i≤k-1;满足Testing(radius(Si-1,Si))为错误且Testing(radius(Si-1,Si+1))为正确,则 令Bopt=Er(κ,S),其中,κ代表“代表性Skyline点”集合,是输入值,S代表数据集中所有节点集合,||p,p′||表示点p与p′之间的欧式距离;
S3,将Bopt带入Testing(Bopt)中,返回k个代表性Skyline点;
其中,在数据集Q={p1,p2…,pm}中,求能覆盖下标区域[i,j](1≤i≤j≤m)所对应的多个Skyline点{pi,pi+1,….,pj}的最小覆盖圆的圆心center(i,j)以及半径radius(i,j),定义center(i,j)=pu,最小覆盖圆半径需满足
其中pi,pj分别代表下标i,j所对应的Skyline点;
其中圆半径的取值B满足B>=radius(i,j),其中radius(i,j)表示点i到点j的距离,使得整个Skyline点集都处于这k个圆所能覆盖的区域之中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510021696.0A CN104573036B (zh) | 2015-01-16 | 2015-01-16 | 一种基于距离的求解二维空间中代表性节点集的方法 |
PCT/CN2015/081146 WO2016112618A1 (zh) | 2015-01-16 | 2015-06-10 | 一种基于距离的求解二维空间中代表性节点集的算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510021696.0A CN104573036B (zh) | 2015-01-16 | 2015-01-16 | 一种基于距离的求解二维空间中代表性节点集的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104573036A CN104573036A (zh) | 2015-04-29 |
CN104573036B true CN104573036B (zh) | 2018-07-27 |
Family
ID=53089098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510021696.0A Expired - Fee Related CN104573036B (zh) | 2015-01-16 | 2015-01-16 | 一种基于距离的求解二维空间中代表性节点集的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104573036B (zh) |
WO (1) | WO2016112618A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573036B (zh) * | 2015-01-16 | 2018-07-27 | 深圳大学 | 一种基于距离的求解二维空间中代表性节点集的方法 |
CN105760549B (zh) * | 2016-03-22 | 2019-01-18 | 南京邮电大学 | 基于属性图模型的近邻查询方法 |
CN106503245B (zh) * | 2016-11-08 | 2019-07-26 | 深圳大学 | 一种支撑点集合的选择方法及装置 |
CN107633024B (zh) * | 2017-08-30 | 2023-05-12 | 清华大学 | 多维属性最优点组的快速搜索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339553A (zh) * | 2008-01-14 | 2009-01-07 | 浙江大学 | 面向海量数据近似快速聚类和索引方法 |
CN102945283A (zh) * | 2012-11-19 | 2013-02-27 | 武汉大学 | 一种语义Web服务组合方法 |
CN103020234A (zh) * | 2012-12-17 | 2013-04-03 | 东北大学 | 一种面向同构对称发布及订阅系统的Top-k查询方法 |
CN103150336A (zh) * | 2013-02-04 | 2013-06-12 | 浙江大学 | 一种基于用户聚类的sky line在线计算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573036B (zh) * | 2015-01-16 | 2018-07-27 | 深圳大学 | 一种基于距离的求解二维空间中代表性节点集的方法 |
-
2015
- 2015-01-16 CN CN201510021696.0A patent/CN104573036B/zh not_active Expired - Fee Related
- 2015-06-10 WO PCT/CN2015/081146 patent/WO2016112618A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339553A (zh) * | 2008-01-14 | 2009-01-07 | 浙江大学 | 面向海量数据近似快速聚类和索引方法 |
CN102945283A (zh) * | 2012-11-19 | 2013-02-27 | 武汉大学 | 一种语义Web服务组合方法 |
CN103020234A (zh) * | 2012-12-17 | 2013-04-03 | 东北大学 | 一种面向同构对称发布及订阅系统的Top-k查询方法 |
CN103150336A (zh) * | 2013-02-04 | 2013-06-12 | 浙江大学 | 一种基于用户聚类的sky line在线计算方法 |
Non-Patent Citations (1)
Title |
---|
《Distance-based Representative Skyline》;Yufei Tao 等;《IEEE 25th International Conference on Data Engineering》;20090402;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104573036A (zh) | 2015-04-29 |
WO2016112618A1 (zh) | 2016-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776400B2 (en) | Clustering using locality-sensitive hashing with improved cost model | |
CN111199214B (zh) | 一种残差网络多光谱图像地物分类方法 | |
CN104573036B (zh) | 一种基于距离的求解二维空间中代表性节点集的方法 | |
CN111327377B (zh) | 场强预测方法、装置、设备及存储介质 | |
CN109614935A (zh) | 车辆定损方法及装置、存储介质及电子设备 | |
CN110991653A (zh) | 一种针对不平衡数据集分类的方法 | |
CN108627798B (zh) | 基于线性判别分析和梯度提升树的wlan室内定位算法 | |
CN105320764A (zh) | 一种基于增量慢特征的3d模型检索方法及其检索装置 | |
US20180300289A1 (en) | Information Determining Method and Apparatus | |
CN112203324B (zh) | 一种基于位置指纹库的mr定位方法及装置 | |
CN115860091A (zh) | 一种基于正交约束的深度特征描述符学习方法 | |
CN117495891B (zh) | 点云边缘检测方法、装置和电子设备 | |
CN106960134A (zh) | 一种适用于木聚糖酶氨基酸相互作用网络聚类的s‑fcm算法 | |
CN107193979B (zh) | 一种同源图片检索的方法 | |
Vakal | Seeking optimal knots for segment approximation | |
CN109284409A (zh) | 基于大规模街景数据的图片组地理定位方法 | |
Wang et al. | Feature selection methods in the framework of mRMR | |
CN108305174B (zh) | 资源处理方法、装置、存储介质和计算机设备 | |
CN109993338B (zh) | 一种链路预测方法及装置 | |
CN111126617B (zh) | 一种选择融合模型权重参数的方法、装置及设备 | |
CN111163514B (zh) | 一种最优区域自适应选取的指纹定位方法和系统 | |
CN108846577B (zh) | 一种基于情境分析的群体任务分配方法 | |
CN111832168A (zh) | 一种面向高维多目标优化的可视化方法 | |
Antunes et al. | AL and S methods: Two extensions for L-method | |
Sudeng et al. | Finding knee solutions in multi-objective optimization using extended angle dominance approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180727 Termination date: 20200116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |