Skip to main content
QUICK REVIEW

[論文レビュー] Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic

Paweł Gawrychowski|arXiv (Cornell University)|Apr 21, 2011
Algorithms and Data Compression参考文献 13被引用数 14
ひとこと要約

この論文は、Lempel-Ziv 圧縮文字列におけるパターンマッチングのための決定的で、O(n log(N/n) + m) 時間のアルゴリズムを提示している。これは、Farach と Thorup が提案したランダム化された O(n log²(N/n) + m) 解法よりも顕著に改善されたものである。LZ パースをバランスの取れたストレートラインプログラム(SLP)に変換し、接頭辞・接尾辞・カバーの効率的計算を suffix tree の性質を用いて行うことで、解凍なしに高速なパターン検出を実現し、高い圧縮性を持つテキストに対して最適な性能を達成する。

ABSTRACT

Countless variants of the Lempel-Ziv compression are widely used in many real-life applications. This paper is concerned with a natural modification of the classical pattern matching problem inspired by the popularity of such compression methods: given an uncompressed pattern s[1..m] and a Lempel-Ziv representation of a string t[1..N], does s occur in t? Farach and Thorup gave a randomized O(nlog^2(N/n)+m) time solution for this problem, where n is the size of the compressed representation of t. We improve their result by developing a faster and fully deterministic O(nlog(N/n)+m) time algorithm with the same space complexity. Note that for highly compressible texts, log(N/n) might be of order n, so for such inputs the improvement is very significant. A (tiny) fragment of our method can be used to give an asymptotically optimal solution for the substring hashing problem considered by Farach and Muthukrishnan.

研究の動機と目的

  • 完全な解処理なしに Lempel-Ziv 圧縮テキストにおけるパターンの効率的検索を実現すること。
  • 時間計算量が高いため、従来のランダム化アルゴリズムの限界を克服すること。
  • 既存の最良の時間計算量を達成または上回る決定的ソリューションを開発すること。
  • n ≪ N であるような高圧縮性テキストを扱い、圧縮比に応じてスケーリングされることを保証すること。
  • 理論的最適性を維持しながら、複雑な従来手法の単純で実用的な代替案を提供すること。

提案手法

  • Charikar らの手法を用いて、LZ パースをサイズ O(n log(N/n)) のバランスの取れたストレートラインプログラム(SLP)に変換すること。
  • bottom-up な走査と動的計画法を用いて、パターンの部分文字列を表すすべての非端末記号について、カバーを計算すること。
  • 子ノードのカバーと性質に基づき、非端末記号の prefix および suffix 配列を線形時間アルゴリズムで計算すること。
  • suffix tree 操作と補題 12 を活用し、整数除算と 2 のべき乗長さの仮定を用いて、定数時間で部分文字列を特定すること。
  • 補題 7 を適用して、非端末記号の文字列間の prefix および suffix の重複を、慎重に選んだ引数と境界を用いて計算すること。
  • 補題 6 を用いて効率的な検証を実行し、すべての生成規則 X → YZ について prefix(Y) + suffix(Z) 内に一致があるかを確認することで、パターンの出現を特定すること。

実験結果

リサーチクエスチョン

  • RQ1Lempel-Ziv 圧縮文字列におけるパターンマッチングに対して、決定的アルゴリズムが O(n log(N/n) + m) 時間で実現可能であり、従来のランダム化された O(n log²(N/n) + m) 解法を上回ることができるか。
  • RQ2特に m ≫ n の場合に、LZ の圧縮パターンマッチングにおいて、パターン長 m に伴う二乗の依存性を排除することは可能か。
  • RQ3ストレートラインプログラムと suffix tree の性質を用いることで、解処理なしに効率的かつ決定的に文字列の重複を計算できるか。
  • RQ4整数除算が許可されない代数的計算モデルにおいて、圧縮パターンマッチングの理論的下界は何か。
  • RQ5LZ パースの構造をどのように活用すれば、高圧縮テキストにおけるパターン検出のための単純かつ効率的なアルゴリズムを設計できるか。

主な発見

  • 提案されたアルゴリズムは、決定的時間計算量 O(n log(N/n) + m) を達成しており、Farach と Thorup が提唱したランダム化された O(n log²(N/n) + m) 解法を改善している。
  • 従来の解法と同様の空間計算量 O(n log(N/n) + m) を維持しており、メモリ使用効率が保証されている。
  • log(N/n) が Ω(n) であるような高圧縮テキストでは、新しい計算量の上限が、対数因子を二乗から線形に削減するという点で、漸近的に顕著な改善が達成されている。
  • 基本的な算術演算と suffix tree の検索のみを用いるため、実装が簡単で実用的である。
  • 整数除算が許可されないという仮定のもとで、代数的計算木モデルにおいて Ω(n log N) の下界が成立するため、このアルゴリズムは理論的に最適であると証明されている。
  • この手法のわずかな変種が、Farach と Muthukrishnan が研究した部分文字列ハッシュ問題に対しても、漸近的に最適な解をもたらす。

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

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

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

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