证明:让M成为以下NFA:
Automata for L 现在,如果x在L中,那么x = 0 ^(n)1 ^(n)。因此,在处理x时,M将在状态q0中开始,在状态q0中循环n次,然后在第一个上转换到状态q1,并且在状态q1中跟随循环总共n次1次。由于它以状态q1结束,因此将接受x。因此,M识别L中的每个字符串,因此L是NFA可识别的(并且由Kleene定理,因此是常规的)。
答案 0 :(得分:1)
你已经证明M接受L的每一串。但这并不意味着M认出L:因为这是真的,你还必须表明M完全接受L和没有其他人(或等效地:它不接受任何不在L中的字符串)。不幸的是,在你的情况下,M 接受一些非L字符串:例如,"011"
。
答案 1 :(得分:0)
你的证据确实是错误的。为了证明语言L是规则的,你需要证明存在一个识别语言L的有限状态自动机M.因此,你需要证明有关自动机M的三件事:
您的证明问题是您发布的自动机无法识别语言L:
此自动机识别语言0*1+
,该语言与语言L(0^n1^n
)不同。是的,L中的每个字符串都被此自动机识别。但是,这个自动机还可识别1
之类的字符串,这显然不在L中。因此,在您的证明中使用此自动机是错误的。
那么,你如何证明自动机M存在?那么,证明自动机M存在的唯一方法是通过显示M存在。唯一的问题是L不是常规语言。因此,没有有限状态自动机M识别L。
相反的方法是证明L不是常规语言。为了证明L不是常规语言,你需要证明没有有限状态自动机M识别L。这是一个更容易证明,因为你不必找到自动机M.你可以假设它存在。
您需要做些什么来证明L不是常规语言:
证明自动机M不能具有有限数量状态的标准方法是使用Pumping Lemma。我会把它作为练习让你弄明白,因为它不在你的问题范围内。