QUICK REVIEW
[論文レビュー] Computing Lempel-Ziv Factorization Online
Tatiana Starikovskaya|arXiv (Cornell University)|Feb 23, 2012
Algorithms and Data Compression参考文献 14被引用数 4
ひとこと要約
この論文は、sparse suffix tree と wavelet tree を用いて、O(n log²n) 時間および O(n log σ) ビットの記憶領域で、文字列の Lempel-Ziv 要因分解をオンラインで計算するアルゴリズムを提示する。各 r = O(logσ n) 文字ごとに要因分解を効率的に更新する。この手法は、更新頻度を低く抑えつつも、時間と空間のトレードオフを有利に保ち、大規模データ処理における実用的応用を可能にする。
ABSTRACT
We present an algorithm which computes the Lempel-Ziv factorization of a word $W$ of length $n$ on an alphabet $Σ$ of size $σ$ online in the following sense: it reads $W$ starting from the left, and, after reading each $r = O(\log_σ n)$ characters of $W$, updates the Lempel-Ziv factorization. The algorithm requires $O(n \log σ)$ bits of space and O(n \log^2 n) time. The basis of the algorithm is a sparse suffix tree combined with wavelet trees.
研究の動機と目的
- 更新頻度を低く抑えつつ、逐次的に Lempel-Ziv 要因分解を計算するオンラインアルゴリズムの設計。
- 各文字ごではなく、r = O(logσ n) 文字ごとに要因分解を更新することにより、実用的な時間-空間トレードオフを達成すること。
- 総実行時間が O(n log²n) に保たれる一方で、O(n log σ) ビットの記憶領域を維持すること。
- wavelet tree や sparse suffix tree のような圧縮データ構造を用いて、効率的な動的更新をサポートすること。
- 完全なオフライン計算が不可能な大規模データ処理に適したスケーラブルなソリューションを提供すること。
提案手法
- 入力文字列を r = O(logσ n) のブロックに分割し、各ブロックの処理後にのみ要因分解を更新する。
- r 文字のブロックからなるメタ文字を用いた sparse suffix tree を用いて、部分文字列を効率的に表現する。
- wavelet tree を用いて Burrows-Wheeler 変換 (BWT) を維持し、各更新で O(log²n) 時間でランク/セレクト演算をサポートする。
- 動的データ構造により、各内部ノードにおける接頭辞木を維持し、効率的な部分文字列検索を可能にする。
- Ukkonen のオンライン接頭辞木構築法と wavelet tree の更新を組み合わせ、逐次的要因分解をサポートする。
- 2つの手続きを用いる:短い要因(|fi| < r)のための P_<r と、長い要因のための P_≥r。後者はパターンマッチングに sparse suffix tree を依存する。
実験結果
リサーチクエスチョン
- RQ1更新頻度を低く抑えつつ、部分二次時間計算量を維持したまま、Lempel-Ziv 要因分解をオンラインで計算できるか?
- RQ2O(n log σ) ビットの記憶領域を維持しつつ、要因分解に対する逐次的更新をサポートできるか?
- RQ3wavelet tree と sparse suffix tree をどのように組み合わせて、各更新で O(log²n) 時間で効率的な動的要因分解を実現できるか?
- RQ4オンライン LZ 要因分解において、更新頻度と総実行時間をバランスさせる最適なブロックサイズ r は何か?
- RQ5大規模な文字列において、空間効率と実用的性能の両方を満たす要因分解の維持方法は可能か?
主な発見
- アルゴリズムは O(n log²n) 時間および O(n log σ) ビットの記憶領域で Lempel-Ziv 要因分解を計算し、有利な時間-空間トレードオフを達成する。
- r = O(logσ n) 文字のブロックからなるメタ文字の使用により、部分文字列のインデックス作成とパターンマッチングが効率的に行える。
- メタ文字上の sparse suffix tree により、繰り返し部分文字列の検出が効率的に行える。これは LZ 要因分解にとって不可欠である。
- wavelet tree は O(log²n) 時間でランクおよびセレクト演算をサポートし、動的データ構造内の効率的なナビゲーションと更新を可能にする。
- 総実行時間は wavelet tree の更新に支配され、O(n/r) 回の更新が各 O(log²n) 時間を要するため、合計で O(n log²n) 時間となる。
- このアルゴリズムは、r 文字ごとに要因分解を更新するオンライン設定に適応可能であり、同じ漸近的境界を維持する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。