NFA http://i48.tinypic.com/2lwof1z.png
我无法理解如何转换。
如果2得到的输入“A”将它变成因为空字符串(1,4)或(1,2,4)?
谢谢!
NFA http://i48.tinypic.com/2lwof1z.png
我无法理解如何转换。
如果2得到的输入“A”将它变成因为空字符串(1,4)或(1,2,4)?
谢谢!
如果状态Q2
得到“A”的下一个状态可以是一个输入Q1
, Q2
,0R Q4
。
在你的NFA你得到最终状态Q4
它等价的DFA是如下:
a-
||
▼|
--►(Q0)---a---►((Q1))---b----►((Qf))
▲-----a--------|
当Q1
和Q2
的最终状态。
和它的正则表达式是: 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),我们可以从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)。