TechNews
Observatory
Article

finding all regex matches has always been O(n²). even in the engines built to prevent it | ian erik varatalu全ての正規表現の照合は、単一照合でさえ線形時間を保証するエンジンでも、多数の一致を列挙する場合に二次的な時間計算量 O(n²) に陥ってしまうという、1970 年代から存在する未解決の問題について解説されています。

unpinnedTech
https://iev.ee/blog/the-quadratic-problem-nobody-fixed
Reading

Article Notes

要点
  • 全ての正規表現の照合は、単一照合でさえ線形時間を保証するエンジンでも、多数の一致を列挙する場合に二次的な時間計算量 O(n²) に陥ってしまうという、1970 年代から存在する未解決の問題について解説されています。
  • Aho-Corasick アルゴリズムによる固定文字列照合や Hyperscan の「最早期一致」セマンティクスなど、既存の回避策はそれぞれ制限があり、一般的なユーザーの期待とする左側長一致を維持しつつも完全に線形化するのが不可能であったことが指摘されました。
  • 著者 RE# エンジンの開発を通じて、2 つのパスを行う新たな手法で任意のパターンと入論に対して常に二次計算量を超えずに一致を検出可能であることを示し、ログ解析や大規模ファイル検索における重大な性能課題に対し解決策を提供しました。
重要性

検索処理における暗黙的な時間計算量の爆発増大は、システムを無効化し、セキュリティ上の深刻な影響を与える ReDoS アタックの根本原因となっており、技術者にとって重大な問題です。

Signals

Why It Was Selected

Buzz

Hacker Newsで27位に入り、直近数日より前に反応が集まりました。短期の盛り上がりで終わるのか、継続的な関心に変わるのかを見極める材料になります。

Global

影響範囲が広く、個別の話題として流さず全体像で押さえる価値があります。どの領域に波及するかを見極めるためにも、今の段階で追っておく意味があります。

Context

背景理解や運用の前提を揃えるために見ておきたい話題です。判断材料を雑にしないための補助線として有効です。