Skip to main content
QUICK REVIEW

[论文解读] Faster Average Case Low Memory Semi-External Construction of the Burrows-Wheeler Transform

German Tischler|arXiv (Cornell University)|Apr 22, 2016
Natural Language Processing Techniques被引用 6
一句话总结

该论文提出了一种更快、低内存消耗的半外部BWT构造算法,当输入文本的固定比例可容纳在主内存中时,其平均时间复杂度为 $O(n\log^2\log n)$。该方法通过降低平均情况下的运行时间,在保持 $O(n)$ 外部内存空间的同时,优于以往的方法,并引入了一个并行版本,该版本在使用 $p$ 个处理器时,实现了 $O(n/p \cdot \max\{\log^2\log n, \log p\})$ 的平均时间复杂度。

ABSTRACT

The Burrows Wheeler transform has applications in data compression as well as full text indexing. Despite its important applications and various existing algorithmic approaches the construction of the transform for large data sets is still challenging. In this paper we present a new semi external memory algorithm for constructing the Burrows Wheeler transform. It is capable of constructing the transform for an input text of length $n$ over a finite alphabet in time $O(n\log^2\log n)$ on average, if sufficient internal memory is available to hold a fixed fraction of the input text. In the worst case the run-time is $O(n\log n \log\log n)$. The amount of space used by the algorithm in external memory is $O(n)$ bits. Based on the serial version we also present a shared memory parallel algorithm running in time $O(\frac{n}{p}\max\{\log^2\log n+\log p\})$ on average when $p$ processors are available.

研究动机与目标

  • 为在主内存受限的情况下高效构造大规模文本的Burrows-Wheeler变换(BWT)提供解决方案。
  • 在保持低外部内存使用的同时,将BWT构造的平均时间复杂度降低至现有半外部算法之下。
  • 实现每符号内存储空间低于8位,使其适用于DNA等紧凑数据。
  • 设计一种可扩展的共享内存并行版本,以高效利用处理器数量。
  • 通过最小化外部内存中的空间开销和I/O操作,提升实际性能。

提出的方法

  • 该算法将输入文本划分为多个块,并使用平衡归并树结构递归地合并相邻块的BWT。
  • 利用适用于最小周期和重复信息的紧凑数据结构,在 $O(b)$ 时间内计算大小为 $b$ 的块的后缀顺序。
  • 预处理阶段在 $O(n)$ 时间和 $O(b\log b)$ 位空间内收集重复信息,以支持高效的块排序。
  • 利用左块的秩字典,以 $O((b_l + b_r)\log\log(b_l + b_r))$ 时间合并两个相邻块的BWT。
  • 该算法采用一种基于向前搜索块后缀数组的间隙数组构造技术,以确定正确的排序位置。
  • 并行版本将块排序与归并操作分发到 $p$ 个处理器上,以高概率实现平均时间复杂度 $O(n/p \cdot \max\{\log^2\log n, \log p\})$。

实验结果

研究问题

  • RQ1是否可以在仅使用 $O(n)$ 位外部内存和固定比例主内存的前提下,加速BWT构造的平均情况性能?
  • RQ2如何优化基于块的BWT构造,以减少长公共前缀(LCP)值对性能的负面影响?
  • RQ3能否设计一种可扩展的并行BWT构造算法,使其在保持低内存使用的同时,随处理器数量高效扩展?
  • RQ4能否使该算法适用于极紧凑字母表(如DNA),其中每符号仅需2位?
  • RQ5该算法在外部内存中的I/O复杂度和实际空间使用情况如何?常数因子如何影响实际性能?

主要发现

  • 所提出的算法实现了 $O(n\log^2\log n)$ 的平均时间复杂度,优于以往半外部方法的 $O(n\log n\log\log n)$ 最坏时间复杂度。
  • 在最坏情况下,该算法的运行时间为 $O(n\log n\log\log n)$,仅比平均情况慢 $O(\log\log n)$,对罕见病态输入的惩罚极小。
  • 该算法使用 $O(n)$ 位外部内存,适用于主内存受限的大规模数据。
  • 并行版本在使用 $p$ 个处理器时,以高概率实现平均时间复杂度 $O(n/p \cdot \max\{\log^2\log n, \log p\})$,可在多核系统中实现高效扩展。
  • 该方法支持低至每符号2位的主内存使用(例如,用于DNA),显著低于以往方法所需的每符号8位。
  • 经验观察表明,I/O复杂度较低,$gt$ 数组的I/O为 $O(n\log\log n)$ 位,BWT归并的I/O为 $O(n\log\sigma\log\log n)$ 位,实际中均为流式处理。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。