“泵引理是由有限状态与鸽巢原理导出的非正则性工具。它常用于说明计数匹配、复制和长距离相等等需求超出正则语言。”
共同骨架 ​
有限状态自动机由有限状态集
就能同时容纳确定与非确定版本。对字
若存在一条运行终止于
直觉 ​
读到输入前缀后,自动机不会保留整段历史,只把后续判断仍需知道的信息压缩成当前状态。状态集有限,意味着这种摘要的种类不随输入长度增长:它能记住奇偶性、长度模数、有限后缀或协议阶段,却不能精确保留一个任意大的计数。
把本页理解成一张有限的带标号控制图,比把它预先等同于 DFA 更稳妥。确定性规定每一步只有一条路,非确定性允许同时保留多条候选路径;“有限状态”本身只约束记忆容量,并不替其中任何一种运行语义作选择。
例子与边界 ​
要识别二进制字中 1 的个数是否为偶数,只需“偶”和“奇”两个状态。每读到 0 留在原状态,每读到 1 切换状态,初态与接受态都是“偶”。这里转移恰好唯一,所以它是一台 DFA,也自然属于本页描述的有限状态模型。
模式匹配常更适合先画成 NFA:在读到可能的模式起点时分出一条候选路径,只要某条路径完整匹配便接受。两种表示都不能获得无界存储;语言
“有限状态机”在工程里还可指没有接受集合的控制器,或带输出的 Moore、Mealy transducer。本页讨论的是读取有限字并以终态判断接受的 automaton。若输入是无限字,则需要 Büchi 等
推论与应用 ​
DFA 与 NFA 识别同一类正则语言,但表示大小可能相差指数级;具体的子集构造见DFA–NFA 等价定理。正则表达式、词法分析器、有限协议监控和硬件控制器都可落到有限状态图上,随后再根据执行需求选择确定化、按位并行模拟或保持非确定表示。
有限状态控制也可作为更强模型的离散外壳:下推自动机在其上增加栈,时间自动机增加实值时钟。共同骨架帮助比较模型,但不能把这些扩展的额外存储重新算作“有限状态”。
参考资料
- 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., Chapters 1–2.