下面具体介绍DFA的化简算法:
(1)
首先将DFA M的状态划分出终止状态集K1和非终止状态集K2。 K=K1∪K2 由上述定义知,K1和K2是不等价的。
(2)
对各状态集每次按下面的方法进一步划分,直到不再产生新的划分。 设第i次划分已将状态集划分为k组,即: K=K1(i)∪K2(i)∪…∪Kk(i) 对于状态集Kj(i)(j=1,2,…,k)中的各个状态逐个检查,设有两个状态Kj’、 Kj’’∈Kj(i),且对于输入符号a,有: F(Kj',a)=Km F(Kj'',a)=Kn 如果Km和Kn属于同一个状态集合,则将Kj’和Kj’’放到同一集合中,否则将Kj’和Kj’’分为两个集合。
(3)
重复第(2)步,直到每一个集合不能再划分为止,此时每个状态集合中的状态均是等价的。
(4)
合并等价状态,即在等价状态集中取任意一个状态作为代表,删去其他一切等价状态。
(5)
若有无关状态,则将其删去。 根据以上方法就将确定有限自动机进行了简化,而且简化后的自动机是原自动机的状态最少的自动机。