基于外部内存扫描的天际线算法研究
1. 引言
天际线查询在数据管理领域备受关注。给定一个对象数据库,天际线查询会返回那些未被其他对象支配的对象。一个对象支配另一个对象,意味着它在所有属性上的值更好,且至少在一个属性上的值严格更好。寻找天际线在多目标优化研究中也被称为帕累托最优集或最大向量问题,但过去主要是针对内存计算进行研究。
外部内存算法的研究源于相关开创性工作。虽然从最坏情况的输入/输出(I/O)操作来看,某些算法效率较高,但实际上,过去几年提出的其他外部内存算法可能更快。本文详细研究了一类重要的实用算法——基于扫描的天际线算法。这类算法会对输入文件进行多次遍历,每次遍历中,会在主内存中维护一个小窗口,用于移除输入文件中的被支配对象,未被支配的对象会被写入输出文件。
本文的贡献主要有以下几点:
- 基于标准外部内存模型,对四种流行的基于扫描的算法进行了适当调整,详细解决了被忽视的内存管理实现细节。
- 聚焦于基于扫描算法的核心处理,即管理内存窗口中的对象。引入了多种用于遍历窗口和从窗口中移除对象的策略,这两项任务会对所需的 I/O 数量和 CPU 时间产生重大影响。
- 对所有研究算法的具体基于磁盘的实现进行了实验评估,而非模拟,为合成和真实数据集得出了有用的结论。特别是,在许多情况下,与普遍看法相反,对数据库进行预处理(通常是排序)的算法并不更快。
- 对提出的策略进行了广泛研究,发现在某些设置(维度和数据集分布)下,这些策略可以将支配检查的数量减少 50% 以上。
2. 预备知识
2.1 定义
设 $O$ 是一组 $d$ 维对象。每个对象 $o \in O$ 由其属
超级会员免费看
订阅专栏 解锁全文
42

被折叠的 条评论
为什么被折叠?



