Q1について:あいまいさの問題(CFGが与えられ、あいまいかどうか)と固有のあいまいさの問題(CFGが与えられ、言語が本質的にあいまいかどうか、つまり同等のCFGがあいまいかどうか)の両方が決定不能です。元のリファレンスは次のとおりです。
Q2について:通常の文法は、「片側線形」の文脈自由文法で、ルールの右側に最大で1つの非終端記号があり、その非終端記号が最後(右線形文法)または最初(左線形文法)位置。そのような文法は、同等の有限状態オートマトンに簡単に変換され(通常、各非終端を状態と見なすことにより)、通常の文法が曖昧でない限り明確になります。明確な通常の文法と明確なオートマトンのクラスは、特にスターンズとハント(1985)によって研究されており、包含問題に対して扱いやすいアルゴリズムを楽しんでいることを示しています。
派生(つまり、ルールアプリケーションのシーケンス(は文法のルール)と派生ツリー(つまり、というラベルノードが親である)との関係についてノードのシーケンス、ここではルールです):一般的なCFGには、異なる派生があり、同じ派生ツリーを異なる方法で訪れます。βAγ⇒βαγA→αAX1,…,XmA→X1⋯Xm
これらの異なる派生は、文型の2つの異なる場所に文法規則を適用することを選択するために発生します:少なくとも2つの非終端記号とを持つ文型で、適用できます最初にを取得して、またはを取得して最初にを取得しますが、他のルールを適用すると同じ。左端(常に任意の文型の左端の非終端記号を導出する)または右端を課すγAηBθABA→αγαηBθB→βγAηβθγαηβθ 派生は、派生ツリーを訪問するための固定順序を課し、その後、特定の派生ツリーに対して単一の派生があります。
線形文脈自由文法、任意文形式で非終端多くとも1つであるので、そのような選択は、存在しない、そして左端と右端の両方で指定された派生ツリーのための単一の導出があります。
同じyield(葉のシーケンス)を持つ2つの異なる解析ツリーを持つことは、が曖昧であるという定義であり、通常の文法を考慮しても変わりません。あるいは、2つの異なる左端の派生を要求することもできます。ノートと呼ばれているその関連有限状態オートマトンで受け入れ実行する片面文法相当に導出そのあいまいな所与の入力のための2つの異なる受け付けランが存在する:全く同じ方法で。www
そして4. あなたは有限状態オートマトンビューを取る場合は、同じ言語のための明確なオートマトンを得るために、あなたのあいまいなオートマトンをdeterminizeすればよい:任意の単語のための単一の実行があるでしょう。この決定的オートマトンは、明確な通常の文法と同等です。
あなたのコメントに答えるには、あいまいな正規文法が存在します。たとえば、は、左端に2つの派生がます:および。同等の明確な文法はです。S ⇒ A ⇒ S ⇒ B ⇒ A S → AS→A∣B,A→a,B→aaS⇒A⇒aS⇒B⇒aS→a
Q1との関係について:通常の文法が曖昧かどうかを決定できます(通常の文法では、入力文法を見なくても答えは常に「いいえ」なので、固有のあいまいさの問題はそれほど難しくありません)。これがチェックインすることができます使用して二乗し、その関連オートマトンの構築:自分自身とオートマトンの製品を構築し、いくつかの状態かどうかを確認とのアクセス可能です共同アクセス可能。私がこのアイデアについて知っている最も古い参考文献は、Even(1965)による論文です。(q 、q ′)q ≠ q ′O(|G|2)(q,q′)q≠q′