NFA与DFA的等价性
对于每一个NFA M都有一个DFA M,使得L(M)=L(M,)
等价性证明
思路:NFA与DFA的区别
NFA | DFA | |
---|---|---|
初始状态 | 不唯一 | 唯一 |
弧上标记 | 字(单字符字、ε) | 字符 |
转换关系 | 非确定 | 确定 |
假定NFA M=<S, E, δ, So, F> ,我们对M的状态转换图进行以下改造:
1.解决初始状态唯一性
引进新的初态结点X和终态结点Y , X,Y∉S ,从X到S0中任意状态结点连一条:箭弧 ,从F中任意状态结点连一条:箭弧到Y。
例子:
2.将字变为字符
对M的状态转换图进一步施行替换,其中k是新引入的状态。逐步把这个图转变为每条弧只标记为Σ上的一个字符或ε ,最后得到一个NFA M’,显然L(M’)=L(M)
3.NFA确定化–子集法(解决:弧和转换关系)
设I是的状态集的一个子集, 定义的ε-闭包ε-closure(I)为:
- 若s∈I ,则s∈ε-closure(I) ;
- 若s∈I ,则从s出发经过任意条ε弧而能到达的任何状态s’都属于ε-closure(I),即:
- ε-closure(I)=IU{s’ |从某个s∈I出发经过任意条ε弧能到达s’ }
设a是2中的一一个字符,定义:
Ia= ε-closure(J)<