Skip to main content
QUICK REVIEW

[論文レビュー] Inducing the LCP-Array

Johannes Fischer|arXiv (Cornell University)|Jan 18, 2011
Algorithms and Data Compression参考文献 12被引用数 19
ひとこと要約

この論文は、後退配列の構築に用いられる誘導ソーティング技法を拡張することで、線形時間でLCP配列を構築するアルゴリズムを提示している。後退配列アルゴリズムにLCP値の誘導を統合することで、従来の最先端のLCP配列構築アルゴリズム、特にバーラウズ=ウィルラーフォーム変換(BWT)に基づくものよりも優れた実用的性能を達成している。

ABSTRACT

We show how to modify the linear-time construction algorithm for suffix arrays based on induced sorting (Nong et al., DCC'09) such that it computes the array of longest common prefixes (LCP-array) as well. Practical tests show that this outperforms recent LCP-array construction algorithms (Gog and Ohlebusch, ALENEX'11).

研究の動機と目的

  • 高速な後退配列構築と遅いLCP配列構築の間の性能ギャップを解消すること。
  • 誘導ソーティングに自然に統合できる、実用的で線形時間のLCP配列構築アルゴリズムを開発すること。
  • 一部の先行LCPアルゴリズムに必要とされるが、BWTに依存しないようにすること。
  • 後退配列構築中にLCP値を誘導することで、独立したLCPアルゴリズムよりも優れた実世界の性能が得られることを示すこと。
  • 誘導ソーティングの効率を活用し、後退配列とLCP配列の両方を高速に統合的に構築するソリューションを提供すること。

提案手法

  • 線形時間後退配列構築に用いられる誘導ソーティングアルゴリズムを拡張し、辞書式に隣接する後退のLCP値を同時に誘導する。
  • 逆後退配列($Φ$-配列)を用いて、関係式 $\mathsf{LCP}[i] = \mathsf{LCP}[\mathsf{SA}^{-1}(\mathsf{SA}[i]-1)] + 1$ を使ってLCP値を効率的に計算する。ここで $\mathsf{SA}[i-1]$ と $\mathsf{SA}[i]$ が共通の接頭辞を持つ場合に適用される。
  • 後退をL型またはS型に分類して誘導プロセスをガイドし、後退配列構築で用いられるのと同じタイプベースのソーティング戦略を維持する。
  • Nongら(2009年)の線形時間後退配列構築アルゴリズムを変更し、誘導フェーズ中にLCP値を伝搬するようにする。
  • 二段階アプローチを採用する:まず誘導ソーティングで後退配列を誘導し、次に誘導されたSAの順序と構造を活用してLCP値を計算する。
  • sais-liteの修正版を用いて、1回のパスでSAとLCPの両方を構築し、メモリアクセスとキャッシュミスを最小限に抑える。

実験結果

リサーチクエスチョン

  • RQ1線形時間後退配列構築に用いられる誘導ソーティング技法を、線形時間でLCP配列を計算するために拡張できるか?
  • RQ2後退配列構築パイプラインにLCP値の誘導を統合することで、独立したLCPアルゴリズムよりも優れた実用的性能が得られるか?
  • RQ3特にBWTが利用できない環境において、BWTに依存せずにLCP配列を構築できるか?
  • RQ4実行時間と拡張性の観点から、提案手法は、既存の最先端のLCP配列構築アルゴリズムと比較してどのように性能を発揮するか?
  • RQ5LCP配列構築の実用的ボトル neck は何か?そして、SA構築中にLCP値を同時に誘導することで、それらを緩和できるか?

主な発見

  • 提案手法は、BWTに基づくものも含め、すべての先行LCP配列構築アルゴリズムを実用的ベンチマークで上回っている。
  • 大規模な入力に対しても競争力のある性能を発揮し、特に100MBおよび200MBのデータセットでは、GO法やナイーブ法よりも実行時間が常に短い。
  • 英語テキストデータセットでは、長い繰り返し部分文字列があるためナイーブ法も競争力があるが、全体として提案手法が優れている。
  • 提案手法の合計実行時間(誘導 + sais-lite)は、ほとんどのテストケースで最速であり、divsufsortとGOアルゴリズムの最良組み合わせでさえも上回ることが多い。
  • BWTを必要としないため、BWTに基づかない圧縮後退配列の応用分野においても、実用的な利点を提供する。
  • 性能向上の理由は、SAとLCP配列の混合保存により、メモリアクセスが減少し、キャッシュ動作が改善されたことにある。

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

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

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

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