📜  图灵机作为比较器

📅  最后修改于: 2021-09-27 15:10:04             🧑  作者: Mango

先决条件——图灵机
问题:画一个比较两个数字的图灵机。使用一元格式来表示数字。例如,4 表示为

4 = 1 1 1 1  or 0 0 0 0 

让我们用一个来表示。

例子:

方法:

  1. 通过比较“1”的数量来比较两个数字。
  2. 通过将它们标记为“X”来比较“1”。
  3. 如果“0”的左边还剩下“1”,则第一个数字更大。
  4. 如果“0”的右侧还剩下“1”,则第二个数字更大。
  5. 如果两个“1”都完成,则两个数字相等。

脚步:

  • Step-1:将 1 转换为 X 并向右移动并转到第 2 步。如果符号为 0,则忽略它并向右移动并转到第 6 步。
  • 步骤 2:继续忽略 1 并向右移动。忽略 0 向右移动并转到第 3 步。
  • 第 3 步:继续忽略 X 并向右移动。忽略 1 向左移动并转到第 4 步。如果找到 B 忽略它并向左移动并转到第 9 步。
  • 第 4 步:继续忽略 X 并向左移动。忽略 0 向左移动并转到第 5 步。
  • 第 5 步:继续忽略 1 并向左移动。忽略 X 向右移动并转到第 1 步。
  • 第 6 步:继续忽略 X 并向右移动。如果找到 B 忽略它并向左移动并转到第 8 步。如果找到 1 忽略它并向右移动并转到第 7 步。
  • 步骤 7:停止机器(A < B)
  • 步骤 8:停止机器(A > B)
  • 步骤 9:停止机器(A = B)

状态转移图:

  • A < B 的比较器

  • A = B 的比较器

  • A > B 的比较器

  • A < B、A = B、A > B 的通用比较器

这里, Q0表示初始状态, Q2、Q3、Q4、Q5表示过渡状态, (A < B)、(A = B) 和 (A > B)表示最终状态。 0、1是使用的变量,R、L表示左右。

解释:

  • 使用 Q0,当找到 1 时,将其设为 X 并转到左侧并进入状态 Q1。如果找到 0,则向右移动到 Q5 状态。
  • 在状态 Q1 上,忽略所有 1 并向右移动。如果找到 0,则忽略它并向右进入下一个状态 Q2。
  • 在 Q2 中,忽略所有 X 并向右移动。如果找到 B,则停止执行,您将进入显示 A > B 的状态,如果找到 1,则使其 X 向左移动并进入 Q3。
  • 在 Q3 状态下,忽略所有 X 并向左移动。如果找到 0,则忽略它向左移动到 Q4。
  • 在 Q4 中,忽略所有 1 并向左移动。如果找到 X,则忽略它向右移动。
  • 在 Q5 状态下,忽略所有 X 并向右移动。如果发现 1 忽略它向右移动并停止机器,则结果 A < B。如果 B 发现向左移动停止机器,则结果为 A = 乙