是给定的语言:(常规|无上下文|等)

时间:2011-03-10 06:43:25

标签: context-free-grammar regular-language

  

假设E = {a,b}。令L0 = {(b ^(n))(a ^(2n)):n> = 0}。设L =((NOT OPERATION)L0)

     

L是常规的,无上下文但不是常规的,或者没有上下文?证明你的答案。

我正在寻找L将会是什么,以及如何以类似的方式描述L0在问题中的描述以及答案。

这个解释对我来说非常重要,如果你想贡献,请具体说明。我希望了解这个材料以进行测试。

非常感谢!

2 个答案:

答案 0 :(得分:1)

我会尝试用外行的语言解释你,并提示你将其正式化。

L是一种包含所有字母E={a,b}字符串的语言,不在语言L0中 这不是常规语言。

L中的字符串是所有以LFA的非最终状态结束的字符串。 但是,由于您无法为L0构建DFA / NFA,因此您也无法获得L的DFA。

原因:在L0一个未绑定的数字n,需要在查看所有b后存储,然后在检查时使用它,DFA没有内存。 您无法为上述语言编写正则表达式。

使用Pumpping引理L不是上下文无关语言

S = ab是L中的字符串 使用PL我将分为5部分

S=uvxyz

u="" v=a x="" y=b z=""

现在n=0 新字符串为S(n=0)="" which is not in L

如果我们将ab分成

   u="" v="" x=a y=b z=""

现在适用于n=2 S(n=2)=abb which is not in L

所以L不是CFG。

PS:如果您在m

中发现任何漏洞,请告诉我

答案 1 :(得分:0)

我不确定你是否已经学会了抽血马。 但它是一种判断语言是否正常的方法。 请记住,如果L0是常规的,那么L1也是常规的,因为你可以通过交换L0 dfa的最终和初始统计数据来制作L1的dfa。

构建L0的任何一个例子,其中b ^ m a ^ 2m且这个字符串足够大以抽吸lema。

将示例分为三部分xyz。

其中| xy | < m(子串xy中的元素数) 和| y | > = 1。

由于块xy<因为有b ^ m b,所以必须是所有b。

现在让你抽0次。

x y ^ 0 z如果你的lang是bbbaaaaaa并且| y | = 1你的lang变成bbaaaaaa意味着现在它跟随b ^ n a ^ 3n。这使它不是一个正则表达式。

意味着L1不是正则表达式。