0

我试图证明语言 { w ϵ {a, b, c}* | n_a(w) < n_b(w) 和 n_a(w) < n_c(w) } 不是使用 Pumping Lemma 的 CFL。符号“n_a”表示“‘a’的数量”。

对于抽取引理,z = u(v^i)x(w^i)y, |vxw| <= 米, |vw| >= 1。

我选择使用字符串 z = (a^m)b^(m+1)c^(m+1) 来表明这不是 CFL。

但是,我陷入了以下情况。

假设'uvx'代表'z'的(a^m)部分,'w'代表'z'的(b^m)部分的开始,'y'代表'z'的其余部分。

现在抽水 i = 2,我们得到 z' = u(v^2)x(w^2)y = a^(m + |v|)b^(m + 1 + |w|)c^(m + 1)。

每当 |v| ≠ 0,我们看到这不在语言中,因为 n_a(z') 不小于 n_c(z')。但是,对于 |v| = 0,我们得到 z' = a^(m)b^(m + 1 + |w|)c^(m + 1),这在语言中是。因此,用 i = 2 抽水是行不通的。这个对吗?

我尝试使用其他值“i”,但我仍然无法证明这种语言不是 CFL。我究竟做错了什么?这种语言实际上是上下文无关的吗?我应该使用完全不同的“z”字符串吗?

4

1 回答 1

0

R是一个表示以下内容的非终端:

最终产品a中没有b更多c

换一种说法:

对于w ϵ G(R),n_a(w) <= n_b(b)n_a(w) <= n_c(w)

所以这个家伙的规则是(让ϵ空字符串):

R => ϵ

R => bR
R => Rb
R => cR
R => Rc

R => abcR
R => abRc
R => aRbc
R => Rabc

R => acbR
R => acRb
R => aRcb
R => Racb

R => bacR
R => baRc
R => bRac
R => Rbac

R => bcaR
R => bcRa
R => bRca
R => Rbca

R => cbaR
R => cbRa
R => cRba
R => Rcba

R => cabR
R => caRb
R => cRab
R => Rcab

这 29 种是所有可能的转换,保证了任何派生自的词的 sRa超过bs 且 s 不a超过cs。

但问题不在于G(R),而是明确指出n_a(w) <= n_b(b)n_a(w) <= n_c(w)。所以,我还有 3 个非终端:

  1. S, 起点
  2. B,直接或间接衍生自S并保证至少有一个以上ba考虑到它是如何“诞生”的)
  3. C,直接或间接衍生自S并保证至少有一个以上ca考虑到它是如何“诞生”的)

我的策略如下:

那些非终结符都将类似于R,但它们不会有任何空转换;另外,从S我将有一个转换,将生成bB, or Bb, or cC, or Cc; from B,保证至少有一个b以上a,那么就会有一个变换到cRor Rc;和 for C, 转换为bRorRb

所以,这将是我完整的语法,从S

S => bB
S => Bb
S => cC
S => Cc

S => bS
S => Sb
S => cS
S => Sc

S => abcS
S => abSc
S => aSbc
S => Sabc

S => acbS
S => acSb
S => aScb
S => Sacb

S => bacS
S => baSc
S => bSac
S => Sbac

S => bcaS
S => bcSa
S => bSca
S => Sbca

S => cbaS
S => cbSa
S => cSba
S => Scba

S => cabS
S => caSb
S => cSab
S => Scab

B => cS
B => Sc

B => bB
B => Bb
B => cB
B => Bc

B => abcB
B => abBc
B => aBbc
B => Babc

B => acbB
B => acBb
B => aBcb
B => Bacb

B => bacB
B => baBc
B => bBac
B => Bbac

B => bcaB
B => bcBa
B => bBca
B => Bbca

B => cbaB
B => cbBa
B => cBba
B => Bcba

B => cabB
B => caBb
B => cBab
B => Bcab

C => bR
C => Rb

C => bC
C => Cb
C => cC
C => Cc

C => abcC
C => abCc
C => aCbc
C => Cabc

C => acbC
C => acCb
C => aCcb
C => Cacb

C => bacC
C => baCc
C => bCac
C => Cbac

C => bcaC
C => bcCa
C => bCca
C => Cbca

C => cbaC
C => cbCa
C => cCba
C => Ccba

C => cabC
C => caCb
C => cCab
C => Ccab


R => ϵ

R => bR
R => Rb
R => cR
R => Rc

R => abcR
R => abRc
R => aRbc
R => Rabc

R => acbR
R => acRb
R => aRcb
R => Racb

R => bacR
R => baRc
R => bRac
R => Rbac

R => bcaR
R => bcRa
R => bRca
R => Rbca

R => cbaR
R => cbRa
R => cRba
R => Rcba

R => cabR
R => caRb
R => cRab
R => Rcab
于 2017-04-01T02:58:01.813 回答