Kleene Star的确定性有限自动机

时间:2016-01-24 01:48:12

标签: regex finite-automata dfa kleene-star

我读到每个非确定性有限自动机(NFA)都可以转换为确定性有限自动机(DFA)。这可以用于kleene star regex,比如*?enter image description here

以上是*的NFA。

2 个答案:

答案 0 :(得分:2)

是。 Kleene星确定性有限自动机有两种状态。起始状态是最终的,并且具有a的自身转换,以及所有其他符号的转换到另一个状态。另一个州为每个符号都有一个过渡。

因此,它接受空字符串(因为起始状态是最终的)和a的任意数量的重复。任何不是a的东西都会将DFA发送到另一个非最终状态,并且无法逃脱。

如果将Kleene星应用于比单个符号更复杂的正则表达式,会稍微复杂一些,但总是可以完成:只需将正则表达式的NFA插入到所显示图像的红色部分,并应用标准Powerset construction算法将NFA转换为DFA。我强烈建议研究这种算法;如果您了解其工作原理,您会看到为什么每个NFA都可以转换为DFA。

答案 1 :(得分:0)

这只是一个单一的起始状态,也是接受状态。它有一个自循环,接受'a'。enter image description here