[论文解读] Pattern matching in Lempel-Ziv compressed strings: fast, simple, and deterministic
本文提出了一种确定性算法,时间复杂度为 O(n log(N/n) + m),用于在 Lempel-Ziv 压缩串中进行模式匹配,显著优于 Farach 和 Thorup 提出的先前随机化 O(n log²(N/n) + m) 解决方案。通过将 LZ 解析转换为大小为 O(n log(N/n)) 的平衡串行程序(SLP),并利用后缀树性质高效计算覆盖、前缀和后缀,该方法实现了无需解压缩的快速模式检测,在高度可压缩文本中达到最优性能。
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 生成,并经人工编辑审核。