Skip to main content
QUICK REVIEW

[論文レビュー] Computing All Distinct Squares in Linear Time for Integer Alphabets

Hideo Bannai, Shunsuke Inenaga|arXiv (Cornell University)|Oct 11, 2016
Algorithms and Data Compression参考文献 21被引用数 3
ひとこと要約

この論文は、整数アルファベット上の文字列におけるすべての異なる平方を線形時間で計算するアルゴリズムを提示する。後退接尾辞木と、準動的最小マーク付き祖先データ構造を活用している。主な貢献は、最小拡張接尾辞木(MAST)のトポロジーをO(n)時間で構築できることであり、これにより非重複部分文字列出現の効率的な照会が可能になる。

ABSTRACT

Given a string on an integer alphabet, we present an algorithm that computes the set of all distinct squares belonging to this string in time linear to the string length. As an application, we show how to compute the tree topology of the minimal augmented suffix tree in linear time. Asides from that, we elaborate an algorithm computing the longest previous table in a succinct representation using compressed working space.

研究の動機と目的

  • 整数アルファベット上での文字列におけるすべての異なる平方を線形時間で計算すること。
  • 最小拡張接尾辞木(MAST)のトポロジーを線形時間で効率的に構築できること。
  • 最長以前因子(LPF)テーブルの要約的で圧縮された表現を提供すること。
  • 実用的なデータ構造設計により、オンラインでの異なる平方の計算を可能とすること。

提案手法

  • 範囲最小クエリ(RMQ)を用いて、接尾辞配列とLCP配列を効率的に活用し、平方部分文字列を特定する。
  • 処理済み領域を追跡するために、準動的最小マーク付き祖先(LMA)データ構造を用いる。
  • 整数ソーティングを用いて平方根を長さの順にソートし、小さい順に処理する。
  • 接尾辞木のトップダウン走査を用いて、平方根に対応する正しい位置に新しいノードを挿入する。
  • LPFテーブルを2n + o(n)ビットで表現し、圧縮された作業領域を用いて計算する。
  • LCP配列上のRMQを活用して、LCEクエリを定数時間で回答する。

実験結果

リサーチクエスチョン

  • RQ1整数アルファベット上での文字列におけるすべての異なる平方を線形時間で計算できるか?
  • RQ2最小拡張接尾辞木(MAST)の木構造をO(n)時間で構築できるか?
  • RQ3最長以前因子(LPF)テーブルを圧縮されたメモリ領域で格納・計算できるか?
  • RQ4このアルゴリズムをオンライン処理用に適合させられるか?

主な発見

  • アルゴリズムは、サイズがn^O(1)の整数アルファベット上でのすべての異なる平方をO(n)時間で計算できる。
  • 最小拡張接尾辞木(MAST)のトポロジーはO(n)時間で構築可能であり、従来のO(n log n)の境界を改善している。
  • LPFテーブルは2n + o(n)ビットで格納され、圧縮された作業領域を用いて計算される。
  • 準動的最小マーク付き祖先構造を用いることで、接尾辞木内の挿入位置を効率的に特定できる。
  • 平方根に対応する正しい深さにノードを挿入することで、MASTの線形時間構築が可能になる。
  • アルゴリズムは、付録で示されるように、オンラインでの異なる平方の処理をサポートする。

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

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

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

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