繁体   English   中英

将NFA转换为DFA

[英]Converting NFA to DFA

NFA

我在理解如何转换时遇到了麻烦。

如果2获得输入“ a”,由于空字符串,它将变成(1,4)或(1,2,4)?

谢谢!

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

在您的NFA中,您将获得最终状态Q4

其等效的DFA如下:

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

其中Q1Q2是最终状态。

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

其中ε为空符号(ε)

我们通过识别空输入闭包集开始将NFA转换为DFA(从这里开始,我将以L闭包表示空输入闭包)。
L(1)=(1,2)我们可以从1到2输入空。
L(2)=(2)从2没有空输入边沿
L(3)=(3)从3没有空输入边沿
L(4)=(1,2,4)我们可以从4访问1并且从1访问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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM