對於每一個NFA M存在一個DFA M’,使得L(M)=L(M’)--------等價性證實,NFA的肯定化3d
假定NFA M=<S, Σ, δ, S 0 , F>,咱們對M的狀態轉換圖進行如下改造:
blog
解決初始狀態惟一性:引進新的初態結點X和終態結點Y,X,Y∉S,從X到S 0中任意狀態結點連一條ε箭弧, 從F中任意狀態結點連一條ε箭弧到Yim
簡化弧上的標記:對M的狀態轉換圖進一步施行替換,其中k是新引入的狀態d3
逐步把這個圖轉變爲每條弧只標記爲Σ上的一個字符或ε,最後獲得一個NFA M’,顯然L(M’)=L(M)
closure
把表當作狀態轉換矩陣,子集視爲狀態,轉換表惟一刻劃了一個肯定的有限自動機M,初態是ε-closure({X}),終態是含有原終態Y的子集,不難看出,這個DFA M與M’等價對於每一個NFA M存在一個DFA M ’ ,使得 L(M)=L(M’),NFA和DFA等價db
對於給定的DFA M,尋找一個狀態數比M少的DFAM’,使得L(M)=L(M’),假設s和t爲M的兩個狀態,稱s和t等價:若是從狀態s出發能讀出某個字α而中止於終態,那麼一樣,從t出發也能讀出α而中止於終,兩個狀態不等價,則稱它們是可區別的態;反之亦然img
把M的狀態集劃分爲一些不相交的子集,使得任何兩個不一樣子集的狀態是可區別的,而同一子集的任何兩個狀態是等價的, 最後,讓每一個子集選出一個表明,同時消去其餘狀態。集合
對DFA的狀態集合S進行第一次劃分,正確的分法是:終態和非終態co
{0} {1} {2} {3, 4, 5, 6}
字符