Skip to main content
QUICK REVIEW

[論文レビュー] Sequential Circuits from Regular Expressions Revisited

Dogan Ulus|arXiv (Cornell University)|Jan 26, 2018
Formal Methods in Verification被引用数 5
ひとこと要約

本稿では、正規表現から直接順序回路を構築するための新しいトリガーセットアルゴリズムを提示する。この手法は、従来のオートマトンとは対照的に、先行状態から状態情報の到達可能性を後退的に伝搬するフロントホイールドライブ更新メカニズムを採用している。本手法は、高々非決定的パターンにおいて優れた性能を発揮し、標準的なNFAを上回り、メモリ制約下の極端なケースではDFAと同等またはそれを上回る性能を示す。

ABSTRACT

We revisit the long-neglected problem of sequential circuit constructions from regular expressions. The class of languages that are recognized by sequential circuits is equivalent to the class of regular languages. This fact is shown in [5] together with an inductive construction technique from regular expressions. In this note, we present an alternative algorithm, called the trigger-set approach, obtained by reversing well-known the follow-set approach to construct automata. We use our algorithm to obtain a regular expression matcher based on sequential circuits. Finally, we report our performance results in comparison with existing automata-based matchers.

研究の動機と目的

  • パターンマッチングのための正規表現から直接順序回路を構築するという長年の無視された問題に取り組む。
  • 極端な入力で指数時間計算量に陥りやすいバックトラッキングマッチャーの限界を克服する。
  • 特に非決定的状況下において、従来のオートマトン(NFA/DFAs)とは対照的に、順序回路を正規表現マッチングの代替手段として検討する。
  • re2のDFAやNFAエンジンのような既存のオートマトンベースのマッチャーと比較して、順序回路がより優れた性能とメモリ効率を提供できるかどうかを評価する。
  • DFAの構築時に指数的状態爆発を引き起こすパターンにおいて、順序回路が効果的に処理できることを示す。

提案手法

  • 従来のオートマトン構築で用いられるフォローセット法とは逆転させたトリガーセットアプローチを提案し、状態到達可能性を後退的に伝搬可能にする。
  • 正規表現の構文木を走査するためのビジター・パターンを用い、各位置について:式のサイズ、出力集合、およびトリガーセット(現在の状態に到達可能な先行状態)を計算する。
  • トリガーセットと入力ベクトルに基づいて、状態更新関数および出力関数を実装するC++コードを生成することで、順序回路を構築する。
  • フロントホイールドライブ更新メカニズムを採用:各状態は現在の入力を用いて、その先行状態から独立に計算される。これは、オートマトンのリアウエルドライブによる前向き伝搬とは対照的である。
  • re2のDFAおよびNFA実装と比較するため、標準的なパフォーマンス指標(MB/s単位のスループット)を用いて、生成された回路コードをコンパイルしベンチマークする。
  • 固定の67MBランダム入力シーケンスを用い、10回の実行における最小実行時間を測定して正確性を確保し、-O2レベルでの最適化を適用する。

実験結果

リサーチクエスチョン

  • RQ1トリガーセットアルゴリズムを用いて正規表現から順序回路を効果的に構築可能であり、オートマトンベースのマッチャーの代替手段として有効であるか?
  • RQ2さまざまな正規表現パターンにおいて、順序回路のパフォーマンスはre2のDFAおよびNFA実装と比較してどうなるか?
  • RQ3順序回路に採用されたフロントホイールドライブ更新メカニズムは、非決定的または極端なケースにおいて、オートマトンのリアウエルドライブ伝搬と比較して優位性を示すか?
  • RQ4DFA構築時に指数的状態爆発を引き起こすパターンにおいて、順序回路アプローチはDFAおよびNFAと比較して、時間的・メモリ的効率性を保っているか?
  • RQ5順序回路は、標準的なNFAと同等または低いメモリ使用量を維持しながら、速度面でNFAを上回ることができるか?

主な発見

  • すべてのテストケースにおいて、標準的なNFAと同等のメモリ使用量で、順序回路は標準NFAを上回る性能を発揮した。特に表2の高々非決定的パターンにおいて顕著である。
  • 表5のパターン(DFA構築時に指数的爆発を引き起こす)において、順序回路実装は安定したパフォーマンス(n=20で12 MB/s)を維持したが、re2のDFAはキャッシュ制限により急激に性能低下を示し、NFAにフォールバックした。
  • 26文字のシーケンス(表2)において、順序回路はわずか48 MBのメモリ使用量で、re2のDFA(304 MB)と同等のメモリ使用量であり、NFA(161 MB)と比較して効率的で、かつより高いスループットを達成した。
  • 病理的ケース (a?)*a^n において、順序回路はNFAよりも効率的に処理でき、n=30で115 MBのメモリ使用量であったが、NFAは15 MB、DFAは335 MBであった。
  • トリガーセット手法により、複雑なオートマトン構築を回避し、正規表現から最適化されたC++回路への直接的で効率的なコード生成パイプラインを実現した。
  • フロントホイールドライブ更新メカニズムは、非決定的環境下で実用的な利点を提供し、決定的オートマトンで見られる状態爆発を回避する後退的依存関係計算を可能にした。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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