自然语言处理——3.2 有限自动机与正则文法
2018-10-02 本文已影响141人
SpareNoEfforts
确定的有限自动机(definite automata, DFA)
1. 定义
确定的有限自动机 是一个五元组:
- 是输入符号的有穷集合;
- 是状态的有限集合;
- 是初始状态;
- 是终止状态集合,;
- 是与 的直积 到 (下一个状态) 的映射。它支配着有限状态控制的行为,有时也称为状态转移函数。
2. DFA示意图
处在状态
为了明确起见,终止状态用双圈表示,起始状态用有“开始”标记的箭头表示。如:
4. DFA 定义的语言
如果一个句子 使得有限自动机 有,那么,称句子 被 接受。
由 定义的语言 就是被 接受的句子的全集。即:
-
例子:
链 被 接受。= {含偶数个和偶数个的链}
不确定的有限自动机(non-definite automata, NFA)
1. 定义
不确定的有限自动机 是一个五元组:
- 是输入符号的有穷集合;
- 是状态的有限集合;
- 是初始状态;
- 是终止状态集合,;
- 是与 的直积 到的幂集 的映射。
DFA与NFA
1. DFA与NFA的唯一区别
NFA 与 DFA 的唯一区别是:在 NFA中 是一个状态集合,而在 DFA 中 是一个状态。
- 例子
该自动机为不确定自动机;句子 可以被接受。
1. DFA与NFA的关系
设 是一个被 NFA 所接受的句子的集合,则存在一个 DFA它能够接受 。
正则文法与有限自动机的关系
1. 正则文法 自动机
-
定理
若是一个正则文法,则存在一个有限自动机,使得:。 -
由 构造 的一般步骤:
(1) 令,其中, 是一个新增加的非终结符。
(2) 如果在 中有产生式 ,则,否则。
(3) 如果在 中有产生式, ,,则。
(4) 如果在 中有产生式, 则
(5) 对于每一个,有。
1. 自动机 正则文法
-
定理
若是一有限自动机,则存在正则文法,使。 -
由 构造 的一般步骤:
(1) 令 ;
(2) 如果,则在 中有产生式;
(3) 如果,则在中有产生式。