微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决这个 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?