图灵机 Turing machine 英国图灵为讨论可计算性而设想的一种理想的计算机。一个用数学方法精确地加以定义,使能反映计算程序的抽象系统。是给出定义递归性的一种方式。尽管它不是实际上在使用中的计算机,但遵循“理想的”图灵机的程序的真正的机器也的确可以制造出来。它能完成任何一种通用的大型计算机所能完成的工作。图灵机的结构很简单(见图)。它可以看成一只“暗箱”,上面有 .JPG)
一个窗口,用来显示其内部状态。每个图灵机仅有有限个可能的内部状态{q0,q1,…,qm}。图灵机的工作场所是一条线性的纸带,它可按实际需要向两边无限地延伸。机器上有一个读头,在每个瞬间注视着线性纸带上的一个方格,纸带上每个方格内的可能有的符号(称为纸带符号)仅为有限个,除此以外都为空白。这些符号的全体(包括空白,常用B或S0表示),称为图灵机的字母表{S0,S1,…,Sn}。机器的读头可识别被注视着的方格内的符号。图灵机所能完成的工作类型有下列几种:(1)抹去正被注视的方格上的符号,再印上一个事先指定的符号(包括空白);(2)把读头沿纸带向左移一个方格,或把纸带向右移一个方格,而保持读头不动;(3)把读头沿纸带向右移一个方格,或把纸带向左移一个方格,而保持读头不动。支配图灵机工作的是一个由一组(有限条)指令组成的程序。每个指令是呈下形的一个四重组(即四元矢),其中第一部分是当前的内部状态,第二部分是正被注视的方格上的符号,第三部分是机器要执行的动作,第四部分是下一步的内部状态:qiSjFqs。其中机器要执行的动作F或为某SK,或为R,或为L,它们分别表示机器所能完成的三种动作。具体地说,四元组qiSjFqs给予机器以这样的信息:若机器当前的内部状态为qi,正被读头注视的方格上是符号Sj,则机器执行这样的动作然后转入内部状态qs:当F为SK时,机器抹去被注视方格上的符号Sj,印上SK(纸带上的其他符号不变),读头位置不变,当F为R时,读头向右移一格,但不改变纸带上的符号;而F为L时,读头向左移一格,但不改变纸带上的符号。令程序T为四重组的有限集,为了使得机器在每个瞬间至多只能执行一条指令,因而规定T中不存在两个或两个以上的具有相同的头两个符号的四重组。作这种规定的程序称为相容的程序。因此图灵机涉及的程序都是相容的程序。若存在这样的四重组,例如qiSjFqs,则机器执行以F标志的动作,并转入内部状态qs,进入下一个瞬间;若没有这样的四重组,则机器停止工作,即停机,而留在纸带上的最后信息作为输出信息。因此,给定了一个相容的程序,就完全决定了某个图灵机的特性,亦即一个图灵机就是一个相容程序。 |