分割法:把一个DFA(不含多余状态)的状态分割成一些不相交的子集,并且任意两个子集之间的状态都是可区别状态,同一子集内部的状态都是等价状态。
步骤(按分割法)
-----------------I0、I1分割-------------------
I0 = {1,2,3,4} ; 非终态
I1 = {5,6,7} ; 终态
move(1,a) = 6 ∈I1
move(1,b) = 3 ∈I0
move(2,a) = 7 ∈I1
move(2,b) = 3 ∈I0
move(3,a) = 1 ∈I0
move(3,b) = 5 ∈I1
move(4,a) = 4 ∈I0
move(4,b) = 6 ∈I1
可以发现,{1,2}是等价的,{3,4}是等价的
所以现在分割成了:I2 = {1,2}, I1 = {5,6,7}, I3 = {3,4}
move(1,a) = 6 ∈I1
move(1,b) = 3 ∈I3
move(2,a) = 7 ∈I1
move(2,b) = 3 ∈I3
可以发现,是等价的,不用分割
move(3,a) = 1 ∈I2
move(3,b) = 5 ∈I1
move(4,a) = 4 ∈I3
move(4,b) = 6 ∈I1
可以发现,不是等价的,分割成{3},{4}
所以现在分割成了:I2 = {1,2}, I1 = {5,6,7}, I4 = {3}, I5 = {4}
move(5,a) = 7 ∈ I1
move(5,b) = 3 ∈ I4
move(6,a) = 4 ∈ I5
move(6,b) = 1 ∈ I2
move(7,a) = 4 ∈ I5
move(7,b) = 2 ∈ I2
可以发现,不是等价的,分割成{6,7}, {5}
所以现在分割成了:I2 = {1,2}, I4 = {3}, I5 = {4}, I6 = {5},I7 = {6,7}
课件下载:
关注下方微信公众号,
回复:
DFA化简.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top