如何解决这个 NFA 是否正确接受以 00 结尾的输入?
在一次讲座中,有人说这个 NFA 接受以两个零结尾或输入=0 的输入: https://ibb.co/9Wt0j7J 。 字母是 {0,1}
但是如果输入是 001,我们会在某些路径上也以接受状态 (z2) 结束,但是在读取最后一个字符时不可能回到另一个状态,那个。这意味着,接受了错误的输入。所以,我的问题是:NFA 真的在不改变任何东西的情况下正确构建吗?如果是,为什么?如果没有其他箭头指向另一个状态,我可以假设我们进入“空(不可见)状态(错误状态,但未明确提及)”或类似的状态吗?
解决方法
是的,它是给定定义的正确 NFA。
但是如果输入是 001,我们会在某些路径上也以接受状态 (z2) 结束,但是在读取最后一个字符时不可能回到另一个状态,那个。这意味着接受了错误的输入。
如果你输入 001,它不会接受它,因为 NFA 会检查所有可能的路径并消除卡住的路径。所以你会在前两个0之后去z2,但是读到1之后就卡住了,被淘汰了。
编辑:
... NFA 接受一个字符串 w,如果有可能的话 下一个状态的选择序列,同时读取 w 的字符并从开始状态转到任何接受状态。
摘自 John E. Hopcroft、Rajeew Motwani、Jeffret D. Ullman 合着的自动机理论、语言和计算简介一书(2006 年,第 59 页)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。