CN107633024A - 多维属性最优点组的快速搜索方法 - Google Patents
多维属性最优点组的快速搜索方法 Download PDFInfo
- Publication number
- CN107633024A CN107633024A CN201710764716.2A CN201710764716A CN107633024A CN 107633024 A CN107633024 A CN 107633024A CN 201710764716 A CN201710764716 A CN 201710764716A CN 107633024 A CN107633024 A CN 107633024A
- Authority
- CN
- China
- Prior art keywords
- point
- mdg
- skyline
- dimension
- searching
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种多维属性最优点组的快速搜索方法,包括:设计基础MDG构建算法;使用R‑tree索引对基础MDG构建算法进行优化;基于MDG搜索所有的g‑skyline组。本发明提出了一种R‑tree的变种来加速构建多维数据的MDG,提出了P‑MDS和G‑MDS两种基于MDG的g‑skyline组搜索算法,它们能够基于不同的策略生成候选组,同时利用skyline组合性质显著提升了这两个算法的效率,通过实验证明,G‑MDS算法的效率比现有的最好的g‑skyline搜索算法往往高1‑2个数量级,本发明提出的最优点组搜索算法非常高效。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种多维属性最优点组的快速搜索方法。
背景技术
近年来,skyline问题吸引了越来越多的研究者的关注。所谓skyline问题,即在多维属性点构成的集合中,搜索所有的skyline节点。skyline节点支配概念是,点a支配点b当且仅当在所有维度的属性上a不比b差且至少在一个维度的属性上a优于b,不被集合中的任意其它节点支配的节点就叫skyline节点。一个多维属性点集合的skyline指的是所有skyline点的集合,而不同的skyline点代表着维度之间的不同类型的权衡,数据点集的skyline对于可能存在不同标准的决策制定有着很重要的作用,数据点集的skyline提供了所有的最优选项。
如图1所示,图中展示了一个经典的skyline问题的例子,该数据点集包含12个点,每个点代表一个旅馆,每个旅馆包含两个属性:价格和距海滩的距离,图中的横坐标代表价格,纵坐标代表距海滩的距离。假设一个旅馆距海滩越近、价格越便宜越好,可以找到这些旅馆构成的二维属性点集的skyline是{P1,P2,P4,P7,P9},当需要选择一个旅馆时,skyline中的每个点都认为是最优选项。假如一个大型的旅行机构因为人数较多需要预定三个旅馆而不是一个,这个问题其实是skyline问题的一个变种,我们不再是搜索最优点(即skyline点),而是搜索大小为3的最优点组,点组即点集合,最优点组即最优的点集合。把最优点组也叫g-skyline组,把在多维属性点集中所有g-skyline组的搜索问题称为g-skyline问题。
在现有技术中,一种方法是对于g-skyline组的搜索问题使用虚拟的聚合点来表示每个组,聚合点的各个维度的属性值是对组中所有点对应维度属性值进行聚合操作得到的,进而,两个组之间的支配关系转化为两个虚拟聚合点的支配关系,基于这种定义的组支配关系并不能生成所有的最优组。另一种方法是提出了一种新的组支配关系的定义,并在该定义的基础上给出了搜索g-skyline组的算法,首先构建一个数据结构,叫做有向skyline图,简称DSG,然后基于DSG提出了PWise和UWise+两种算法来搜索g-skyline组。然而,该算法存在以下不足:
一是DSG结构中包含很多冗余的点,这些点对于搜索g-skyline组是无用的,我们认为可以设计一种更优的无冗余的数据结构来代替DSG;
二是DSG结构的构建算法对于高维数据是不友好的,因为它只针对二维数据做了优化;
三是基于DSG提出的PWise和UWise+并不高效,还有较大的优化空间,如可以在剪枝策略上做一些优化;
四是在一个数据点集的所有g-skyline组中,完全由skyline点构成的g-skyline组往往会占很高的比例,而基于DSG提出的PWise和UWise+都没有考虑到这一点,所以缺少针对这种现象的优化。
因此,现有技术需要改进。
发明内容
本发明实施例所要解决的技术问题是提供一种多维属性最优点组的快速搜索方法,以解决现有技术存在的问题。
为了解决上述问题,本发明公开了一种多维属性最优点组的快速搜索方法,包括:设计基础MDG(最小支配图)构建算法,所述MDG构建算法的基本内涵为:令P是一个d维属性点集合,a、b是P中的两个点且a≠b,点支配表示为a支配b当且仅当a[i]≤b[i]且a[i]<b[i],用表示a支配b,用表示a支配b或a等于b,令a是一个skyline点当且仅当P中不存在点能够支配a,则P的skyline代表P中所有的skyline点,用skyline(P)表示,令A={a1,a2,…,al}、B={b1,b2,…,bl}是P的两个大小为l的子集,A支配B当且仅当存在两个置换A={au1,au2,...,aul)、B={bv1,bv2,…,bvl},
且用表示A支配B,则A是g-skyline组当且仅当P中不存在大小为l的子集能够支配A,P的大小为l的g-skyline表示P中所有的包含l个点的g-skyline组,P的MDG是一个有向无环图,图中的每个节点代表P中的一个点,图中的每条边代表一个点支配关系,且MDG是由所有被少于l个点支配的点以及这些点之间的支配关系构成的;
使用R-tree索引对基础MDG构建算法进行优化;
基于MDG搜索所有的g-skyline组。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述设计基础MDG构建算法包括:
将MDG初始化为一个空图G=(V,E);
按照第一维的属性值对P中的点进行升序排序;
记当前MDG中所有父亲组大小为l的点构成的集合为L,对P中的每个点p,判断p是否能被L中的某个点支配,所述父亲组的定义为:设P是一个d维属性点集合,l是要搜索的g-skyline组的大小,在MDG中,点p和它的所有父亲构成了p的父亲组,记为g(p),所述父亲的定义为:如果a支配b,则a是b的父亲,b是a的孩子;
如果p能被L中的某个点支配,则说明p的父亲点至少有l个,即至少有l个点可以支配p,则p不能被加入MDG;
遍历V-L中的所有点来寻找所有能够支配点p的点,然后将这些点加入点p对应的父亲点集合parents中,如果parents的大小大于等于l,则p不能被加入MDG中;
将p加入V中,并将所有从集合parents中的点指向点p的边加入MDG的边的集合中;
如果集合parents的大小为l-1,则将p加入L中。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述按照第一维的属性值对P中的点进行升序排序中,如果两个点在第一维上有相同的属性值,则比较第二维的属性值,如果两个点在第二维上有相同的属性值,则比较第三维的属性值,依次类推。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述使用R-tree索引对基础MDG构建算法进行优化为基于启发式分裂策略的R-tree的变种优化基础MDG构建算法。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述基于启发式分裂策略的R-tree为:对于要分裂的叶子节点,对叶子节点中的每个数据点的所有维度属性值求和并排序,按照排序结果对叶子节点中的数据点进行平分,和值低的一半形成一个新的节点,和值高的一半形成另一个新的节点,对于要分裂的R-tree中的内部节点,使用其MBR的质心来代表它。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述使用R-tree索引对基础MDG构建算法包括:
通过函数SearchForParents(p,R)搜索R-tree获得点p的父亲点集合parents;
把父亲点集合parents大小小于l的点加入R-tree索引中。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述函数SearchForParents(p,R)为基于R-tree上的搜索操作,通过搜索一个d维空间,记为Areap,Areap的每个维度的区间范围是从该维度的最小值到点p在该维度的值,当搜索某个分支时已经搜索出多于l-1个点后就停止搜索,此时即可判断出点p不能被加入MDG。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述基于MDG搜索所有的g-skyline组包括:P-MDS搜索方法和G-MDS搜索方法以及利用skyline组合性质优化P-MDS和G-MDS。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述P-MDS搜索方法包括:
将结果集R以及当前候选集gr初始化为空集;
将MDG中的点按照父亲点的个数进行升序排序;
将每个skyline点分别加入当前空的gr中并分别进行深度优先搜索(DFS);
当DFS结束时,R中便包含了所有的g-skyline组。
在基于上述多维属性最优点组的快速搜索方法的另一个实施例中,所述深度优先搜索(DFS)的实现基于函数SearchSinglePoint(),它是一个递归函数,如果当前候选组gr已经包含l个点,则我们认为它就是一个大小为l的g-skyline组,所以把它加入结果集R中如果gr的大小小于l,则将一个符合要求的候选点加入gr中并递归调用SearchSinglePoint(),符合要求的候选点的含义为,对于有序序列中plast后的每个点p,如果p的所有的父亲点都在gr中,则点p是一个符合要求的候选点,所述plast代表当前候选组gr中最后一个被加入的点。
与现有技术相比,本发明包括以下优点:
本发明提供的方案引入了g-skyline支持结构的概念,并提出了一种R-tree的变种来加速构建多维数据的MDG,提出了P-MDS和G-MDS两种基于MDG的g-skyline组搜索算法,它们能够基于不同的策略生成候选组,同时利用skyline组合性质显著提升了这两个算法的效率,通过实验证明,G-MDS算法的效率比现有的最好的g-skyline搜索算法往往高1-2个数量级,本发明提出的最优点组搜索算法非常高效。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是基于12个旅馆的skyline问题示意图;
图2是本发明的多维属性最优点组的快速搜索方法的一个实施例的流程图;
图3是本发明的多维属性最优点组的快速搜索方法的另一个实施例的流程图;
图4是本发明的多维属性最优点组的快速搜索方法的又一个实施例的流程图;
图5是本发明的多维属性最优点组的快速搜索方法的又一个实施例的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2是本发明的多维属性最优点组的快速搜索方法的一个实施例的流程图,如图2所示,所述多维属性最优点组的快速搜索方法包括:
10,设计基础MDG(最小支配图)构建算法;
20,使用R-tree索引对基础MDG构建算法进行优化;
30,基于MDG搜索所有的g-skyline组。
为了更好的说明MDG构建算法,需首先做如下说明:
定义1.定义点支配概念,假设P是一个d维属性点集合,a、b是P中的两个点且a≠b,点支配是P上的一种偏序关系。实际应用中,属性值可能越大越优,也可能越小越优,不失一般性,我们约定各维度的属性值越小越优,a支配b当且仅当a[i]≤b[i]且a[i]<b[i],用表示a支配b,用表示a支配b或a等于b;
定义2.定义Skyline概念,假设P是一个d维属性点集合,a是一个skyline点当且仅当P中不存在点能够支配a,则P的skyline代表P中所有的skyline点,用skyline(P)表示;
定义3.定义组支配概念,假设P是一个d维属性点集合,A={a1,a2,…,al}、B={b1,b2,…,bl}是P的两个大小为l的子集,A支配B当且仅当存在两个置换A={au1,au2,...,aul}、B={bv1,bv2,...,bvl},且用表示A支配B;
定义4.定义G-Skyline概念,假设P是一个d维属性点集合,A是P的大小为l的子集。A是g-skyline组当且仅当P中不存在大小为l的子集能够支配A。P的大小为l的g-skyline表示P中所有的包含l个点的g-skyline组;
定义5.定义MDG概念,假设P是一个d维属性点集,P的MDG是一个有向无环图,图中的每个节点代表P中的一个点,图中的每条边代表一个点支配关系,且MDG是由所有被少于l个点支配的点以及这些点之间的支配关系构成的。
定理1:验证定理。假设P是一个d维属性点集合,A是P的大小为l的子集。A是一个g-skyline组当且仅当不存在集合A以外的点能够支配a,通过证明其必要性和充分性来证明上述定理成立:
一是必要性,已知对于不存在集合A以外的点能够支配a,即所有能够支配点a的点一定属于集合A,假设A不是一个g-skyline组,则存在一个包含l个点的集合B能够支配A。根据组支配概念,存在两个置换A={au1,au2,...,aul}、B={bv1,bv2,...,bvl},且假设则根据已知条件,bvm一定属于A,假设bvm=aun,又bvn≠bvm=aun,则有根据支配的传递性有所以bvn也属于A。重复此推导过程,可以证明B中所有的点都能支配aum,即至少有l个点可以支配aum,而集合A的大小为l,所以至少存在一个能够支配aum的点不属于集合A,与条件矛盾,因此,必要性成立;
二是充分性,已知A是一个g-skyline组,假设对于某个点a∈A,存在一个点b能支配a且将A中的点a替换为点b,则得到一个新的集合A',显然,与A是g-skyline组矛盾,因此,充分性成立。
由上可得如下推论:假设P是一个d维属性点集合,A是P的大小为l的子集。如果A是一个g-skyline组,则P中能够支配点a的点的个数一定小于l。
证明:因为A是一个g-skyline组,所以所有能够支配点a的点一定属于集合A,因为A包含l个点且a不支配a,所以能够支配点a的点最多有l-1个,即能够支配点a的点的个数一定小于l。
在MDG概念的定义中,如果a支配b,定义a是b的父亲,b是a的孩子。
定义6.定义g-skyline支持结构,假设P是一个d维属性点集合,l是要搜索的g-skyline组的大小,一个g-skyline支持结构是一个由P的子集V及V中点之间的支配关系构成的数据结构,同时V必须包含所有会出现在大小为l的g-skyline组的点,如果V中不包含不出现在任何大小为l的g-skyline组的点,那么把它对应的g-skyline支持结构叫做最小g-skyline支持结构。
定义7.定义父亲组,假设P是一个d维属性点集合,l是要搜索的g-skyline组的大小,在MDG中,点p和它的所有父亲构成了p的父亲组,记为g(p)。
易得,对于MDG中的点p的父亲组g(p),有
证明MDG是一个g-skyline支持结构且是最小g-skyline支持结构:
一是证明MDG是一个g-skyline支持结构:
对于任意一个出现在大小为l的g-skyline组的点,能够支配该点的点的个数一定小于l,显然该点在MDG中。
二是证明MDG是最小g-skyline支持结构:
假设MDG包含一个不出现在任何大小为l的g-skyline组的点p,首先任意选择一个大小为l的g-skyline组,记为gr,则gr∪g(p)是一个g-skyline组,因为p∈g(p)且所以有|gr∪g(p)|>gr|=l,由于MDG是一个有向无环图,所以至少存在一个点p″∈gr-g(p),使得p″的任意一个孩子都不属于gr-g(p),p″的任意一个孩子也不属于g(p),重复从gr中去掉这样的点,直到得到一个大小为l的g-skyline组gr∪g(p),此时,点p在一个g-skyline组中,与假设矛盾。
因此,MDG是一个g-skyline支持结构,且是最小g-skyline支持结构,基于MDG搜索所有的g-skyline组是可行的,而且相对于基于其它g-skyline支持结构搜索,基于MDG搜索是最优的。
图3是本发明的多维属性最优点组的快速搜索方法的另一个实施例的流程图,如图3所示,所述设计基础MDG构建算法包括:
101,将MDG初始化为一个空图G=(V,E);
102,按照第一维的属性值对P中的点进行升序排序,这样排序的优点是能够保证每个点在排序后不被后边的点所支配,对于任意点,只需要找到该点之前有多少点能够支配该点,就能知道P中一共有多少点能够支配该点,进而来判断是否将该点加入MDG;
103,记当前MDG中所有父亲组大小为l的点构成的集合为L,对P中的每个点p,判断p是否能被L中的某个点支配,所述父亲组的定义为:设P是一个d维属性点集合,l是要搜索的g-skyline组的大小,在MDG中,点p和它的所有父亲构成了p的父亲组,记为g(p),所述父亲的定义为:如果a支配b,则a是b的父亲,b是a的孩子;
104,如果p能被L中的某个点支配,则说明p的父亲点至少有l个,即至少有l个点可以支配p,则p不能被加入MDG;
105,遍历V-L中的所有点来寻找所有能够支配点p的点,然后将这些点加入点p对应的父亲点集合parents中,如果parents的大小大于等于l,则p不能被加入MDG中;
106,将p加入V中,并将所有从集合parents中的点指向点p的边加入MDG的边的集合中;
107,如果集合parents的大小为l-1,则将p加入L中。
所述按照第一维的属性值对P中的点进行升序排序中,如果两个点在第一维上有相同的属性值,则比较第二维的属性值,如果两个点在第二维上有相同的属性值,则比较第三维的属性值,依次类推。
基础MDG构建算法的算法程序为:
Initialize G=(V,C)with an empty graph;
Sort zhe data points in P in zhe ascending order of their values onzhe first dimension;
L←φ/*L consisits of all zhe points which have l-a parents*/
For all p∈P do
Flag←TRUE
For all p’∈L do
If p'
Flag←FALSE
Break
End if
End for
If flag is TRUE then
parents←φ
for all p'∈V-Ldo
if p'
parents←parents∪{p’}
if[parents]=l then
Flag←FALSE
Break
End if
End for
End if
If flag is TRUE then
V←V∪{p}
For all p’∈parents do
Add an edge into E from p’to p End if
if[parents]=l-l then
L=L∪{p’}
End if
End if
End for
Return G
所述使用R-tree索引对基础MDG构建算法进行优化为基于启发式分裂策略的R-tree的变种优化基础MDG构建算法。
所述基于启发式分裂策略的R-tree为:对于要分裂的叶子节点,对叶子节点中的每个数据点的所有维度属性值求和并排序,按照排序结果对叶子节点中的数据点进行平分,和值低的一半形成一个新的节点,和值高的一半形成另一个新的节点,对于要分裂的R-tree中的内部节点,使用其MBR的质心来代表它。
图4是本发明的多维属性最优点组的快速搜索方法的又一个实施例的流程图,如图4所示,所述使用R-tree索引对基础MDG构建算法进行优化包括:
201,通过函数SearchForParents(p,R)搜索R-tree获得MDG构建算法中点p的父亲点集合;
202,把父亲点集合parents大小小于l的点加入R-tree索引中。
基于启发式分裂策略的R-tree的变种来优化基础MDG构建算法程序为:
Initialize G=(V,C)with an empty graph;
Sort zhe data points in P in zhe ascending order of their values onzhe first dimension;
L←φ/*L consisits of all zhe points which have l-a parents*/
For all p∈P do
Flag←TRUE
For all p’∈L do
If
Flag←FALSE
Break
End if
End for
If flag is TRUE then
Parents=SearchForParents(p,R)
End if
if[parents]<l then
V←V∪{p}
For all p’∈parents do
Add an edge into E from p’to p
End for
if[parents]=l-1then
L=L∪{p}
End if
InsertPoint(p,R)
End if
End for
Return G
函数SearchForParents(p,R)为基于R-tree上的搜索操作,通过搜索一个d维空间,记为Areap,Areap的每个维度的区间范围是从该维度的最小值到点p在该维度的值,当搜索某个分支时已经搜索出多于l-1个点后就停止搜索,此时即可判断出点p不能被加入MDG。
在基于R-tree的MDG构建算法中,使用的是针对本问题对R-tree进行了优化后的R-tree的变种,优化方法基于一种启发式的分裂策略,R-tree的分裂策略对于R-tree的效率有着至关重要的作用。
这种启发式的节点分裂策略有两个优点,一是相对于其它分裂策略,这种分裂策略的执行效率更高;二是这种分裂策略非常适合算法中的查询场景,对于给定的查询点p,MDG中所有维度属性值之和越低的点,越有可能出现在Areap中,反之亦然。这种分裂策略可以使得基于R-tree的MDG构建算法中的搜索操作更加高效。
两种MDG构建算法的时间复杂度:
假设多维属性点集合P的大小为n,MDG中点的个数为nm,基础MDG构建算法和基于R-tree的MDG构建算法都可以分为两部分。第一部分,将所有点按照第一维度的属性值进行排序,这部分的时间复杂度为O(n*logn)。第二部分,对于P中的每个点p,在MDG中寻找其所有能支配点p的点,这部分在基础MDG构建算法中的时间复杂度为O(n*nm),使用R-tree变种后,这部分的时间复杂度降为O(n*lognm)。所以,基础MDG构建算法的总的时间复杂度为O(n*logn+n*nm),基于R-tree的MDG构建算法的总的时间复杂度为O(n*logn+n*lognm)。
现有技术中提出的一个g-skyline支持结构,叫DSG,设DSG中点的个数为nd,则DSG构建算法在二维数据上的时间复杂度为在更高维的数据上的时间复杂度为O(n*logn+n*nd)。
本方法的MDG相对于现有技术的DSG的优势是,MDG是最小g-skyline支持结构,而DSG有可能不是最小g-skyline支持结构,所以有nm≤nd。所以,对于二维以上的数据,本方法的两种MDG构建算法的时间复杂度都低于现有技术的DSG构建算法的时间复杂度。对于二维数据,现有技术的DSG构建算法的时间复杂度大大降低,本方法的基于R-tree的MDG构建算法的时间复杂度依旧具有可比性,通过实验结果显示,基于R-tree的MDG构建算法快于现有技术的DSG构建算法。
所述基于MDG搜索所有的g-skyline组包括:P-MDS搜索方法和G-MDS搜索方法以及利用skyline组合性质优化P-MDS和G-MDS。
图5是本发明的多维属性最优点组的快速搜索方法的又一个实施例的流程图,如图5所示,所述P-MDS搜索方法包括:
301,将结果集R以及当前候选集gr初始化为空集;
302,将MDG中的点按照父亲点的个数进行升序排序;
303,将每个skyline点分别加入当前空的gr中并分别进行深度优先搜索(DFS);
304,当DFS结束时,R中便包含了所有的g-skyline组。
所述深度优先搜索(DFS)的实现基于函数SearchSinglePoint(),它是一个递归函数,如果当前候选组gr已经包含l个点,则我们认为它就是一个大小为l的g-skyline组,所以把它加入结果集R中如果gr的大小小于l,则将一个符合要求的候选点加入gr中并递归调用SearchSinglePoint(),符合要求的候选点的含义为,对于有序序列中plast后的每个点p,如果p的所有的父亲点都在gr中,则点p是一个符合要求的候选点,,所述plast代表当前候选组gr中最后一个被加入的点。
这种方法是一种剪枝策略,本方法中叫做父亲剪枝,它总能保证当前候选组gr是一个g-skyline组,这也是当gr包含l个点后直接认为它就是一个大小为l的g-skyline组的原因。排序策略可以保证父亲点一定会排在孩子点之前,基于这种顺序并按照父亲剪枝进行搜索,不会出现遗漏或重复的现象。
P-MDS算法的算法程序为:
R←φ;
gr←φ
Sort points in the MDG with zhe ascending order of the number oftheir parents;
For all p∈MDG do
If P is a skyline point of P then
gr←{p}
SearchSinglePoints(gr,p,R)
End if
End for
Return R
相对于现有技术,P-MDS有两个优点:一是使用了父亲剪枝策略来代替现有技术的PWise中的所有的剪枝策略,而父亲剪枝策略拥有最强的剪枝能力,不需要再额外验证当前候选组是否是g-skyline组。二是P-MDS使用了深度优先搜索,而现有技术的PWise使用的是广度优先搜索,这一点使得当搜索过程包含大量临时候选组时,P-MDS不会受到内存空间的限制。
G-MDS搜索方法是通过通过向当前候选组中添加候选点的父亲组来生成新的候选组,和P-MDS搜索方法相比,G-MDS搜索方法主要有三处不同:
一是生成新的候选组的策略不同,G-MDS搜索方法通过向当前候选组中添加候选点的父亲组来生成新的候选组,而不是单个点,这个策略能够保证当前候选组gr始终是一个g-skyline组,和P-MDS搜索方法一样,当候选组gr包含l个点时,gr就是一个大小为l的g-skyline组;
二是在G-MDS搜索方法中,当前候选组的大小可能大于l,这是因为一次会向候选组中加入多个点,当候选组的大小大于l时,需要停止继续向下搜索;
三是在G-MDS搜索方法中,MDG搜索方法中的点按照父亲点的个数进行降序排序,与P-MDS的排序顺序相反,按照降序进行排序,可以使得算法倾向于在前期生成更大的候选组,在候选组的大小不大于l的限制下,更多的候选组都会在前期被剪枝掉,剪枝效率更高。
性质1:skyline组合性质。P是一个d维属性点集合,skyline(P)={s1,s2,…,sn}。则skyline(P)中的任意l(l≤n)个skyline点的组合就是一个大小为l的g-skyline组。
关于如何用skyline组合性质优化P-MDS和G-MDS如下所述:
对于P-MDS,我们直接组合任意l个skyline点来生成大小为l的g-skyline组。具体地,我们在开始深度优先搜索(算法3第4行)前就生成skyline点的所有大小为l的组合并把它们加入结果集合R中。同时,我们需要在算法4的第6行添加另一个剪枝策略,即这个剪枝策略的含义是,当p是一个skyline点,又当前候选组gr已经包含l-1个点时,p不会被加入gr。这个剪枝策略可以避免算法在深度优先搜索过程中生成l个skyline点的组合。
对于G-MDS搜索方法,假设在G-MDS搜索方法的深度优先搜索过程中,当前候选组gr包含l-m(m>0)个点,搜索到的下一个候选点p是一个skyline点,表示p之后的所有点都是skyline点,可以选择任意m个不在当前候选组gr中的skyline点加入gr来直接生成大小为l的g-skyline组。
利用性质1都可以使得P-MDS和G-MDS的搜索代价大大降低,能够显著提高算法效率。
实验结果显示,本专利提出的g-skyline支持结构MDG的大小小于DSG,基于R-tree的MDG构建算法的运行时间也比DSG构建算法更快。优化后的P-MDS快于PWise,优化后的G-MDS快于UWise+,且效率往往能提高1-2个数量级。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种多维属性最优点组的快速搜索方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的实现及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种多维属性最优点组的快速搜索方法,其特征在于,包括:
设计基础最小支配图MDG构建算法,所述MDG构建算法的基本内涵为:令P是一个d维属性点集合,a、b是P中的两个点且a≠b,点支配表示为a支配b当且仅当a[i]≤b[i]且a[i]<b[i],用表示a支配b,用表示a支配b或a等于b,令a是一个skyline点当且仅当P中不存在点能够支配a,则P的skyline代表P中所有的skyline点,用skyline(P)表示,令A={a1,a2,…,al}、B={b1,b2,…,bl}是P的两个大小为l的子集,A支配B当且仅当存在两个置换
A={au1,au2,...,aul}、B={bv1,bv2,...,bvl},且表示A支配B,则A是g-skyline组当且仅当P中不存在大小为l的子集能够支配A,P的大小为l的g-skyline表示P中所有的包含l个点的g-skyline组,P的MDG是一个有向无环图,图中的每个节点代表P中的一个点,图中的每条边代表一个点支配关系,且MDG是由所有被少于l个点支配的点以及这些点之间的支配关系构成的;
使用R-tree索引对基础MDG构建算法进行优化;
基于MDG搜索所有的g-skyline组。
2.根据权利要求1所述的多维属性最优点组的快速搜索方法,其特征在于,所述设计基础MDG构建算法包括:
将MDG初始化为一个空图G=(V,E);
按照第一维的属性值对P中的点进行升序排序;
记当前MDG中所有父亲组大小为l的点构成的集合为L,对P中的每个点p,判断p是否能被L中的某个点支配,所述父亲组的定义为:设P是一个d维属性点集合,l是要搜索的g-skyline组的大小,在MDG中,点p和它的所有父亲构成了p的父亲组,记为g(p),所述父亲的定义为:如果a支配b,则a是b的父亲,b是a的孩子;
如果p能被L中的某个点支配,则说明p的父亲点至少有l个,即至少有l个点可以支配p,则p不能被加入MDG;
遍历V-L中的所有点来寻找所有能够支配点p的点,然后将这些点加入点p对应的父亲点集合parents中,如果parents的大小大于等于l,则p不能被加入MDG中;
将p加入V中,并将所有从集合parents中的点指向点p的边加入MDG的边的集合中;
如果集合parents的大小为l-1,则将p加入L中。
3.根据权利要求2所述的多维属性最优点组的快速搜索方法,其特征在于,所述按照第一维的属性值对P中的点进行升序排序中,如果两个点在第一维上有相同的属性值,则比较第二维的属性值,如果两个点在第二维上有相同的属性值,则比较第三维的属性值,依次类推。
4.根据权利要求1所述的多维属性最优点组的快速搜索方法,其特征在于,所述使用R-tree索引对基础MDG构建算法进行优化为基于启发式分裂策略的R-tree的变种优化基础MDG构建算法。
5.根据权利要求4所述的多维属性最优点组的快速搜索方法,其特征在于,所述基于启发式分裂策略的R-tree为:对于要分裂的叶子节点,对叶子节点中的每个数据点的所有维度属性值求和并排序,按照排序结果对叶子节点中的数据点进行平分,和值低的一半形成一个新的节点,和值高的一半形成另一个新的节点,对于要分裂的R-tree中的内部节点,使用其MBR的质心来代表它。
6.根据权利要求1、4或5所述的多维属性最优点组的快速搜索方法,其特征在于,所述使用R-tree索引对基础MDG构建算法进行优化包括:
通过函数SearchForParents(p,R)搜索R-tree获得点p的父亲点集合;
把父亲点集合parents大小小于l的点加入R-tree索引中。
7.根据权利要求6所述的多维属性最优点组的快速搜索方法,其特征在于,所述函数SearchForParents(p,R)为基于R-tree上的搜索操作,通过搜索一个d维空间,记为Areap,Areap的每个维度的区间范围是从该维度的最小值到点p在该维度的值,当搜索某个分支时已经搜索出多于l-1个点后就停止搜索,此时即可判断出点p不能被加入MDG。
8.根据权利要求1所述的多维属性最优点组的快速搜索方法,其特征在于,所述基于MDG搜索所有的g-skyline组包括:P-MDS搜索方法和G-MDS搜索方法以及利用skyline组合性质优化P-MDS和G-MDS。
9.根据权利要求8所述的多维属性最优点组的快速搜索方法,其特征在于,所述P-MDS搜索方法包括:
将结果集R以及当前候选集gr初始化为空集;
将MDG中的点按照父亲点的个数进行升序排序;
将每个skyline点分别加入当前空的gr中并分别进行深度优先搜索DFS;
当DFS结束时,R中便包含了所有的g-skyline组。
10.根据权利要求9所述的多维属性最优点组的快速搜索方法,其特征在于,所述深度优先搜索DFS的实现基于函数SearchSinglePoint(),它是一个递归函数,如果当前候选组gr已经包含l个点,则我们认为它就是一个大小为l的g-skyline组,所以把它加入结果集R中;如果gr的大小小于l,则将一个符合要求的候选点加入gr中并递归调用SearchSinglePoint(),符合要求的候选点的含义为,对于有序序列中plast后的每个点p,如果p的所有的父亲点都在gr中,则点p是一个符合要求的候选点,所述plast代表当前候选组gr中最后一个被加入的点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710764716.2A CN107633024B (zh) | 2017-08-30 | 2017-08-30 | 多维属性最优点组的快速搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710764716.2A CN107633024B (zh) | 2017-08-30 | 2017-08-30 | 多维属性最优点组的快速搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107633024A true CN107633024A (zh) | 2018-01-26 |
CN107633024B CN107633024B (zh) | 2023-05-12 |
Family
ID=61101667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710764716.2A Active CN107633024B (zh) | 2017-08-30 | 2017-08-30 | 多维属性最优点组的快速搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107633024B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245151A (zh) * | 2019-05-30 | 2019-09-17 | 湖南大学 | 数据点组查询方法、装置、计算机设备和存储介质 |
CN110263108A (zh) * | 2019-05-10 | 2019-09-20 | 南京航空航天大学 | 一种基于道路网的关键词Skyline模糊查询方法及系统 |
KR20220043396A (ko) * | 2020-09-29 | 2022-04-05 | 삼육대학교산학협력단 | 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722620A (zh) * | 2012-06-06 | 2012-10-10 | 中国矿业大学 | 一种实现寿命均衡的产品可靠性分配方法 |
CN102802163A (zh) * | 2012-07-26 | 2012-11-28 | 浙江理工大学 | 一种基于混合整数规划的无线传感网拓扑构建方法 |
CN104573036A (zh) * | 2015-01-16 | 2015-04-29 | 深圳大学 | 一种基于距离的求解二维空间中代表性节点集的算法 |
CN105900057A (zh) * | 2014-01-07 | 2016-08-24 | 印度坎普尔理工学院 | 分布式数据库中的多准则决策分析 |
US20160291834A1 (en) * | 2015-03-31 | 2016-10-06 | Here Global B.V. | Method and apparatus for providing a transition between map representations on a user interface |
CN106599188A (zh) * | 2016-12-14 | 2017-04-26 | 大连交通大学 | 移动互联网和云计算环境下子空间Skyline查询的智能商店选址方法 |
CN106844419A (zh) * | 2016-11-30 | 2017-06-13 | 辽宁大学 | 一种基于海量不完备数据集的skyline偏好查询方法 |
-
2017
- 2017-08-30 CN CN201710764716.2A patent/CN107633024B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722620A (zh) * | 2012-06-06 | 2012-10-10 | 中国矿业大学 | 一种实现寿命均衡的产品可靠性分配方法 |
CN102802163A (zh) * | 2012-07-26 | 2012-11-28 | 浙江理工大学 | 一种基于混合整数规划的无线传感网拓扑构建方法 |
CN105900057A (zh) * | 2014-01-07 | 2016-08-24 | 印度坎普尔理工学院 | 分布式数据库中的多准则决策分析 |
CN104573036A (zh) * | 2015-01-16 | 2015-04-29 | 深圳大学 | 一种基于距离的求解二维空间中代表性节点集的算法 |
US20160291834A1 (en) * | 2015-03-31 | 2016-10-06 | Here Global B.V. | Method and apparatus for providing a transition between map representations on a user interface |
CN106844419A (zh) * | 2016-11-30 | 2017-06-13 | 辽宁大学 | 一种基于海量不完备数据集的skyline偏好查询方法 |
CN106599188A (zh) * | 2016-12-14 | 2017-04-26 | 大连交通大学 | 移动互联网和云计算环境下子空间Skyline查询的智能商店选址方法 |
Non-Patent Citations (3)
Title |
---|
CHANGPING WANG等: ""Efiicient Computation of G-Skyline Groups"", 《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING VOL.30 NO.4》 * |
CHANGPING WANG等: "Efficient Computation of G-Skyline Groups" * |
HAO WANG等: "Dominant Skyline Query Processing over Multiple Time Series" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110263108A (zh) * | 2019-05-10 | 2019-09-20 | 南京航空航天大学 | 一种基于道路网的关键词Skyline模糊查询方法及系统 |
CN110263108B (zh) * | 2019-05-10 | 2023-07-11 | 南京航空航天大学 | 一种基于道路网的关键词Skyline模糊查询方法及系统 |
CN110245151A (zh) * | 2019-05-30 | 2019-09-17 | 湖南大学 | 数据点组查询方法、装置、计算机设备和存储介质 |
CN110245151B (zh) * | 2019-05-30 | 2021-07-13 | 湖南大学 | 数据点组查询方法、装置、计算机设备和存储介质 |
KR20220043396A (ko) * | 2020-09-29 | 2022-04-05 | 삼육대학교산학협력단 | 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 |
KR102505050B1 (ko) | 2020-09-29 | 2023-03-06 | 삼육대학교산학협력단 | 최근접 이웃 탐색 기반의 스카이라인 질의를 위한 전처리 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN107633024B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Top-k interesting subgraph discovery in information networks | |
Yu et al. | Efficient service skyline computation for composite service selection | |
Li et al. | G*-tree: An efficient spatial index on road networks | |
CN107633024A (zh) | 多维属性最优点组的快速搜索方法 | |
Wu et al. | Graph summarization for attributed graphs | |
Yan et al. | Top-k aggregation queries over large networks | |
Zhang et al. | Selecting top-k composite web services using preference-aware dominance relationship | |
Zou et al. | Dynamic skyline queries in large graphs | |
CN106815302A (zh) | 一种应用于游戏道具推荐的频繁项集挖掘方法 | |
CN110851616A (zh) | 一种基于领域子图的rdf知识图谱存储与管理方法 | |
CN103699647A (zh) | 一种字符串词典的索引方法及系统 | |
Jamsheela et al. | Frequent itemset mining algorithms: a literature survey | |
Jiang et al. | Incremental evaluation of top-k combinatorial metric skyline query | |
Zheng et al. | Repose: distributed top-k trajectory similarity search with local reference point tries | |
Gulzar et al. | A framework for evaluating skyline queries over incomplete data | |
CN104123357B (zh) | 一种查询卡口的方法和装置 | |
CN102750460B (zh) | 分层简化大规模图数据的运算方法 | |
Alwan et al. | A framework for identifying skylines over incomplete data | |
Arefin et al. | A Spatial Skyline Query for a Group of Users. | |
Hsieh et al. | Efficient parallel algorithms on distance hereditary graphs | |
John et al. | Dynamic sorting and average skyline method for query processing in spatial-temporal data | |
Zheng et al. | User preference-based data partitioning top-k skyline query processing algorithm | |
Arefin et al. | Skyline Query for Selecting Spatial Objects by Utilizing Surrounding Objects. | |
Ding et al. | Efficient k-dominant skyline query over incomplete data using MapReduce | |
Liu et al. | Context-aware graph pattern based top-k designated nodes finding in social graphs |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |