是正常吗?


9

几周前,我参加了计算机考试理论考试,这是一个问题:

假设语言大号={一个ñb[Rñ[R0}

L是正规的吗?如果是,请为其提供正则表达式或自动机。

在考试后我简短地问了他答案之后,看来它确实是正规的(我相信他说的表达很简单)。但是我似乎无法理解为什么。我看到它的方式,它串联 [R倍,像这样:一个b一个ñb

一个ñb一个ñb一个ñb一个ñb一个ñb

这是不规则的,因为自动机无法每次都调用nm。我在哪里错?

编辑:我再次与教授交谈,他承认这是一个错误。该语言的确不正常。


14
您应该问老师语言是否与语言相同。如果他说“是”,请告诉他我告诉过他他的问题形式不正确。ķ = { 一个Ñ 1 b 1一个Ñ 2 b 2一个Ñ - [R b ñ - [R | - [R 0 一个1... - [R0 b 1... b [R0 }大号ķ={一个ñ1个b1个一个ñ2b2一个ñ[Rbñ[R[R0一个1个一个[R0b1个b[R0}
安德烈·鲍尔

1
看来这是唯一有规律的方法,实际上这是我本来急匆匆想到并实际考虑的(a b)*,但后来删除了它,意识到n和m保持相同(或应该..),并给出了r = 2的泵引理证明不正确,说同样适用于更大的r(可能也不是一个完整的解决方案,但似乎是在正确的方向上)。不用说,我对该问题的评分为0。我会尝试与他联系。

我一定会以您最初的方式理解这个问题。
安德烈·鲍尔

请参阅此处,以了解表明某种语言不正常的更多方法。
拉斐尔

您也可以在抽引引理的帮助下证明相同
SAHIL THUKRAL

Answers:


10

语言是不规则的,可以使用Nerode的方法证明。考虑下面的词语瓦特ñ = 一个ñ bÑ Ñ。然后瓦特2 Ñ大号,但对于Ñ 瓦特Ñ 瓦特大号。因此,L的任何自动机在读取每个w n后必须处于不同的状态,这与它的有限性相矛盾。大号wñ=一个ñbññwñ2大号ñwñw大号大号wñ


4

在您的评论中,您暗示(引用)“对进行了泵激引理证明,说相同的情况适用于更大的r ”。[R=2[R

确实可以通过应用闭包属性将其形式化。常规语言在交叉点下关闭。因此,如果是定期的,那么将是大号一个* b 一个* b = { 一个Ñ b 一个Ñ b | Ñ 0 },有效地设置- [R = 2= 1大号大号一个b一个b={一个ñb一个ñbñ0}[R=2=1个


1
亲爱的读者,请不要带走“如果不正规,那么也不是大号'大号 ”在这里-因为这只是假的!大号大号大号
拉斐尔

1
@Raphael对。所以,正确的含义是“如果不正规,那么也不是大号 ”,其中[R是有规律的。大号[R大号[R
Hendrik

1
当然。我担心新手可能会读“有效设置...”并在不使用闭包属性的情况下应用它。
拉斐尔

0

语言:{(a n b mr | N,M,r≥0}规律的,因为当所述自动机/机读取的字母“a”,然后字母“B”的第一序列,它需要计数的次数它读字母“a”和它在第一个序列中读取字母'b'以知道nm的值的次数。

如果r> 1,则字母'a'和字母'b'的另一个相同序列是预期的。

如果自动/机不知道多少个字母“A”和字母“B”是第一序列中的读那么它也不会知道的价值ñ,因此它可以告诉我们,如果从第二到最后的其他顺序是等于第一个顺序的单词。

但是众所周知,只有图灵机可以计数并知道nm的值并可以识别上面的语言,所以不仅上面的语言不是常规的,而且甚至不是上下文无关的,也就是说,存在用于识别该语言的下推自动机,也不存在上下文无关文法,即从该上下文无关文法派生的每个单词都在上述语言中。

因为确定性有限自动机和下推有限自动机都无法计数并知道nm的值,这与图灵机不同,它们无法识别上述语言,因此上述语言并非上下文无关而且不是正常的

假设上述语言为常规语言,这是一个反例:

对于n = 3∧m = 5∧r = 2,以下单词是上述语言:

aaabbbbbaaabbbbb

但是以下单词不是该语言的意思:

aaabbbbbaaaaabbb,因为它存在N,M[R这样:

(a n b mr = aaabbbbbaaaaabbb,因为要满足字母'a'的第一个序列然后是字母'b',所以n = 3∧m = 5必须是正确的,并且因为我们看到2个字母序列' a'然后是字母'b',则r = 2,但是如果n = 3∧m = 5∧r = 2则(a n b mr =(a 3 b 52 =(aaabbbbb)2 = aaabbbbbaaabbbbb ≠aaabbbbbaaaaabbb,因为它们的后缀不同,即aaabbbbb≠aaaaabbb,尽管对于r = 1,它们的前缀等于aaabbbbb。

可以为这种语言建立的“最佳”确定性有限自动机是识别正则表达式(a * b *)*的确定性有限自动机,但是它不能识别上述语言,因为它告诉两个词aaabbbbbaaabbbbb和aaabbbbbaaaaabbb所用的语言,这是不正确的,因为aaabbbbbaaabbbbb是在语言,但aaabbbbbaaaaabbb是没有的语言。

即使下推式有限自动机也无法判断两个单词是否都使用该语言,因此只有图灵机可以知道。

在第二个序列中,图灵机发现n = 5∧m = 3,这在第一个序列中发现n = 3∧m = 5 矛盾,因此它告诉第二个单词不是该语言中的n ,但第一个字没有发现矛盾。

这两个序列都满足n = 3∧m = 5,因此图灵机说第一个单词在该语言中。

只有Turing机器可以计数和记住nm的值,方法是在它们的磁带上写入它们的值,然后再读取它们,就可以了。

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.