原始DFA如下圖所示
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0YDO0UDO1IzMzQDMyITOwgTMwIzLcRDM0EDMy8CXvZmbp9CXt92YuUGZvNWatFWbuU2Zh1Wavw1LcpDc0RHaiojIsJye.png)
最小化的定義:
1.沒有多餘的狀态(死狀态);
2.沒有兩個狀态是互相等價的;
兩個狀态等價的含義:
1.相容性(一緻性)——同是終态或同是非終态;
2.傳播性(蔓延性)——從s出發讀入某個a和從t出發經過某個a并且經過某個b到達的狀态等價。
令M為DFA中所有狀态的集合。
1.開始做粗略劃分,将狀态集M的狀态劃分為,
k1 = {C, D, E, F}
k2 =
{S, A, B}
2.考察k1是否可分,由下面的轉換關系k2可以分為{S, B}和{A}。
A -> a -> k1
S
-> a -> k2
B -> a -> k2
3.對于{S,
B}有下面的轉換關系,可以劃分為{S}和{B}
B -> b -> k1
S -> b ->
k2
4.考察k1,對于經由a和b,到達的狀态都是屬于k1,是以不可再分。
對于是否可以再分,有一個形式化的定義,
任意的c屬于字元集合Σ,si經由c到達sx,以及sj經由c到達sy,那麼sx和sy均屬于的狀态集合pt。如果有任何狀态sk屬于pt,dk經由c到達dz,dz不屬于pt,那麼dk不能再繼續留在pt中。
5.狀态集k1采用狀态C來替代,當然可以使用k1中其他狀态來替代,得到如下的最小DFA,
參考:
http://leaver.me/archives/369.html