2012-03-10 57 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