Skip to main content
QUICK REVIEW

[論文レビュー] Efficiently computing runs on a trie

Ryo Sugahara, Yuto Nakashima|arXiv (Cornell University)|Jan 29, 2019
Algorithms and Data Compression被引用数 4
ひとこと要約

本稿では、根からノードへのパスに沿った最大周期的部分文字列である「トライ上のラン」の概念を導入し、n本の辺をもつトライにおいて、すべてのランをO(n log log n)時間、O(n)空間で計算するアルゴリズムを提示する。ランの最大数がnで上界づけられることを確立し、0.993238nというタイトな漸近的下界を示し、トライにおけるランの近線形密度を示している。

ABSTRACT

A maximal repetition, or run, in a string, is a maximal periodic substring whose smallest period is at most half the length of the substring. In this paper, we consider runs that correspond to a path on a trie, or in other words, on a rooted edge-labeled tree where the endpoints of the path must be a descendant/ancestor of the other. For a trie with $n$ edges, we show that the number of runs is less than $n$. We also show an asymptotic lower bound on the maximum density of runs in tries: $\\lim_{n\ ightarrow\\infty}\ ho_\\mathcal{T}(n)/n \\geq 0.993238$ where $\ ho_{\\mathcal{T}}(n)$ is the maximum number of runs in a trie with $n$ edges. Furthermore, we also show an $O(n\\log \\log n)$ time and $O(n)$ space algorithm for finding all runs.

研究の動機と目的

  • 根付き、辺ラベル付きの木(トライ)への文字列ランの概念の拡張を図り、ランを根からノードへのパスに沿った最大周期的部分文字列として定義する。
  • n本の辺をもつトライに存在可能なランの最大数を分析し、上限と下限を確立する。
  • 効率的なアルゴリズムを設計し、トライ内のすべてのランを計算する。従来のO(n(log log n)^2)解法を改善する。
  • トライの文脈におけるラン、リンドン語、および最長共通接頭部(LCE)クエリとの関係を調査する。

提案手法

  • すべてのランがその中間にリンドン語(L-root)を部分文字列として含むという性質を活用し、トライ内でのラン検出を導く。
  • b^{4/5}の間隔でマークされたノードを用いたトライの階層的分解を適用し、長さb^{4/5}の部分文字列に対する効率的なLCEクエリを可能にする。
  • 後継ぎ木を用いて長さx^2 = b^{4/5}の標準パスを再ラベル付け・ソートし、範囲最小値クエリを用いて線形時間でのソートおよびLCE計算を実現する。
  • 二段階のLCE戦略を採用:まず再ラベル化されたパス断片(長さb^{4/5})のLCEを計算し、その後、残りの短い接頭部は元のパス上で定数時間LCEで解消する。
  • 基数ソートおよび範囲最小値クエリ構造を用いて、辞書式に隣接する再ラベル化された標準パス間のLCEをO(n)時間で計算する。
  • これらの技術を統合し、O(n)個の木パスLCEクエリをO(n log log n)総時間で処理する。これがラン検出アルゴリズムの核心をなす。

実験結果

リサーチクエスチョン

  • RQ1n本の辺をもつトライに存在可能なランの最大数は何か?また、辺の数と比べてどうか?
  • RQ2文字列におけるランの概念は、根付き、辺ラベル付きの木(トライ)に意味的に一般化可能か?このようなランが持つ構造的性質は何か?
  • RQ3トライ内のすべてのランを計算する効率的なアルゴリズムは存在するか?また、達成可能な最良の時間計算量は何か?
  • RQ4トライにおけるランの漸近的密度は何か?nが大きくなるにつれてnにどれほど近づけるか?
  • RQ5文字列ラン計算における技術—たとえばリンドン語の性質やLCEデータ構造—は、トライの文脈に適応可能か?

主な発見

  • n本の辺をもつトライにおけるランの最大数はn未満であり、ρ(n) ≤ nという上界が確立された。
  • ラン密度の漸近的下界は少なくとも0.993238であり、lim_{n→∞} ρ_T(n)/n ≥ 0.993238が成り立つ。
  • 整数アルファベットを用いたトライにおいて、すべてのランをO(n log log n)時間、O(n)空間で計算するアルゴリズムが提示された。
  • アルゴリズムは階層的パス分解、標準パスの再ラベル付け、範囲最小値クエリを用いた効率的なLCE計算に依存する。
  • この手法により、O(n log n)時間ですべての原始的根付き平方を出力可能であり、特定のトライにΘ(n log n)個のこのような平方が存在することから、これはタイトな結果である。
  • 結果として、トライにおけるランは数が非常に多く、かつ効率的に計算可能であることが示された。文字列ランと比較して時間計算量がわずかに増加するにとどまり、大きなコスト増はない。

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

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

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

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