[論文レビュー] Optimal Time and Space Construction of Suffix Arrays and LCP Arrays for Integer Alphabets
本稿では、整数アルファベット用の suffix array (SA) および longest common prefix (LCP) array の、入力および出力領域以外に O(1) の追加単語しか使用しない、初めての in-place 且つ線形時間のアルゴリズムを提示する。出力領域に type 配列および補助データ構造をコンパクトに格納することで、SA および LCP の両方の構築において最適な時間計算量と空間計算量を達成し、文字列アルゴリズム分野における未解決問題を解決する。
Suffix arrays and LCP arrays are one of the most fundamental data structures widely used for various kinds of string processing. We consider two problems for a read-only string of length $N$ over an integer alphabet $[1, \dots, σ]$ for $1 \leq σ\leq N$, the string contains $σ$ distinct characters, the construction of the suffix array, and a simultaneous construction of both the suffix array and LCP array. For the word RAM model, we propose algorithms to solve both of the problems in $O(N)$ time by using $O(1)$ extra words, which are optimal in time and space. Extra words means the required space except for the space of the input string and output suffix array and LCP array. Our contribution improves the previous most efficient algorithms, $O(N)$ time using $σ+O(1)$ extra words by [Nong, TOIS 2013] and $O(N \log N)$ time using $O(1)$ extra words by [Franceschini and Muthukrishnan, ICALP 2007], for constructing suffix arrays, and it improves the previous most efficient solution that runs in $O(N)$ time using $σ+ O(1)$ extra words for constructing both suffix arrays and LCP arrays through a combination of [Nong, TOIS 2013] and [Manzini, SWAT 2004].
研究の動機と目的
- 整数アルファベット用の suffix array を線形時間かつ in-place で構築するという未解決問題を解決すること。
- 最適な時間および空間計算量で、同時に suffix array と LCP array を構築すること。
- 従来の線形時間アルゴリズムの空間計算量を O(σ) から O(1) の追加単語に削減すること。
- ψ 配列の in-place 変換により、LCP array の効率的な in-place 計算を可能にすること。
- 拡張 suffix array を必要とする文字列処理ワークロードに向けた実用的で空間効率の良いソリューションを提供すること。
提案手法
- アルゴリズムは誘導ソーティングフレームワークを用い、type 配列および LCP 補助配列を出力用 suffix array 領域に格納することで、O(1) の追加単語を達成する。
- 出力配列の最上位ビット (MSB) を type 配列の格納領域として利用することで、接頭辞および LE 配列のコンパクト表現を実現する。
- 本手法は2つの重要な性質を利用している:(1) 接頭辞の最初の文字はその格納インデックスに対応し、(2) L-suffix および LMS-suffix では直前の文字が現在の文字と異なる。
- 逆 suffix array (ISA) を左から右へスキャンすることで、ψ 配列 (rank next array) を in-place に計算し、その後でそれを in-place に LCP 配列に変換する。
- LMS-suffix のソーティング処理の構造を再利用することで、安定マージを避けることで、空間および時間のオーバーヘッドを低減する。
- 再帰的サブ配列境界の格納に簡素化された in-place 手法を用い、O(log N) ではなく O(1) のアクセス時間を達成する。
実験結果
リサーチクエスチョン
- RQ1整数アルファベット用に、O(N) 時間および O(1) の追加領域で suffix array を構築することは可能か?
- RQ2最適な時間および空間計算量で、同時に suffix array と LCP array を構築することは可能か?
- RQ3追加メモリを増加させることなく、type 配列および補助データ構造を出力領域に格納することは可能か?
- RQ4O(1) の追加単語しか使用しない条件下で、LCP array を suffix array から in-place に計算することは可能か?
- RQ5本手法は、時間および空間効率の面で、先行する in-place アルゴリズムを上回るか?
主な発見
- 本稿では、整数アルファベット用に O(N) 時間および O(1) の追加単語で suffix array を構築する、初めてのアルゴリズムを提示し、最適な時間および空間計算量を達成する。
- 未使用ビットを活用することで、出力用 suffix array 領域に type 配列および補助データ構造(例:LE 配列)を格納し、in-place 操作を可能にする。
- 逆 suffix array を左から右へスキャンすることで、ψ 配列を in-place に計算し、その後でそれを in-place に LCP 配列に変換する。このプロセスには追加領域を必要としない。
- Nong (TOIS 2013) の先行研究は σ + O(1) の追加単語を必要とし、Franceschini と Muthukrishnan (ICALP 2007) の研究は O(N log N) 時間を要していたが、本手法はこれらを上回る。
- 本手法は、SA および LCP の両方の構築において最適な時間および空間計算量を達成し、文字列アルゴリズム分野における未解決問題を解決する。
- 再帰的サブ配列境界の格納に簡素化された in-place 手法を提案し、O(log N) ではなく O(1) のアクセス時間を達成する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。