“在DFA工作流中,常先从表达式得到 NFA、确定化,再删除不可达状态并最小化;状态复杂度研究则用可区分后缀证明任何 DFA 的下界。”
形式陈述 ​
在有限状态自动机的共同骨架上,确定性有限自动机(DFA)把转移限定为总函数。它是五元组
其中
自动机识别的语言为
直觉 ​
DFA 从左到右只读输入一次,过去的全部信息被压缩进当前有限状态。状态不是“刚读到哪个字符”,而是未来判断仍需知道的历史摘要;对奇偶语言,摘要只需一个比特。有限状态意味着记忆容量不随输入增长,因此它能记模计数、有限后缀和有限协议阶段,却不能精确保存任意大的计数。转移函数是确定且总的,每读一个符号都恰有一个下一状态。
例子与边界 ​
识别二进制串中 1 个数为偶数的 DFA 只需状态 0 保持状态,读 1 在二者间切换,初态和唯一接受态为 1011 依次经历
边界语言 0 的精确数量,再与 1 比较;任何固定有限状态集最终都会混淆两个不同计数。自动机状态数可以很大,但只要与输入长度无关,仍无法提供无界记忆。
推论与应用 ​
DFA 恰好识别正则语言,并与 NFA、正则表达式在表达能力上等价。自动机最小化把状态压缩为不同未来行为的等价类。
词法分析、网络协议监控、硬件控制器和字符串扫描广泛使用有限状态机;状态积构造还可组合多个监视条件。运行时验证可以让有限自动机消费已观测事件并报告有限前缀是否匹配。
若对象是无限运行,则需Büchi 自动机等
参考资料
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Chapter 1.
- John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Chapter 2.