图灵机,又称图灵计算、图灵计算机,是由数学家阿兰·麦席森·图灵(1912~1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。
所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。
图灵机的主要作用及功能:
作为研究计算的一般性质的抽象工具,替代人们进行数学运算,并有以下作用:
1、作为语言接受器:被M接受的语育记作L(M),它是Σ中的这样一些字符串的集合,当把这些字符串放在M的带子上,M处于q0状态且M的带头处在最左单元时.这些字符串可以使M进入一个终结状态而停机。给定一个识别语言L的图灵机M,一般假定,当输入被接受时,M为停机,即没有下一动作。然而对于不被接受的字符串,M可能永不停机.被图灵机接受的语官称为递归可枚举语言。递归集合是递归可枚举集合的子类,递归集合总能被对所有输入都能停机的图灵机所接受。
2、作为整数函数计算机:被图灵机计算的函数称为部分递归函数。在某种意义上,部分递归函数类似于递归可枚举语言.因为计算它的图灵机在给定的输入上可能不停机。完全递归函数对应于递归语育.因为它能被总能停机的图灵机计算。
3、作为语言产生器:设M是一个多带图灵机,它用一条带作为输出带,在这条带上,符号一经写出上就不能再改写.输出带的带头也不能左移。假定在输出带上,M写出某个字毋表Σ的一些字符串,并用分隔符分开,则最终打印在输出带上的字符串的集合就称为由M生成的语言,记为G(M),G(M)Σ。如果L是某个图灵机生成的语言,则L是递归可枚举集合,反之亦然。
图灵机产生背景任何科学思想、科学概念的诞生都有它的背景,在背景中往往有很多迷人的故事。关于计算理论可以追溯到1900年,当时著名的大数学家希尔伯特在世纪之交的数学家大会上给国际数学界提出了著名的23个数学问题。其中第十问题是这样的:存在不存在一种有限的、机械的步骤能够判断“丢番图方程”是否存在解?这里就提出来了有限的、机械的证明步骤的问题,用今天的话说就是算法。但在当时,人们还不知道“算法”是什么。实际上,当时数学领域中已经有很多问题都是跟“算法”密切相关的,因而,科学的“算法” 定义呼之欲出。之后到了30年代的时候,终于有两个人分别提出了精确定义算法的方法,一个人是图灵,一个人是丘奇。而其中图灵提出来的图灵机模型直观形象,于是很快得到了大家的普遍接受。
不知道你是否听说过图灵这个名字。可能有些人知道牛顿,知道爱因斯坦,甚至知道冯诺依曼,但不知道图灵。然而图灵的贡献绝对不亚于这些科学大师。图灵最大的贡献就是把算法这样一个基本的、深刻的概念用他的图灵机模型讲清楚了。正是因为图灵奠定的理论基础,人们才有可能发明20世纪以来甚至是人类有史以来最伟大的发明:计算机。因此人们称图灵为:计算机理论之父。
图灵生活的年代经历了第二次世界大战。在二战期间他曾经为英国政府效力成功破译了德国的密码,因而为英国做出了突出贡献。其实也正是因为二战,英国政府才肯掏钱让图灵制造最原始的计算机,当然这种计算机是专门用来破译密码用的,而不是我们现在用的通用计算机。(有一部片子叫《密码迷情》英文名是《enigma 》就是根据图灵当时破译德国密码的故事改编的,大家有兴趣可以去找一找。)
图灵这个人很古怪,只喜欢自己一个人闷头研究,不喜欢与别人交流。并且据说他还是一个同性恋者。要知道在当时的英国,同性恋行为可是大逆不道的。最后,在他事业刚刚达到顶风的时候,他自杀了。为了纪念这个伟大的学者,计算机界设立了最高荣誉奖:ACM 图灵奖。
图灵机的产生一方面奠定了现代数字计算机的基础(要知道后来冯诺依曼就是根据图灵的设想才设计出第一台计算机的)。另一方面,根据图灵机这一基本简洁的概念,我们还可以看到可计算的极限是什么。也就是说实际上计算机的本领从原则上讲是有限制的。请注意,这里说到计算机的极限并不是说它不能吃饭、扫地等硬件方面的极限,而是仅仅就从信息处理这个角度,计算机也仍然存在着极限。这就是图灵机的停机问题。这个问题在图灵看来更加重要,在他当年的论文中,其实他是为了论证图灵停机问题才“捎带手”提出了图灵机模型的。
图灵机基本思想图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:
在纸上写上或擦除某个符号;
把注意力从纸的一个位置移动到另一个位置;
而在每个阶段,人要决定下一步的动作,依赖于此人当前所关注的纸上某个位置的符号和此人当前思维的状态。
为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:
1.一条无限长的纸带 TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号 表示空白。纸带上的格子从左到右依此被编号为 0,1,2,。.. ,纸带的右端可以无限伸展。
2.一个读写头 HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
3.一套控制规则 TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
4.一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题。
注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。
在某些模型中,读写头沿着固定的纸带移动。要进行的指令(q1)展示在读写头内。在这种模型中“空白”的纸带是全部为 0 的。有阴影的方格,包括读写头扫描到的空白,标记了 1,1,B 的那些方格,和读写头符号,构成了系统状态。(由 Minsky (1967) p.121 绘制)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)