Skip to main content
QUICK REVIEW

[論文レビュー] Fingerprints in Compressed Strings

Philip Bille, Patrick Hagge Cording|arXiv (Cornell University)|May 13, 2013
Algorithms and Data Compression参考文献 18被引用数 5
ひとこと要約

本稿では、文字を一切展開せずに文法圧縮された文字列に対するKarp-Rabinフィンガープrintクエリを処理する最初の線形空間データ構造を提示する。Straight Line Programs (SLPs) に対しては O(log N) のクエリ時間を達成し、LZ78形式の圧縮に用いられるLinear SLPs に対してはクエリ時間を O(log log N) に短縮し、このような圧縮表現におけるランダムアクセスの効率性と一致する。

ABSTRACT

The Karp-Rabin fingerprint of a string is a type of hash value that due to its strong properties has been used in many string algorithms. In this paper we show how to construct a data structure for a string $S$ of size $N$ compressed by a context-free grammar of size $n$ that answers fingerprint queries. That is, given indices $i$ and $j$, the answer to a query is the fingerprint of the substring $S[i,j]$. We present the first O(n) space data structures that answer fingerprint queries without decompressing any characters. For Straight Line Programs (SLP) we get $O(\log N)$ query time, and for Linear SLPs (an SLP derivative that captures LZ78 compression and its variations) we get $O(\log \log N)$ query time. Hence, our data structures has the same time and space complexity as for random access in SLPs. We utilize the fingerprint data structures to solve the longest common extension problem in query time $O(\log N \log \lce)$ and $O(\log \lce \log\log \lce + \log\log N)$ for SLPs and Linear SLPs, respectively. Here, $\lce$ denotes the length of the LCE.

研究の動機と目的

  • 展開なしに文法圧縮された文字列に対するフィンガープリントクエリを効率的に処理するデータ構造の設計。
  • SLPsおよびLinear SLPsのクエリ時間を最小限に抑えつつ、最適な空間計算量 O(n) を達成すること。
  • SLPsにおけるランダムアクセスの時間計算量と一致するフィンガープリントクエリの時間計算量を達成し、従来の展開ベースの手法を改善すること。
  • フィンガープリントデータ構造を用いて、圧縮された文字列における最長共通接頭辞(LCE)問題を効率的に解くこと。
  • 任意の先行者データ構造をブラックボックスとして用いることのできる、新しい単純な還元法を提示すること。

提案手法

  • 部分文字列のフィンガープリントが接頭辞のフィンガープリントから定数時間で計算可能であるという性質を活用し、SLPのパース木における経路に沿ったフィンガープリントの効率的合成を可能にする。
  • Billeら[8]の高速ランダムアクセスデータ構造をSLPsの基盤とし、事前に計算されたノードのフィンガープリントと組み合わせることで、O(log N) 時間でフィンガープリントクエリに応答する。
  • Linear SLPsでは、生成規則の木構造的性質を活用し、レベル祖先データ構造を用いてパース木内で定数時間で大規模なジャンプを可能にする。
  • Linear SLPsにおける位置特定ステップを先行者問題としてモデル化し、フィンガーサーチ技術を用いて効率的に解く。
  • ある位置を生成する親ノードの子ノードを指すフィンガーを用いたクエリメカニズムを導入し、D = |i - j| に対して O(log log D) 時間のクエリ時間を達成する。
  • 任意の下位の先行者データ構造をブラックボックスとして用いるフィンガープリディセッション問題のブラックボックス還元法を考案し、柔軟性と効率性を向上させる。

実験結果

リサーチクエスチョン

  • RQ1文法圧縮された文字列に対するフィンガープリントクエリを、部分線形時間かつ線形空間で、文字の展開なしに処理できるか?
  • RQ2Linear SLPsにおけるフィンガープリントクエリのクエリ時間を O(log log N) に改善でき、このような表現におけるランダムアクセスの効率性と一致するか?
  • RQ3フィンガープリントデータ構造を用いて、圧縮された文字列における最長共通接頭辞(LCE)問題を効率的に解くにはどうすればよいか?
  • RQ4任意の既存の先行者データ構造をブラックボックスとして用いることのできる、新しい単純な還元法を考案できるか?
  • RQ5Karp-Rabinフィンガープリント関数が圧縮文字列上で衝突自由であることを検証するための最小限の空間および時間計算量は何か?

主な発見

  • 本稿では、文字の展開なしにSLP圧縮文字列に対するフィンガープリントクエリをO(log N)時間で処理する最初のO(n)空間データ構造を提示する。
  • Linear SLPsでは、クエリ時間がO(log log N)に短縮され、このような表現におけるランダムアクセスの時間計算量と一致する。
  • フィンガープリントデータ構造により、SLPsではO(log N log ℓ)時間、Linear SLPsではO(log ℓ log log ℓ + log log N)時間でLCE問題が解ける。ここでℓはLCEの長さを表す。
  • 新しいフィンガープリディセッション還元法を導入し、フィンガーに基づくアクセスを用いてLinear SLPsにおける効率的な位置クエリを可能にし、D = |i - j| に対してO(log log D)のクエリ時間を達成する。
  • フィンガープリント検証アルゴリズムはO(N log N)時間、O(n)空間で実行可能であり、同じ空間量でO(N²/n log N)時間で実行可能であり、効率的な衝突自由なフィンガープリント関数の検証が可能になる。
  • Linear SLPsでは、ルート部分文字列の構造を活用し、効率的なスライディングウインドウ技術を用いることで、フィンガープリント検証時間をO(N log N log log N)にさらに短縮し、O(n)空間で実行可能になる。

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

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

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

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