DFA接受带有'1'作为右边第5个符号的字符串所需的最小状态数是多少?字符串在字母{0,1}上定义。
答案 0 :(得分:2)
Myhill-Nerode theorem是解决这些问题的有用工具。
我们的想法是使用“区分扩展”的概念构建一组字符串的等价类。考虑两个字符串x和y。如果存在字符串z 这样,xz和yz中只有一个在语言中,那么z是一个可区别的扩展, x和y必须属于不同的等价类。每个等价类映射到最小DFA中的不同状态。
对于您所描述的语言,让x和y为任意一对不同的5个字符的字符串 超过{0,1}。如果它们在位置n处不同(从右边开始计数,从1开始),则任何长度为5-n的字符串z将是区别扩展:如果x在位置n处具有0, 并且y在位置n处具有1,然后拒绝xz并且接受yz。这给出2 5 = 32 等价类。
如果s是长度为k <1的字符串。 5个字符,它属于同一个等价类 为0 (5-k) s(即向左添加0填充,直到它长达5个字符)。
如果s是长度为k的字符串&gt; 5个字符,其等价类由最后5个字符决定。
因此,{0,1}以上的所有字符串都属于上述32个等价类中的一个,而根据Myhill-Nerode定理,该语言的最小DFA有32个状态。