先动手
先试一次,再理解原理
先输入一个二进制字符串,再单步读取字符,观察自动机为什么会接受或拒绝它。
互动实验
有限自动机实验台
挑一个字符串规则,再让 DFA 和 NFA 一起逐字符扫描。你会看到:机器并不理解“含义”,它只是在有限状态之间按规则跳转。
机器只需要记住结尾附近的模式,就能判断字符串最后是不是 01。
当前规则用正则写成 /01$/。实验里会把同一输入同时交给 DFA 和 NFA,帮助你比较“单一路径”和“多状态并行”的差别。
当输入长度增加时,DFA 始终只保留一个当前状态;而 NFA 会保留一组可能状态。无论内部走法怎样不同,最终接受语言可以是一样的。
尝试切换示例输入,比较自动机是如何逐步锁定答案的。
DFA 当前位置q0展开
每读完一个字符,DFA 都只会落在一个确定状态。
NFA 活跃状态集q0展开
NFA 允许保留多条可能路径,所以会同时追踪一组状态。
当前是否接受尚未读完展开
只有当全部字符读完后,自动机才会依据终止状态给出最终判断。
快速认识
先用一句话知道它是什么
有限自动机是一种只靠当前状态和输入字符,就能完成模式识别的规则机器。
理解主线
再把关键变化顺下来
有限自动机在任何时刻都只处于一个状态。
它每读到一个字符,就根据当前状态和字符跳到下一个状态。
输入结束时如果停在接受状态,字符串就被认为“符合规则”。
核心公式
用模型把关系写清楚
接受条件
从初始状态 q0 开始把字符串 w 全部读完,如果最终落在接受状态集合 F 中,就说明它满足规则。
符号含义
- q0 初始状态
- w 输入字符串
- δ̂ 扩展转移函数,表示整串输入的累计跳转
- F 接受状态集合
适用说明
- 单步规则写成 δ(q, a) = q'。
- 实验里的每一步高亮,都是在构造 δ̂(q0, w) 的过程。
核心概念
把最重要的三个点讲清楚
状态就是“机器目前记住了什么”
自动机不会存整段历史,而是把关键信息浓缩进当前状态。
转移规则决定识别逻辑
同样的输入字符,在不同状态下会导致不同跳转,这就是模式识别的本质。
接受状态给出最终判断
不是每一步都判断合法,而是在输入结束后看机器停在什么状态。
现实应用
这些场景真的会用到它
编译器词法分析
标识符、关键字、数字常量等 token 的识别,经常先被建模成自动机。
输入校验与协议解析
邮箱格式、日志模式、通信协议字段等结构化字符串,常用有限自动机快速判断是否合法。
控制系统状态机
电梯、门禁、流程控制器等系统的状态切换,也常用自动机思维描述。
继续探索