埋め込みでない文脈自由文法を通常の文法に変換する方法は?


7

文脈自由文法から通常文法への変換の決定不可能性を知っていることに注意してください。しかし、入力文脈自由文法の非埋め込みプロパティを考えると、それを通常の文法またはDFAに直接変換するアルゴリズムはありますか?


「非埋め込みプロパティ」とはどういう意味ですか?
DW

回答:


4

このリンクをチェックしてください。これは、NSE文法が通常の言語を表すというChomskyによる証明のより単純なバージョンです。幸い、証明手法は、特定のNSE文法から左正規文法を構築する方法を示しています。これが私の説明です:

  1. それぞれの |V|(|V|+1)/2 ペア (v1,v2) の要素の V、かどうかを決定 v1v2 与えられた定義に基づいて: v1v2 もし v2:=Vv1V
  2. 次のような等価クラスを作成します。 v1v2 そして v2v1v1 そして v2同じ等価クラスにあります。これはのすべての要素のパーティションになりますV 1つ以上の等価クラスに。
  3. 今、各ペア (VE1,VE2) の等価クラスの V 上記のように、 VE1VE2 かどうかを確認する v1VE1v2VE2
  4. セットを作成する UE 等価クラスに対応 VE そのような場合 VEiVEkVEi のサブセットです UEk。各UEk アルファベットセットも含まれている必要があります E。あなたはそれを持っていますUE それぞれに VE、それぞれ UE 同等クラスの変数が対応する「未満」で含まれます VE、すべてのアルファベット記号に加えて。
  5. 決定する P(v) 各変数 v 次のように: P(v) のすべての作品のセットです P 左側が変数を含む同値類に属している v
  6. 各変数について v、次のように文法を作成します。 G(v)=(VEUE,UE,P(v),v)、 どこ VE 含む等価クラスです v そしてその UE に対応するものです VE
  7. 著者は、それを主張する補題を証明しました G(v)線形文法です。これから、正規表現を上書きすることができますUE 各変数 v。注意してくださいUE 「最小」に対応 VE、この正規表現には、元のアルファベットの記号のみが含まれます E
  8. アルファベット記号のみを含む正規表現を、手順7で取得したより複雑な正規表現に繰り返し置き換えます。最終的に、元の開始記号から生成された言語に対応する正規表現ができます。 S、この正規表現には、元のアルファベットのアルファベット記号のみが含まれます。
  9. これで、NSE文法の正規表現が得られ、Kleeneの定理、サブセットの構築、およびDFA最小化アルゴリズムを使用して、最小限のDFAを取得できます。

例が必要な場合は、後で提供することもできます。自分で何回かやってみて、紙を読んでください(短いです)。複雑さについては後で説明します。


わあ、これにはフォーマットの愛が必要です、パトリック!
ラファエル

@Raphaelええ、SOはLaTeXを使用していないので、当時は最善を尽くしました。私はそれを楽しみにしていませんが、他の誰かが私に打ち負かさなければ、私は最終的にそれを回避します。
Patrick87
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.