文章目录

  • 一、 设计自动机 ( 语言要求 )
  • 二、 设计自动机 ( 1 ) 开始状态
  • 三、 设计自动机 ( 2 ) 状态 SSS 状态类型确定
  • 四、 设计自动机 ( 3 ) 状态 SSS 输入输出分析
  • 五、 设计自动机 ( 4 ) 状态 TTT 输入输出分析
  • 六、 最优自动机
  • 七、 自动机设计算法
  • 八、 确定性 与 非确定性
  • 九、 自动机非确定性示例

一、 设计自动机 ( 语言要求 )


设计自动机 : 之前是根据给定的自动机 , 找到自动机所能识别的语言 ; 现在是 给定语言 , 设计出能识别该语言的自动机 ;

自动机设计需求 : 设计一个又穷自动机 MMM , 满足以下的给定的语言要求 ; 即语言已经存在 , 求自动机 ;

1 . 自动机语言字符集 : Σ={0,1}\Sigma = \{0, 1\}Σ={0,1} , 字符集是 000 和 111 组成 , 该自动机语言由 0,10 , 10,1 组成 , 如 010101010101 , 100111100111100111 等 ;

2 . 自动机语言描述 :

① 自动机语言集合 : 自动机 MMM 所能接受的字符串都放在集合 AAA 中 , 集合 AAA 就是该自动机语言 ;

② 自动机语言要求 : 自动机 MMM 的语言 AAA 集合 中的字符串中都有 奇数 个 111 ;

3 . 接受状态 与 非接受状态 : 根据上述自动机语言要求 , 定义接受状态和非接受状态 ;

① 接受状态 : 如果当前输入的字符串中 , 含有奇数个 111 那么当前状态是 接受状态 ;

② 非接受状态 : 如果当前输入字符串中 , 有偶数个 111 , 那么当前的状态就是 非接受状态 ;

二、 设计自动机 ( 1 ) 开始状态


Start 开始状态 , 自动机启动后 , 自动跳转到 第一个状态 SSS ;

三、 设计自动机 ( 2 ) 状态 SSS 状态类型确定


第一个状态首先要考虑该状态是 接受状态 还是非接受状态 , 如果是接受状态 , 使用双圈表示 , 如果是非接受状态 , 使用单圈表示 ;

先说结论 : 第一个状态 SSS 是 非接受状态 , 是一个单圈 , 原因如下 :

处于第一个状态时 , 还没有读取任何输入信息 , 当前读取 000 个字符 ;

此时有 000 个 111 , 000 是偶数 , 也就是当前输入有偶数个 111 , 显然不符合语言的要求 ② 必须包含奇数个 111 ;

如果当前的状态 , 不符合 自动机语言要求 , 那么需要将当前状态设置成非接受状态 ;

此时的 SSS 状态就属于此类情况 , 其不符合 AAA 语言要求 , 有偶数个 111 , 因此 SSS 状态是非接受状态 , 需要使用单圈表示该非接受状态 ;

当前自动机 MMM 设计 :

四、 设计自动机 ( 3 ) 状态 SSS 输入输出分析


处于 SSS 状态时 , 设计自动机的原则是 , 考虑输入任何指令 , 其状态改变 , 即输入 000 指令 , 状态如何改变 , 输入 111 指令 , 状态如何改变 ;

在第一个状态 SSS 基础上 , 如果输入字符 000 , 此时还是有 偶数 个 111 , 其要到达的状态还是非接受状态 , 这里将该状态 继续指向 它自己 ; 输入序列 000 ;

在第一个状态 SSS 基础上 , 如果输入字符 111 , 此时还是有 奇数 个 111 , 此时其要达到一个新的状态 TTT , 这个新状态 符合 AAA 语言要求 , 有奇数个 111 , 是可接受状态 , 使用双圈表示 ; 输入序列 111 ;

当前自动机 MMM 设计 :

SSS 状态已经分析完毕 , 下面开始讨论 TTT 状态的自动机后续设计 ;

