NFA转换到DFA(Converting NFA to DFA)

2019-08-16 23:13发布

NFA http://i48.tinypic.com/2lwof1z.png

我无法理解如何转换。

如果2得到的输入“A”将它变成因为空字符串(1,4)或(1,2,4)?

谢谢!

Answer 1:

如果状态Q2得到“A”的下一个状态可以是一个输入Q1Q2 ,0R Q4

在你的NFA你得到最终状态Q4

它等价的DFA是如下:

                 a-  
                 ||
                 ▼|
--►(Q0)---a---►((Q1))---b----►((Qf))  
                 ▲-----a--------| 

Q1Q2的最终状态。

和它的正则表达式是: a (a + ba)* (b + ε )

其中ε是空符号(ε)



Answer 2:

我们开始NFA转换为DFA与识别空输入封套(从这里开始,我将表示空输入闭合由L-关闭)。
L(1)=(1,2),我们可以从1上空的输入2次访问。
L(2)=(2)没有空的输入从2边沿出来。
L(3)=(3)没有空的输入从3边出。
L(4)=(1,2,4),我们可以从1访问1从4和2。

如果2得到的输入“A”将它变成因为空字符串(1,4)或(1,2,4)?

如果2得到 'A' 的输入时,它会成为L(1)UL(4)=(1,2,4)。

由于我们的开始节点在NFA是1,在DFA这将是L(1),它是(1,2)。

T((1,2),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2),b)=F  
T((1,2,3,4),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2,3,4),b)=L(4)=(1,2,4)  
T((1,2,4),a)=L(1)UL(3)UL(4)=(1,2,3,4)  
T((1,2,4),b)=F  

由于图4是在一个NFA接受节点,在DFA的节点包括4将接受的节点,它们是(1,2,3,4)和(1,2,4)。



文章来源: Converting NFA to DFA
标签: automata nfa