L = {WXW ^ R | w,x属于{a,b} ^ +}是常规语言。在书中,他们通过将其转换为正则表达式 a(a + b)^ + a + b(a + b)^ + b 来使其成为常规,这显然是一个以相同的开头和结尾的表达式现在通过这样做的符号 w = ab x = a wr = ba 将被接受,并且wxwr将生成的每个字符串都将被接受但是不在wxwr中的字符串也将被接受,如w = abb x = ab wr = bbaaaaaa也将被接受。当我们无法构建有限自动机时,世界如何成为常规语言?非常困惑
答案 0 :(得分:1)
但也不接受wxwr中的字符串,如w = abb x = ab wr = bbaaaaaa也将被接受。
正则表达式a(a+b)^+a + b(a+b)^+b
接受字符串wxw^r = (abb)(ab)(bbaaaaaa)
,因为它可以解释为字符串wxw^r = (a)(bbabbbaaaaa)(a)
。该语言未指定如何在w
,x
和w^r
之间拆分符号以强制w
和w^r
被撤销。对于你提出的解析,我们不满足这个条件,但我的确如此。正则表达式起作用的原因是,只要单词以相同的符号开头和结尾,我们总是可以将w
作为第一个符号,w^r
作为最后一个符号x
成为其他一切。该选项对我们开放,我们每次都可以自由选择。
我们绝对可以为正则表达式制作DFA。 NFA特别容易制作。