信息时代所依赖的第二个核心基础是我之前提到过的:计算的通用性。1936年,艾伦·图灵提出“图灵机”(见图8-2),但它并非真实存在,仅仅是一种思想实验。他假设计算机包含无限长的记忆磁带,每个平方上有一个1或0。输入呈现在记忆磁带上,机器每次可以读取一格。这台机器还包含一个规则表(核心是一个记忆程序),是由数字编码的各种状态组成的。如果被读出的平方上的数字为0,就指定一个行动,如果为1则指定另一个行动。可能的行动包括在记忆磁带上写0或1,将记忆磁带向右或向左移动一格,或者停止。每条状态都会指定机器应该读取的下一条状态的数字。

图灵机的输入呈现在记忆磁带上。程序不断运行,当机器停止工作时,它已完成了算法,并且将过程输出在记忆磁带上。注意,虽然磁带的长度在理论上是无限的,但实际的程序如果不进入无限循环的话只会用掉有限长的磁带,所以假如我们只去看那部分有限的磁带,就可以解决一类有用的问题。

图8-2无限的记忆磁带

注:图灵机的框图,带一个能读写磁带的前端,还有一个由状态转换组成的内置程序。

如果你认为图灵机听上去很简单,那是因为这正是发明者的目的所在,图灵希望他的机器尽可能简单。图灵和他之前的老师阿隆佐·邱奇教授(Alonzo Church)接着开发了邱奇-图灵论,称如果一个问题无法利用图灵机解决,那根据自然定律,任何其他机器也解决不了。尽管图灵机只有少数命令,并且每次只能处理1比特,但它能完成任何其他计算机都能完成的计算。换一种说法就是“图灵完全”(即拥有与图灵机同等能力)的机器能够完成任何算法,即任何我们能定义的程序。

相关文章