阅读经典,这里的经典其实不太恰当。在经典语境下,经是特有所指代,而典又是对人有约束的隐含意义,就总有那么一种束之高阁又不容凡人质疑探讨的意味。
好在这里就是按照世俗语义随便沿用一下,这个系列将会对一些比较有里程碑意义的文章进行截取和研读,会提供原文,翻译,以及简单的讨论,本人才疏学浅,对此不够精通,就是本着以教促学的思路来抛砖引玉,如果有错误遗漏之处,希望读者不吝指正。
万事开头难,这回咱们先从图灵机开始,图灵机这个概念,很多教材上也都会说,很多网络上的教程也会提及,但原始语境下到底是怎么回事,恐怕还是得落到原文来仔细研读一下。
今天这段出自艾伦·图灵(Alan Turing)1936年发表的经典论文《论可计算数及其在判定问题上的应用》(Alan Turing, On Computable Numbers, with an Application to the Entscheidungsproblem, 1936),是现代计算机科学的奠基性文献之一。
原文
We have said that a computable number is one whose decimal can be written down by a machine. This statement is, of course, only a provisional one. We shall not attempt to prove its equivalence to other definitions until §9. For the present I shall only say that the justification lies in the fact that the human memory is necessarily limited.
(原文上面是一段,下面是另一整段落,但下面这段明显太长了,这里为了下面的便于理解,就拆成多个小段落了。)
We may compare a man in the process of computing a real number to a machine which is only capable of a finite number of conditions $q_1, q_2, \dots, q_R$, which will be called “m-configurations”. The machine is supplied with a “tape” (the analogue of paper) running through it, and divided into sections (called “squares”) each capable of bearing a “symbol”. At any moment there is just one square, say the $r$-th, bearing the symbol $\mathfrak{S}(r)$ which is “in the machine”.
We may call this square the “scanned square”. The symbol on the scanned square may be called the “scanned symbol”. The “scanned symbol” is the only one of which the machine is, so to speak, “directly aware”. However, by altering its m-configuration the machine can effectively remember some of the symbols which it has “seen” (scanned) previously.
The possible behaviour of the machine at any moment is determined by the m-configuration $q_n$ and the scanned symbol $\mathfrak{S}(r)$. This pair $q_n$, $\mathfrak{S}(r)$ will be called the “configuration”: thus the configuration determines the possible behaviour of the machine.
In some of the configurations in which the scanned square is blank (i.e. bears no symbol) the machine writes down a new symbol on the scanned square: in other configurations it erases the scanned symbol. The machine may also change the square which is being scanned, but only by shifting it one place to right or left. In addition to any of these operations the m-configuration may be changed.
Some of the symbols written down will form the sequence of figures which is the decimal expansion of the real number being computed. The others are just rough notes to “assist the memory”. It will only be these rough notes which will be liable to erasure.
(原文上面是一段,下面是另一整段落。)
It is my contention that these operations include all those which are used in the computation of a number. The defence of this contention will be easier when the theory of the machines is familiar to the reader. In the next section I therefore proceed with the development of the theory and assume that it is understood what is meant by "machine", "tape", "scanned", etc.
以下是对原文的中文翻译。
翻译
前文已经说过,可计算的数是指那些十进制的小数可以通过有限手段计算出来的实数。这还需要更明确的定义。直到第9节,本文才会尝试证明这些定义的合理性。目前只暂且认为,这种合理性的依据在于人类的记忆能力是必然有限的。
(原文上面是一段。)
咱们可以把一个正在计算实数的人类比作一台机器,这台机器只能处于有限个状态 $ q_1, q_2, \ldots, q_R $ ,这些状态被称为“m-构型”(m-configurations)。这台机器配备了一条“纸带”(就像是模拟人做计算用的纸),这个纸带在机器中穿过移动,被分成为若干段(称为“ 格 ”),每个 格 可以存放一个“ 符号 ”。在任意时刻,机器中只能处理一个 格 ,比如第 $ r $ 个 格 ,这个 格 里面的 符号 记作 $ \mathfrak{S}(r) $ ,表示”正在机器内“。
处在机器中的这个 格 咱们将其称为“ 扫描到的格 ”(scanned square)。该 格 上的 符号 称为“ 扫描到的符号 ”(scanned symbol)。这个 扫描到的符号 是机器能够“直接感知”的唯一内容。不过,通过调整其 m-构型,机器就可以有效地记住先前“看到”(即扫描过)的一些 符号 。
在任意的时刻,机器的行为由其当前的 m-构型 $ q_n $ 和 扫描到的符号 $ \mathfrak{S}(r) $ 决定。这一对 $ q_n, \mathfrak{S}(r) $ 被称为“构型”(configuration),也就是说构型决定了机器可能的行为。
在某些构型中,如果 扫描到的格 为空(即没有 符号 ),机器会在该 格 上写入一个新的 符号 ;而在另外一些构型中,机器会擦除 扫描到的符号 。机器还可以改变当前 扫描位置 ,但只能将其向左或向右移动一格。除了执行上述这些操作之外,机器的 m-构型 也可以被改变。
机器在纸带上面写下的一部分 符号 构成一个数字序列,这个数字序列就是所计算实数的小数部分。其余的 符号 只是用来“辅助记忆”的临时笔记。只有这些临时笔记才有可能被擦除。
(原文上面是一段。)
本文提出了一个论点,即”对一个数进行计算的过程来说,上面所提到的操作包含了所需要的所有操作”。当读者熟悉了这些机器的理论后,对这一观点的论证将会更容易。后面的章节将继续进一步介绍这些理论,并假设读者已经理解“机器”、“纸带”、“扫描到”等术语的含义。
逐段解释
第一段:引入“可计算数”的概念
“前文已经说过,可计算的数是指那些十进制的小数可以通过有限手段计算出来的实数。”
- 图灵在这里重新强调“可计算数”的定义:一个实数是可计算的,当且仅当它的十进制展开可以通过某种有限过程逐步生成。
- 这里的“有限手段”指的是:不能无限地依赖直觉或无限资源,而必须有机械的、规则化的步骤。
- 延伸讨论:可计算 vs 可表示
- 可表示(Definable):可以粗略认为是我们能用数学语言或逻辑公式明确地描述一个数。
- 可计算(Computable):指的是存在一个算法(图灵机),能在有限时间内算出这个数的任意一位。
- 区别:几乎绝大多数的实数都是不可计算的(因为程序是可数的,而实数是稠密不可数的),但我们能“叫出名字”的数大多是可计算的(如 $\pi, e, \sqrt{2}$)。然而,确实存在一些数,我们能明确定义它,却永远无法算出它的具体数值。
- 典型例子:
- 蔡廷常数(Chaitin's Constant, $\Omega$):这是一个表示“随机选择的程序将会停机”的概率的实数。它的值是确定的(介于 0 和 1 之间),但如果我们能算出它的每一位,就等同于解决了“停机问题”。由于停机问题是不可解的,因此 $\Omega$ 是不可计算的。
- 忙碌海狸(Busy Beaver)相关数:定义 $\Sigma(n)$ 为 $n$ 个状态的图灵机在停机前能打印出的最大符号数量。虽然对于任何固定的 $n$,$\Sigma(n)$ 都是一个确定的整数,但不存在一个通用算法能算出所有 $n$ 对应的 $\Sigma(n)$。如果我们构造一个实数,其小数位由 $\Sigma(n)$ 决定,那么这个实数也是不可计算的。
“这还需要更明确的定义……直到第9节,本文才会尝试证明这些定义的合理性。”
- 图灵承认这个定义还不够严格,因此他将在后续章节给出形式化定义。
- 但他也说明,暂时不讨论哲学或逻辑上的正当性,而是先接受这个定义作为工作基础。
“目前只暂且认为,这种合理性的依据在于人类的记忆能力是必然有限的。”
- 这是图灵思想的核心洞见:人类的计算能力受限于记忆的有限性。
- 关于“有限”与“无限”的延伸讨论:
- 这里所说的“记忆有限”,并不单纯指人类大脑的物理容量,而更多是指工作记忆(Working Memory)的局限性。当我们进行心算时,一旦数字过长(例如计算 $3482 \times 9157$),我们就无法在脑海中同时追踪所有进位和中间结果。
- 芝诺悖论的启示:古希腊的芝诺悖论(如阿喀琉斯追龟)揭示了人们常在概念上混淆“有限的空间”与“无限的划分过程”。类似地,虽然理论上数字可以无限长,但人类在每一个具体时刻所能关注和处理的信息量必须是有限的。
- 从“脑”到“纸”的转换:正因为脑容量(状态数)有限,我们必须借助外部存储工具——纸和笔。我们将记不住的中间结果写在纸上,腾出大脑去处理下一步运算。这恰恰对应了图灵机模型中的设计:
- 大脑 = 有限控制器(Finite Control):对应图灵机的 m-构型,状态数是有限的。
- 纸张 = 无限纸带(Infinite Tape):对应图灵机的纸带,虽然每一步只能读写一个格,但长度可以是无限的,用于弥补大脑记忆的不足。
- 因此,图灵机本质上是对“人类利用纸笔辅助计算”这一行为的精确数学模拟。
- 也就是说,一个人在计算时,不可能同时记住无穷多的信息,所以他的行为必须是有限状态的、可重复的、有规则的。
- 因此,用一台有限状态的机器来模拟人的计算过程是合理的。
第二段:构建“图灵机”的模型
“咱们可以把一个正在计算实数的人类比作一台机器……”
- 图灵提出一种理想化的计算模型——图灵机(Turing Machine),它是对人类计算过程的形式化抽象。
- 他将人脑的“状态”抽象为机器的“m-构型”(m-configurations),即机器的内部状态集合 $ q_1, q_2, \dots, q_R $。
- “m” 可能代表“machine”或“memory”,表示这是机器的状态。
- 每个状态代表一种“心理状态”或“计算阶段”。
- 延伸讨论:自然数、有理数与可数性
- 可数集(Countable Set):如果一个集合中的元素可以像点名一样一个个地列举出来(即与自然数集 $\mathbb{N}$ 建立一一对应关系),我们就称它是“可数的”。
- 自然数是可数的:这是显而易见的,$1, 2, 3, \dots$ 可以一个个排下去。
- 有理数(分数)也是可数的:虽然分数在数轴上看起来密密麻麻(稠密性),但我们依然可以像康托尔(Georg Cantor)展示的那样,用“对角线法”将它们一个个排成队,从而给每个分数分配一个唯一的自然数编号:
- 想象一个二维表格,列是分子 $1, 2, 3...$,行是分母 $1, 2, 3...$。
- 我们不按行也不按列数,而是沿着斜对角线($分子+分母=常数$)蛇形游走:
- 和为2:$1/1$ (对应自然数 1)
- 和为3:$1/2$ (对应自然数 2),$2/1$ (对应自然数 3)
- 和为4:$3/1$ (对应自然数 4),$2/2$(约分后是1,跳过),$1/3$ (对应自然数 5)
- 和为5:$1/4$ (对应 6),$2/3$ (对应 7),$3/2$ (对应 8),$4/1$ (对应 9)
- 只要按这个规则一直走下去,任何一个分数(比如 $534/897$)迟早都会被这条蛇形路线经过,并被分配到一个唯一的自然数编号。这就证明了:虽然分数看起来比自然数多得多,但它们的基数(Cardinality)其实是一样的,完全可以用自然数给所有分数“点名”。
- 实数是不可数的:与之相对,实数(包含无理数)是不可数的。无论你如何尝试列举,总会有漏网之鱼(通过康托尔对角线论证法证明)。这也解释了为什么绝大多数实数是“不可计算”的——因为图灵机的状态和程序是可数的,而实数是不可数的,二者之间存在着巨大的鸿沟。
- 其他可数集的例子:
- 所有整数($\mathbb{Z}$):$0, 1, -1, 2, -2, \dots$
- 所有有限长度的字符串(如所有可能的英语句子)。
- 所有计算机程序(因为代码本质上就是字符串)。
“这台机器配备了一条‘纸带’……被分成为若干段(称为‘ 格 ’)……”
- 纸带(tape)是无限长的存储空间,象征着纸张或记忆。
- 每个 格 可以存放一个 符号 (如0、1、空白等),相当于我们在纸上写的数字或标记。
- 关于“有限时间”与“无限空间”的辨析:
- 单位时间处理能力有限:原文并不是说机器能在单位时间内处理无限的信息。相反,图灵机在每一个离散的“时刻”(Time Step),只能读写一个方格,移动一格。它的“带宽”是严格受限的,即单位时间内的信息吞吐量是常数(Finite)。
- 总处理空间/时间无限:虽然每一步微不足道,但因为纸带是无限长的(空间无限),且机器运行的步数可以是无限多的(时间无限),所以它在任意长但有限的时间内,可以访问到纸带上任意远的位置。
- “访问无限信息”的真意:这里的“访问无限信息”指的是潜能(Potentiality)而非实显(Actuality)。机器不需要在同一时刻“看到”整个无限纸带(那是上帝视角),它只需要能够一步步走到任何它需要去的地方。就像一只蚂蚁虽然爬得慢且视野小,但只要给它无限的时间,它理论上可以丈量无限长的直线。
- 这种设计巧妙地用局部有限性(每一步都简单、有限)构建了全局无限性(可以处理任意复杂度的计算任务),这正是图灵机模型强大的根源。
“处在机器中的这个 格 咱们将其称为‘ 扫描到的格 ’”
- 图灵机在某一时刻只能“读取”或“写入”一个 格 的内容。
- 这个 格 叫“ 扫描到的格 ”,上面的 符号 叫“ 扫描到的符号 ”。
- 类比于人在计算时,眼睛只能聚焦在一个位置上。
- 关于“即时处理能力”的现实意义:
- 图灵机的这个设计极其务实:它并不要求机器拥有“神”一般的全知全能(比如瞬间扫描所有数据),而是只要求它能处理好当下这一个格的任务。
- 人脑的类比:
- 日常计算:我们在菜市场买菜算账时,不需要动用微积分知识,只需要处理简单的加减法(有限的输入、有限的步骤、极短的时间)。我们的“算力”是绰绰有余的。
- 极限挑战:即使是绝顶聪明的人(如心算大师),虽然算得快,但依然有生理上限(比如一秒钟最多处理多少个数字)。
- 特殊场景:只有在极端情况下(如狙击手需要综合风速、湿度、距离、科里奥利力等多个变量进行射击修正),才需要挑战人类计算能力的极限,但这类情况其实也有标尺和公式辅助简化。
- 结论:图灵机通过将复杂任务分解为一个个极简的“单步操作”,使得即便是一个能力非常有限的“笨机器”(或者普通人),只要按部就班地做下去,理论上也能完成最复杂的计算任务。它证明了:计算的本质不在于单次处理能力的强弱,而在于规则的正确性和时间的累积。
“这个 扫描到的符号 是机器能够‘直接感知’的唯一内容。”
- 强调机器的局限性:它不能同时看到整个纸带,只能知道当前扫描的那个 符号 。
- 所以它的决策必须基于当前状态 + 当前 符号 。
- 解析:状态存在哪里?符号存在哪里?
- 当前符号(Scanned Symbol):这是显性数据,物理上实实在在地印在纸带的当前方格里。它相当于我们正在阅读的书页上的那个字,是外部输入的直接来源。
- 当前状态(m-configuration):这是隐性数据,它不存储在纸带上,而是存储在机器的内部控制器(Finite Control)里。
- 类比人脑:想象你在心算加法。
- 纸上的数字是“当前符号”。
- 而你脑子里记着的“现在要进位1”或者“现在正在算十位”,这个念头就是“当前状态”。这个念头是在你的脑神经里,而不是写在纸上的。
- 类比计算机:
- 纸带 = 内存(RAM)或硬盘(数据区)。
- 内部状态 = CPU 的寄存器(Registers)(控制区)。
- 关键区别:
- 符号可以有无穷多种组合(因为纸带无限长),代表了数据。
- 状态必须是有限的($q_1$ 到 $q_R$),代表了控制逻辑或程序当前执行到了哪一步。
- 为什么状态不能存纸带上? 虽然理论上可以把状态编码后写在纸带上(通用图灵机就是这么干的),但在最基础的图灵机模型中,将“脑”(状态)和“纸”(符号)区分开是非常重要的——它区分了处理者和被处理对象。机器的“灵魂”在于其内部状态转移规则,而纸带只是它施展拳脚的“舞台”。
“不过,通过调整其 m-构型,机器就可以有效地记住先前‘看到’(即扫描过)的一些 符号 。”
- 尽管机器不能“记住”所有历史信息,但它可以通过改变内部状态来编码记忆。
- 例如:状态 $ q_5 $ 可以表示“我已经看到了一个1,接下来要找下一个0”。
- 这种机制允许机器具有“短期记忆”功能,尽管整体是有限的。
- 深入机制:谁决定了状态的改变?
- 双向交互:m-构型的改变既不是完全由机器内部自闭地决定,也不是完全被动地由纸带决定,而是二者的交互结果。
- 规则公式:$新状态 = f(当前状态, 扫描到的符号)$。
- 这意味着,机器的“下一步想法”(新状态)取决于“现在的想法”(当前状态)和“眼前看到的事实”(扫描符号)。
- 类比与呼应:
- 呼应前文:前文提到人脑记忆有限,所以需要借助纸笔。这里进一步说明,人脑(机器状态)虽然有限,但它是动态更新的。
- 计算机类比:程序的分支逻辑(
if-else)。if (input == 1)就是在看纸带,state = next_state就是在改变内部构型。程序的执行流向(状态)是由代码逻辑(内部规则)和输入数据(外部影响)共同决定的。 - 认知类比:这就好比一个人的认知更新。
- 你的世界观(内部规则表)决定了你如何处理信息。
- 当你看到一个新的事实(扫描符号)时,如果它符合你的预期,你可能保持原状;但如果它是一个反例,你的认知状态(m-构型)就会发生改变(比如从“坚信”变为“怀疑”)。
- 这说明:外界输入(纸带)是驱动机器内部状态演变的动力,而内部状态(规则)则定义了机器对输入的反应方式。
“在任意的时刻,机器的行为由其当前的 m-构型 $ q_n $ 和 扫描到的符号 $ \mathfrak{S}(r) $ 决定。”
- 机器的行为完全由两个因素决定:
- 它当前的内部状态(m-构型)
- 它当前看到的 符号
- 这一对组合称为“构型”(configuration),决定了下一步动作。
- 术语辨析:m-构型 vs 构型
- 图灵原文中使用了
m-configuration和configuration两个非常相近的词,确实容易混淆。让我们彻底厘清它们: - m-构型(m-configuration):
- 定义:仅指机器内部的那个状态 $q_n$。
- 含义:“m”代表 Machine(机器)或 Memory(记忆)。它代表机器“脑子里的想法”。
- 现代术语:在现代计算机科学教材中,通常直接称为状态(State)。
- 构型(configuration):
- 定义:指当前的“m-构型”加上“扫描到的符号”这一组合 $(q_n, \mathfrak{S}(r))$。(注:在更严格的定义中,完整的构型甚至包括整个纸带的内容,但在此处上下文中,主要指决定下一步动作的这两个因素)。
- 含义:它代表了机器在某一时刻面临的完整情境——既有内部心态,又有外部输入。
- 现代术语:在现代术语中,这对应于瞬时描述(Instantaneous Description, ID)的一部分,或者说是转移函数(Transition Function)的输入参数。
- 为什么区分?
- 想象你在过马路。
- 你的 m-构型 是“着急去上班”。
- 你看到的 符号 是“黄灯”。
- 你的 构型 就是“着急上班 + 看到黄灯”。
- 只有这个完整的构型,才能决定你下一步的动作(是等一等,还是闯过去)。单有“着急”或单有“黄灯”,都不足以完全确定你的行为。
“在某些构型中……机器会在该 格 上写入一个新的 符号 ;而在另外一些构型中,机器会擦除 扫描到的符号 。”
- 机器的基本操作包括(可以分为三大类):
- 对当前格子内容的操作(数据操作):
- 写入(Write):用一个新符号覆盖当前格子里的内容(比如把 '0' 改成 '1')。
- 擦除(Erase):把当前格子的内容清空(通常等同于写入一个“空白符”)。
- 注:这两者本质上都是“修改数据”。
- 对当前格子位置的操作(寻址操作):
- 移动(Move):将扫描头向左或向右移动一格($L$ 或 $R$)。
- 注:这是图灵机访问内存的唯一方式,它不能随机跳转,只能一步步挪。
- 对自身状态的操作(控制流操作):
- 改变状态(Change m-configuration):将内部状态从 $q_n$ 切换到 $q_m$。
- 注:这是机器“改变想法”或“进入下一阶段”的步骤,相当于程序中的
GOTO或函数调用。
- 总结:图灵机的每一次“动作”,其实就是这三类操作的组合(改数据、挪位置、变状态)。通过这三个维度的微小变化,机器完成了计算任务的每一步推进。
“机器在纸带上面写下的一部分 符号 构成一个数字序列……其余的 符号 只是用来‘辅助记忆’的临时笔记。只有这些临时笔记才有可能被擦除。”
- 整体解读:图灵在这里敏锐地区分了结果数据与过程数据。
- 结果数据(Figures):是我们真正想要的答案(如圆周率的小数位)。这些数据一旦生成,通常是永久保留的,作为最终输出。
- 过程数据(Rough Notes):是计算过程中必不可少的“脚手架”。没有它们,复杂计算无法进行;但一旦使命完成,它们就可以被拆除(擦除)。
- 生动实例:计算 $18 \times 3$
- 人类做法:
- 你在纸上写下竖式: ``` 1 8 x 3
``` 2. 你先算 $8 \times 3 = 24$。你写下 4 (这是结果的一部分),然后进位 2 (这是临时笔记,你会把它记在旁边或者脑子里)。 3. 接着算 $10 \times 3 = 30$,再加上进位的 20,得到 50。你写下 5 在十位上(这是结果的另一部分)。 4. 最终结果是 54。那个进位的 2,你算完后就不再需要了,甚至可以擦掉。
- 图灵机做法:
- 机器在纸带上某些格子里写入输入
1,8,3。 - 机器在某个“工作区”格子写下中间结果
2(进位标记)。 - 机器在“输出区”格子写下
4。 - 机器读取输入
1和中间结果2,计算出5,写入“输出区”。 - 最后,机器可能会擦除那个
2,只保留54。
- 机器在纸带上某些格子里写入输入
- 意义:这一区分对应了现代计算机体系结构中的寄存器/内存(临时存储)与硬盘/显存(持久化输出)的区别,或者是编程中的局部变量与返回值的区别。图灵早在1936年就洞察到了计算过程中“临时状态”的必要性。
第三段:图灵的主张与展望
“本文提出了一个论点,即”对一个数进行计算的过程来说,上面所提到的操作包含了所需要的所有操作”。”
- 图灵的断言:这是一个非常大胆的声明。图灵声称,哪怕是最复杂、最深奥的数学计算,拆解到最底层,都逃不出这几种简单的操作(读、写、移、变状态)。
- 是否存在无法模拟的“纸上计算”?
- 答案是:不存在(只要是遵循规则的)。
- 前提:只要这个计算过程是算法性的(Algorithmic),即每一步都有明确规则,不需要依靠“顿悟”或“通灵”,那么它一定可以被分解为图灵机的操作。
- 反例:如果一个过程涉及到真正的“随机性”(比如扔骰子)或者“量子纠缠”等非经典物理过程,那么标准图灵机可能无法直接模拟(需要扩展为概率图灵机或量子图灵机),但这已经超出了“纸上计算”的范畴。对于所有人类能在纸上按部就班算出来的东西,图灵机都能做。
- 这就是“图灵论题”(Church-Turing Thesis)的思想雏形:一切直觉上的“可计算”,都等价于“图灵机可计算”。
“当读者熟悉了这些机器的理论后,对这一观点的论证将会更容易。”
- 图灵的教学法:图灵没有从抽象的代数结构(如 $\lambda$ 演算)入手,而是从具体的、物理的“人类行为”(Human Action)入手。
- 启示:
- 图灵观察到,人类计算的本质就是:眼睛看(扫描),手写(写入),脑子记(状态),手移动(移动)。
- 他把这个具体的生物行为,抽象成了机械行为。这种“道法自然”的建模思路,使得图灵机比同时代的其他模型(如递归函数、$\lambda$ 演算)更直观、更具说服力,也直接指导了后来冯·诺依曼计算机的工程实现。
“后面的章节将继续进一步介绍这些理论,并假设读者已经理解‘机器’、‘纸带’、‘扫描到’等术语的含义。”
- 图灵开始进入形式化阶段,不再解释基本术语,而是直接使用它们进行建模。这意味着我们已经完成了从“感性认知”到“理性定义”的过渡。
总结与意义
图灵机的核心要素总结:
| 组件 | 功能 |
|---|---|
| m-构型(状态) | 表示机器的内部状态,有限个数 |
| 纸带(tape) | 无限长,分 格 ,每 格 存一个 符号 |
| 扫描头(scanner) | 指向当前 格 ,读写 符号 |
| 操作规则 | 根据当前状态 + 当前 符号 → 决定下一步动作(写/擦/移/变状态) |
图灵机的本质思想:
- 计算 = 机械过程
- 所有计算都可以归约为一系列简单的、确定性的操作。
-
不需要“灵感”或“直觉”,只需要规则和状态转移。
-
有限性与无限性的结合
- 机器本身是有限的(有限状态、有限符号集)
-
但通过无限纸带,它可以处理无限任务(如生成无限小数)
-
通用性
- 图灵机虽然简单,但可以模拟任何人类计算过程。
-
这奠定了现代计算机的理论基础。
-
可计算性的定义
- 一个数是否“可计算”,取决于是否存在一个图灵机能逐步输出它的每一位数字。
历史影响
- 图灵机是第一台抽象计算机的模型。
- 它启发了冯·诺依曼结构、编程语言、算法理论的发展。
- 它也是人工智能和计算复杂性理论的基础。
这段文字虽然是1936年的,但它清晰地勾勒出了现代计算机的原型。
图灵用极简的语言描述了一个强大而优雅的计算模型,揭示了“计算”本身的本质:一切可计算的问题,都可以被分解为有限状态下的符号操作。
这大概也是图灵被称为“计算机之父”的原因。
CycleUser