📜  对标准图灵机的修改

📅  最后修改于: 2021-09-27 14:44:21             🧑  作者: Mango

标准图灵机是一种在提供输入时向左或向右移动并且可能覆盖现有符号的机器。

一个标准的 TM 可以被描述为一个 7 元组:

(Q, X, *, f, q0, B, F) 

where
Q is a finite set of states
X is the tape alphabet
* is the input alphabet
f is a transition function; 
   f: Q × X --> Q × X × {Left_shift, Right_shift}.

q0 is the initial state
B is the blank symbol
F is the set of final states 

标准图灵机能够接受某些语言,称为递归可枚举语言。让我们看看是否可以通过进行某种修改来增加图灵机接受的语言数量。

  1. 带有保持选项的图灵机:
    如果不是在看到输入时向左或向右移动,头部也可以停留在一个位置而不移动任何地方,即
    f: Q × X --> Q × X × {Left_shift, Right_shift, Stay}.

    图灵机接受的语言数量仍然保持不变。

  2. 带半无限带的图灵机:
    我们知道图灵机有一个无限输入带,在两个方向(左和右)无限延伸。所以现在如果我们限制它只在一个方向上而不是在两个方向上延伸,即我们使磁带成为半无限的,那么图灵机接受的语言数量也保持不变。
  3. 离线图灵机:
    在标准图灵机中,输入和输出都存在于磁带上,磁头有权在输入上移动并且可以更改或修改输入,如果我们不想修改输入,我们可以单独提供输入文件,该文件是只读的,然后磁头无法对其进行更改。如果图灵机想要修改输入,则需要将输入复制到磁带上,磁头可以进行更改,但输入文件仍然保持不变,因为更改是在磁带中而不是在文件中进行的。通过对图灵机进行这样的修改,图灵机接受的语言数量仍然保持不变。
  4. 跳跃图灵机:
    标准图灵机的头部只能向右或向左移动一步,但在跳跃图灵机的情况下,头部不仅可以向左或向右移动一步,而且可以移动更多一步,即2、3 , 4, 5, 6, … 等等,或者它可以跳到输入磁带右侧或左侧的任何单元格。
    f: Q × X --> Q × X × {Left_shift, Right_shift} x {n}

    n,是我们希望向右或向左移动的步数。但图灵机接受的语言仍然保持不变。

  5. 不可擦除图灵机:
    在标准的图灵机中,输入符号可以变为空白,但如果我们去掉这种将输入符号变为空白的功能,那么这种类型的图灵机被称为非擦除图灵机。我们可以用除空白以外的任何其他符号替换输入。通过进行这种修改,图灵机接受的语言数量仍然保持不变。
  6. 总是写图灵机:
    标准图灵机给了我们自由,在看到输入时,我们可以保持原样而不做任何更改,但在编写图灵机时,无论何时看到输入,我们都必须修改输入,我们不能保持原样。但是这种修改并没有帮助增加图灵机接受的语言数量。

因此,我们看到,尽管对图灵机进行了如此多的修改,它所接受的语言数量仍然保持不变。因此,图灵机是最强大的机器。