「这些抽象机器也许是最好的证据,证明提出基本问题可能是科学家能够做的最有用的事情之一。」
计算是我们大多数人凭直觉就能理解的一个熟悉概念。我们以函数 f (x) = x + 3 为例,当 x 为 3 时,f (3) = 3 + 3。答案是 6,非常简单。很明显,这个函数是可计算的。但是有些函数并非那么简单,而且要确定它们是否可以计算也非易事,这意味着它们可能永远都无法得出一个最终答案。1928 年,德国数学家大卫・希尔伯特(David Hilbert)和威廉・阿克曼( Wilhelm Ackermann)提出了一个名为 Entscheidungsproblem(即「判定性问题」)的问题。随着时间推移,他们提出的这个问题将引出可计算性的正式定义,这个定义使数学家能够回答大量新问题并为理论计算机科学奠定基础。一位 23 岁名叫艾伦图灵的研究生提出了这个定义,他在 1936 年写了一篇开创性论文,不仅将计算的概念形式化表达了出来,还证明了数学的一个基本问题,为发明电子计算机创造了知识基础。图灵的伟大远见在于以抽象机器的形式为计算问题提供了具体的答案,后来他的博导阿朗佐丘奇将其命名为图灵机。图灵机是抽象的,因为它没有(也不能)作为有形设备物理存在。相反,它是一个计算的概念模型:如果这个机器可以计算一个函数,那么这个函数就是可计算的。当艾伦图灵在 1936 年发明图灵机时,也创造了现代计算。它的工作原理是这样的:图灵机可以按照规则表的规定读取和更改无限长磁带上的符号。磁带是由一个个「单元格」组成,每个单元格只能存储一个符号。图灵机用磁带头读取和重写单元格的内容。规则表中的每条规则都会决定图灵机应该根据它当前的状态和正在读取的符号来做什么。图灵机可以基于它停止的位置来进入最终状态(「接受状态」或「拒绝状态」),决定接受或拒绝输入。或者图灵机陷入无限循环并永不停歇地读取磁带。理解图灵机的最好方法是来思考这样一个简单的例子。让我们想象一下,图灵机被设计用于告诉我们给定的输入是否为数字零。我们将输入带有空白符号 (#) 的数字 0001,也就是说「#0001#」是我们磁带的相关部分。图灵机从初始状态开始,我们称之为 q0,它读取磁带最左边的单元格并找到一个空白区域。按照规则,当处于状态 q0 时,如果符号是 #,则保持原样不变,然后向右移动一个单元格,并将机器状态更改为 q1。在这一步之后,机器处于状态 q1,它的磁头将正在读取第二个符号 0。现在我们寻找适用于这些条件的规则。我们发现这样一个规则,「保持状态 q1 并将磁头向右移动一个单元格。」这使我们处于相同的位置(在状态 q1 中,读数仍为 0),因此我们继续向右移动,直到磁头最终读取到一个不同的数字 1。当我们再次查阅规则表时,我们发现了一条新规则:「如果遇到 1,则转换到 q2,即拒绝状态。」图灵机停止运行,并对最初的问题「0001 是零吗?」回答「否」。相反,如果输入是「#0000#」,图灵机将在所有这些零之后遇到 #。当我们查阅规则表时,我们发现一条规则说这意味着机器进入状态 q3,即一种「接受」状态。现在机器对「‘0000’是零吗?」这一问题的回答则为「是」。图灵使用他的抽象机器建立了一个计算模型,来回答 Entscheidungs 问题,它正式提出:给定一组数学公理,是否存在一个机械过程(即一组指令,今天我们称之为算法)总是可以确定给定的陈述是否为真?假设我们想找到一种算法来告诉我们某个棋局中棋子位置是否可行。在这其中,公理是管理国际象棋合理移动的规则。我们能否按照有限的 step-by-step 流程序列到达该位置?尽管某些棋局可能需要比我们一生更长的时间来分析,一种算法可能会生成所有可能的局面并将其逐个与输入进行比较,此类算法存在于国际象棋游戏之中。因此,我们说国际象棋是「可判定的」。然而,在 1936 年,美国数学家丘奇和图灵使用不同的方法分别证明了「没有通用方法可以解决 Entscheidungs 问题的每个例子。」 例如,约翰康威的生命游戏等一些游戏是不可判定的:没有算法可以确定某一模式是否会从初始模式出现。图灵表明了,如果存在可以执行所需任务的算法,则函数是可计算的。同时,他还表明算法是一个可以用图灵机定义的过程。因此,可计算函数是一种可通过图灵机来计算的函数。这似乎是一种定义可计算性的迂回方式,但却是我们所拥有的最好方式。麻省理工学院理论计算机科学家迈克尔・西普瑟表示:「这并不是说你可以选择用其他方式来定义它。我觉得人们普遍认为,邱奇 - 图灵论题提出的是,算法的非正式概念就是任何合理计算模型可以做到的事情。」其他数学家提出了不同的计算模型,虽然这些模型表面上看起来很不一样,但实际上是相同的:它们可以进行图灵机可以进行的任何计算,反之亦然。就在哲学家、逻辑学家和数学家库尔特・哥德尔证明数学是不完备的几年后,丘奇和图灵也通过这项工作表表明了数学中的某些问题是不可判定的。无论算法多么复杂,都无法告诉我们答案是肯定还是否定。这两件事对希尔伯特来说都是毁灭性的打击,他曾希望数学能给出简洁、理想化的答案。但这倒也不错:如果存在解决 Entscheidungsproblem 问题的一般解决方案,这将意味着数学中的所有问题都可以被简化为简单的机械计算。除了回答这些基本问题之外,图灵机还通过一种称为通用图灵机的变体直接影响了现代计算机的发展。它是一种特殊的图灵机,可以模拟任何其他图灵机的任何输入。它可以读取其它图灵机的描述(以及规则和输入磁带)并在自己的输入磁带上模拟它们的行为,与模拟机器输出相同的输出结果,就像今天的计算机可以读取任何程序并执行它一样。1945 年,美籍匈牙利数学家、计算机科学家、物理学家约翰・冯・诺依曼提出了一种计算机架构 —— 即冯・诺依曼架构,它使得通用图灵机概念变为现实生活中的机器成为可能。当普林斯顿大学理论计算机科学家 Sanjeev Arora 教授这个概念时,他强调了更广泛的哲学描绘。他表示,「通用(universal)有两种概念,一个是它可以运行任何其他图灵机。,但另一个更大的概念是它可以运行你在宇宙中想出的任何计算。」在经典物理学世界中,任何物理过程都可以使用算法进行建模或模拟,而算法又可以由图灵机进行模拟。另一个值得关注且越来越有用的变体是概率图灵机。与对每个输入都有定义明确回应的常规图灵机不同,概率图灵机可以根据概率做出多种回应。这意味着它可以在不同的时间点对相同的输入产出不同的结果。另外出人意料的是,对于某些问题,这种概率策略比纯粹的确定性方法更有效。概率图灵机的概念已被证明在密码学、优化和机器学习等领域非常有用。这些抽象机器也许是最好的证据,证明提出基本问题可能是科学家能够做的最有用的事情之一。原文链接:https://www.quantamagazine.org/alan-turings-most-important-machine-was-never-built-20230503/