DFA可以接受任何语言吗?

时间:2019-01-19 03:10:57

标签: dfa

我们的讲师给这个问题的答案是假。

但是,我认为这是必须的。拿这个接受sigma star的DFA。

  • Q-> {s_1}
  • q_0-> s_1
  • sigma-> {a,b}
  • F-> {s_1}
  • delta-> {s_1 [sigma]-> s_1}

enter image description here

这意味着该语言必须接受(sigma star)星。这是所有语言的集合,包括非常规语言,例如{a ^ nb ^ n | n> 1}。在我看来,非常规语言将被接受,因为它们是DFA描述的语言的子集。

在我看来,这个DFA可以接受任何语言。

2 个答案:

答案 0 :(得分:2)

识别一种语言意味着拒绝不属于该语言的字符串,而不仅仅是接受确实属于该字符串的字符串。您可以构建一个接受每个字符串的自动机这一事实并不意味着您可以构建一个接受您需要接受的 specific 字符串并拒绝其他所有内容的自动机。

对您的编辑仍然如此;自动机接受的语言是自动机接受的所有单词的集合。该集合的任意子集不算作该自动机接受的语言。 (“自动机接受的语言”和“自动机识别的语言”是同义词。)

答案 1 :(得分:1)

Σ*不是所有语言的集合。这是包含所有字符串的单一语言。

DFA无法识别需要无限多个状态的任何语言。例如,a ^ nb ^ n(包含相等数量的a和b的语言)。对于每个i,在a ^ i之后的有效后缀集是不同的,因此每个a ^ i必须导致一个不同的状态,并且数字i是无界的。

请参阅:https://en.wikipedia.org/wiki/Myhill%E2%80%93Nerode_theorem