这个 NFA 是否正确接受以 00 结尾的输入?

时间:2021-01-12 09:12:15

标签: nfa finite-state-automaton

在一次讲座中,有人说这个 NFA 接受以两个零结尾或输入=0 的输入: https://ibb.co/9Wt0j7J 。 字母是 {0,1}

但是如果输入是 001,我们会在某些路径上也以接受状态 (z2) 结束,但是在读取最后一个字符时不可能回到另一个状态,那个。这意味着,接受了错误的输入。所以,我的问题是:NFA 真的在不改变任何东西的情况下正确构建吗?如果是,为什么?如果没有其他箭头指向另一个状态,我可以假设我们进入“空(不可见)状态(错误状态,但未明确提及)”或类似的状态吗?

1 个答案:

答案 0 :(得分:1)

是的,它是给定定义的正确 NFA。

<块引用>

但是如果输入是 001,我们会在某些路径上也以接受状态 (z2) 结束,但是在读取最后一个字符时不可能回到另一个状态,那个。这意味着接受了错误的输入。

如果你输入 001,它不会接受它,因为 NFA 会检查所有可能的路径并消除卡住的路径。所以你会在前两个0之后去z2,但是读到1之后就卡住了,被淘汰了。

编辑:

<块引用>

... NFA 接受一个字符串 w,如果有可能的话 下一个状态的选择序列,同时读取 w 的字符并从开始状态转到任何接受状态。

摘自 John E. Hopcroft、Rajeew Motwani、Jeffret D. Ullman 合着的自动机理论、语言和计算简介一书(2006 年,第 59 页)。

相关问题