是否有可能在没有明确构建它的情况下确定最小DFA中的状态数?

时间:2015-11-19 16:18:46

标签: finite-automata dfa

是否有任何简短的答案或公式可以根据任何语言确定DFA中的州数?更确切地说,是否可以在没有明确构建的情况下确定最小DFA中的状态数?

1 个答案:

答案 0 :(得分:1)

嗯,我不知道"短",但有一种可以使用的启发式方法。这基本上是对Myhill-Nerode Theorem的结果的重述。

鉴于字母表和语言是该字母表中所有字符串的子集,假设两个字符串 x y 等于任何其他字符串 z 连接 xz yz 既可以使用语言,也可以两种都不在语言中。 (注意 z 可以是空字符串)

  

例如,如果字母表只是01,而且语言是"所有字符串都以11"结尾,那么字符串& #34; 0010"和" 1110"是等价的,因为如果 z 11结尾,则两个连接都在语言中,如果 z 不以11结尾,则连接都不是在语言中。请注意字符串" 0001"并不等同于其他两个,因为如果 z 是" 1",那么连接" 0001" +" 1"是语言,但串联" 0010" +" 1"不在语言中。

然后,语言的最小DFA中的状态数是"等效"的定义下的等价类的数量。

  

按照之前的示例,等价类是"不以1"结尾的字符串。 (所以,以0结尾的字符串或空字符串),"以1结尾但不以11"结尾的字符串,以及&# 34;以11"结尾的字符串。因此,该语言的最小DFA由三种状态组成。

我所知道的唯一应用程序是证明某些固定基数 b 中的"数字的常规语言可以被 n "整除至少需要 n 状态。