2012-03-10 116 views
1

如何证明这种语言是否正规?如何证明这种语言是否正规?

L = {A Ñ b Ñ:N ≥ 1} {工会一个Ñ b N + 2:N ≥ 1}

+3

通过做你自己的功课...? – 2012-03-10 04:40:35

+0

是的。我知道L1 = {a^nb^n:n≥1}并且L2 = {a^nb^n + 2:n≥1}都是非规则的。但是我不知道L =(L1联盟L2)是否规则。 – 2012-03-10 07:20:16

回答

1

我给一个方法和证明的草图,可能会有一些漏洞,我相信你可以填补自己。

的想法是使用nerode's theorem - 表明,有对R 大号等同群组的infinte数 - 从定理可以推导出的语言是不规则的

定义的集两种类型:

  1. G_J = {A Ñ b ķ | NK = J,K ≥ 1}在每个 f] [-2,-1,0,1,...]
  2. H_j = {A Ĵ}用于每个 f] [0,1 ,. ..
  3. G_illegal = {0,1} * /(G_JÚH_j)在指定的范围内的每个j]的

这是很容易看到,对于在每个G_illegalx,和{a,b}中的每个z*xz不在L中。

因此,对于在每G_illegalx,y在每个z {A,B} *xzL < - >在Lyz

而且,对于在每个z {A,B} * - 并且对于每个xy在一些G_j [相同j两个]:

  • 如果z包含a,既xzyz不在L
  • 如果z = b j,则xz = a n b k b j,并且由于k+j = n - xzL中。同样适用于y,所以yzL
  • 如果z = B J + 2,然后XZ =一个Ñ b ķ b J + 2,并且由于k+j+2 = n+2 - xzL。同样适用于y,所以yzL
  • 否则,x为b 使得i ≠ j和i ≠ J + 2,你会得到两个xzyz不是L

因此,对于每个j和用于在每G_jx,y在每个z {A,B} *xzL < - 在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中,而yzL中。
这是很容易看到,对于x,在G_J和的G_i y分别或xy在H_j,H_i - 为z = B Ĵxz是在Lyz不是。

我们只是证明了我们创建的集实际上是对R 大号nerode's theorem的等价关系,因为我们有这些组的无限数量,每个用户可以使用R 大号的等价关系[我们有H_jG_jj] - 我们可以从nerode的定理推导出语言L是不规则的。

0

您可以使用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和自动机内周期的位置(不会有自动机,但是你对敌人说了这样的话:敢给我一个自动机,我会告诉你它不能存在。)

+1

Pumping引理用于证明语言不正规。但是,它并不能证明一种语言是正规的。 – 2016-01-13 13:15:24

+0

@FabianBigler你是对的。也许从我的回答中并不清楚,但那是我的意图,使用抽象引理来证明语言是不规则的。直觉上很容易看到不会规律,因为常规语言无法计数,因此在看到n a之后,您不能强制b出现n + 2次。谢谢你的评论。 – 2016-01-13 14:44:55