论文部分内容阅读
Skyline是指数据集中不被其他点支配的所有点的集合。支配是指在数据集中,一个数据对象的每一维值都不比另一数据对象相对应维值差,而且必须至少有一个维值比另一数据对象好。维度上的好和差没有统一的定义,可根据用户的选择和偏好、经验知识来决定。由于Skyline查询计算在数据仓库、个性化推荐、数据库可视化、城市导航系统等领域的良好应用前景,使其成为当前数据库界研究的热点之一,受到了学术界和工业界的广泛关注。作为对Skyline扩展查询进行研究的开始和基础,本文首先对Skyline查询目前的研究现状进行了综述。全面分析了在集中静态环境下利用空间索引或编码技术快速进行Skyline计算的各种算法及其变形;进而深入探讨和分析了为了满足人们各种不同查询需求而提出的多种Skyline查询方案,包括子空间上的Skyline查询、动态Skyline查询、K-支配Skyline查询和约束Skyline查询等;最后详细分析了在不同应用环境下例如Web信息系统、数据流环境、微观经济学等中的Skyline计算改进方案。
本文工作主要集中在Skyline查询问题中的三个扩展查询,分别是面向双方决策的Skyline推荐问题,Skyline距离问题以及负载均衡的分布式Skyline查询问题。以往相关的Skyline查询研究工作都集中在单方决策的研究上,即决策方在一个给定数据集上进行Skyline查询。然而在现实应用中,决策过程常常是多方参与的,例如企业招聘,学校招生,企业并购等等,双方都希望在满足一定约束的情况下选择最优的对象。本文用求职者和工作职位为实例,探讨和研究系统如何快速回答双方提出的Skyline扩展查询问题。我们用Skyline为决策双方的竞争性选择进行了建模,首先为用户可能提出的多种需求定义了一系列灵活的Skyline扩展查询方案,然后为这些扩展查询设计了基于共享计算思想的批处理高效算法,最后用一系列实验证明了这些算法的有效性。
Skyline在多目标决策问题中的应用已经被广泛认可,大多已有工作关注于如何高效计算给定数据集中的Skyline对象集合。然而通常情况下,Skyline集合是全体数据中的一个相对较小的集合。在本文中我们转换了视角,关注那些大量非Skyline点的需求,提出一个非常新颖的问题:一个数据对象距离Skyline有多远?我们提出了一种新颖的度量:Skyline距离,指在给定的代价函数下使一个数据对象成为Skyline的最小代价。Skyline距离可被视为是一个多维竞争性度量,可用于在推荐系统中评价不同的方案。然而计算Skyline距离并不容易,无法通过扩展已有的Skyline计算方法来获得解决方案。我们设计了三个有效计算Skyline距离的算法。首先基于对数据和问题的直观观察,设计了动态规划算法;其次基于若干的理论证明,提出一个排序-投影算法,算法递归地将高维空间分解为多个低维空间,降低了计算难度;然后基于空间划分思想设计和实现了一个能高效裁剪搜索空间的空间划分算法;最后通过理论和实验证明了以上算法的有效性。
多目标决策问题的应用场景往往是交互式的,用户需要对数据集进行不断的探查,因此要求系统具有较高的响应速度,但目前数据在往海量化、高维化的方向发展,单机算法常常不能达到实际应用的要求。随着并行计算环境越来越普遍,扩展Skyline查询到大规模并行计算环境中是关乎Skyline计算应用性的一个迫切问题。目前已有研究主要关注如何减少复杂网络环境中的网络通信代价,而没有考虑如何在多处理器快速互联的高性能集群中更好地使用高带宽特性来提高Skyline计算的性能。本文提出了高带宽分布式环境下渐进式负载均衡的Skyline计算问题,设计了一个高效并行Skyline查询算法,利用了Z-order地址的单调顺序性和聚集性来提高分布式系统中的Skyline查询求解速度,证明了算法的正确性和算法是收敛的,通过理论分析和大量的实验,证明了提出算法能充分利用网络条件来提高负载均衡率,并且对于不同分布的数据都能高效渐进地返回结果。