Computer science 语言{0^n1^n0^k | k!=n}上下文无关吗?

Computer science 语言{0^n1^n0^k | k!=n}上下文无关吗?,computer-science,context-free-grammar,regular-language,pushdown-automaton,Computer Science,Context Free Grammar,Regular Language,Pushdown Automaton,我相信这种语言不是上下文无关的,因为PDA不可能比较相同长度的2个0块和1块,也不可能记住它的长度供以后使用 不幸的是,我不知道如何证明这一点 我试着用泵引理,但没用 我还试图通过矛盾的方式假设语言是上下文无关的,并利用上下文无关语言与常规语言的交集也是上下文无关的这一事实(通过找到一些神秘的常规语言L),令人惊讶的是(或不是)-我所有的努力都是徒劳的 如果您有任何帮助,我们将不胜感激。语言{0n1n0k | k!=n}是否与上下文无关? 否,语言L={0n1n0k | k!=n}不是上下文无关

我相信这种语言不是上下文无关的,因为PDA不可能比较相同长度的2个0块和1块,也不可能记住它的长度供以后使用

不幸的是,我不知道如何证明这一点

我试着用泵引理,但没用

我还试图通过矛盾的方式假设语言是上下文无关的,并利用上下文无关语言与常规语言的交集也是上下文无关的这一事实(通过找到一些神秘的常规语言L),令人惊讶的是(或不是)-我所有的努力都是徒劳的

如果您有任何帮助,我们将不胜感激。

语言{0n1n0k | k!=n}是否与上下文无关? ,语言L={0n1n0k | k!=n}不是上下文无关的语言。也

您认为使用
PDA
是正确和明显的方式来表明语言不是上下文无关的。 我们不能为语言0n1n0k绘制
PDA
,因为在匹配前缀0n到1n堆栈后,堆栈变为空,那么我们就没有存储的信息来检查天气后缀0K是否等于
n

提示:用于正式证明

  • 首先
L={0n1n0k | k!=n}现在L的补码是L'

L'={{0n1n0n}这是众所周知的上下文敏感语言(可以证明)

而上下文敏感语言的补语本身也是上下文敏感的。

对于泵送引理:

L={0n1n0k | k!=n}是L1和L2的并集,其中
L1={0n1n0k | k>n}和 L2={0n1n0k | k L=L1 U L2

L1和L2都是非上下文无关语言。两种非上下文无关语言的并集是非上下文无关语言。(这很容易用语法证明)



另外,两种上下文敏感语言的联合、连接是上下文敏感的。

谢谢你的回答Grijesh。但我需要一个更正式的证明(这是一个家庭作业问题)。你们(和女孩)有吗你知道如何证明它吗?@Robert777是的,正式证明是可能的。是的,我很想看看如何用泵引理来解决它!@Robert777我用有用的提示更新了我的答案。现在试着让我知道它是否仍然困难。@Robert777欢迎Robert!:)