📜  自动机中的转移表

📅  最后修改于: 2022-05-13 02:24:08.013000             🧑  作者: Mango

自动机中的转移表

转换表:
转移函数(∂) 是将 Q * ∑ 映射到 Q 的函数。这里'Q'是一组状态,'∑'是字母的输入。为了显示这个转换函数,我们使用称为转换表的表。该表采用状态和符号两个值,并返回下一个状态。

转换表提供了以下信息 -

  1. 行代表不同的状态。
  2. 列代表输入符号。
  3. 条目代表不同的下一个状态。
  4. 最终状态由星形或双圆表示。
  5. 开始状态总是用一个小箭头表示。

示例 1——
此示例显示 NFA(非确定性有限自动机)的转移表。


上表说明——

  1. 第一列表示所有当前状态,接下来分别表示输入 0 和 1。
  2. 当前状态为 q0 时,对于输入 0,下一个状态将变为 q0。对于输入 1,下一个状态是 q1。
  3. 当前状态为 q1 时,对于输入 0,下一个状态是 q1 或 q2,对于 1 输入,下一个状态是 q2。
  4. 当输入 0 的当前状态为 q2 时,下一个状态将变为 q1,而对于 1 输入,下一个状态将变为 Nil。
  5. q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。

示例 2——
这个例子显示了 DFA(确定性有限自动机)的转移表。


上表说明——

  1. 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
  2. 当当前状态为 q0 时,对于输入 0,下一个状态将变为 q1,对于输入为 1,下一个状态将变为 q1。
  3. 当前状态为 q1 时,对于输入 0,下一个状态将变为 q1,而在 1 输入上,下一个状态为 q1。
  4. q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。

示例 3 –
此示例显示 DFA(确定性有限自动机)的转移表


上表说明——

  1. 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
  2. 当当前/当前状态为 q0 时,对于输入 0,下一个状态将变为 q0,对于输入 1,下一个状态将变为 q1。
  3. 当前状态为 q1 时,在输入 0 上,下一个状态将变为 q2,对于 1 输入,下一个状态为 q1。
  4. 当输入 0 的当前状态为 q2 时,下一个状态将变为 q0,而输入 1 的下一个状态为 q1。
  5. q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。

示例 4 –  
此示例显示 NFA(非确定性有限自动机)的转移表。


上表说明——

  1. 第一列表示所有当前状态,Next 分别表示输入 0 和 1。
  2. 当前状态为 q0 时,对于输入 0,下一个状态将变为 q0 或 q1,而对于输入 1,下一个状态为 q0 或 q2。
  3. 当前状态为 q1 时,输入 0 的下一个状态将变为 q3,输入 1 的下一个状态为 Nil,因为输入 1 没有状态。
  4. 当输入 0 的当前状态为 q2 时,下一个状态将变为 nil,因为输入 0 没有状态,而对于 1 输入,下一个状态将变为 q3。
  5. 当输入 0 的当前状态为 q3 时,下一个状态将变为 nil,因为输入 0 没有状态,而对于 1 输入,下一个状态也将变为 nil,因为输入 1 没有状态。
  6. q0 上的小直箭头表示它是开始状态,q3 上的圆圈表示它是最终状态。

注意 –在 DFA 和 NFA 中都可以有多个最终状态,但初始状态是唯一的。