论文部分内容阅读
Skyline查询解决的是多标准决策问题,随着用户开始关注由多个数据点形成的集合的重要性,组合skyline(Combination skyline,简写为 C-skyline)查询逐渐成为研究的热点,它查询的对象基本单位不再是独立的数据点,而是由若干数据点形成的组合。当前算法存在的问题主要是,输出结果渐进性较差、对无用数据的剪枝率不高,且仅适用于静态数据集。鉴于此,本文分别针对二维数据集、多维数据集和数据流环境下的组合skyline查询算法进行了研究,较好地解决了上述问题。算法可应用于游客对酒店的在线查询、用户对金融产品的选择等涉及到多标准查询的应用场景。论文的主要工作分为以下几个方面。
( 1 )针对二维数据集,提出了一种求解 C-skyline 的 PPQ (Partion-Prune-Query)算法。为了对组合实现有效地分类与剪枝,首先提出支配域的概念,并对数据集的所有数据点进行了区域划分;其次,依据构成组合的数据点的位置,对所有组合进行类别划分;然后,分别对不同类别的组合进行分析,并提出相应的剪枝策略,充分利用支配域的特点,结合相关定理快速安全地过滤掉无用的组合,从而得到C-skyline。针对数据集中少量数据发生改变的情况,提出了C-skyline更新算法。最后在不同类型的数据集上对算法进行了实验与分析。
(2)针对多维数据集,提出一种高效求解C-skyline的LGH算法(Layer-Gragh-HashTable)。首先建立与数据集对应的skyline层结构,从而将数据集的所有数据点分成若干个层次,且位于同一层的数据点之间不存在支配关系;其次,建立有向支配图,明确了数据点之间的支配关系;然后,根据每个数据点及其父结点的数量建立哈希表,以便在计算过程中快速查询支配当前数据点的所有点;接着,根据C-skyline组合的特点,将其分类并分别求之。实验结果表明,算法在多种情况下都要比现有算法的执行速度要快。
(3)针对数据流环境,提出了 C-skyline 的求解算法。针对数据流中的数据具有实时性和持续性的特点,提出了共享策略,当有效窗口内的数据发生变化时,在现有查询结果基础上重新判断可能对结果产生影响的组合,从而实现查询结果的快速求解。针对数据点达到和数据点到期两种情况,分别给出了相应的C-skyline算法。两种算法采用了相似的求解方式,根据变化的数据点,对当前的skyline层和有向支配图进行更新,然后分析可能受到影响的组合,并对其进行判断,从而在现有查询结果的基础上得到实时的查询结果。实验结果表明算法具有较快的查询速度,且受数据流速的影响比较明显。
( 1 )针对二维数据集,提出了一种求解 C-skyline 的 PPQ (Partion-Prune-Query)算法。为了对组合实现有效地分类与剪枝,首先提出支配域的概念,并对数据集的所有数据点进行了区域划分;其次,依据构成组合的数据点的位置,对所有组合进行类别划分;然后,分别对不同类别的组合进行分析,并提出相应的剪枝策略,充分利用支配域的特点,结合相关定理快速安全地过滤掉无用的组合,从而得到C-skyline。针对数据集中少量数据发生改变的情况,提出了C-skyline更新算法。最后在不同类型的数据集上对算法进行了实验与分析。
(2)针对多维数据集,提出一种高效求解C-skyline的LGH算法(Layer-Gragh-HashTable)。首先建立与数据集对应的skyline层结构,从而将数据集的所有数据点分成若干个层次,且位于同一层的数据点之间不存在支配关系;其次,建立有向支配图,明确了数据点之间的支配关系;然后,根据每个数据点及其父结点的数量建立哈希表,以便在计算过程中快速查询支配当前数据点的所有点;接着,根据C-skyline组合的特点,将其分类并分别求之。实验结果表明,算法在多种情况下都要比现有算法的执行速度要快。
(3)针对数据流环境,提出了 C-skyline 的求解算法。针对数据流中的数据具有实时性和持续性的特点,提出了共享策略,当有效窗口内的数据发生变化时,在现有查询结果基础上重新判断可能对结果产生影响的组合,从而实现查询结果的快速求解。针对数据点达到和数据点到期两种情况,分别给出了相应的C-skyline算法。两种算法采用了相似的求解方式,根据变化的数据点,对当前的skyline层和有向支配图进行更新,然后分析可能受到影响的组合,并对其进行判断,从而在现有查询结果的基础上得到实时的查询结果。实验结果表明算法具有较快的查询速度,且受数据流速的影响比较明显。