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
ひとこと要約

この論文は、内部メモリに固定割合の入力テキストが収容可能な場合、平均ケース時間計算量 $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.

研究の動機と目的

  • 限られた内部メモリを用いて大規模テキストのバーロース・ウィーラー変換(BWT)を効率的に構築する課題に対処すること。
  • 従来の半外部アルゴリズムを下回る平均ケース時間計算量を実現しながら、低外部メモリ使用量を維持すること。
  • DNA配列のようなコンパクトなデータに適した、1シンボルあたり8ビット未満の内部メモリ使用量を実現すること。
  • スケーリング効率の高いプロセッサ数に応じて拡張可能な共有メモリ型並列バージョンを設計すること。
  • 外部メモリにおける空間オーバーヘッドと I/O 操作を最小限に抑えることで、実用的性能を向上させること。

提案手法

  • 入力テキストをブロックに分割し、バランスの取れたマージツリー構造を用いて隣接ブロックの BWT を再帰的にマージする。
  • 最小周期と繰り返し情報のための効率的データ構造を用いて、サイズ $b$ のブロックのサフィックス順序を $O(b)$ 時間で計算する。
  • 事前処理段階で $O(n)$ 時間および $O(b\log b)$ ビットを用いて繰り返しデータを収集し、効率的なブロックソーティングを可能にする。
  • 左ブロックのランク辞書を用いて、2つの隣接ブロックの BWT を $O((b_l + b_r)\log\log(b_l + b_r))$ 時間でマージする。
  • ブロックサフィックス配列上の前方探索に依存するギャップ配列構築技術を用い、正しいソート位置を特定する。
  • 並列版では、$p$ 個のプロセッサにブロックソーティングとマージ処理を分散し、高確率で $O(n/p \cdot \max\{\log^2\log n, \log p\})$ の平均ケース時間で実行される。

実験結果

リサーチクエスチョン

  • RQ1外部メモリ使用量が $O(n)$ ビットで、内部メモリに固定割合のデータが収容可能な条件下で、BWT 構築の平均ケース実行速度を向上させることは可能か?
  • RQ2長大な共通接頭辞(LCP)値が性能に与える影響を軽減するには、ブロックベースの BWT 構築をどのように最適化できるか?
  • RQ3プロセッサ数に応じて効率的にスケーリングされ、かつ低メモリ使用量を維持できる並列 BWT 構築アルゴリズムを設計することは可能か?
  • RQ4DNA など極めてコンパクトなアスキュー(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)$ ビットであるため、主記憶が限られた大規模データ処理に適している。
  • 並列版は高確率で $O(n/p \cdot \max\{\log^2\log n, \log p\})$ 時間で実行され、マルチコアシステムでの効率的スケーリングを可能にする。
  • 内部メモリ使用量が 1 シンボルあたり 2 ビット(例:DNA)まで低減可能であり、従来手法が要求する 8 ビット/シンボルを大幅に下回る。
  • 実験的観察では I/O 複雑性が低く、$gt$ 配列では $O(n\log\log n)$ ビット、BWT マージでは $O(n\log\sigma\log\log n)$ ビットの I/O が発生し、実際にはストリーミング処理として動作する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。