Skip to main content
QUICK REVIEW

[論文レビュー] Heaviest Induced Ancestors and Longest Common Substrings

Travis Gagie, Paweł Gawrychowski|arXiv (Cornell University)|May 14, 2013
Algorithms and Data Compression参考文献 24被引用数 3
ひとこと要約

本稿は、同じ葉集合を持つ2つの重み付き木における、重み付き誘導祖先(HIA)クエリを効率的に解くためのデータ構造を導入し、幾何的範囲クエリの解釈を用いる。この手法を応用して、O(n log N)の空間で、パターンと文字列間の最長共通部分文字列をO(m log²n)時間で検索するLZ圧縮インデックスを構築する。これは、大規模なパターンに対して、従来の2次時間計算量のアプローチに比べ顕著な改善をもたらす。

ABSTRACT

Suppose we have two trees on the same set of leaves, in which nodes are weighted such that children are heavier than their parents. We say a node from the first tree and a node from the second tree are induced together if they have a common leaf descendant. In this paper we describe data structures that efficiently support the following heaviest-induced-ancestor query: given a node from the first tree and a node from the second tree, find an induced pair of their ancestors with maximum combined weight. Our solutions are based on a geometric interpretation that enables us to find heaviest induced ancestors using range queries. We then show how to use these results to build an LZ-compressed index with which we can quickly find with high probability a longest substring common to the indexed string and a given pattern.

研究の動機と目的

  • 同じ葉集合を持つ2つの重み付き木における、重み付き誘導祖先(HIA)クエリを効率的に処理するためのデータ構造を設計すること。
  • 誘導祖先の幾何的解釈を活用し、葉の位置マッピングにおける範囲クエリをサポートすること。
  • HIAデータ構造を応用して、LZ77圧縮文字列における高速な最長共通部分文字列(LCS)クエリを実現する圧縮インデックスを構築すること。
  • パターン長mに関するLCSクエリの時間計算量を、O(m² log log n)からO(m log²n)に低減すること。
  • nがLZ77フレーズの数である場合、O(n log N)に比例する圧縮空間を維持しつつ、2次未塔のクエリ時間に抑えること。

提案手法

  • 各セル(x,y)がT₁におけるx番目、T₂におけるy番目の葉を表すn×nグリッド上の範囲空チェッククエリとして問題をモデル化する。
  • 両木のヘヴィパス分解を用いて、検討対象となる祖先ペアの数を削減し、各葉あたりO(log²n)ペアに制限する。
  • 各ペアのヘヴィパスに対してスカイラインリストを構築し、深さまたは重みで最大で、かつ支配されない誘導祖先ペア(u₁,u₂)のみを格納する。
  • 完全ハッシュテーブルを用いて、非空のスカイラインリストのみを格納し、HIAクエリ時の効率的な検索を可能にする。
  • O(log log n)のクエリ時間とO(n log log n)の空間を備えた範囲空チェックデータ構造、またはO(n)の空間でO(log³n (log log n)²)の時間を持つデータ構造を用いる。
  • HIAデータ構造をLCSクエリに応用する際、逆順接頭辞用と接尾辞用の2つのパトリシアトライを構築し、Karp-Rabinハッシュ法と重心分解を用いて効率的なLCP計算を実現する。

実験結果

リサーチクエスチョン

  • RQ1幾何的範囲クエリを用いて、同じ葉集合を持つ2つの重み付き木間の重み付き誘導祖先クエリを効率的にサポートできるか?
  • RQ2木のクロス積の文脈において、HIAデータ構造の空間とクエリ時間のトレードオフは何か?
  • RQ3HIAデータ構造を活用して、LZ圧縮文字列内での最長共通部分文字列(LCS)クエリの高速化を実現できるか?
  • RQ4LCSクエリのクエリ時間のmに関する依存関係を2次から線形に低減することは可能か?
  • RQ5得られる圧縮インデックスの空間使用量をO(n log N)に保ちつつ、2次未塔のクエリ時間に抑えることは可能か?

主な発見

  • O(n log²n)の空間で、O(log n log log n)の時間でHIAクエリをサポートするデータ構造により、圧縮文字列内での効率的なLCS計算が可能になる。
  • 本稿は、パターンPとLZ77圧縮文字列S間の最長共通部分文字列をO(m log²n)時間で検索するアルゴリズムを達成し、空間使用量はO(n log N)である。
  • より空間効率の良いHIA構造を用いることで、クエリ時間はO(m log n log log n)に短縮可能だが、空間使用量はO(n(log N + log²n))に増加する。
  • Karp-Rabinハッシュ法と重心分解を施したパトリシアトライを用いることで、すべてのパターン分割におけるLCPをO(m log n)時間で計算可能となり、mに線形依存性が達成される。
  • LCSクエリにおいて高い確率で正しく動作するよう、ランダム化手法を用いて正確なLCP推定を保証する。
  • 論文の完全版では、クエリ時間のlog log n要因を完全に排除し、さらなる tighter 界の可能性を示唆している。

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

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

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

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