Skip to main content
QUICK REVIEW

[論文レビュー] Representing the suffix tree with the CDAWG

Djamal Belazzougui, Fabio Cunial|arXiv (Cornell University)|May 24, 2017
Algorithms and Data Compression参考文献 11被引用数 7
ひとこと要約

本稿では、コンパクトな有向無環語彙グラフ(CDAWG)を用いた、空間効率の良いサフィックスツリー表現を提示する。これにより、LCA、サフィックス配列へのアクセス、部分文字列抽出といった主要なサフィックスツリー演算を、O(1)からO(log n)の時間で効率的にサポートできる。また、O(e_T + e_{\bar{T}})語の空間を維持する。このアプローチは、ヘビーパス分解を活用し、Tの文脈自由文法にTの逆順CDAWGを接続することで、T、サフィックス配列、関連構造への効率的なランダムアクセスを可能にする。

ABSTRACT

Given a string $T$, it is known that its suffix tree can be represented using the compact directed acyclic word graph (CDAWG) with $e_T$ arcs, taking overall $O(e_T+e_{\overline{T}})$ words of space, where ${\overline{T}}$ is the reverse of $T$, and supporting some key operations in time between $O(1)$ and $O(\log{\log{n}})$ in the worst case. This representation is especially appealing for highly repetitive strings, like collections of similar genomes or of version-controlled documents, in which $e_T$ grows sublinearly in the length of $T$ in practice. In this paper we augment such representation, supporting a number of additional queries in worst-case time between $O(1)$ and $O(\log{n})$ in the RAM model, without increasing space complexity asymptotically. Our technique, based on a heavy path decomposition of the suffix tree, enables also a representation of the suffix array, of the inverse suffix array, and of $T$ itself, that takes $O(e_T)$ words of space, and that supports random access in $O(\log{n})$ time. Furthermore, we establish a connection between the reversed CDAWG of $T$ and a context-free grammar that produces $T$ and only $T$, which might have independent interest.

研究の動機と目的

  • 高反復的であるがために、ゲノム配列やバージョン管理ドキュメントのような文字列に適した、圧縮されたサフィックスツリー表現を設計すること。
  • CDAWGのサイズが反復的テキストにおいて非線形的成長を示すことに着目し、従来の圧縮サフィックス配列を下回る空間使用量を実現すること。
  • CDAWGに基づくサフィックスツリー表現に、追加のクエリ(例:サフィックス配列、逆サフィックス配列、LCP配列)を拡張しながら、最適な空間複雑度を維持すること。
  • 逆順CDAWGとTを生成する文脈自由文法との間の明確な理論的リンクを確立し、効率的な文字列アクセスを可能にすること。
  • O(e_T)語の空間のみを用いて、T、サフィックス配列、および関連配列へのO(log n)時間のランダムアクセスを可能にすること。

提案手法

  • サフィックスツリーのヘビーパス分解を用いて、LCA、祖先、selectLeafなどの効率的ナビゲーションと操作をO(1)からO(log log n)時間で実現する。
  • CDAWG構造を介してBWTの区間とサフィックスリンクを格納し、サフィックス配列および逆サフィックス配列への効率的アクセスを実現する。
  • 逆順CDAWGを、Tを生成するストレートラインプログラム(文法)として活用し、文法アクセスクエリによりT[i]およびT[i..j]へのO(log n)時間アクセスを可能にする。
  • 同型な部分木を活用してサフィックスツリーを圧縮し、差分配列の文法ベース圧縮を可能にする。
  • 逆文字列\bar{T}のRLBWTを用いて、arcラベルの走査をO(log log n)時間/文字で実現する。
  • CDAWGベースの表現を、文字列深さ、親、サフィックスリンクといった追加の操作に対しても拡張し、同じ漸近的空間境界を維持する。

実験結果

リサーチクエスチョン

  • RQ1CDAWGを用いて、O(e_T + e_{\bar{T}})語の空間でサフィックスツリーを表現し、O(1)からO(log log n)時間で主要な操作をサポートできるか?
  • RQ2O(e_T)語の空間のみを用いて、T、サフィックス配列、および逆サフィックス配列へのランダムアクセスをO(log n)時間でサポートできるか?
  • RQ3逆順CDAWGとTを生成する文脈自由文法との間に明確な理論的関係が存在するか? また、この関係を効率的な文字列アクセスに活用できるか?
  • RQ4LCA、祖先、サフィックスリンクといった操作を、空間複雑度を増加させずにO(1)からO(log log n)時間でサポートできるか?
  • RQ5ランダムアクセスにおけるO(log n)項を、同じ空間予算を維持したまま低減できるか、あるいはこれは漸近的に避けられないものか?

主な発見

  • サフィックスツリーは、O(e_T + e_{\bar{T}})語の空間で表現可能であり、e_TはTのCDAWGにおける弧の数を表す。これにより、高反復的テキストでは非線形的空間成長が実現される。
  • LCA、leftmostLeaf、selectLeafといった主要な操作は、O(1)からO(log log n)時間でサポート可能であり、一部の操作について、従来のO(log n)の境界を改善する。
  • T[i]へのランダムアクセスはO(log n)時間、T[i..j]へのランダムアクセスはO(log n + j−i)時間でサポート可能であり、逆順CDAWGを文法として活用する。
  • 逆順CDAWGは、Tを生成する文脈自由文法と正式にリンクされており、差分配列の文法ベース圧縮の理論的基盤を提供する。
  • サフィックス配列、逆サフィックス配列、LCP配列はすべてO(e_T)語で表現可能であり、O(log n)のランダムアクセス時間を持つ。CDAWGの空間効率性と同等の性能を達成する。
  • 本アプローチにより、O(e_T)の空間のみを用いて、マッチング統計や特定の部分文字列カーネルをO(m log n)時間で効率的に計算可能となり、反復的テキスト処理に適している。

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

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

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

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