Skip to main content
QUICK REVIEW

[論文レビュー] The Exact String Matching Problem: a Comprehensive Experimental Evaluation

Simone Faro, Thierry Lecroq|arXiv (Cornell University)|Dec 12, 2010
Algorithms and Data Compression参考文献 58被引用数 32
ひとこと要約

本稿では、多様なパターン長およびアルファベットサイズの下で85種類の正確な文字列照合アルゴリズムの包括的な実験的評価を提示している。特定の条件下での最も効率の良いアルゴリズムを同定しており、例えば非常に短いパターンに対してはTVSBSが最適であり、非常に長いパターンに対してはSSEFが最適である。性能はパターン長およびアルファベットサイズに強く依存する。

ABSTRACT

This paper addresses the online exact string matching problem which consists in finding all occurrences of a given pattern p in a text t. 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 80 string matching algorithms have been proposed, and more than 50% of them in the last ten years. In this note we present a comprehensive list of all string matching algorithms and present experimental results in order to compare them from a practical point of view. From our experimental evaluation it turns out that the performance of the algorithms are quite different for different alphabet sizes and pattern length.

研究の動機と目的

  • 1970年から2010年までの間に提案されたすべての既知の正確な文字列照合アルゴリズムを網羅的かつ体系的に比較すること。
  • 比較ベース、オートマトンベース、ビット並列ベースの文字列照合アルゴリズムの実用的性能を、さまざまな条件下で評価すること。
  • パターン長およびアルファベットサイズの異なる組み合わせに対して、最も効率の良いアルゴリズムを同定すること。
  • 実世界の応用において最適な文字列照合アルゴリズムを選択するための実用的ガイダンスを提供すること。
  • 広範な実験を通じて、パターン長およびアルファベットサイズがアルゴリズムの効率に与える影響を分析すること。

提案手法

  • 著者は、比較ベース(例:KMP、Boyer-Moore)、オートマトンベース(例:BOM、EBOM)、ビット並列ベース(例:BNDM、SBNDM)のバリエーションを含む85種類の正確な文字列照合アルゴリズムを実装し、評価した。
  • 性能評価を、12種類の多様なテキストタイプで実施し、さまざまなデータ特性における性能を評価した。
  • パターン長の4つのクラスにわたり評価した:非常に短い(m ≤ 4)、短い(4 < m ≤ 32)、長い(32 < m ≤ 256)、非常に長い(m > 256)。
  • アルファベットサイズは4つのグループに分類された:非常に小さい(σ < 4)、小さい(4 ≤ σ < 32)、大きい(32 ≤ σ < 128)、非常に大きい(σ > 128)。
  • 性能は、すべてのテストケースにわたって正規化された、1文字のテキスト文字あたりの平均比較回数で測定された。
  • 公平で再現可能な比較を保証するため、標準化された実験フレームワークを評価に用いた。

実験結果

リサーチクエスチョン

  • RQ1非常に短いパターン(m ≤ 4)において、さまざまなアルファベットサイズの下で、どの文字列照合アルゴリズムが最も優れた性能を示すか?
  • RQ2パターン長およびアルファベットサイズの増加に伴い、アルゴリズムの性能はどのように変化するか?
  • RQ3パターン長およびアルファベットサイズのすべての組み合わせにおいて、高い効率を維持するアルゴリズムは何か?
  • RQ4さまざまな条件下で、ビット並列、オートマトンベース、比較ベースのアルゴリズムの相対的性能はどのようになるか?
  • RQ5q-gramやループアンローリングなどの特定のアルゴリズム設定が、長いまたは非常に長いパターンに対して性能を顕著に向上させるか?

主な発見

  • 非常に短いパターン(m ≤ 4)では、非常に小さいアルファベット(σ < 4)に対してSAアルゴリズムが最良の性能を示す。
  • 小さなアルファベットの場合、非常に短いパターンに対してはTVSBSアルゴリズムが最速であり、また、大きなアルファベット(σ ≥ 32)の長いパターンに対しても最良の性能を発揮する。
  • 非常に短いパターンと大きなまたは非常に大きなアルファベットに対しては、FJSアルゴリズムが最良の結果をもたらす。
  • 短いパターン(4 < m ≤ 32)では、大きなおよび非常に大きなアルファベットに対してEBOMアルゴリズムが最も効率が良く、非常に大きなアルファベットに対してはSBNDM-BMHおよびBMH-SBNDMが最適である。
  • 長いパターン(32 < m ≤ 256)では、小さなアルファベットに対してはHASH $q$ アルゴリズムが最良の性能を示し、大きなおよび非常に大きなアルファベットに対してはFSBNDMが優れている。
  • 非常に長いパターン(m > 256)では、SSEFアルゴリズムが最良の性能を達成するが、まれにFSBNDMがそれを上回ることもある。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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