五、 设计自动机 ( 4 ) 状态 TTT 输入输出分析


处于 TTT 状态时 , 设计自动机的原则是 , 考虑输入任何指令 , 其状态改变 , 即输入 000 指令 , 状态如何改变 , 输入 111 指令 , 状态如何改变 ;

TTT 状态下 , 如果输入 000 , 此时还是有 111 个 111 , 即奇数个 111 , 其状态还是可接受状态 , 继续指向该状态自己 TTT ; 输入序列 000000 ;

TTT 状态下 , 如果输入 111 , 此时输入中出现 222 个 111 , 输入了 偶数 个 111 , 其状态就是 非接受状态 , 需要 跳转到 非接受状态 SSS , 箭头从 TTT 指向 SSS ; 输入序列 010101 ;

当前自动机 MMM 设计 :

六、 最优自动机


自动机性能 : 给定一个 自动机语言 AAA , 那么根据该语言可以设计出 不同的自动机 , 那么这些自动机之间的性能肯定是不同的 , 有的自动机性能高 , 有的自动机性能低 ;

最优自动机 : 从上述根据 同一个语言 设计出的多个自动机中 , 肯定能选出一个最优自动机 ;

七、 自动机设计算法


自动机生成算法 : 自动机是可以使用算法生成的 , 存在一种算法 , 用该算法生成一个 能识别给定语言的 最优的自动机 ;

八、 确定性 与 非确定性


1 . 确定性 思想 : 自然界一定是确定性的 , 给定一个输入 , 必定对应唯一一个输出 ; 如果出现非确定的输出 , 是由于人的认知有限 , 没有发现其中的未知变量 ; 随着科学认知的发展 , 这些不确定性会消除 ; 以牛顿力学为代表 ;

2 . 非确定性 思想 ( 主流 ) : 自然界是非确定的 , 一个输入对应 不确定 个输出 ; 以量子力学为代表 ;

确定性有穷自动机 的 确定性 , 就是上述确定性思想的应用 ;

下面要将 非确定性思想应用到 自动机设计中 ;

九、 自动机非确定性示例


上述 自动机 是一个非确定性自动机 , 非确定性主要体现在以下几个方面 ;

111 个字符输入对应 222 个输出 :

当前状态为 q1q_1q1​ 时 , 读取字符 111 时 , 其后继状态有两个 , 既可以跳转到 q1q_1q1​ 本身状态 , 又可以跳转到 q2q_2q2​ 状态 ;

这个操作是一个非确定性的操作 , 读取一个字符 , 却对应了两个后继状态 ;

000 个字符输入对应 111 个输出 :

当前状态为 q2q_2q2​ 时 , 读取字符 000 或者 ε\varepsilonε 空字符串 时 , 就可以跳转到 q3q_3q3​ 状态 ;

ε\varepsilonε 表示空字符串 , 其类似于自然数中的 000 的概念 ;

000 个字符输入对应 000 个输出 :

当前状态为 q3q_3q3​ 时 , 为其输入字符 000 , 其没有后继状态 ;

这个操作也是一个非确定性操作 , 读取一个字符 , 没有后继状态 ;

自动机中的不确定性 : 不确定性自动机中 , 允许 空字符 或 111 个字符 输入 , 对应 000 个 或 多个输出 ;

