如何证明上下文无关的语言是模棱两可的?


19

我读过某个地方,图灵机无法计算此值,因此无法确定,但为什么呢?为什么计算机在计算上无法生成解析树并做出决策?也许我错了,可以做到吗?


1
是的,您是正确的,图灵机无法确定上下文无关的语言是否模棱两可,这可以通过无法确定的帖子对应问题得到解决。请注意,解析树可以无限大,我们无法决定何时停止计算。
— 张显之(张显之)2011年

贤智,您是指“解析树”中的非语言单词(即不成功的解析),还是要说解析树可以变得任意大?
— 拉斐尔

Answers:


22

我们从Post的对应问题减少。假设我们可以,事实上,决定语言。{⟨G⟩|G a CFG and L(G) ambiguous}

鉴于:构建以下CFG ģ = (V ,Σ ,- [R ,小号): V = { 小号,s ^ 1,S ^ 2 }, - [R = { 小号→ S 1 | 小号2,小号1 →交通α 1 小号α1,…,αm,β1,…,βmG=(V,Σ,R,S)V={S,S1,S2}(其中, σ 我R={S→S1|S2,S1→α1S1σ1|⋯|αmS1σm|α1σ1|⋯|αmσm,S2→β1S2σ1|⋯|βmS2σm|β1σ1|⋯|βmσm}σi是新的字符添加到字母,例如,)。σi=i_

如果语言模棱两可,则可以通过两种不同的方式派生一些字符串。wlog假设两个派生都是从规则S → S 1开始的,向后读新字符直到它们结束,以确保只能有一个派生,所以这是不可能的。因此,我们看到唯一的歧义可能来自一个S 1和一个S 2 “开始”。但是然后,将w的子字符串带到新字符的开头,我们就有了PCP的解决方案(因为在这些点之后使用的索引字符串匹配)。wS→S1S1S2w

S⇒S1⇒∗ασ~S⇒S2⇒∗βσ~α=βαβσ~

因此,我们已简化为PCP,并且由于无法确定,因此已完成。

(让我知道我是否做过任何刻薄的事情!)


1
{⟨G⟩∣G a CFG and L(G) ambiguous}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.