假设NFA N=(K, å,f,K0,Kt),则可按如下办法构造一个DFA M=(S, å,d,S0,St),使得L(M)=L(N):
1. M的状态集S由K的一些子集组成。用[K1 K2... Kj]表示S的某一个元素,其中K1, K2,... Kj是K的状态。并且约定,状态K1, K2,... Kj是按无序的(无序集合),即对于子集{K1, K2}={ K2, K1}来说,S的状态就是[K1 K2];
2. M和N的输入字母表是相同的,即是å;
3. 转换函数是这样定义的
d([S1 S2,... Sj],a) = [R1R2... Rt] 其中 {R1,R2,... , Rt} = e-closure(move({K1, K2,,... Kj},a))
4. S0=e-closure(K0)为M的开始状态;
5. St={[Ki Kk... Ke],其中[Ki Kk... Ke]ÎS且{Si , Sk,,... Se}ÇKt¹F}