NFA http://i48.tinypic.com/2lwof1z.png将NFA转换为DFA
我无法理解如何转换。
如果2得到'a'的输入,它会因为空串而变成(1,4)或(1,2,4)吗?
谢谢!
NFA http://i48.tinypic.com/2lwof1z.png将NFA转换为DFA
我无法理解如何转换。
如果2得到'a'的输入,它会因为空串而变成(1,4)或(1,2,4)吗?
谢谢!
如果状态Q2
获得'a'的输入,则下一状态可以是Q1
,Q2
,0rQ4
。
在你NFA你得到的最终状态Q4
它等价的DFA是如下:
a-
||
▼|
--►(Q0)---a---►((Q1))---b----►((Qf))
▲-----a--------|
凡Q1
和Q2
是最终状态。
而且其正则表达式为:a
(a + ba)*
(b + ε)
哪里ε
是空符号(ε)
我们开始通过识别空输入闭集集合(从这里开始,我将通过L闭包来表示空输入闭包)来将NFA转换为DFA。
L(1)=(1,2)我们可以在空输入中从1开始访问2。
L(2)=(2)没有从2输出空输入边缘。
L(3)=(3)没有空的输入边缘从3.
L(4)=(1, 2,4),我们可以从图4和2从1
访问1如果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)。
1,2,4,但做作业很无聊! – Dan 2013-02-13 09:37:39
没有要求任何人做我的功课。 – juice 2013-02-13 09:44:24