📜  有限自动机介绍

📅  最后修改于: 2022-05-13 02:24:08.525000             🧑  作者: Mango

有限自动机介绍

有限自动机(FA)是最简单的模式识别机器。有限自动机或有限状态机是具有五个元素或元组的抽象机器。它有一组状态和从一个状态移动到另一个状态的规则,但这取决于应用的输入符号。基本上,它是数字计算机的抽象模型。下图显示了一般自动化的一些基本特征。

图:有限自动机的特点

上图展示了自动机的以下特性:

  1. 输入
  2. 输出
  3. 自动机的状态
  4. 状态关系
  5. 输出关系

有限自动机由以下部分组成:

Q : Finite set of states.
Σ : set of Input Symbols.
q : Initial state.
F : set of Final States.
δ : Transition Function.

机器的正式规格是

{ Q, Σ, q, F, δ }

FA 分为两种类型:

1) 确定性有限自动机 (DFA)

DFA consists of 5 tuples {Q, Σ, q, F, δ}. 
Q : set of all states.
Σ : set of input symbols. ( Symbols which machine takes as input )
q : Initial state. ( Starting state of a machine )
F : set of final state.
δ : Transition Function, defined as δ : Q X Σ --> Q.

在 DFA 中,对于特定的输入字符,机器只进入一个状态。每个输入符号的每个状态都定义了一个转换函数。同样在 DFA 中,null(或 ε)移动是不允许的,即 DFA 不能在没有任何输入字符的情况下改变状态。

例如,在 Σ = {0, 1} 的 DFA 下面接受所有以 0 结尾的字符串。

DFA1-300x208

图: Σ = {0, 1} 的 DFA

需要注意的重要一点是,一个模式可能有许多可能的 DFA 。通常首选状态数最少的 DFA。

2)非确定性有限自动机(NFA)
NFA 类似于 DFA,除了以下附加功能:

  1. 允许空(或ε)移动,即它可以在不读取符号的情况下向前移动。
  2. 能够为特定输入传输到任意数量的状态。

但是,上述这些特性并没有为 NFA 增加任何功能。如果我们在功率方面比较两者,两者都是等价的。

由于以上的附加特性,NFA 具有不同的转换函数,其余与 DFA 相同。

δ: Transition Function
δ:  Q X (Σ U ε ) --> 2 ^ Q. 

正如您在转换函数中看到的,对于包括 null(或 ε)在内的任何输入,NFA 可以转到任何状态数的状态。
例如,下面是针对上述问题的 NFA。

NFA

NFA

需要注意的重要一点是,在 NFA 中,如果输入字符串的任何路径导致最终状态,则输入字符串接受。例如,在上面的 NFA 中,输入字符串“00”有多个路径。由于其中一条路径通向最终状态,因此上述 NFA 接受“00”。

一些要点:

  • 理由:
由于 DFA 和 NFA 中的所有元组都是相同的,除了其中一个元组是转移函数(δ)
In case of DFA
δ : Q X Σ --> Q
In case of NFA
δ : Q X Σ --> 2Q

现在,如果您观察,您会发现 QX Σ –> Q 是 QX Σ –> 2 Q的一部分。

在 RHS 方面, Q 是 2 Q的子集,表示 Q 包含在 2 Q中或 Q 是 2 Q的一部分,但是,反之则不成立。所以在数学上,我们可以得出结论,每个 DFA 都是 NFA,但反之则不然。然而,有一种方法可以将 NFA 转换为 DFA,因此每个 NFA 都存在一个等效的 DFA

  1. NFA 和 DFA 具有相同的功率,并且每个 NFA 都可以转换为 DFA。
  2. 在 DFA 和 NFA 中都可以有多个最终状态。
  3. NFA更像是一个理论概念。
  4. DFA 用于编译器中的词法分析。

请参阅正则表达式和有限自动机测验。