我正在学习使用配对表方法(系统还原方法)来减少DFA。这是我们希望减少的DFA。
第一步是将DFA布置在表格中:
0 1
q0 {q0, q3} {q1}
q1 {q2} {q2}
q2 EmptySet {q2}
{q0, q1} {q0, q1, q3} {q1, q2}
{q1, q2} {q2} {q2}
{q0, q1, q2} {q0, q1, q2} {q1, q2}
我认为我们不需要包含空集状态。
现在这里是我困惑的地方,我需要浏览状态列表并根据某些内容标记它们。我不知道该怎么办。
答案 0 :(得分:1)
首先,您拥有的表格与DFA不匹配。
pair table方法使用等价类。首先,我们将状态分为两种:最终状态和非最终状态。最初,每个最终状态都可以与任何非最终状态区分开来。因此,您应该创建一个如下表格,并标记(q0,q1)
和(q1,q2)
,因为q1是最终的,但q0
和q2
是非最终状态。
+----+
| q0 |
+----+----+
| q1 | x |
+----+----+----+
| q2 | | x |
+----+----+----+----+
| q0 | q1 | q2 |
+----+----+----+
然后迭代地,继续使用以下规则进行标记,并在迭代中停止,没有任何更改:
标记(q_i,q_j)
如果对于某些字母符号a,则标记。在表格和之上。标记为(q1,q2)
时,我们也应标记(q0,q2)
。请注意,我们只有一半的表。因此,(q0,q2)=(q2,q0)
。
+----+
| q0 |
+----+----+
| q1 | x |
+----+----+----+
| q2 | x | x |
+----+----+----+----+
| q0 | q1 | q2 |
+----+----+----+