📅  最后修改于: 2020-11-26 10:06:54             🧑  作者: Mango
在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由称为状态图的有向图表示。
例
令一个不确定的有限自动机为→
过渡函数δ如下所示-
Present State | Next State for Input 0 | Next State for Input 1 |
---|---|---|
a | a, b | b |
b | c | a, c |
c | b, c | c |
其图形表示如下-
下表列出了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开始在接受状态完全读取字符串之后的初始状态结束(任何最终状态)。
字符串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接受的字符串:{0,00,11,010,101,……}
上述DFA不接受的字符串:{1、011、111,……..}