Skip to main content
QUICK REVIEW

[論文レビュー] Dynamic Palindrome Detection

Amihood Amir, Itai Boneh|arXiv (Cornell University)|Jan 1, 2019
Algorithms and Data Compression参考文献 23被引用数 6
ひとこと要約

本稿では、文字の置換が加わるテキストにおける最長回文部分文字列を、更新1回あたり多対数時間で維持する決定的動的アルゴリズムを提示する。具体的には、動的最長共通接頭辞(LCP)データ構造の新規応用と、回文および周期的走査の組合せ的性質を用いて、Õ(1) 時間を達成する。主な貢献は、動的環境下で周期的シードの計算とクラスタ解析を用いて、最長回文的要因を効率的に検出し、維持する手法である。

ABSTRACT

A string UU for a non-empty string U is called a square. Squares have been well-studied both from a combinatorial and an algorithmic perspective. In this paper, we are the first to consider the problem of maintaining a representation of the squares in a dynamic string S of length at most n. We present an algorithm that updates this representation in n^o(1) time. This representation allows us to report a longest square-substring of S in O(1) time and all square-substrings of S in O(output) time. We achieve this by introducing a novel tool - maintaining prefix-suffix matches of two dynamic strings. We extend the above result to address the problem of maintaining a representation of all runs (maximal repetitions) of the string. Runs are known to capture the periodic structure of a string, and, as an application, we show that our representation of runs allows us to efficiently answer periodicity queries for substrings of a dynamic string. These queries have proven useful in static pattern matching problems and our techniques have the potential of offering solutions to these problems in a dynamic text setting.

研究の動機と目的

  • 文字の置換が加わるテキストにおける最長回文を求めるための効率的動的アルゴリズムの不足に対処すること。
  • 動的文字列における最長回文的部分文字列の効率的更新とクエリをサポートするデータ構造およびアルゴリズムを開発すること。
  • 動的LCPと回文の新規組合せ的性質を活用して、多対数時間の更新時間の達成を目指すこと。
  • 各変更後に再計算するのと比べて著しく向上した、1回の編集あたりÕ(1) 時間で最長回文を維持できることを示すこと。

提案手法

  • 各サイズクラス s に対して優先度付きキュー(Q)を維持し、そのサイズクラスに属する最長回文的要因(LMP)を格納する動的データ構造を構築する。
  • 部分文字列の比較と回文的走査内の周期的構造の検出に、動的最長共通接頭辞(LCP)クエリを用いる。
  • クラスタの周期的シードを計算するサブルーチン FindCppPeriod を適用し、最大周期的回文(CPP)の接頭辞または接尾辞であるLMPを分析する。
  • 優先度付きキュー上の後続および直前クエリを用いて、クラスタ内での最大拡張(P*)である可能性のある候補LMPを特定する。
  • Theorem 1 を用いて、クラスタの開始位置と含まれるLMPの開始位置との距離から、クラスタの周期 p を計算し、組合せ的制約により正しさを保証する。
  • LCPクエリとクラスタ解析を組み合わせることで、各文字編集後に周期的回文構造を効率的に検出し、更新する。

実験結果

リサーチクエスチョン

  • RQ1動的文字列における最長回文を、1回の文字置換あたり多対数時間で維持できるか?
  • RQ2効率的な動的維持を可能にする回文および周期的走査の組合せ的性質は何か?
  • RQ3動的LCPデータ構造をどのように活用して、回文的要因を効率的に検出し、更新できるか?
  • RQ4正しさを保証するために、1回の更新あたりチェックする必要がある候補LMPの最小数は何か?
  • RQ5局所的情報を用いるだけで、回文的クラスタの周期的シードを多対数時間で計算できるか?

主な発見

  • 最長回文部分文字列は、1回の文字置換あたりÕ(1) 時間で維持可能であり、多対数時間の更新時間の達成に成功した。
  • アルゴリズムは、多対数時間でクエリをサポートする動的LCPデータ構造に依存しており、部分文字列の効率的比較を可能にしている。
  • 1回の更新あたりの候補LMPの数は O(log²n) で抑えられ、スケーラビリティが保証された。
  • 回文的クラスタの周期的シードは Theorem 1 を用いて計算され、クラスタとLMPの開始位置の距離と最小周期との関係が示されている。
  • 前駆および直前クエリを用いて、サイズクラスごとに最大4つの候補クラスタをチェックすることで、最大回文的要因を正しく特定している。
  • 全体の時間計算量は O(max(log⁴n, λ(n)·log²n)) であり、λ(n) は動的LCPの処理時間で、LCPが多対数時間で維持される場合にはÕ(1) となる。

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

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

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

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