有限的自动机帮助,无法理解这个概念

时间:2015-04-28 09:12:35

标签: automation dfa nfa

假设有限自动机在处理单词w后达到状态s。 我们如何判断w是否属于语言(或不属于)语言 自动机,如果s是最终的或非最终的,自动化是DFA或NFA(4 例)。

这一直困扰着我..任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

语言 L 的FSA,在阅读 w 之后,可以在一组状态中停止 Q w w L 的成员当且仅当存在至少一个最终(接受)状态 q f Q w 中。换句话说:如果FSA,读取 w 可以停止在最终状态,那么 w L <的成员/ em>的

读取相同输入的DFA将始终到达相同的状态;由此得名。所以这里 Q w 总是由单个状态组成,答案很简单:如果状态是最终状态,那么 w 是语言成员;否则,它不是。

NFA比较棘手,因为如果你在 w 上运行它,它可能会停在 Q w 中的任何状态。如果它是接受状态,根据定义,您知道 w L 的成员。哇,幸运!但是,如果在阅读 w 之后,我们达到了非最终状态呢?我们可以说,与DFA类似, w 不是 L 的成员吗?

不幸的是,不是*。让我们考虑这两个NFA:

  • NFA 1 ,阅读 w ,可以在 q nf1 中停止 q nf2 ,两种非最终状态;
  • NFA 2 ,阅读 w ,可以在 q nf1 中停止 q nf2 ,但也在 q f 中,是最终状态。

假设我们将 w 输入我们的机器,并在 q nf1 中停止。在不知道我们正在测试哪个NFA的情况下,我们能怎么说 w ?显然没有: w L 2 的成员,因为如果我们继续运行 NFA 2 < / em> on w ,迟早我们可能会在 q f 中结束;另一方面, w 不是 L 1 的成员,因为无论我们运行 w 通过 NFA 1 ,我们最终只会处于不接受状态。

总结一下:

  • DFA,最终状态:是
  • NFA,最终状态:是
  • DFA,非最终状态:否
  • NFA,非最终状态:我们不知道

* 我认为FSA是我们的黑盒子,我们所能观察到的是 w 这个词以及我们停止的状态在, q 。如果我们知道FSA的结构,那么NFA案例就会简单得多,因为我们可以检查 Q w