下面的有限机器识别包含重复模式的字符串。
机器接受包含1个或多个子字符串011重复的任何字符串。为了使机器能够接受包含一个以上重复模式的输入,机器使用了一种称为epsilon转换的特殊类型的转换。
跃迁使机器不确定。当一台机器进入一种状态,它有一个跃迁,机器可以决定是否留在那个状态,等待下一个输入符号,或者它可以立即进行跃迁,进入一个新的状态。
一个不确定的有限自动机,或NFA,接受它的输入,如果有一些路径通过机器驱动的输入,导致机器使其接受状态。
下面的机器接受包含子字符串101或子字符串010的任何输入字符串。
机器使用来自状态1的两个epsilon跃迁来猜测模式101或模式010何时开始。如果机器猜对了,并且能够进入最终状态,机器就会接受输入。
这是另一台机器,它接受与前一台机器相同的输入语言。
这台机器的特点是模糊过渡。如果一个转换来自一个由相同输入符号驱动的状态,那么它就是不明确的。当机器进入一种模糊状态时,它可以猜测从该状态中采取哪一种转换。如果机器猜对了,并且能够进入最终状态,机器就接受输入。
NFA是一个有限的机器,它包括ε跃迁和/或模糊跃迁。
一个不确定性有限自动机是一个元组{Q, Σ, δ, q0, F},其中
q中状态q的闭包E(q)是集合{q}与从q出发通过一个或多个ε跃迁可以到达的赢博体育状态的集合的并集。
如果R是来自Q的态的集合,闭包E(R)被定义为R中赢博体育态的闭包的并集。
如何将NFA转换为DFA:
DFA的接受状态集合F定义为包含NFA的至少一个最终状态的赢博体育状态的集合。
将下面描述的NFA转换为DFA。
步骤1:为状态集的每个可能子集创建一个状态。如果子集中至少有一个状态是最终状态,则将状态标记为最终状态。
步骤2:添加过渡。