我怎么能说一般的语言?

时间:2013-01-25 12:48:30

标签: automation regular-language dfa nfa pumping-lemma

我们知道,使用抽取引理,我们可以很容易地证明语言 L = {WW |W∈{a,b} *} 不是常规语言。

然而,语言,L1 = {W1W2 | | W1 | = | W2 |}是一种常规语言。因为我们可以像下面这样得到DFA, enter image description here

我的问题是, L = {WW |W∈{a,b} *} 也有均匀长度的字符串(| w | = | w |,绝对),L仍然可以有一些像上面这样的dfa。怎么不是常规语言?

感谢。

2 个答案:

答案 0 :(得分:1)

您误解了ww语言和DFA的语言L1:

[问题]

  • L ={ ww| w = w}是常用语言(RL)。因为我们可以获得下面的DFA是可能的。

    DFA:  L1 ={ w1w2| |w1| = |w2|, where w1 , w2 ∈ {a, b}* } 
    
    --►((even))------a,b---------►(odd)  
          ▲                         |  
          |--------a,b--------------| 
    

[DOUBT]

  

什么是 L = {ww |其中w∈{a,b} *}是?

L是偶数长度字符串,由ab组成,其前缀子字符串等于后缀子字符串。 L的一些示例是{ aa, bb, abab, aaaa, bbbb, abaaba, abbabb, .....}

  

语言 DFA 或L1 = {w1w2 | | W1 | = | w2 |,其中w1,w2∈{a,b} *}?

所有偶数长度字符串由ab组成L1,例如{ab, ba, aabb, baab, ab, aa, bb, ababa, baba, abbba, ...}

注意:ab组成的所有偶数长度字符串不在L中,例如{ab, ba, aabb, baab, ab},但此字符串在{{ 1}}的语言= L1。

所以,DFA

[DOUBT-1]

  

L(DFA)=L1 != LL之间的关系?

正如我在 note 中所写,L(DFA)=L1所以属于L ⊆ L(DFA)的每个字符串也是DFA语言的元素,并接受了L。 (这是你的困惑

此外,语言DFA不是常规语言。我们无法为此语言绘制L ={ ww| |w| = |w| }。两种语言都不一样! DFA

(L != L1)L

的限制很多

L(DFA) = L不常规可以使用泵引理证明。

{ WW|W }也不是上下文无关语言,而是上下文敏感语言

答案 1 :(得分:0)

我在cs.stackexchange中发布了这个thead,Ran为我提供了答案。 https://cs.stackexchange.com/questions/9175/how-come-ww-isnt-regular-when-uv-u-v-is

两种语言之间的关键区别是第一种不需要记住其内容只是为了计算长度就足够了,而第二种语言需要分析w和w是否相同。

感谢@ Ran,@ Grijesh和@ dema80: - )