【计算理论】自动机 示例 ( 自动机示例 | 自动机表示方式 | 自动机计算流程简介 )



I . 自动机 简单 示例 ( 单向自动门 )


1 . 单向自动门 现实状况描述 : 可通过的单向自动门 ; 当站在门前时 , 自动门开 , 确保人走过后 , 再关闭 ; 注意 : 这个门只能进 , 不能出 ;


2 . 自动门有两个状态 :


① 打开 : 如下图所示 ;

在这里插入图片描述

② 关闭 : 如下图所示 ;

在这里插入图片描述


3 . 人的位置有四个状态 , 以及每个 人的状态对应的 门的状态 :


① 门前有人门后无人 : 一个人走到自动门前 , 门前有人 , 门后无人 ;

在这里插入图片描述

② 门前无人门后有人 : 一个人从自动门走过 , 走到门后面 , 此时处于门前无人 , 门后有人 ;

在这里插入图片描述

③ 门前门后都没人 : 一个人彻底走过自动门 , 自动门前后没人 ;

在这里插入图片描述

④ 门前门后都有人 : 两个人前后脚过自动门 , 一个人走到门后 , 另一个人刚走到门前 , 造成该状态 ;

在这里插入图片描述

4 . 自动门示意图 : 其中有一些逻辑是不存在的 , 如 单向自动门当前状态是打开的 , 不可能出现 要输入 “门前有人 , 门后无人” 状态的情况 , 此时肯定门是关闭的 , 才能输入 “门前有人 , 门后无人” 状态 , 否则根本就不符合常理 , 这里出现不符合常理的逻辑 , 其 状态不变 即可 ;

在这里插入图片描述

① 门前有人 ( 门后无人 ) : 表示有人要通过 , 当前门处于关闭状态 , 自动门 从 关闭 状态 变成 打开 状态 ;

② 门后有人 ( 门前无人 ) : 表示有人刚进去 , 自动门一直是打开状态 ;

③ 门前后都没人: 开始是 打开状态 , 之后人走过后 , 关闭 自动门 ;

④ 门前后都有人 : 开始是打开状态 , 后面马上又来一个人 , 此时仍然保持 打开状态 ;


5 . 自动机 表格方式: 红色的是有效的状态转换 , 蓝色的是不符合单向自动门常理的状态转换 ;


门前后都没人门前有人 ( 门后无人 )门后有人 ( 门前无人 )门前后都有人
当前是关闭状态关闭打开关闭关闭
当前是打开状态关闭打开打开打开

① 第 1 1 1 行第 1 1 1 列 : 自动门 “当前是关闭状态” , 输入一个人的 “门前后都没人” 状态 , 结果是自动门切换成 “关闭” 状态 ;

② 第 1 1 1 行第 2 2 2 列 : 自动门 “当前是关闭状态” , 输入一个人的 “门前有人 ( 门后无人 )” 状态 , 说明来人了 , 马上开门 , 结果是自动门切换成 “打开” 状态 ;


6 . 自动机引入 : 自动门的所有的状态转换 , 当前的 自动门 状态 , 输入一个人的状态 , 自动门就会转为另外一个状态 , 这就是一个自动机 ;



II . 简单自动机示例 及 描述方式 ( 二进制数据处理 自动机 )


1 . 自动机由来 :


① 初始简单模型 : 解决一个问题时 , 先搭建一个简单计算模型 , 自动机 , 即 最简单的模型就是自动机 ;

② 模型扩张 : 逐步扩张简单计算模型 , 提高其计算能力 , 将计算能力扩展到极限 , 就是图灵机 ;


2 . 这个自动机是用于处理二进制数字的 :


在这里插入图片描述


① 状态含义 : A , B , C A,B,C A,B,C 三个状态 , 分别 类似于 上述 自动门示例的 门开状态 , 门关状态 , 这些状态在 图灵机中 主要反映 神经中枢 所处的状态 ;

② 箭头的含义 : 自动机当前所处的状态 A A A , 输入一个状态 1 1 1 后 , 变成另外一个状态 B B B , 那么绘制一个箭头 , 从 A A A 指向 B B B , 将输入的状态标识在箭头上 ;

③ 箭头本质 : 箭头的本质相当于箭头的一条指令 ;

④ Start 开始状态 : Start 表示自动机的开始计算的起始位置 , 相当于 Main 函数入口 ;


3 . 状态表示 : 有些状态如 A A A B B B 画了两个圈 , 有些状态 如 C C C 只画了一个圈 ;


① 接收状态 : 2 2 2 个圈表示该状态是接收状态 ;

② 非接受状态 : 如果只有 1 1 1 个圈 , 表示该状态是非接收状态 ;



III . 简单自动机示例 及 运行 ( 二进制数据处理 自动机 )


在这里插入图片描述

1 . 自动机功能 : 将字符串 “0101” 输入到 自动机 中进行计算 ;


2 . 自动机启动 : Start 开始后 , 自动机的状态 是 A A A 状态 ;

自动机开始 -> 自动机 A A A 状态 ;


3 . 输入字符 0 0 0 : 自动机 A A A 状态下 , 输入 0 0 0 字符 , 仍然保持 A A A 状态不变 ;

自动机开始 -> 自动机 A A A 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 ;


4 . 输入字符 1 1 1 : 自动机 A A A 状态下 , 输入 1 1 1 字符 , 自动机转为 B B B 状态 ;

自动机开始 -> 自动机 A A A 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 -> 输入 1 1 1 字符 -> 自动机 B B B 状态 ;


5 . 输入字符 0 0 0 : 自动机 B B B 状态下 , 输入 0 0 0 字符 , 自动机转为 A A A 状态 ;

自动机开始 -> 自动机 A A A 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 -> 输入 1 1 1 字符 -> 自动机 B B B 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 ;


6 . 输入字符 1 1 1 : 自动机 A A A 状态下 , 输入 1 1 1 字符 , 自动机转为 B B B 状态 ;

自动机开始 -> 自动机 A A A 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 -> 输入 1 1 1 字符 -> 自动机 B B B 状态 -> 输入 0 0 0 字符 -> 自动机 A A A 状态 -> 输入 1 1 1 字符 -> 自动机 B B B 状态 ;


7 . 自动机 与 接收状态 / 非接收状态 : 字符串 0101 0101 0101 四个字符都输入到了自动机中 , 此时需要判定 计算完毕的时刻 自动机的当前状态是否是 接收状态 , 如果是接收状态 , 说明自动机是可以接收 这个字符串的 , 否则就说明该自动机不接受该字符串 ;


8 . 接收状态 与 非接收状态 判定 : 双圈是接收状态 , 单圈是非接收状态 , 此时自动机的状态是 B B B , 是双圈状态 , 是接收状态 ;


9 . 本自动机示例总结 : 该自动机接收的 01 01 01 字符串中 , 不能存在连续的两个 1 1 1 , 否则该字符串就是不被自动机接收的 ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值