证明以下语言是正常的:

时间:2019-05-03 09:35:24

标签: regular-language automata dfa nfa

让L1,L2为常规语言。并让A1 = 〈Σ,Q,q0,1,F1),A2 = 〈Σ,P,p0,2,F2)作为他们的DFA。

通过为其制定适当的NFA来证明以下语言是常规语言:

3 = {11'22'...'| 12 ...∈1,1'2'...'∈2}(意思是偶数位置(从0开始)的字母来自的所有单词的语言L1和奇数位置的字母来自L2。

希望对此有所帮助。 谢谢。

1 个答案:

答案 0 :(得分:1)

考虑以下自动机:

  • 字母Σ
  • 状态集(Q x P)并集(P x Q)
  • 初始状态(q0,p0)
  • 最终状态(f1,f2),其中f1和f2分别位于F1和F2中
  • 转换函数,如果1在s上将q取到q',则在符号s上将(q,p)取到(p,q'),在符号s上取(p,q)到(q,p')如果A2在符号s上将p带到p'。

假设您在L3中有一个单词w。我们的机器接受吗?序列1、2,...,n将导致自动机到达的状态的第一部分与仅处理此序列的A1会到达的状态A1相同。由于L3表示w中的这个序列是L1中的一个单词,因此状态应该已经在A1中接受,因此第一个成分在F1中。同样,序列1',2',…,n'是L2中的字符串,因此它到达的状态为接受。因此,此NFA所达到的状态为(f1,f2)形式,因此必须接受字符串。我们刚刚争论过,NFA至少接受这种语言的字符串。剩下的就是争辩说它不接受其他任何东西。

幸运的是,该参数的其余部分很简单,我们可能可以与上面的参数同时进行。它遵循相同的格式。假设我们的NFA到达接受状态之一。然后是(f1,f2)的形式。这意味着我们看到了偶数长度的字符串,其中一起考虑的奇数索引符号在A1中导致f1,而偶数索引符号在A2中导致f2。但这意味着序列正在各自的自动机中接受,因此导致我们进入机器接受状态的字符串必须是L3中的一个单词。我们刚刚争论过,NFA最多只能接受该语言中的 字符串。

由于我们的机器至少接受我们需要的字符串,并且最多接受我们需要的字符串,因此它可以完全接受我们需要的字符串。