📜  非确定性有限自动机

📅  最后修改于: 2020-11-26 10:06:54             🧑  作者: Mango


在NDFA中,对于特定的输入符号,机器可以移动到机器中状态的任意组合。换句话说,无法确定机器移动到的确切状态。因此,它被称为非确定性自动机。由于它具有有限数量的状态,因此该机器称为“不确定性有限机器”或“不确定性有限自动机”

NDFA的正式定义

NDFA可以由5元组(Q,∑,δ,q 0和F)表示,其中-

  • Q是一组有限的状态。

  • Σ是一组有限的符号,称为字母。

  • δ是转移函数,其中δ:Q×∑→2 Q

    (这里采用了Q(2 Q )的幂集,因为在NDFA的情况下,从一个状态可能会过渡到Q个状态的任意组合)

  • Q 0是从那里的任何输入被处理(Q 0∈Q)的初始状态。

  • F是Q的一组最终状态(F⊆Q)。

NDFA的图形表示形式:(与DFA相同)

NDFA由称为状态图的有向图表示。

  • 顶点表示状态。
  • 标有输入字母的弧表示过渡。
  • 初始状态由空的单个传入弧表示。
  • 最终状态由双圆圈表示。

令一个不确定的有限自动机为→

  • Q = {a,b,c}
  • ∑ = {0,1}
  • q 0 = {a}
  • F = {c}

过渡函数δ如下所示-

Present State Next State for Input 0 Next State for Input 1
a a, b b
b c a, c
c b, c c

其图形表示如下-

NDFA图形表示

DFA与NDFA

下表列出了DFA和NDFA之间的区别。

DFA NDFA
The transition from a state is to a single particular next state for each input symbol. Hence it is called deterministic. The transition from a state can be to multiple next states for each input symbol. Hence it is called non-deterministic.
Empty string transitions are not seen in DFA. NDFA permits empty string transitions.
Backtracking is allowed in DFA In NDFA, backtracking is not always possible.
Requires more space. Requires less space.
A string is accepted by a DFA, if it transits to a final state. A string is accepted by a NDFA, if at least one of all possible transitions ends in a final state.

受体,分类器和换能器

受体(识别器)

计算布尔函数的自动机称为接受器。接受者的所有状态都在接受或拒绝提供给它的输入。

分类器

分类器具有两个以上的最终状态,并且在终止时给出单个输出。

传感器

根据当前输入和/或先前状态产生输出的自动机称为换能器。传感器可以有两种类型-

  • Mealy Machine-输出取决于当前状态和当前输入。

  • Moore Machine-输出仅取决于当前状态。

DFA和NDFA的可接受性

的字符串由DFA / NDFA接受当且仅当DFA / NDFA开始在接受状态完全读取字符串之后的初始状态结束(任何最终状态)。

字符串S被DFA / NDFA(Q,∑,δ,q 0 ,F)接受

δ*(q 0 ,S)∈F

DFA / NDFA接受的语言L

{S | S∈∑ *和δ*(q 0 ,S)∈F}

DFA / NDFA(Q,∑,δ,q 0 ,F)不接受字符串S’

δ*(q 0 ,S’)∉F

DFA / NDFA不接受的语言L’(接受的语言L的补语)为

{S | S∈∑ *和δ*(q 0 ,S)∉F}

让我们考虑图1.3中所示的DFA。从DFA中,可以得出可接受的字符串。

DFA对字符串的可接受性

上述DFA接受的字符串:{0,00,11,010,101,……}

上述DFA不接受的字符串:{1、011、111,……..}