Skip to main content
QUICK REVIEW

[论文解读] Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic

Paweł Gawrychowski|arXiv (Cornell University)|Apr 21, 2011
Algorithms and Data Compression参考文献 13被引用 14
一句话总结

本文提出了一种确定性算法,时间复杂度为 O(n log(N/n) + m),用于在 Lempel-Ziv 压缩串中进行模式匹配,显著优于 Farach 和 Thorup 提出的先前随机化 O(n log²(N/n) + m) 解决方案。通过将 LZ 解析转换为大小为 O(n log(N/n)) 的平衡串行程序(SLP),并利用后缀树性质高效计算覆盖、前缀和后缀,该方法实现了无需解压缩的快速模式检测,在高度可压缩文本中达到最优性能。

ABSTRACT

Countless variants of the Lempel-Ziv compression are widely used in many real-life applications. This paper is concerned with a natural modification of the classical pattern matching problem inspired by the popularity of such compression methods: given an uncompressed pattern s[1..m] and a Lempel-Ziv representation of a string t[1..N], does s occur in t? Farach and Thorup gave a randomized O(nlog^2(N/n)+m) time solution for this problem, where n is the size of the compressed representation of t. We improve their result by developing a faster and fully deterministic O(nlog(N/n)+m) time algorithm with the same space complexity. Note that for highly compressible texts, log(N/n) might be of order n, so for such inputs the improvement is very significant. A (tiny) fragment of our method can be used to give an asymptotically optimal solution for the substring hashing problem considered by Farach and Muthukrishnan.

研究动机与目标

  • 解决在不完全解压缩的情况下高效搜索 Lempel-Ziv 压缩文本中模式的挑战。
  • 克服先前随机化算法时间复杂度较高的局限性。
  • 开发一种确定性解决方案,使其时间复杂度达到或优于已知的最佳界限。
  • 处理 n ≪ N 的高度可压缩文本,确保算法随压缩比缩放。
  • 提供一种比复杂先前方法更简单、更实用的替代方案,同时保持理论最优性。

提出的方法

  • 使用 Charikar 等人的方法,将 Lempel-Ziv 解析转换为大小为 O(n log(N/n)) 的平衡串行程序(SLP)。
  • 通过自底向上的遍历和动态规划,计算所有表示模式子串的非终结符的覆盖。
  • 基于其子节点的覆盖和性质,使用线性时间算法计算非终结符的前缀和后缀数组。
  • 利用后缀树操作和引理 12,通过整数除法和长度为 2 的幂的假设,在常数时间内定位子串。
  • 应用引理 7,通过仔细选择的参数和边界,计算非终结符字符串之间的前缀和后缀重叠。
  • 通过检查所有产生式 X → YZ 是否在 prefix(Y) + suffix(Z) 中匹配,利用引理 6 实现高效验证,检测模式出现位置。

实验结果

研究问题

  • RQ1能否设计一种确定性算法,实现 O(n log(N/n) + m) 时间复杂度的 Lempel-Ziv 压缩串模式匹配,从而优于先前的随机化 O(n log²(N/n) + m) 解决方案?
  • RQ2在 m ≫ n 的情况下,是否可能消除压缩模式匹配中对模式长度 m 的平方依赖,特别是在 LZ 模型中?
  • RQ3使用串行程序和后缀树性质,能否实现无需解压缩的高效、确定性字符串重叠计算?
  • RQ4在排除整数除法的代数计算模型下,压缩模式匹配的理论下界是什么?
  • RQ5如何利用 LZ 解析的结构,设计一种简单但高效的算法,用于高度可压缩文本中的模式检测?

主要发现

  • 所提出的算法实现了确定性时间复杂度 O(n log(N/n) + m),优于 Farach 和 Thorup 提出的先前随机化 O(n log²(N/n) + m) 解决方案。
  • 该算法保持了与先前解决方案相同的空间复杂度 O(n log(N/n) + m),确保内存使用效率。
  • 对于 log(N/n) 为 Ω(n) 的高度可压缩文本,改进具有渐近显著性,因为新界将对数因子从平方降至线性。
  • 该方法仅使用基本算术运算和后缀树查找,具有实际可实现性,且组件简单。
  • 在假设不允许整数除法的前提下,该算法被证明是理论最优的,因为在代数计算树模型中存在匹配的下界 Ω(n log N)。
  • 该方法的一个小变体可为 Farach 和 Muthukrishnan 研究的子串哈希问题提供渐近最优解。

更好的研究,从现在开始

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

无需绑定信用卡

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