自然语言处理——3.2 有限自动机与正则文法

确定的有限自动机(definite automata, DFA)

1. 定义

确定的有限自动机 是一个五元组:

  • 是输入符号的有穷集合;
  • 是状态的有限集合;
  • 是初始状态;
  • 是终止状态集合,;
  • 是与 的直积 到 (下一个状态) 的映射。它支配着有限状态控制的行为,有时也称为状态转移函数。

2. DFA示意图


处在状态
中的有限控制器从左到右依次从输入带上读入字符。开始时有限控制器处在状态
,并注视
中一个链的最左符号。映射
表示在状态
时,若输入符号为
,则自动机进入状态
并且将输入头向右移动一个字符。

3. 状态转换图

映射可以由状态变换图描述。


为了明确起见,终止状态用双圈表示,起始状态用有“开始”标记的箭头表示。如:

4. DFA 定义的语言

如果一个句子 使得有限自动机 有,那么,称句子 被 接受。
由 定义的语言 就是被 接受的句子的全集。即:

  • 例子:

    链 被 接受。= {含偶数个和偶数个的链}

不确定的有限自动机(non-definite automata, NFA)

1. 定义

不确定的有限自动机 是一个五元组:

  • 是输入符号的有穷集合;
  • 是状态的有限集合;
  • 是初始状态;
  • 是终止状态集合,;
  • 是与 的直积 到的幂集 的映射。

DFA与NFA

1. DFA与NFA的唯一区别

NFADFA 的唯一区别是:在 NFA中 是一个状态集合,而在 DFA 中 是一个状态。

  • 例子

    该自动机为不确定自动机;句子 可以被接受。

1. DFA与NFA的关系

设 是一个被 NFA 所接受的句子的集合,则存在一个 DFA它能够接受 。

正则文法与有限自动机的关系

1. 正则文法 自动机

  • 定理
    若是一个正则文法,则存在一个有限自动机,使得:。

  • 由 构造 的一般步骤:
    (1) 令,其中, 是一个新增加的非终结符。
    (2) 如果在 中有产生式 ,则,否则。
    (3) 如果在 中有产生式, ,,则。
    (4) 如果在 中有产生式, 则
    (5) 对于每一个,有。

1. 自动机 正则文法

  • 定理
    若是一有限自动机,则存在正则文法,使。

  • 由 构造 的一般步骤:
    (1) 令 ;
    (2) 如果,则在 中有产生式;
    (3) 如果,则在中有产生式。

你可能感兴趣的:(自然语言处理——3.2 有限自动机与正则文法)