DFA与NFA
有限自动机
有限状态机(Finite State Machine,FSM)是一种数学模型,用于描述一个系统在不同状态下如何响应外部输入,并通过状态转移规则在有限个状态之间切换。它通过简单的逻辑规则建模复杂系统的行为,易于复杂系统的编程实现

NFA 不确定的有穷自动机
某中间状态的两个出边都是同一符号标记,一般用来匹配后缀


虽然匹配完成后的字符顺序符合NFA的状态流程图,但处于中间态时不确定走哪步,需要预先尝试去到达各终态,比较抽象,不符合编程直觉,难编程实现。
好处是NFA等效于正则表达式,简化了复杂的状态流程图。
DFA 确定的有穷自动机
一条出边对应一个符号,对某一时刻的输入,可以确定下一步的转换。

转换表

由 状态 和 输入 确定一个 目的状态集合。元素在表中先后顺序有意义
从 NFA 到 DFA 的转换
每个 NFA 都可以转为 DFA


转换过程使用转换表,从初态开始,根据状态表依次寻找每个出边的目标状态集合。这样,NFA的多边不确定状态变成了确定的单边多状态集合

如何直观理解两图某种程度上等价?
NFA初始态唯一,多个出边是增加自身的可能终态
转换后的DFA初始态不唯一,出边是不断排除可能的终态
识别单词的 DFA






ref 【【编译原理】哈工大公开课(高清版)】 https://www.bilibili.com/video/BV1dL4y1H7T8/?p=17&share_source=copy_web&vd_source=57dbd16b8c7c2ad258cccce5966c5be8
《编译原理 龙书 第二版》

浙公网安备 33010602011771号