第三章 右线性文法和有限自动机
右线性文法和有限自动机
有限状态系统的概念
状态:状态是可以将事物区分开的一种标识
离散状态系统:状态数有限,不能连续变化
连续状态系统:状态可以连续变化,状态数无限
有限状态系统必然是离散状态系统
有限自动机的概念
- 具有离散输入输出的系统的一种数学模型(可以没有输入和输出)
- 有限的状态
- 状态 + 输入 -> 状态转移
- 确定有限状态自动机(DFA):在特定输入下,每次转换的后继状态唯一
- 不确定有限状态自动机(NFA):在特定输入下,每次转换的后继状态不唯一
有限自动机的五要素
- 有限状态集
- 有限输入符号集
- 转移函数
- 开始状态
- 终态集合
确定有限自动机
DFA 的形式定义
DFA 是一个五元组
- Q:有限的状态集合
- T:有限的输入字母表
:转换函数 :初始状态 :终止状态集
扩展转移函数适合于输入字符串
对于
- w 是字符串,a是字符,
DFA 接受的语言
- DFA 接受的字符串:输入结束后使 DFA 到达终止状态的字符串
- DFA 接受的语言:被 DFA 接受的字符串的集合
格局:描述有限自动机某一个时刻的工作状态
- 由当前状态 q 和待输入字符串 w 构成
- 初始格局:
- 终止格局:
不确定有限自动机
NFA 的形式定义:后继状态是 Q 的子集,其余和 DFA 一样
NFA 接受的字符串:接收一个字符串后 NFA 进入的状态集包含一个或以上的终止状态,则 NFA 接受该字符串
NFA 的状态转移函数扩展
空串状态不变- 含义:
对应的状态集合是 对应的状态集合的每一个状态再接收字符 a 后到达的状态集合的并集
- 含义:
NFA 接受的语言:
NFA 和 DFA 的等价性
显然,DFA 可以看作是 NFA 的特例(状态子集只含有一个状态)
所以只需证明 NFA 可以转化成 DFA
定理:
证明:子集构造法
有 转换的 NFA
定义:当输入
定义:一个状态 q 的
一个状态集 I 的
Ia 的概念:
对于状态子集
空串状态转移成空闭包- 含义:
对应的状态集合是 对应的状态集合的每一个状态再接收包含空转换的字符 a 后到达的状态集合的并集的 闭包
- 含义:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!