非确定性有限状态机:概念、设计与应用
在自动机理论中,确定性有限状态自动机(DFA)在处理由连接和克林闭包生成的语言时表现出色。然而,当遇到需要处理并集的正则语言时,DFA 就显得力不从心了。这时,非确定性有限状态自动机(NDFA)应运而生。
1. DFA 的局限性
DFA 可以决定由连接和克林闭包生成的语言。例如,一个 DFA 的转移图可能代表语言 (a(ab)^*b)。在 DFA 中,一次转移代表连接一个字母表符号,而循环则代表连接由克林闭包生成的值,循环可以进入 0 次或多次。
但对于包含并集的正则语言,如 (L = ab^ \cup aa^ \cup \epsilon),DFA 就难以处理了。因为 DFA 有转移函数,给定相同的输入,它总是执行相同的计算,无法在未读取输入的情况下任意选择要处理的单词类型。
2. 非确定性有限状态机的引入
为了解决 DFA 的局限性,需要一种新的计算机模型,即非确定性有限状态机。这种机器允许在状态转换时不完全由转移关系决定,当面临选择时,它可以非确定性地选择要使用的转移。
非确定性有限状态机有两个新特点:
- 非确定性机器可以使用一个或多个 (\epsilon) - 转移(如 ((S \epsilon F)))在不消耗输入的情况下改变状态。
- 从给定状态出发,对于给定的字母表元素可能有多个转移,例如 ((S a B)) 和 ((S a A))。
这意味着转移关系不再是一个函数,给定相同的输入,机器可能执行几种不同的计算。例如,处理 ((a b b)) 可能有三种不同的方式:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



