状态{A,B}超过字母= {a,b},可以使用多少最小DFA?我已经解决了这个问题并获得了122作为答案。我拿了两个案子 1.具有2个状态的最小DFA 2.具有1个状态的最小DFA
在案例1中,A和B的所有4个案例都是最终的,一个是最终的,一个是非最终的,都是非最终的。所以总数是120
在案例2中有两个单一状态DFA。
希望我的问题很清楚。这是正确的答案吗?如果不是,请回答解释。
答案 0 :(得分:3)
(以下假设我们正在讨论完整的DFA - 也就是说,每个可能的转换都定义为明确定义的状态的DFA。这与可能缺少转换的不完整DFA相反。)
一个重要的澄清:并非所有双态DFA都是最小的。
您对单态DFA的分析是正确的。有两种:DFA接受字母表中的所有字符串,DFA不接受字母表中的字符串。
对于双态DFA,每个州都可以是接受状态。有4种这样的配置。根据上述观察,其中两个并不是最小的。
过渡具有以下属性:
双态DFA中的转换次数=状态数*字母大小= 2 * 2 = 4
每次转换都成对出现(例如,对于转换{A,a} - > x,x可以是只有A或B)。有4个这样的对,每个都有二元选择,总共16个转换配置(2^4 = 16
)。
接受状态有2种有效的最小配置(A接受,B不接受; B接受,A不接受)。
因此,可能的最小双态DFA的最大值为2 * 16 = 32
。其中一些DFA不会很小。 32是上限。
至少有8个不是最小的。这些对应于8个双态DFA,其中从起始状态的转换在起始状态结束。
所以24是一个更严格的上界,我相信这是双态DFA的最小数量。
另一种解决此问题的方法(以及我如何找到自己的错误)是考虑最小双态DFA的结构。每个都有两种状态,可以是两种配置(A接受,或B接受,但不是两者或两者都没有),乘数为2.A(起始)状态必须有一个从A到B的转换(有两种选择)字符(a或b),或从A到B的两个转换,乘数为3.B状态对其转换没有限制,因此它总共有4个可能的转换,乘数为4。检查2 * 3 * 4 = 24
以确认上述分析。