特定の正規表現で記述された言語を認識するDFAを構築するためのアルゴリズムは何ですか?


11

私の教科書はすべて、正規表現を指定してDFAを生成するために同じアルゴリズムを使用します。まず、正規表現の言語を認識するNFAを作成し、次にサブセット(別名「パワーセット」)構造を使用して、NFAを同等のDFA(オプションでDFAを最小化)。私はかつて、教授が他のアルゴリズムがあることを暗示するのを聞いたことがあります。誰もが知っていますか?おそらく、中間のNFAなしで正規表現からDFAに直接移動するものでしょうか?


理論計算機科学(TCS)の研究レベルの質問に関する Q&Aサイトであるcstheoryへようこそ。あなたの質問は、TCSの研究レベルの質問ではないようです。これが何を意味するかの詳細については、FAQを参照してください。あなたの質問は、より広い範囲のコンピューターサイエンスに適しているかもしれません。
カベ

1
なぜこのテンプレートコメントを常に使用するのですか?少なくとも5人があなたに同意しないようです。そのような質問にチャンスを与えることをお勧めします。
-AJed

@AJed、私はいつもこのコメントを使うとは限りません。質問がトピックから外れているように見えるが、コンピューターサイエンスに適している場合に使用します。賛成票は問題がトピックに関連しているという意味ではなく、この質問は私にとって研究レベルの質問ではないようですので、コメントは適切だと思います。(実際には、誰かが質問研究レベルをしない質問への研究レベルの答えを書くことができます。)PSを:私はこの議論がより適していると考える理論計算機科学のメタ
カベ

回答:


13

正規表現を有限オートマトンに変換するさまざまなアルゴリズムがあります。オートマトンの生成中に暗黙的にサブセット構築を行うことにより、他のオートマトンを最初に構築することなく、正規表現からDFAに直接移動できます。決定性オートマトンを直接取得する別のオプションは、導関数の方法を使用することです。

正規表現がすべての文字列を含む言語を表しているかどうかを確認することは、PSPACEの完全な問題です(参照については、この回答を参照してください)。DFAがその言語を受け入れるかどうかを確認することは多項式時間で実行できるため、正規表現からDFAに直接移動すると、どこかで爆発が発生します。

文献についての私の理解は、爆発をローカライズできる翻訳を選択できるということです。つまり、正規表現から有限オートマトンに進むにはさまざまな方法があり、線形または多項式の方法が推奨されます。通常、指数コストはオートマトンの決定に押し込まれます。

DFA を効率的に生成できる正規表現のサブファミリーを特定するために、多くの作業がありました。この作業ラインは、使用する翻訳によって異なります。つまり、正規表現からNFAへのマッピングを修正し、DFAにマッピングする正規表現を特徴付けようとします。

正規表現からのオートマトンの標準的な構造は、このような作業では好ましい構造ではありません。選択した構造は、正規表現の構造に非常に似たオートマトンを生成します。これらの構造は、正規表現の導関数の概念を使用します。

正規表現の派生物、JA Brzozowski。1964年。

srara

正規表現と有限オートマトン構文の部分微分、 V。Antimirov。1995年。

オートマトンの状態を、その状態から受け入れられるすべての文字列の表現と考える場合、(部分)導関数を使用すると、正規表現を状態として扱うことができます。正規表現をステートではなくオートマトンとして直感的に扱う標準的な教科書の構成とは対照的です。

正規表現から決定的オートマトンまで、G。ベリーとR.セッティ、1986年。

正規表現とオートマトンおよび決定論の状態の対応は、BerryとSethiによって明示的に説明されています。BerryとSethiは、Brzozowski導関数の概念と同じシンボルの出現を区別する考えを組み合わせて、正規表現の有限への変換を提供しますオートマトン。

一義的な正規言語、A。ブリュッゲマンクラインとデリックウッド、1998年。

このホワイトペーパーは、ブリューゲマンクラインによる以前の研究に基づいており、微分を使用して多項式時間でDFAを生成できるケースを研究しています。この論文の後には多くの作業があります。効率的に操作できる正規表現(DFAに対応)がSGMLとXMLの処理に重要だったため、Webテクノロジーの観点から重要でした。

確定的な正規表現の他の特殊なケースを研究する多くの仕事がありました。これらの問題のいくつかが線形時間で解決できることを研究しているごく最近の論文は、2012年からです。

線形時間の決定論的正規表現、ブノワグロズ、セバスチャンマネス、スラヴォミールスタワーク。2012年。


5
答えですでに派生物について言及しているので、JA Brzozowski:正規表現の派生物、Journal of the ACM 11(4):481–494(1964)も追加する必要があります。 。
ニールクリシュナスワミ

3
私はそれについて議論しました。しかし、上記の3つの論文はすべて、その結果に直接基づいているため、言及する理由はないと考えました。Brueggeman-Klein and Woodの論文にも多くの例があります。Brzozowskiに言及した場合、Antimirovにも言及すべきだと思います。私は調査を避けたかったのですが、たぶん私はそれのために行くべきです。何を言います?
ヴィジェイD

5
あなたが時間とエネルギーを持っているなら、私は長い調査のような答えがここで非常に適切だと思います。
デビッドエップシュタイン

1
@VijayD:ええ、デイビッドに同意します。短い答えは結構ですが、エネルギーがあれば包括的な答えを出すのは良いことです。
ニールクリシュナスワミ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.