文脈自由言語のPumping-lemmaがuvwxyを使用するのに、通常の言語ではuvwxyを使用するのはなぜですか?


回答:


13

両方のポンピングレンマには、言語を認識できるオートマトンに関して直感的な説明があります。

通常の言語は有限オートマトンで認識できます。すべての単語は以下を通じて認識されます:

  • オートマトンを通る有限経路:ポンピングの長さより短い単語。
  • またはループが存在するノードを通過するパス。この場合、ループを何度も通過することができます。これは部分です。ここで、はループの1つのラウンドを通過するパスであり、はロップの数です。ynyn

コンテキストフリー言語はプッシュダウンオートマトンで認識できます。すべての単語は以下を通じて認識されます:

  • オートマトンを通る有限経路:ポンピングの長さより短い単語。
  • または、スタックへのプッシュを伴うループと、対応するポップを伴う別のループの両方を含むパス。最後に空のスタックを取得するには、プッシュとポップのバランスを取る必要があります。次に、単語には、プッシュループ、さらにパス、ポップループが含まれます。2つのループの実行回数は同じである必要がありますが、任意の数にすることができるため、中間ビットはです。vwxvnwxn

正規表現と文脈自由言語をそれぞれ正規表現と文脈自由文法で指定する方法からも、同様の直感を得ることができます。

単語が正規表現で認識される場合、次のようになります。

  • 単語は(クリーネスター)演算子の下の式の一部を使用するか、その部分は何度でも繰り返すことができます。y
  • または、単語は星の下の表現の一部を使用しておらず、表現自体より長くすることはできません。

単語が文脈自由文法によって認識される場合、次のようになります。

  • 単語は、非終端によって認識されるサブツリーが存在する解析ツリーによって認識され、そのサブツリーのサブツリーは、同じ非終端によって認識される可能性があります。その場合には、聞かせてによって認識される単語の一部である及びによって認識される部分であり。をまたはその逆に置き換えると、有効な解析ツリーも得られます。さらに、はが含まれているため、置換後T1AT0AwT0vwxT1T1T0T1T0T0によって、あなたがのコピー置き換えることができます内部をによって、というように。つまり、を、、などにても、有効な解析ツリーで単語を取得できます。T1T0T1T1vwxwv2wx2v3wx3
  • そうでない場合、同じ非終端記号を再利用する構文解析ツリーのサブツリーはありません。その場合、構文解析ツリーの深さが文法の非終端記号の数によって制限されるため、単語の長さが制限されます。

また、楽しいこと...次第にが複雑になる文法(例えば木隣接文法を)明らかに、この場合に(徐々に、より複雑な言語を認識)。{anbncndn|n>0}
user541686

6

それは、それぞれのポンピングレンマによって観察される言語の「構造」のためです。それぞれのポンプ結果の証拠を見てください。

通常の言語の場合、構造は線形であり、長い単語ごとに、有限状態オートマトンの受け入れ計算で2回繰り返される状態があります。これらの状態の間で読み取られる文字列は繰り返すことができます。

文脈自由言語の構造は入れ子にされ、ツリーのようです。この場合も、長い単語には、ツリー内のパスの1つで非終端記号を繰り返す派生ツリーがあります。この構造も繰り返すことができますが、左右両方に2つの文字列が生成されます。


4

文脈自由言語のポンプ補題は、本質的に、鳩の巣の原理を応用したものです。言語で十分長い単語を取り、その構文解析ツリーの1つを検討すると、非終端記号の1つが繰り返されるパスがあります。これにより、カットアンドペーストプロセスによって単語の一部を「ポンプ」できます。

例として、次の解析ツリーを考えます。

パースツリー

繰り返される非終端記号はです。解析ツリーを取得するための繰り返しを排除できます。A

パースツリー

繰り返しを「ポンプ」して、解析ツリーを取得することもできます。

パースツリー

言葉そのものの面では、我々はワードで開始、および第1ワード得、その後ワード。sabacabassacassababacababas

ポンピングは、派生のアプリケーションの数を変化させることに対応します。2つの異なる部品が同時にポンピングされていることがわかります。言語等の、これが必要である:と部を別々に励起される必要があります。AabAba{anbn:n0}ab

左の通常の文法に同じ引数を適用するとどうなるかを考えてみましょう。

パースツリー

文法は通常のままなので、ポンプされた派生は、ポンプされた部分が1つだけ含まれます。これは、構文解析ツリーの形式により、左の通常の文法の場合は常に当てはまります。AabA

分解に関しては、これは、。これは、通常の言語のポンピングレンマ(を単一の単語と見なす)の形式です。左の通常の文法の構文解析ツリーの特定の形状により、より強力なポンピングレンマを取得できます。uvwxyx=ϵuviwxiy=uviwywy

クレジット:Syntax Tree Generatorを使用して描画されたすべての解析ツリー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.