【计算理论】自动机设计 ( 设计自动机 | 确定性自动机设计示例 | 确定性与非确定性 | 自动机中的不确定性 )相关推荐

  1. 【计算理论】可判定性 ( 非确定性有限自动机的接受问题 | 证明 “非确定性有限自动机的接受问题“ 的可判定性 )

    文章目录 一.非确定性有限自动机的接受问题 二.证明 "非确定性有限自动机的接受问题" 可判定性 一.非确定性有限自动机的接受问题 非确定性有限自动机 的 接受问题 , 首先将 计 ...

  2. 确定性有穷自动机(DFA算法) 非确定性有穷自动机(NFA算法)

    确定性有穷自动机(DFA算法)& 非确定性有穷自动机(NFA算法) 非确定有限状态自动机的构建(一)--NFA的定义和实现_园荐_博客园 编译原理:有穷自动机(DFA与NFA)_Machine ...

  3. 【计算理论】上下文无关语法 CFG ( CFG 设计示例 | CFG 歧义性 | Chomsky 范式 | 上下文无关语法 转为 Chomsky 范式 )

    文章目录 一.上下文无关语法 设计 示例 二.上下文无关语法 的歧义性 三.Chomsky 范式 四.上下文无关语法 转为 Chomsky 范式 五.上下文无关语法 转为 Chomsky 范式 示例 ...

  4. 【计算理论】正则语言 ( 推广型的非确定性有限自动机 GNFA | 删除状态 | 确定性有限自动机 转为 正则表达式 )

    文章目录 一.推广型的非确定性有限自动机 ( GNFA ) 引入 二.推广型的非确定性有限自动机 ( GNFA ) 删除状态 三.确定性有限自动机 ( DFA ) 转为 正则表达式 四.确定性有限自动 ...

  5. 【计算理论】计算理论总结 ( 正则表达式转为非确定性有限自动机 NFA | 示例 ) ★★

    文章目录 一.正则表达式转为非确定性有限自动机 NFA 要点 二.正则表达式转为非确定性有限自动机 NFA 示例 1 三.正则表达式转为非确定性有限自动机 NFA 示例 2 四.正则表达式转为非确定性 ...

  6. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

  7. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

  8. 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★

    文章目录 一.下推自动机计算过程 二.上下文无关文法 CFG 转为下推自动机 PDA 流程 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | 语法 | 语法示例 | 约定的简写形式 ...

  9. 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!

    关注公众号,发现CV技术之美 今天给大家介绍一本豆瓣评分高达9.7分.成书于40多年前的神书: Vision:A Computational Investigation into the Human ...

  10. 赠书啦!人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!

    今天给大家介绍一本豆瓣评分高达9.7分.成书于40多年前的神书: Vision:A Computational Investigation into the Human Representation ...

最新文章

  1. tdk磁材手册_TDK的铁氧体磁铁(FB系列) - TDK Product Center.PDF
  2. Superhero Battle
  3. 【Linux】一步一步学Linux——fg命令(130)
  4. [SQLite]使用记录
  5. 实战项目| 7天掌握神经网络预测模型
  6. 6.3.2线索二叉树
  7. 编译动态库时报错relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile
  8. 遍历文件夹下的所有文件
  9. poj——3349 哈希加模拟
  10. Ubuntu 如何定制桌面解放你的个性?
  11. 开放大学建筑构造计算机考试试题,国家开放大学电大专科《建筑构造》2021期末试题及答案(试卷号:2345)...
  12. 人工智能数学基础——相关分析
  13. xp此计算机无法连接到,WinXP打印机共享无法连接如何解决?
  14. SVC的主要作用及应用范围
  15. sa提开放系统下的虚拟新贵Virtualbox权技巧之xp_regwrite替换sethc.exe
  16. 计算机数字怎么转换成文本,怎么把数字转换成文本
  17. 持续集成与持续部署(五)01-TravisCI——使用简介-Travis CI 只支持 Github,提供的是持续集成服务 配置项目的.travis.yml文件
  18. 解决bootstrap table的export扩展模块利用tableExport导出pdf中文乱码问题
  19. 小程序微信支付功能开发
  20. wargame v2.1 Web Wrtteup By Assassin

热门文章

  1. jquery视频教程
  2. 转:保留小数点后四位,不足自动补0
  3. synchronized同步对象锁
  4. 发光二极管原理,理解,相关计算
  5. win10系统Docker和VMware WorkStation共存,远程工具连接Docker
  6. 在 Linux 下确认 NTP 是否同步的方法
  7. C# 泛型可能导致的装箱操作陷阱
  8. 2-4+并发的优势与风险
  9. Elasticsearch--建议器
  10. 生产路由跳转报错找不到js路径问题