“计算”这个概念虽然易于识别,却难以定义。有一种说法认为,计算就是计算机所做的工作。但是,人类也可以进行计算的工作(事实上,图灵提到的“电脑”指的是人,而不是机器),并且计算机所做的也并不都是计算工作(如发送电子邮件和打印文件)。
当某人做减法时,比如从千位上减1、百位上加10,我们认为这是一种计算。但当我们看到一辆汽车撞翻了一张桌子时,我们却并不认为这是计算。
大致来讲,当过程中涉及步骤或序列,且该步骤或序列被限制在一定范围内时,我们就认定其为计算。两个数字间的减法是逐列进行的;列数越多,计算过程便越长。我们不妨将汽车撞翻桌子时的能量转移想象成一个整体的变化。我们无须考虑桌子最远端对于汽车碰撞的瞬间反应,这毕竟要取决于桌子的大小。
(但这只是大体上正确。我们不难想到,现代计算机能够同时处理大量的数据计算。我们能够对物理过程进行电脑模拟计算,以确定汽车撞翻桌子的瞬间动能是如何转化和分解的,然后再重新集合在一起。)其实,我们不必纠结于如何给“计算”下定义,只需要选取一个实例,建立一个具体的模型,分析其属性,然后再决定该定义是否完善就可以了。这样做更有实际意义。
这正是图灵所要做的。他想证明:有的数字可以精确计算,但是计算的过程不单涉及机械化计算。这与有些数学家的想法截然相反。为了证明该想法,他需要清楚地了解机械化地计算数字有何意义。这也是他当时提出“图灵机”的初衷。
在图灵的叙述中,我们了解到:在数字函数中,只有一部分函数是使用数字符号进行本地化操作的结果。
他的想法如下:为了简单起见,我们设想一个正整数,用二进制写法记于磁带上。我们将此作为输入量。图灵机正常运转,它可以随时读取二进制数据,也可用其他数据覆盖原内容。磁带头的转动、数据读写等一切行为,都是由事先设置好的机器程序决定的。如果图灵机停止运转,磁带上的最后一串二进制数字即为输出量。如果图灵机能够将二进制数字x作为输入量,且输出量为二进制函数F(x),那么从数字到数字的函数F就被称为“图灵机可计算的函数”。
有一点从一开始就很明确,在定义图灵机的过程中,二进制数字是随机选择的。我们设想该机器所使用的符号都选自有限的字母表,但实际上,我们讨论的是从一串符号(输入量)到另一串符号(输出量)的映射,二进制数字计算不过是一个有用的特例而已。
既然我们想证明计算与数字没有必然联系,那么上述想法很有意义。即便图灵机中出现的符号确实有象征意义,它本身也无法猜测符号代表的含义。(许多人更愿意相信,只有当我们意有所指时,才会用到“符号”一词。符号总是有象征意义的。也许在此我们应该使用一个比较中性的词语——“字符”。不过意思并没有变。“符号”一词的应用范围越广,我们在这里所做的讨论就越有意义。)
尽管只包含两个符号的字母表在机械术语中很受欢迎,但是此处它并不是一个必要条件。我们可以以一些物理特征为例,比如:灯或明或暗,开关或开或关,电压或高或低。我们也没有必要限制符号必须按照线性排列。我们书写数字时会按照数位大小的顺序,但是方程式系统可能会按照二维数组排列符号。当然,二维的符号结构还有许多其他形式。
例如,数字图像是由像素组成的二维符号阵列。其中,每个像素均代表图像在二维图格中的一部分。简单地讲,每一个像素就是一位,代表该处图像的明暗,如图8–1左侧所示的数字“7”的图像(0显示为空白,1显示为@)。这种同一场景下的粗糙图像与真实图像的唯一区别就是像素位数的多少:高分辨率图像中使用的像素位数更多(如图8–1中所示的另外两个图像),能够更好地呈现原图的明暗与色彩。(一张高分辨率图像可能包含数百万位像素。)
图8–1 同一简单图像在3种分辨率下的表现
数字视频的原理也类似,它是由三维像素阵列组成的。其中,第三维度指的是时间。在这种情况下,一位像素代表了在某个时间间隔(时间被划分为一维网格的形式)的二维网格。
所有这些符号最终都可以被编码为线性序列,并由图灵机进行处理。比如,数字的二维数组可以逐行列于磁带上,此时每个数字所在的位置就是一位。处理这种二维数组对于图灵机来说,并不是难事。
我们不禁要问:为何理论家们对图灵机的兴趣经久不衰?难道现代化计算机始终没有超越那个仅有一个活动头脑的机器的视野?答案很简单:迄今为止,我们发明的每一种数字计算机都可以算作是图灵机的一个分支。无论这台机器能做什么,图灵机都能够做到这一点。或者更为准确地说,现代计算机有关字符串的任何功能,图灵机也都能完成相应的计算。大多数科学家认为,不管我们以后研制出什么样的计算机,都会是同样的情形。(至于如“模拟计算机”和“量子计算机”等其他计算设备则不能完全算是图灵机的分支。模拟计算机由于在计算的准确性上未能突破局限,所以难以广泛投入使用;量子计算机则可视为图灵机的一个分支,在处理某些特定任务时派上用场。)
总而言之,我们在此所讨论的符号并不是用来通信交流的。它们充当的是我们计算的核心。没有符号,便没有数字计算。符号也许代表某个数字,也许代表某个事物。如果符号真的代表了什么,那么它们的意义取决于符号之间的位置排列。
[1] 本书中提到的各年级所学课程都指美国范围内。——编者注