Skip to main content
QUICK REVIEW

[論文レビュー] Space-Efficient String Indexing for Wildcard Pattern Matching

Moshe Lewenstein, Yakov Nekrich|arXiv (Cornell University)|Jan 3, 2014
Algorithms and Data Compression参考文献 8被引用数 8
ひとこと要約

この論文は、$o(n\log n)$ビットの領域を用いて、効率的な照合を実現する、ワイルドカードパターンマッチングのための最初の圧縮データ構造を提示する。$O(n\log^\varepsilon n)$ビットのインデックスを用い、$O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$の照合時間で、定数アルファベットの場合に、従来の線形領域ソリューションよりも顕著に改善された性能を達成する。

ABSTRACT

In this paper we describe compressed indexes that support pattern matching queries for strings with wildcards. For a constant size alphabet our data structure uses $O(n\log^{\varepsilon}n)$ bits for any $\varepsilon>0$ and reports all $\mathrm{occ}$ occurrences of a wildcard string in $O(m+σ^g \cdotμ(n) + \mathrm{occ})$ time, where $μ(n)=o(\log\log\log n)$, $σ$ is the alphabet size, $m$ is the number of alphabet symbols and $g$ is the number of wildcard symbols in the query string. We also present an $O(n)$-bit index with $O((m+σ^g+\mathrm{occ})\log^{\varepsilon}n)$ query time and an $O(n(\log\log n)^2)$-bit index with $O((m+σ^g+\mathrm{occ})\log\log n)$ query time. These are the first non-trivial data structures for this problem that need $o(n\log n)$ bits of space.

研究の動機と目的

  • ワイルドカードパターンマッチングをサポートする圧縮文字列インデックスを設計し、$o(n\log n)$ビットのサブラインアー領域使用を実現すること。
  • 特に大規模なテキストインデキシングにおいて顕著な問題となる、$\Theta(n\log n)$ビット以上を必要とする従来のデータ構造の非効率性を是正すること。
  • 任意の数のワイルドカードを含むパターンについて、空間のオーバーヘッドを最小限に抑えつつ、効率的な照合処理を可能にすること。
  • 従来の線形領域ソリューションを上回る、空間と照合時間の両方において優れたトレードオフを達成すること。

提案手法

  • 階層的サンプリングを用いた圧縮サフィックスツリーを構築:主・副のマークドノードを導入し、領域を削減しながら照合効率を維持する。
  • ワイルドカードシンボルを処理するためのワイルドカードツリーを用い、複数のパスを並列に分岐・走査し、同時に有効な位置の数を制限する。
  • 短いパターン(長さ$\leq \ell$)のためのルックアップテーブルを採用し、ワイルドカードチャンクのマッチングを高速に生成・照合可能にする。
  • サンプリングされたサフィックスツリー上で標準的なLCP照合を実行するとともに、ワイルドカード対応の走査を組み合わせ、$O(\sigma^g \sqrt{\log^{(3)}n})$時間で照合を実行する。
  • 各レベルがパターンのセグメント(最大$t_1$個のワイルドカードまで)を処理する階層的データ構造を導入し、再帰的照合の回数を削減する。
  • 小さな部分木では$O(1)$のLCP照合時間を持つ圧縮サフィックスアレイを用い、より大きなサンプリングされた部分木には、$\mu(n) = O(\sqrt{\log^{(3)}n})$時間の圧縮LCP構造を適用する。

実験結果

リサーチクエスチョン

  • RQ1ワイルドカードパターンマッチングに適した、$o(n\log n)$ビット未満の領域を用いる圧縮文字列インデックスを設計することは可能か?
  • RQ2任意の数のワイルドカードを含むワイルドカードパターンマッチングにおいて、空間使用量と照合時間の最良のトレードオフは何か?
  • RQ3$g$個のワイルドカードを含むパターンについて、サブラインアー領域を維持しつつ、サブラインアー照合時間を達成することは可能か?
  • RQ4すべての$\sigma^g$通りの可能なパターンを明示的に列挙せずに、複数のワイルドカードセグメントを効率的に処理することは可能か?
  • RQ5空間を$O(n)$または$O(n(\log\log n)^2)$ビットに削減しつつ、$O(\mathrm{occ})$の報告時間維持は可能か?

主な発見

  • 本論文は、$O(n\log^\varepsilon n)$ビットのデータ構造を提示し、$O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$時間でワイルドカードパターンマッチングを実行可能であり、従来の研究に比べてサブラインアー領域と改善された照合時間の両方を達成する。
  • $O(n)$ビットのインデックスは、$O((m + \sigma^g + \mathrm{occ})\log^\varepsilon n)$時間で照合を実行可能であり、空間の大幅な削減と、照合時間のわずかな増加を実現する。
  • $O(n(\log\log n)^2)$ビットのインデックスは、$O((m + \sigma^g + \mathrm{occ})\log\log n)$時間で照合を実行可能であり、空間とパフォーマンスのバランスを取る。
  • 定数アルファベットサイズ$\sigma$の場合、照合時間は$O(m + \sigma^g \sqrt{\log^{(3)}n} + \mathrm{occ})$となり、従来の線形領域構造の$O(m + \sigma^g \log\log n)$時間よりも改善される。
  • 本データ構造は任意の数のワイルドカードを扱い、$\sigma^g$通りの可能なパターンを明示的に列挙せずに、階層的サンプリングと短いワイルドカードセグメント用のルックアップテーブルを用いることで効率的に処理する。
  • 本アプローチはより大きなアルファベットに対しても一般化可能である:$\sigma \geq \log\log n$のとき、$O(n\log n)$ビットの構造が$O(m + \sigma^g + \mathrm{occ})$の照合をサポートし、一般の$\sigma$では$O(n\log\sigma)$ビットの構造が$O((m + \sigma^g + \mathrm{occ})\log_\sigma^\varepsilon n)$時間の照合を実現する。

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

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

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

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