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
《编译原理 龙书 第二版》

posted @ 2025-02-26 13:11  丘狸尾  阅读(80)  评论(0)    收藏  举报