回答
我给一个方法和证明的草图,可能会有一些漏洞,我相信你可以填补自己。
的想法是使用nerode's theorem - 表明,有对R 大号等同群组的infinte数 - 从定理可以推导出的语言是不规则的。
定义的集两种类型:
- G_J = {A Ñ b ķ | NK = J,K ≥ 1}在每个 f] [-2,-1,0,1,...]
- H_j = {A Ĵ}用于每个 f] [0,1 ,. ..
- G_illegal = {0,1} * /(G_JÚH_j)在指定的范围内的每个j]的
这是很容易看到,对于在每个G_illegal
x
,和{a,b}中的每个z
*:xz
不在L
中。
因此,对于在每G_illegal
并x,y
在每个z
{A,B} *:xz
在L
< - >在L
yz
。
而且,对于在每个z
{A,B} * - 并且对于每个x
,y
在一些G_j
[相同j
两个]:
- 如果
z
包含a
,既xz
和yz
不在L
- 如果
z
= b j,则xz = a n b k b j,并且由于k+j = n
-xz
在L
中。同样适用于y
,所以yz
在L
。 - 如果
z
= B J + 2,然后XZ =一个Ñ b ķ b J + 2,并且由于k+j+2 = n+2
-xz
是L
。同样适用于y
,所以yz
在L
。 - 否则,
x
为b 我使得i ≠ j和i ≠ J + 2,你会得到两个xz
和yz
不是L
。
因此,对于每个j和用于在每G_j
并x,y
在每个z
{A,B} *:xz
在L
< - 在L
>yz
。
使用相同的方法对每个H_j
证明相同。
而且,很容易表明,对于每个x
G_JùH_j,以及用于在每个G_illegal y
- 为z
= B Ĵ,XZ为L和yz不在L.
对于x
在G_j和y
in H_i,for z = ab j + 1 - 很容易看出xz
不在L
中,而yz
在L
中。
这是很容易看到,对于x
,在G_J和的G_i y
分别或x
,y
在H_j,H_i - 为z
= B Ĵ:xz
是在L
而yz
不是。
我们只是证明了我们创建的集实际上是对R 大号从nerode's theorem的等价关系,因为我们有这些组的无限数量,每个用户可以使用R 大号的等价关系[我们有H_j
和G_j
每j
] - 我们可以从nerode的定理推导出语言L
是不规则的。
您可以使用pumping lemma作为常规语言。它基本上说,如果你可以找到一个字符串给任何给定的整数n和这个字符串的任何分区到xyz,这样| xy | < = n和| y | > 0,那么你可以抽出字符串的y部分,并且必须保持在语言中,这意味着,如果xy^iz它不在我的语言中,那么语言是不规则的。
证明是这样的,有种对手的证明。假设有人告诉你这种语言是正规的。然后问他一个n> 0的数字。你建立一个长度大于n的方便的字符串,并且你给敌手。他以任何他想要的方式将字符串分割为x,y z,只要| xy | < = n。然后你必须抽y(直到重复它),直到找到一个不是同一种语言的字符串。
在这种情况下,我告诉你:给我n。你修复n。我告诉你:取出字符串“a^n b^{n + 2}”,并告诉你将它分开。无论如何,你可以分割这个字符串,你总是必须使y = a^k,k> 0,因为你迫使| xy | < = n,我的字符串以^ n开头。这里有个诀窍,你给对手一个弦,这样他就可以把它分开,他给你一个你可以抽的部分。所以,现在我们抽出0次,比如0次,然后得到“a^m b^{n + 2}”,这与你的语言不符。完成。我们也可以抽1次,n次,n!阶乘时间,任何你需要让它离开语言的东西。
这个定理的证明绕了一圈说如果你有一个正规的语言,那么你有一个自动机有一些固定的n状态。如果一个字符串有超过n个字符,那么它必须经过自动机中的某个循环。如果我们在进入循环之前将字符串的一部分命名为x,并且将循环中的部分命名为y,很明显我们可以根据需要多次执行y循环,因为我们可以根据需要多次循环运行循环,并且结果字符串必须使用该语言,因为它会被该自动机识别。为了用这个定理证明非规律性,由于我们不知道假定的自动机将如何,我们必须让对手选择n和自动机内周期的位置(不会有自动机,但是你对敌人说了这样的话:敢给我一个自动机,我会告诉你它不能存在。)
Pumping引理用于证明语言不正规。但是,它并不能证明一种语言是正规的。 – 2016-01-13 13:15:24
@FabianBigler你是对的。也许从我的回答中并不清楚,但那是我的意图,使用抽象引理来证明语言是不规则的。直觉上很容易看到不会规律,因为常规语言无法计数,因此在看到n a之后,您不能强制b出现n + 2次。谢谢你的评论。 – 2016-01-13 14:44:55
- 1. 序言 - 这种否定是否正确?
- 2. 这种语言是否可确定
- 3. 证明这个语言是否可判定和识别
- 4. 是否有一种语言具有这种简化的语法?
- 5. 如何确定给定的语言是否正规(仅通过查看语言)?
- 6. 正规语言?
- 7. 是否有任何不是上下文无关语言的正规语言?
- 8. 如何表明如果语言L是规则的,那么L'是正则的?
- 9. 证明常规语言和上下文无关语言是递归的
- 10. ADFS声明规则语言
- 11. 检查是否正规语言给CF语法
- 12. “模式语言”如何与“正规语言”相关?
- 13. 这是哪种编程语言?
- 14. 这是一种编程语言吗?
- 15. 找出哪些是正规的语言
- 16. 如何判断一种语言是否是一见钟情的?
- 17. 这种语言是否有下推自动机(PDA)?
- 18. 正规语言,L1和L2
- 19. 如何在Android中使用多种语言,如多种语言
- 20. Groovy和Groovy ++是两种语言还是一种语言?
- 21. 这是MySql断言是否正确?
- 22. 这是什么意思一种语言是LISP的一种方言?
- 23. 使用抽吸引理证明语言不规则
- 24. 如何检查资源是否翻译为某种语言
- 25. 如何用同一种语言实现一种语言比语言更快?
- 26. 描述语言语法的这种语言的名称是什么?
- 27. 多种语言的Appstore说明
- 28. 这是否存在语法?在任何语言?
- 29. 这个mod_rewrite规则是否正确?
- 30. facebook身份验证 - 这种使用令牌是否正确?
通过做你自己的功课...? – 2012-03-10 04:40:35
是的。我知道L1 = {a^nb^n:n≥1}并且L2 = {a^nb^n + 2:n≥1}都是非规则的。但是我不知道L =(L1联盟L2)是否规则。 – 2012-03-10 07:20:16