|
此页面或部分内容是一个未完成的草稿或大纲。 您可以帮助 完善这项工作,或者您可以在 项目室 中寻求帮助。 |
形式上,一个确定性有限自动机(DFA)是一个 5 元组 其中
- Q 是所有状态的集合。
- 是正在考虑的字母表。
- 是状态转换的集合,每个状态包含字母表中每个元素的唯一一个转换。
- 是唯一的起始状态。
- F 是所有接受状态的集合。
对于 DFA, 可以被视为一个从 的函数。
示例:考虑 DFA ,其状态转换由下表给出
|
a |
b |
p |
q |
p |
q |
p |
q |
很容易验证这个 DFA 接受输入 "aaa"。
类似地,非确定性有限自动机的形式定义是一个 5 元组 其中
- Q 是所有状态的集合。
- 是正在考虑的字母表。
- 是状态转换的集合,包含 转换,并且对于每个状态,任何特定输入可以有多个转换。
- 是唯一的起始状态。
- F 是所有接受状态的集合。
对于 NFA, 可以被视为一个从 的函数,其中 是 的幂集。
注意,对于 NFA 和 DFA 而言, 不是状态集合。相反,它是一个单独的状态,因为两者都只能从一个状态开始。但是,NFA 可以通过添加一个新的起始状态并进行 ε 转换到所有需要的起始状态来实现类似的功能。
DFA 和 NFA 之间的区别在于,DFA 的 delta 转换不允许包含 ε 跳跃(在无输入的情况下进行转换)、同一输入的转换的并集以及字母表中任何元素的无转换。
对于任何非确定有限自动机 ,存在一个确定有限自动机 ,使得