【发布时间】:2013-01-28 18:57:49
【问题描述】:
【问题讨论】:
-
没有要求任何人做我的作业。
【问题讨论】:
如果状态Q2 获得“a”的输入,则下一个状态可能是Q1、Q2、0r Q4。
在您的 NFA 中,您将获得最终状态 Q4
它的等效DFA如下:
a-
||
▼|
--►(Q0)---a---►((Q1))---b----►((Qf))
▲-----a--------|
Q1 和 Q2 是最终状态。
其正则表达式为:a(a + ba)*(b + ε )
ε 是空符号 (epsilon)
【讨论】:
我们开始通过识别空输入闭包集将 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
由于NFA中4是accept节点,所以在DFA中包括4个节点都是accept节点,分别是(1,2,3,4)和(1,2,4)。
【讨论】: