非決定論(プッシュダウンオートマトン)が必要なのはなぜですか?


9

文脈自由言語の認識のために、非決定論的プッシュダウンオートマトン(DPA = NPDA)のみが機能する理由を知りたいのですが。なぜ確定的プッシュダウンオートマトン(DPDA)はそのような言語を認識しないのですか?


10
言語は、その言語のLR(1)文法がいくつか存在する場合に限り、確定的プッシュダウンオートマトンによって認識できます。それらを記述するLR(1)文法を持たない文脈自由言語があるので、NPDA!= DPDA。これらの結果は非常によく知られており、通常はコンパイラのコースで扱われるので、それがあなたの質問に答えるかどうかはわかりません。おそらく、この事実の背後にある直感を探していますか?
アレックステンブリンク

非決定性が受け入れられる言語に違いをもたらさない他の主要なモデルがあることを考えると、それは確かにいくらか直観に反しています。
vzn 2012

回答:


25

あなたが探している「なぜ」のどのフレーバーがよくわからない。非決定性を許可する際にパワーが増加する理由の1つは、次の例に示されています。

Lww¯w¯w

AkNuk=ab2kav0vk+1=vkukvkAqkvkk,lklqk=qlkAvkukvkvlukvk


0

FAは、確定的または非確定的に同じ言語を受け入れます(つまり、通常の言語)。

ただし、PDAの場合、確定的に動作するように制限すると、一部のCFL(プレフィックスプロパティのない CFL(RLを除く))を受け入れません。

なんでそうなの?

接頭辞プロパティを持たないCFLの例を考えます(langの接頭辞プロパティ:文字列は、lang内の別の文字列の適切な接頭辞ではありません)。

L = wwr

例えば。文字列00および0000。(00は0000の適切なプレフィックスであるため、wwrには設定プロパティがありません)。

00が発生すると、DPDAは最終状態になります。現在、DPDAは受け入れと継続のどちらかを選択できないため、00を受け入れた後で0000を受け入れることはできません。これは、PDAが非決定性を要求する場所です。

所見:FAの場合、lang(RL)は設定なし。プロパティは確定的に受け入れることができます(例:0で始まる文字列)。これは、RLとCFLのプレフィックスプロパティの効果が異なることを示しています。PDAの決定論と非決定論の違いにより、langの新しいファミリーが生まれます。これはDPDAで受け入れられています。この言語はDCFLと呼ばれます。

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