Skip to content

ε-NFA

Epsilon-NFA · NFA with epsilon transitions

允许不读取输入符号便改变状态的非确定性有限自动机。

形式陈述

ε-NFA 是五元组 N=(Q,Σ,δ,q0,F)Q 是有限状态集,Σ 是有限输入字母表,q0QFQ,并约定空字记号 εΣ;转移函数为

δ:Q×(Σ{ε})P(Q).

标记 ε 的转移不消耗输入。状态集 Sε-闭包 E(S) 是从 S 出发只走零条或多条 ε 边可达的全部状态。读字 w=a1an 时,从 E({q0}) 开始,反复执行

Si=E(qSi1δ(q,ai)),

SnF 则接受。每个 ε-NFA 都可消去 ε 转移得到等价 NFA,也可直接用带闭包的子集构造确定化。

直觉

ε 边允许自动机在读入下一个符号前自由重排控制状态,便于把多个小自动机像电路模块一样拼接。

例子与边界

Thompson 构造用 ε 边实现正则表达式的并、连接和星号。ε 是空字的记号,不是输入字母;走一条 ε 边与读取某个“空字符”不同。闭包必须允许零步,所以 SE(S),并需反复传递直到不再新增状态。允许 ε 转移不会增加可识别语言类,只提高构造便利性;但若遗漏每次读符号后的闭包,确定化会得到错误语言。

推论与应用

ε-NFA 是正则表达式编译、自动机组合和模型检查中的中间表示;将其与不含 ε 边的 NFA 分开,可使每种子集构造的初态和转移公式保持清晰。

参考资料
  • John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, 3rd ed., Pearson, 2006,§2.5, finite automata with epsilon-transitions。
  • Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013,§1.2, nondeterminism and epsilon transitions。