ɛ-转换如何在非确定性有限自动机中工作?

时间:2015-01-09 18:05:24

标签: automata nfa

我对自动机实现语言感到困惑。如果存在ɛ转换,自动机是否会直接进入下一个状态?假设我有一个由三个状态组成的自动机abc(其中a是初始状态,c是接受状态),带有字母{ 0,1}。以下是如何工作的?

 a----ɛ--->(b----0---->a)
             (b----1---->c)

字符串“1”是否被接受?如果我们有什么

   a---1--->b----ɛ--->c

?字符串“1”会被接受吗?

1 个答案:

答案 0 :(得分:3)

  

如果存在ɛ转换,自动机是否会直接进入下一个状态?

粗略地说,是的。 ɛ转换(简称non-deterministic finite automaton或简称NFA)是与任何符号(01的消耗无关的转换)。一旦你理解了这一点,就很容易(在这种情况下)推导出与你的NFA相当的deterministic finite automata(或简称DFA)并识别后者所描述的语言。

  

假设我有一个自动机[...]接受字符串“1”?

是。这是你的第一个NFA的更好的图表(简洁的LaTeX和tikz):

enter image description here

等效的DFA将是:

enter image description here

一旦你有了这个,就很容易看出那个NFA接受的语言就是字符串的集合

  • 从零个或多个0开始,
  • 只有一个1

字符串“1”,因为它以零0开头,以1结尾,确实被接受了。

  

如果我们有[...]怎么办?字符串“1”会被接受吗?

是。这是你的第二个NFA的更好的图表:

enter image description here

等效的DFA将是:

enter image description here

事实上,很容易看出“1”是唯一被接受的字符串,在这里。