1、1936年,阿兰·图灵提出了一种抽象的计算模型 ── 图灵机 (Turing Machine)。
(相关资料图)
2、图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作: 在纸上写上或擦除某个符号; 把注意力从纸的一个位置移动到另一个位置; 而在每个阶段,人要决定下一步的动作,依赖于 (a) 此人当前所关注的纸上某个位置的符号和(b) 此人当前思维的状态。
3、为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成: 一条无限长的纸带。
4、纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号 表示空白。
5、纸带上的格子从左到右依此被编号为 0, 1, 2, ... ,纸带的右端可以无限伸展。
6、 一个读写头。
7、该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
8、 一个状态寄存器。
9、它用来保存图灵机当前所处的状态。
10、图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。
11、 一套控制规则。
12、它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
13、 注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。
14、图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程 图灵机停机问题(The Halting Problem)的不可判定性 图灵机停机问题: 能否给出一个判断任意一个图灵机是否停机的一般方法? 答案是NO. 这个问题实际上是问: 是否存在一台"万能的"图灵机 H, 把任意一台图灵机 M 输入给 H, 它都能判定 M 最终是否停机, 输出一个明确的 "yes" 或 "no" 的答案? 可以利用反证法来证明这样的 H 不可能存在. 假定存在一个能够判定任意一台图灵机是否停机的万能图灵机 H(M), 如果 M 最终停机, H 输出 "halt"; 如果 M 不停机, H 输出 "loop". 我们把 H 当作子程序, 构造如下程序 P: function P(M) { if (H(M)=="loop") return "halt"; else if (H(M)=="halt") while(true); // loop forever } 因为 P 本身也是一台图灵机, 可以表示为一个字符串, 所以我们可以把 P 输入给它自己, 然后问 P(P) 是否停机. 按照程序 P 的流程, 如果 P 不停机无限循环, 那么它就停机, 输出"halt"; 如果 P 停机, 那么它就无限循环, 不停机; 这样无论如何我们都将得到一个矛盾, 所以假设前提不成立, 即不存在这样的 H. 或者说, 图灵机停机问题是不可判定的(undecidable)。
本文到此分享完毕,希望对大家有所帮助。
Copyright 2015-2022 华东商务网 版权所有 备案号: 京ICP备2022016840号-41 联系邮箱:2 913 236 @qq.com