自动机中的转移表
转换表:
转移函数(∂) 是将 Q * ∑ 映射到 Q 的函数。这里'Q'是一组状态,'∑'是字母的输入。为了显示这个转换函数,我们使用称为转换表的表。该表采用状态和符号两个值,并返回下一个状态。
转换表提供了以下信息 -
- 行代表不同的状态。
- 列代表输入符号。
- 条目代表不同的下一个状态。
- 最终状态由星形或双圆表示。
- 开始状态总是用一个小箭头表示。
示例 1——
此示例显示 NFA(非确定性有限自动机)的转移表。
上表说明——
- 第一列表示所有当前状态,接下来分别表示输入 0 和 1。
- 当前状态为 q0 时,对于输入 0,下一个状态将变为 q0。对于输入 1,下一个状态是 q1。
- 当前状态为 q1 时,对于输入 0,下一个状态是 q1 或 q2,对于 1 输入,下一个状态是 q2。
- 当输入 0 的当前状态为 q2 时,下一个状态将变为 q1,而对于 1 输入,下一个状态将变为 Nil。
- q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。
示例 2——
这个例子显示了 DFA(确定性有限自动机)的转移表。
上表说明——
- 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
- 当当前状态为 q0 时,对于输入 0,下一个状态将变为 q1,对于输入为 1,下一个状态将变为 q1。
- 当前状态为 q1 时,对于输入 0,下一个状态将变为 q1,而在 1 输入上,下一个状态为 q1。
- q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。
示例 3 –
此示例显示 DFA(确定性有限自动机)的转移表
上表说明——
- 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
- 当当前/当前状态为 q0 时,对于输入 0,下一个状态将变为 q0,对于输入 1,下一个状态将变为 q1。
- 当前状态为 q1 时,在输入 0 上,下一个状态将变为 q2,对于 1 输入,下一个状态为 q1。
- 当输入 0 的当前状态为 q2 时,下一个状态将变为 q0,而输入 1 的下一个状态为 q1。
- q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。
示例 4 –
此示例显示 NFA(非确定性有限自动机)的转移表。
上表说明——
- 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
- 当前状态为 q0 时,对于输入 0,下一个状态将变为 q0 或 q1,而对于输入 1,下一个状态为 q0 或 q2。
- 当前状态为 q1 时,输入 0 的下一个状态将变为 q3,输入 1 的下一个状态为 Nil,因为输入 1 没有状态。
- 当输入 0 的当前状态为 q2 时,下一个状态将变为 nil,因为输入 0 没有状态,而对于 1 输入,下一个状态将变为 q3。
- 当输入 0 的当前状态为 q3 时,下一个状态将变为 nil,因为输入 0 没有状态,而对于 1 输入,下一个状态也将变为 nil,因为输入 1 没有状态。
- q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。
注意 –在 DFA 和 NFA 中都可以有多个最终状态,但初始状态是唯一的。