有限自动机介绍
有限自动机(FA)是最简单的模式识别机器。有限自动机或有限状态机是具有五个元素或元组的抽象机器。它有一组状态和从一个状态移动到另一个状态的规则,但这取决于应用的输入符号。基本上,它是数字计算机的抽象模型。下图显示了一般自动化的一些基本特征。
上图展示了自动机的以下特性:
- 输入
- 输出
- 自动机的状态
- 状态关系
- 输出关系
有限自动机由以下部分组成:
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 结尾的字符串。
需要注意的重要一点是,一个模式可能有许多可能的 DFA 。通常首选状态数最少的 DFA。
2)非确定性有限自动机(NFA)
NFA 类似于 DFA,除了以下附加功能:
- 允许空(或ε)移动,即它可以在不读取符号的情况下向前移动。
- 能够为特定输入传输到任意数量的状态。
但是,上述这些特性并没有为 NFA 增加任何功能。如果我们在功率方面比较两者,两者都是等价的。
由于以上的附加特性,NFA 具有不同的转换函数,其余与 DFA 相同。
δ: Transition Function
δ: Q X (Σ U ε ) --> 2 ^ Q.
正如您在转换函数中看到的,对于包括 null(或 ε)在内的任何输入,NFA 可以转到任何状态数的状态。
例如,下面是针对上述问题的 NFA。
需要注意的重要一点是,在 NFA 中,如果输入字符串的任何路径导致最终状态,则输入字符串被接受。例如,在上面的 NFA 中,输入字符串“00”有多个路径。由于其中一条路径通向最终状态,因此上述 NFA 接受“00”。
一些要点:
- 理由:
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 。
- NFA 和 DFA 具有相同的功率,并且每个 NFA 都可以转换为 DFA。
- 在 DFA 和 NFA 中都可以有多个最终状态。
- NFA更像是一个理论概念。
- DFA 用于编译器中的词法分析。
请参阅正则表达式和有限自动机测验。