Skip to main content
QUICK REVIEW

[論文レビュー] Engineering Small Space Dictionary Matching

Shoshana Marcus Dina Sokol|arXiv (Cornell University)|Jan 28, 2013
Algorithms and Data Compression参考文献 10被引用数 3
ひとこと要約

本稿では、圧縮サフィックス木をコアデータ構造として用いることで、辞書の経験エントロピーに比例する作業領域空間で線形時間パターンマッチングを実現する、メモリ効率の良い辞書マッチングアルゴリズムを提示する。主な貢献は、圧縮サフィックス木上で定数時間の最低マーク付き祖先クエリを実現する、簡潔なフレームワークの構築であり、空間の節約を損なわず、DNAおよび英語テキストの実験により検証された。実験では最大5.4MBのメモリ使用量とほぼ線形の検索時間の両方を達成した。

ABSTRACT

The dictionary matching problem is to locate occurrences of any pattern among a set of patterns in a given text. Massive data sets abound and at the same time, there are many settings in which working space is extremely limited. We introduce dictionary matching software for the space-constrained environment whose running time is close to linear. We use the compressed suffix tree as the underlying data structure of our algorithm, thus, the working space of our algorithm is proportional to the optimal compression of the dictionary. We also contribute a succinct tool for performing constant-time lowest marked ancestor queries on a tree that is succinctly encoded as a sequence of balanced parentheses, with linear time preprocessing of the tree. This tool should be useful in many other applications. Our source code is available at http://www.sci.brooklyn.cuny.edu/~sokol/dictmatch.html

研究の動機と目的

  • モバイル機器や衛星機器など、ストレージ容量が限られた環境における辞書マッチングの課題に対処すること。
  • 理論的に最適な簡潔な辞書マッチングアルゴリズムと実用的なソフトウェア実装の間のギャップを埋めること。
  • 辞書の経験エントロピーに比例するメモリ空間で動作する実用的で線形時間の辞書マッチングシステムを開発すること。
  • 圧縮サフィックス木上で定数時間の最低マーク付き祖先クエリを実行する簡潔なデータ構造を設計・実装し、他の応用分野でも再利用可能であるようにすること。

提案手法

  • アルゴリズムは、サフィックス配列およびLCP配列の圧縮表現を用いることで、効率的なメモリ使用を実現する、サダカネの圧縮サフィックス木(CST)を基本データ構造として採用する。
  • 木構造を簡潔に符号化するため、ビットベクトルとバランスドカッコの列を統合的に用い、効率的なナビゲーションおよびクエリ操作を可能にする。
  • 事前処理済みのビットベクトルとバランスドカッコ列を用いて、定数時間で最低マーク付き祖先クエリに応答する、新規の簡潔なフレームワークを導入する。
  • 実装はSuccinct Data Structures Libraryを活用し、性能チューニングのための複数の圧縮サフィックス配列およびLCP配列のバリエーション(例:csa_sada, csa_wt, lcp_dac, lcp_support_tree2)をサポートする。
  • 2つの実世界のデータセット(5MBのヒトゲノムDNAおよび5MBの英語テキスト)を用いて評価し、辞書サイズは2.5〜3MBである。
  • 時間-空間トレードオフを評価するために、複数のCST構成における前処理時間および検索時間を測定する。

実験結果

リサーチクエスチョン

  • RQ1経験エントロピーに比例するメモリ使用量とほぼ線形の実行時間で実用的な簡潔な辞書マッチングアルゴリズムを実装できるか?
  • RQ2提案された最低マーク付き祖先クエリ構造は、圧縮サフィックス木上で定数時間のパフォーマンスを維持できるか?
  • RQ3サフィックス配列およびLCP配列の異なる圧縮表現を用いた辞書マッチングシステムにおいて、実用的な時間-空間トレードオフはどのようなものか?
  • RQ4非圧縮代替構造と比較して、圧縮サフィックス木は検索パフォーマンスを著しく低下させることなく、どれほどメモリ使用量を削減できるか?

主な発見

  • csa_wtおよびlcp_support_tree2を用いた圧縮サフィックス木構成が、DNAデータでは5.4MB、英語テキストでは5.0MBの最小メモリ使用量を達成し、ほぼ線形の検索時間も維持した。
  • すべての圧縮構成において、検索時間は非圧縮ベースライン(DNA:2.05時間、英語:3.63時間)の1%以内に収まり、パフォーマンス劣化はほとんどないことが示された。
  • 前処理時間は7〜30秒の範囲であり、最もメモリ効率の良い構成はわずかに長いセットアップ時間を要したが、依然として実用的な範囲内であった。
  • 最低マーク付き祖先クエリフレームワークにより、線形時間の前処理後、定数時間の操作が可能となり、辞書マッチング以外の応用分野でも再利用可能であることが実証された。
  • 非圧縮サフィックス木(例:DNAで26.7MB vs. 5.4MB)と比較して最大80%のメモリ節約が達成された。これは、圧縮の有効性を裏付けるものである。
  • 結果として、簡潔なデータ構造が実用的な辞書マッチングシステムで効果的に利用可能であり、理論と実装のギャップを埋めることができたことが検証された。

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

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

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

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