一种k代表G-Skyline查询方法

文档序号:37984592发布日期:2024-05-13 12:47阅读:38来源:国知局
一种k代表G-Skyline查询方法

本发明属于数据查询,尤其涉及一种k代表g-skyline查询方法。


背景技术:

1、近年来,由于互联网技术的发展以及信息获取设备的进步,数据库收集处理的数据量增多,进一步,数据库中存储的数据量也急剧增加。但是,人们却很难从这些海量、庞杂的信息中挖掘出自己最想要的有价值的信息。因此,如何快速高效地从海量数据中返回给用户最为关心的数据越来越成为学术界关心的研究热点。skyline(天际线)查询是一个典型的多目标优化的问题,其在数据库领域的多维数据查询具有很好的应用,skyline一个经典的例子为:假设去nassau海滩旅游,想找一个既便宜又靠近海滩的旅馆,一般情况下越靠近海滩的旅馆价格越高,所以不能返回一个最好的结果,只能返回一些用户可能感兴趣的旅馆,这些旅馆在价格和距离两个方面都不比其它旅馆差,即不被其他旅馆所支配,这些不被支配的旅馆就是skyline。skyline的一个重要变体为基于群组的skyline,即g-skyline,其旨在找出给定数据点集合中的最佳数据点组,在计算最佳数据点组的许多应用程序中非常重要。

2、在现实场景下,g-skyline查询得到的g-skyline 组规模往往非常大,例如在包含1w个元组的3维的反相关数据集上,组大小为3时g-skyline组有约10w个,难以直接用于决策。另外g-skyline查询也无法控制输出的组的数量,难以满足用户多样化的需求。因此k代表g-skyline查询有着重要意义,其返回所有g-skyline组中最具有代表性的k个g-skyline组。k代表g-skyline查询克服了g-skyline查询中输出规模不受控制的缺陷,并提供了有代表性的结果(x. zhou, k. li, z. yang, y. gao, and k. li, “efficient approachesto k representative g-skyline queries,” acm transactions on knowledgediscovery from data (tkdd), vol. 14, no. 5, pp. 1–27, 2020.)。k代表g-skyline查询在各个领域都有广泛的实际应用,特别是当用户偏好不明确或多样化时。例如,在企业采购汽车时,采买人员需要考虑马力和续航等多个属性来选择最好的汽车,而k代表g-skyline查询通过同时考虑各种属性来帮助获得最佳结果(nanongkai, danupon , et al."regret-minimizing representative databases." proceedings of the vldbendowment 3.1(2010):1114-1124.)。在体育领域,教练经常寻求身体素质和赛场表现的最佳球员组合,以优化团队表现,k代表g-skyline查询为团队提供了在各方面具有优秀表现的选项(w. yu, j. liu, j. pei, l. xiong, x. chen, and z. qin, “efficientcontour computation of group-based skyline,” ieee trans. knowl. data eng.,vol.32, no.7, pp.1317–1332, 2020.)。在求职者筛选中,负责面试候选人的人力资源部门必须从所有简历中选择求职者的子集,k代表g-skyline查询有助于根据技能、履历和资历来匹配合适的求职者群体,从而简化招聘流程。

3、然而,现有的k代表g-skyline查询算法存在计算代价大,效率低,查询结果代表性不高等缺点。


技术实现思路

1、针对现有技术中存在的问题,本发明提供一种k代表g-skyline查询方法,包括以下步骤:

2、(1)数据预处理:对用户待查询的数据集依据数据的各个属性值进行排序、组合,构建预排序表;

3、(2)求候选元组集:扫描预排序表,筛选得到候选元组集;

4、(3)求突出 g-skyline组:对候选元组集中的候选元组进行运算,获得突出 g-skyline组;

5、(4)求k代表g-skyline组:从突出 g-skyline组中筛选得到k代表g-skyline组;所述k代表g-skyline组,即为用户期望得到的查询结果。

6、优选地,所述步骤(2)中,候选元组的求取方法为:依次扫描预排序表中的数据元组,判断当前数据元组是否为候选元组,若是则加入候选元组集;直到扫描完所有数据元组或满足早终止条件;其中,判断当前数据元组是否为候选元组具体为:将当前数据元组与所有候选元组进行比较,若当前数据元组被超过s-1个元组所支配,则该数据元组必然不是候选元组且不出现在候选元组集中;s为g-skyline组的组大小。

7、优选地,所述步骤(2)中,候选元组的求取方法还可以为:扫描预排序表得到所有skyline元组,基于贪心思想从所有skyline元组中筛选得到k*s个skyline元组,s为组大小。

8、优选地,所述的候选元组集中存储有可能组成g-skyline组的数据元组以及它们之间的支配关系。

9、优选地,所述早终止条件具体为:在扫描预排序表时维护一个大小为s的最大堆,s为所求k代表g-skyline的组大小,堆中存储有已扫描数据元组的各属性排序最大值;若最大堆已存储s个元素,且最大堆中最大值不超过当前扫描元组的各属性排序最小值,则证明当前扫描数据元组被最大堆代表的s个数据元组所支配,后续数据元组必然不是候选元组,此时,候选元组的求取过程终止。

10、优选地,所述步骤(3)中,突出g-skyline组的求取过程为:枚举由skyline元组组成的g-skyline组;使用层次剪枝策略对其进行剪切,生成由skyline元组组成的g-skyline组;将其与含有非skyline元组的g-skyline合并,得到完整的突出 g-skyline组。

11、优选地,所述枚举由skyline元组组成的g-skyline组具体为:首先生成由两个skyline元组组成的g-skyline组,使用层次剪枝策略对其进行剪切,再基于剩余组生成由三个skyline元组组成的g-skyline组,迭代进行以上过程,直到得到由s个skyline元组组成的g-skyline组。

12、优选地,所述层次剪枝策略具体为:对于每一个g-skyline组,其属性值为其含有的各个属性值的和;若两个g-skyline组的属性值之间存在支配关系,则称这两个g-skyline组之间存在支配关系;将当前被支配的g-skyline组全部剪切。

13、优选地,所述步骤(4)中, k代表g-skyline组的求取过程为:基于贪心思想迭代遍历star g-skyline组,得到k代表g-skyline组,具体为:将star g-skyline组中第一属性值最大的组加入k代表g-skyline组,然后遍历剩余所有g-skyline组,将对当前结果集合最大遗憾率最大的组加入k代表g-skyline组,迭代遍历剩余g-skyline组,直到结果集合大小为k。

14、与现有技术相比,本发明的有益效果在于:

15、(1)基于预排序和层次剪枝策略提出了一种k代表g-skyline查询方法,能够快速得到高质量、用户友好的结果;利用预排序表作为索引结构,只需构建一次就可以应用于所有属性组合场景,避免了多次构建索引带来的开销;

16、(2)在求候选元组时,利用预排序实现了早终止,减少了需要扫描的数据规模;

17、(3)在求候选g-skyline组时,提出了层次剪枝策略,极大的减少了需要生成的候选组数量,提高了性能;

18、(4)首次以遗憾率作为代表组评估标准,评估用户对查询结果的满意度,提高了用户友好性。

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