Skip to main content
QUICK REVIEW

[論文レビュー] Dynamic index, LZ factorization, and LCE queries in compressed space

Takaaki Nishimoto, I Tomohiro|arXiv (Cornell University)|Apr 27, 2015
Algorithms and Data Compression参考文献 27被引用数 16
ひとこと要約

本稿では、LZ77要因分解とシグニチャ符号化を用いた動的圧縮インデックスを提示し、圧縮された空間内で効率的なパターン検索、部分文字列の更新、LCEクエリを可能にする。局所的に一貫したパースの性質を活用することで、従来の研究に比べてより高速な検索および更新時間を達成し、$w = O(z\log N\log^* M)$ の条件下で $O(w)$ の空間を使用する。ここで $z$ はLZ77要因分解のサイズを表す。

ABSTRACT

In this paper, we present the following results: (1) We propose a new \emph{dynamic compressed index} of $O(w)$ space, that supports searching for a pattern $P$ in the current text in $O(|P| f(M,w) + \log w \log |P| \log^* M (\log N + \log |P| \log^* M) + \mathit{occ} \log N)$ time and insertion/deletion of a substring of length $y$ in $O((y+ \log N\log^* M)\log w \log N \log^* M)$ time, where $N$ is the length of the current text, $M$ is the maximum length of the dynamic text, $z$ is the size of the Lempel-Ziv77 (LZ77) factorization of the current text, $f(a,b) = O(\min \{ \frac{\log\log a \log\log b}{\log\log\log a}, \sqrt{\frac{\log b}{\log\log b}} \})$ and $w = O(z \log N \log^*M)$. (2) We propose a new space-efficient LZ77 factorization algorithm for a given text of length $N$, which runs in $O(N f(N,w') + z \log w' \log^3 N (\log^* N)^2)$ time with $O(w')$ working space, where $w' =O(z \log N \log^* N)$. (3) We propose a data structure of $O(w)$ space which supports longest common extension (LCE) queries on the text in $O(\log N + \log \ell \log^* N)$ time, where $\ell$ is the output LCE length. On top of the above contributions, we show several applications of our data structures which improve previous best known results on grammar-compressed string processing.

研究の動機と目的

  • 圧縮された空間内で効率的なパターン検索と部分文字列の更新をサポートする動的圧縮テキストインデックスの設計。
  • 僅か $O(w')$ の作業領域空間でのLZ77要因分解を計算する空間効率の良いアルゴリズムの開発。
  • 圧縮された空間で高速なクエリ時間を持つLCEクエリをサポートするデータ構造の構築。
  • 提案されたデータ構造を応用することで、文法圧縮された文字列処理における既存の結果の改善。
  • 提案されたインデックスが、検索および更新の両面で従来の動的圧縮インデックスを上回ることの実証。

提案手法

  • 動的文字列管理のため、Mehlhornらの局所的に一貫したパースと、Alstrup らの高速な文字列連結/分割アルゴリズムを活用。
  • アンカーフリーな動的更新と効率的な等価性テストを可能にする、文字列のシグニチャ符号化を用いる。
  • シグニチャ符号化の新規性質(補題12)を導入し、パターン検索時間の比例を実現(実際に出現する回数 $\mathit{occ}$ に比例、上界集合に比例しない)。
  • LZ77要因分解に基づく圧縮データ構造を用いて、$O(\log N + \log\ell\log^* N)$ 時間でLCEクエリをサポート。
  • $w = O(z\log N\log^* M)$ の条件下で $O(w)$ の空間を使用する動的インデックスを構築し、効率的な更新と検索を実現。
  • LCEおよびLCPクエリを効率的に行えることを利用し、パレスティン・ディテクションやリンドン要因分解などの文法圧縮文字列処理タスクにインデックスを応用。

実験結果

リサーチクエスチョン

  • RQ1圧縮された空間内で効率的なパターン検索と部分文字列の更新をサポートする動的圧縮インデックスを構築可能か?
  • RQ2従来の方法に比べ、時間計算量を改善した $O(w')$ の作業領域空間でLZ77要因分解を計算可能か?
  • RQ3$O(w)$ の空間で、$O(\log N + \log\ell\log^* N)$ 時間のLCEクエリをサポートする圧縮データ構造を設計可能か?
  • RQ4提案されたインデックスおよびデータ構造を用いて、文法圧縮文字列処理タスクの既存アルゴリズムを改善可能か?
  • RQ5提案されたインデックスの性能は、検索および更新時間の面で既存の動的圧縮インデックスと比較してどうか?

主な発見

  • 動的圧縮インデックスは、$O(w)$ の空間で、$O(|P|f(M,w) + \log w\log|P|\log^* M(\log N + \log|P|\log^* M) + \mathit{occ}\log N)$ 時間でパターン検索をサポート。ここで $f(M,w) = O(\min\{\frac{\log\log M\log\log w}{\log\log\log M}, \sqrt{\frac{\log w}{\log\log w}}\})$。
  • 部分文字列の挿入/削除は、 amortized $O((y + \log N\log^* M)\log w\log N\log^* M)$ 時間でサポートされ、$\sqrt{N}$ が支配的である場合、従来の $O((y + \sqrt{N})\log^{2+\epsilon}N)$ よりも改善。
  • LZ77要因分解アルゴリズムは、$O(Nf(N,w') + z\log w'\log^3 N(\log^* N)^2)$ 時間で、$O(w')$ の作業領域空間で実行され、ここで $w' = O(z\log N\log^* N)$。
  • サイズ $O(w)$ のLCEデータ構造は、$O(\log N + \log\ell\log^* N)$ 時間でクエリをサポートし、従来の $O(h\log N)$ 時間構造よりも改善。
  • SLP圧縮文字列内のすべての回文を検出するアルゴリズムは、$O(n\log^2 N\log^* N)$ 時間、$O(n\log^* N + w)$ 空間で実行され、従来の $O(n^2 h)$ 時間よりも改善。
  • リンドン要因分解アルゴリズムは、$O(n(n + \log n\log N\log^* N))$ 時間、$O(n^2 + z\log N\log^* N)$ 空間で実行され、$h$ が大きい場合に、従来の $O(nh(n + \log n\log N))$ 時間の方法を上回る。

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

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

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

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