从方程设计图灵机

Turing machine designing from equation

如何设计以下图灵机概念? (有一个 'L' 看起来像 '1')

我的尝试也给出了,但是不正确....

看来您需要一个 TM 来识别这样的字符串:

  • 以 X 的 (L+1) 个实例开始
  • 继续 Y 的 (L) 个实例
  • 以 Z 的 (L+3) 个实例结束
  • 对于 L > 0

我们需要一种策略来确保我们的 TM 可以跟踪每个符号的数量。我们可以想象多磁带解决方案会非常简单:

  1. 使用三个辅助磁带:一个用于计算 X 的实例,一个用于计算 Y 的实例,一个用于计算 Z 的实例
  2. 从左到右扫描输入磁带,验证 X 在 Y 之前,Y 在 Z 之前,并将符号复制到辅助磁带
  3. 重置磁头并从左到右扫描,验证以下内容:
  • 至少有一个Y
  • X正好比Y多一个;也就是说,X 磁带有一个 X 时 你在 Y 磁带上看到第一个空白,当你在 Y 磁带上看到第二个空白时,X 磁带有一个空白
  • Z正好比Y多三个;也就是说,当你看到Y带上的第一、第二和第三个空白时,Z带就有一个Z,当你看到Y带上的第四个空白时,Z带就有一个空白

与其尝试写一个多磁带 TM,不如写一个单磁带 TM:

  1. 划掉 X 和 Y,直到所有 Y 都被划掉,然后验证是否只剩下一个 X
  2. 解开 Y
  3. 把Y和Z划掉,直到把所有的Y都划掉,然后验证剩下三个Z

这是一个过渡 table:

q    t    q'    t'    d      comment
--   ---  --    --    -----  -------
q0   X    q0    X     right  move right to find at least one Y
q0   Y    q1    V     left   then cross it out and start looking for an X

q1   U,V  q1    U,V   left   keep looking for an X to cross off
q1   X    q2    U     right  cross off the X and start looking for more Y

q2   U,V  q2    U,V   right  keep looking for more Y to cross off
q2   Y    q1    V     left   we found another Y, cross off and keep going
q2   Z    q3    Z     left   no more Y, start looking for last X

q3   U,V  q3    U,V   left   keep looking for last X
q3   X    q4    U     left   need to make sure this was the last one

q4   #    q5    #     right  it was the last X, go check V & Z now

q5   U    q5    U     right  skip the crossed off X (now U)
q5   V    q5    Y     right  skip crossed off Y, and uncross back to Y
q5   Z    q6    W     left   cross off a Z and start looking for V

q6   V,W  q6    V,W   left   skip any crossed off Y/Z and look for Y
q6   Y    q7    V     right  cross off Y, go look for more Z
q6   U    q8    U     right  no more Y, ensure three uncrossed Z

q7   V,W  q7    V,W   right  skip any crossed off Y/Z and look for Z
q7   Z    q6    W     left   cross off another Z and start looking for Y

q8   V,W  q8    V,W   right  skip any crossed off Y/Z and look for Z
q8   Z    q9    W     right  found one Z, need two more

q9   Z    qA    W     right  found a second Z, need one more

qA   Z    qB    W     right  found a third Z, need zero more

qB   #    hA    #     left   no more Z, halt-accept