问题描述
我试图通过填表方法来最小化这个 DFA:
这是我为这个数字制作的表格:
从这张表中我们可以得出结论,这个数字已经最小化了,不需要继续了。
对吗?
解决方法
我们可以使用 Myhill-Nerode 来检查这个 DFA 的状态是否对应于不可区分关系下的唯一等价类。
通向状态 1 的字符串后面可以跟语言中的任何字符串,并且是我们看到的第一个字符串,因此我们必须在最小 DFA 中拥有这样的状态。
通向状态 2 的字符串后面不能跟 a 以获得可接受的字符串,因此状态 2 对应于不同于状态 1 的类。
状态 3 不接受,因此必须对应于不同于状态 1 和状态 2 的类。
状态 4 不接受,因此它的类不能与状态 1 或状态 2 相同。通向状态 4 的字符串后面不能跟 b 以获得语言中的字符串,因此状态 4 也不同于状态 3。
状态 5 也不接受,因此它与状态 1 和状态 2 不同。通向状态 5 的字符串后面可以跟 a 以获取语言中的字符串,因此状态 5 也与状态 3 和状态不同4.
状态 6 不接受,因此它也不同于状态 1 和状态 2。它可以后跟 a 或 b 以获取语言中的字符串,因此它与状态 3、4 和 5 不同。
状态 7 正在接受,因此它与状态 3、4、5 和 6 不同。通向状态 7 的字符串可以跟在 a 或 aa 之后以获取语言中的字符串,因此状态 7 与状态 2 不同和 1。
因为所有状态都是可区分的,所以 DFA 对于它接受的任何语言都是最小的。