Skip to main content
QUICK REVIEW

[论文解读] Exact Online String Matching Bibliography

Simone Faro|arXiv (Cornell University)|May 17, 2016
Algorithms and Data Compression参考文献 73被引用 4
一句话总结

本文提出了一项全面的、按时间顺序排列的参考书目,涵盖自1970年以来提出的120多种在线精确字符串匹配算法,分为字符比较、打包字符串匹配和基于自动机的方法(包括确定性和位并行变体)。该参考书目为研究人员提供了基础性参考,所有算法均在Smart工具中实现,并突出了在最坏情况线性时间与平均情况亚线性性能方面的关键进展,以及经过优化的预处理和位移启发式方法。

ABSTRACT

In this short note we present a comprehensive bibliography for the online exact string matching problem. The problem consists in finding all occurrences of a given pattern in a text. It is an extensively studied problem in computer science, mainly due to its direct applications to such diverse areas as text, image and signal processing, speech analysis and recognition, data compression, information retrieval, computational biology and chemistry. Since 1970 more than 120 string matching algorithms have been proposed. In this note we present a comprehensive list of (almost) all string matching algorithms. The list is updated to May 2016.

研究动机与目标

  • 整理并组织自1970年以来发表的在线精确字符串匹配算法的完整、最新参考书目。
  • 将算法划分为四大主要类别:字符比较、打包字符串匹配、确定性自动机和位并行非确定性自动机模拟。
  • 为字符串匹配领域的研究人员和实践者提供参考资源,强调算法设计、性能表现和实现细节。
  • 通过提供统一、易访问的目录,使用标准化缩写和参考文献,支持新字符串匹配算法的开发与评估。
  • 将所有列出的算法集成到Smart工具中,以支持实际实验和基准测试。

提出的方法

  • 根据核心计算模型对算法进行分类:逐字符比较、字长打包比较、确定性自动机和非确定性自动机的位并行模拟。
  • 采用时间顺序排列,追踪从暴力匹配到高级位并行和打包字方法的字符串匹配技术发展脉络。
  • 为每个算法采用标准化条目格式:名称、缩写、参考文献,以及关键特性与创新的简要描述。
  • 整合性能洞察,如时间复杂度(例如,O(n)线性时间,O(nm)最坏情况)、空间使用量和平均情况行为。
  • 利用Smart工具实现并验证所有算法,确保可复现性并支持性能对比。
  • 引入改进措施,如q-gram、超字母表、多滑动窗口和前瞻技术,以优化位移启发式并减少比较次数。

实验结果

研究问题

  • RQ1自1970年以来,在线精确字符串匹配的主要算法族和演化趋势是什么?
  • RQ2在时间复杂度和实际效率方面,不同方法——字符比较、打包字匹配和基于自动机的方法——有何差异?
  • RQ3哪些关键优化使得平均情况性能达到亚线性,同时保持最坏情况的线性时间界限?
  • RQ4现代技术如q-gram、多窗口和位并行性如何改进位移决策并减少字符比较次数?
  • RQ5当前在线字符串匹配算法的最先进水平是什么?如何系统化地编目和实现这些算法以供研究和应用?

主要发现

  • 自1970年以来,已提出120多个在线字符串匹配算法,其中绝大多数可归入四大主要类别:字符比较、打包字符串匹配、确定性自动机和位并行自动机模拟。
  • Morris-Pratt算法(1970)是首个实现在线字符串匹配O(n)时间复杂度的算法,为线性时间算法奠定了基础。
  • Boyer-Moore和Horspool算法引入了高效的右向扫描和位移启发式,显著提升了平均情况性能,尽管最坏情况仍为O(nm)。
  • 位并行算法如BNDM及其变体(例如,SBNDM、BXS、BQL)通过使用位操作模拟非确定性自动机,实现了高性能,部分算法在打包匹配中达到O(n/α + occ)的时间复杂度。
  • 利用SSE指令和超字母表的打包字符串匹配技术(例如,Packed Belazzougui、SSECP、EPSM)可实现每字内多个字符的批量比较,从而在现代处理器上提升吞吐量。
  • 高级变体如FSBNDMqf、SBNDMw和TSAq通过引入前瞻、多窗口和q-gram超字母表,进一步优化了位移决策并减少了比较次数,尤其在长模式下表现更优。

更好的研究,从现在开始

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

无需绑定信用卡

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