跳到主要内容

非确定性有限自动机

阐述

形式定义

五元组 (Q,Σ,δ,q0,F)(Q,\Sigma,\delta,q_0,F),其中

  • QQ 是有限状态集
  • Σ\Sigma 是有限字母表
  • δ:Q×ΣεP(Q)\delta:Q\times\Sigma_\varepsilon\to P(Q) 是转换函数
  • q0Qq_0\in Q 是起始状态
  • FQF\subseteq Q 是接受状态集

称非确定性有限自动机识别字符串 w=y1ymw=y_1\cdots y_m,如果存在 r0,,rmQr_0,\cdots,r_m\in Q 使得

  1. r0=q0r_0=q_0
  2. ri+1δ(ri,yi+1)r_{i+1}\in\delta(r_i,y_{i+1})
  3. rmFr_m\in F

阐释

有限自动机的两个核心区别:

  • 一个状态对于一个字符可以有零、一或多个出箭头
  • 一个状态可以有零、一或多个出箭头上写着 ε\varepsilon

它运转的逻辑:

  • 每次遇到多种选择,它分叉为多个自己的拷贝并且并行完成剩余的计算
  • 每次遇到一个带有出箭头 ε\varepsilon 的状态,它分叉为多个自己的拷贝,其中一个停在原地,其余跟随出箭头到达下一个状态
  • 如果对当前字符没有任何出箭头,则认为该分支终止
  • 如果有任何分支接受了字符串,则认为机器接受了字符串

实例

性质

相关内容

DFA 和 NFA 的等价性

对于 NFA N=(Q,Σ,δ,q0,F)N=(Q,\Sigma,\delta,q_0,F),构造 M=(Q,Σ,δ,q0,F)M=(Q',\Sigma,\delta,q_0',F')

  • Q=P(Q)Q'=P(Q)
  • δ(R,a)=rRE(δ(r,a))\delta'(R,a)=\cup_{r\in R}E(\delta(r,a))
  • q0=E({q0})q_0'=E(\{q_0\})
  • F={RQRF}F'=\{R\in Q'|R\cap F\ne\emptyset\}

其中 E(R)E(R) 是从 RR 出发仅经过 ε\varepsilon 就可以达到的状态。

参考文献