Skip to main content
QUICK REVIEW

[论文解读] Finding Distinct Subpalindromes Online

Dmitry Kosolobov, Mikhail Rubinchik|arXiv (Cornell University)|May 11, 2013
semigroups and automata theory参考文献 3被引用 9
一句话总结

本文提出了一种在线算法,通过使用维护最大后缀回文的修改版曼acher算法与数据结构,可在有序字母表下以 O(n log |Σ|) 时间、无序字母表下以 O(n|Σ|) 时间找到字符串中的所有不同子回文。该算法在比较模型下被证明是最优的,解决了字符串算法中一个长期未解的在线不同子回文枚举问题。

ABSTRACT

We exhibit an online algorithm finding all distinct palindromes inside a given string in time $Θ(n\log|Σ|)$ over an ordered alphabet and in time $Θ(n|Σ|)$ over an unordered alphabet. Using a reduction from a dictionary-like data structure, we prove the optimality of this algorithm in the comparison-based computation model.

研究动机与目标

  • 解决使用在线算法在字符串中查找所有不同子回文的开放问题。
  • 在比较模型下实现不同子回文枚举的线性时间与空间复杂度。
  • 通过将问题约化为仅插入字典问题,证明所提算法的最优性。
  • 将该方法扩展至在线计算所有字符串前缀的最长后缀回文与回文闭包的长度。

提出的方法

  • 通过维护一个数据结构来追踪使用中心与半径数组的最大奇数与偶数后缀回文,扩展曼acher算法。
  • 使用布尔标志 Δ 区分奇数与偶数回文,并基于对称性与扩展检查动态更新半径数组 Rad。
  • 使用 while 循环在对称位置找到匹配字符时扩展最大后缀回文。
  • 引入特殊哨兵字符 '$' 以简化初始化并处理第一步的边界情况。
  • 通过一种将仅插入字典维护问题约化为子回文计数问题的字符串构造,实现该约化,其中成员关系通过子回文数量的变化进行编码。
  • 利用引理 3.5 表明,在形如 abx1abx2…abxn 的字符串中,仅单个字母是子回文,从而可通过子回文数量的增加来检测新元素的出现。

实验结果

研究问题

  • RQ1是否可以使用在线算法在 O(n) 时间内找到字符串中所有不同的子回文?
  • RQ2在比较模型下,在线不同子回文枚举的最优时间复杂度是多少?
  • RQ3如何在线计算所有字符串前缀的回文闭包与最长后缀回文的长度?
  • RQ4是否存在从仅插入字典问题到子回文计数问题的约化,从而建立下界?

主要发现

  • 该算法在有序字母表下时间复杂度为 O(n log |Σ|),在无序字母表下为 O(n|Σ|),两种情况均使用线性空间。
  • 通过从仅插入字典问题的约化,该算法在比较模型下被证明是最优的。
  • 有序字母表的下界为 Ω(n log |Σ|),无序字母表的下界为 Ω(n|Σ|),与算法的时间复杂度一致。
  • 该方法能正确在线计算所有前缀的最长后缀回文与回文闭包的长度。
  • 通过构造形如 abx1abx2…abxn 的字符串,可确保仅当引入新字母时才会出现新的子回文,从而实现成员关系的检测。
  • 证明表明,任何基于比较的算法都无法在比所提界限更快的速度下解决该问题,从而确认了算法的最优性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。