【发布时间】:2015-01-05 11:31:44
【问题描述】:
我应该如何使用抽水引理证明L={a^n b^m | n=km for k in N} 不是常规语言?
我从L、w=a^n b^m 和n=km 中的一些k 中的k 开始。
w 有三种可能的分解方式:
a^i * a^j * a^(n-i-j) b^ma^i * a^(n-i) b^j * b^(m-j)a^n b^i * b^j * b^(m-i-j)
在第2)点抽中间部分会导致混词,这显然不是L,但我不明白为什么1)不能给你一个很好的分解:
假设你抽了a^jx 次。那么新单词中a的数量将是i+xj+n-i-j = n+(x-1)j。我们知道n=km 有一些m。我们必须证明存在一个x,使得新词不在L 中。但是让我们假设j=m(这当然是可能的,因为n=km 总是有足够数量的a,除非k=0,但是我们得到了一个微不足道的情况)。然后是n+(x-1)j = km+(x-1)m = m(n+x-1),其形式为{a^n b^m | n=km for k in N},适用于所有x。所以对于每个w,我们有一个分解uvz,这样u v^i z就在L中,对于所有i。因此,根据抽水引理,L 是正则的。
我错过了什么?
编辑:给出的 Pumping 引理的公式:
让
L成为具有k状态的DFA 接受的常规语言。让w是L中长度为>= k的任何单词。那么w可以写成u v z与|uv| <=k,v>0和u v^i z在L对于所有i>=0
【问题讨论】:
标签: regular-language finite-automata dfa pumping-lemma