Skip to main content
QUICK REVIEW

[論文レビュー] A Compact DAG for Storing and Searching Maximal Common Subsequences

Alessio Conte, Roberto Grossi|arXiv (Cornell University)|Jan 1, 2023
Algorithms and Data Compression被引用数 3
ひとこと要約

この論文は、2つの文字列のすべての最大共通部分列(MCS)を多項式時間 O(n³σ) で表現するコンパクトな有向無閉路グラフ(MDAG)を導入する。MDAG は O(n³σ log n) 時間で構築され、定数平均時間(CAT)での列挙、辞書順順序のランク/セレクト操作、およびプレフィックスベース検索をすべて近似的に最適な時間で実行可能であり、LCS と MCS の計算の複雑さのギャップを埋める。

ABSTRACT

Maximal Common Subsequences (MCSs) between two strings X and Y are subsequences of both X and Y that are maximal under inclusion. MCSs relax and generalize the well known and widely used concept of Longest Common Subsequences (LCSs), which can be seen as MCSs of maximum length. While the number both LCSs and MCSs can be exponential in the length of the strings, LCSs have been long exploited for string and text analysis, as simple compact representations of all LCSs between two strings, built via dynamic programming or automata, have been known since the '70s. MCSs appear to have a more challenging structure: even listing them efficiently was an open problem open until recently, thus narrowing the complexity difference between the two problems, but the gap remained significant. In this paper we close the complexity gap: we show how to build DAG of polynomial size-in polynomial time-which allows for efficient operations on the set of all MCSs such as enumeration in Constant Amortized Time per solution (CAT), counting, and random access to the i-th element (i.e., rank and select operations). Other than improving known algorithmic results, this work paves the way for new sequence analysis methods based on MCSs.

研究の動機と目的

  • 2つの文字列間の最大共通部分列(MCS)の集合は指数的サイズであるが、その効率的な格納と照会の課題に対処すること。
  • MCS は一部の応用において LCS よりも情報量が多いにもかかわらず、従来は効率的なデータ構造が欠けていたため、LCS と MCS の計算の複雑さのギャップを埋めること。
  • MCS の列挙、ランク付け、選択、プレフィックス検索を効率的に行える、コンパクトで多項式サイズのデータ構造を設計すること。
  • MCS をシーケンス解析において実用的に行えるようにするために、MCS 全体に対する近似的に最適なアルゴリズム的演算を提供すること。

提案手法

  • 出発点から終点までの各パスが一意な MCS を表すラベル付き有向無閉路グラフ(MDAG)を構築する。
  • 一意のパスを保持しながら、単一のパスを圧縮することで空間を削減する。
  • 各ノードの出力辺をソートすることで辞書順分割を実現し、順序付き列挙およびランク/セレクト操作をサポートする。
  • 動的計画法とノードの注釈付きカウント(p(v))を用いて、辺の部分和に対する二分探索により、効率的な選択とランク付けを実現する。
  • 深さ優先探索(DFS)を用い、子ノードを辞書順に走査することで、各解に対して定数平均時間(CAT)を達成する列挙を実装する。
  • 与えられたプレフィックスに沿って MDAG を走査し、その結果得られるノードから列挙を開始することで、プレフィックス検索をサポートする。

実験結果

リサーチクエスチョン

  • RQ12つの文字列間のすべての最大共通部分列(MCS)を多項式空間と多項式時間で表現するコンパクトなデータ構造を設計できるか?
  • RQ2コンパクトなデータ構造を用いて、すべての MCS を定数平均時間(CAT)で列挙することは可能か?
  • RQ3MCS の辞書順に整列された集合上で、効率的なランク付けおよび選択操作を近似的に最適な時間でサポートできるか?
  • RQ4同じコンパクトな構造を用いて、MCS のプレフィックスベース検索を効率的にサポートできるか?
  • RQ5すべての文字列を明示的に格納せずに、MCS の集合の指数的サイズをどのように乗り越えることができるか?

主な発見

  • MDAG データ構造は、すべての MCS を O(n³σ) の空間で格納でき、O(n³σ log n) 時間で構築可能である。
  • MCS を辞書順に列挙する操作は、定数平均時間(CAT)で実行可能であり、合計で O(|MCS(X,Y)|) 時間で完了する。
  • MCS(X,Y) 内の文字列 P に対するプレフィックス検索は、O(|P| log σ + occ) 時間で実行可能であり、ここで occ は一致する MCS の数を表す。
  • 辞書順で i 番目の MCS を選択するには O(|S| log σ) 時間を要し、与えられた MCS S のランクを計算するのにも同じ時間で可能である。
  • 構造はスパarsely ストレージに対応しており、効率的なランダムアクセス操作を可能にし、MCS をシーケンス解析に実用的に行えるようにする。
  • 本研究により、LCS と MCS の計算の複雑さのギャップが解消され、MCS 全体に対するすべての基本的演算を多項式時間・多項式空間で実行可能なアルゴリズムが提供された。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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