15 阿兰·图灵(Alan Turing)

224 阅读6分钟

15. 阿兰·图灵-Alan Turing_BiliBili_哔哩哔哩_bilibili

1. 简介

在第 15 集中,视频主要介绍了计算机科学之父 Alan Turing 的生平与贡献,从他在理论计算机科学中的奠基工作到他在二战期间令人瞩目的密码破译成就,并讲解了他对人工智能的发展贡献及他悲剧性的个人生活。

2. Alan Turing 的早年生涯

2.1 出生与教育背景

Alan Mathison Turing 于 1912 年出生在伦敦,从小展现出惊人的数学和科学才能。

2.2 计算机科学的初次接触

在 1935 年,作为剑桥大学国王学院的硕士生,Turing 开始尝试解决由德国数学家 David Hilbert 提出的 Entscheidungsproblem(可判定性问题)。

3. Entscheidungsproblem 与 Turing Machine

3.1 可判定性问题

该问题问是否存在一种算法,总是能对输入的正式逻辑语句给出准确的“是”或“否”回答。

3.2 Church 与 Turing 的不同解决方案

  • Alonzo Church:美国数学家 Alonzo Church 于 1935 年提出了解决方案,他开发了 Lambda Calculus 系统,证明了这种通用算法不存在。
  • Alan Turing:Turing 通过提出一种假想的计算机器——Turing Machine,解决了这一问题。这种机器提供了一个简单而强大的计算模型,与 Church 的 Lambda Calculus 功能等效,但相比之下更易理解和应用。

3.3 Turing Machine 的工作原理

Turing Machine 是一种理论计算设备:

  • 包含一条无限长的纸带和一个读写头。
  • 具备状态变量和一组操作规则,根据当前的状态和读写头读取的符号执行相应的操作。

3.4 实例解析:图灵机的基本工作流程

视频通过一个简单的例子展示 Turing Machine 如何判断字符串中 1 的数量是不是偶数。以下是图灵机的基本工作流程:

  1. 定义状态和规则:
    每台图灵机都有一组状态和相应的规则。规则决定了在机器处于某一状态时,遇到某个符号应该采取的动作。这些动作包括写入新符号、改变状态以及移动读 / 写头。

  2. 初始状态:
    设置机器的初始状态。例如,在判断字符串中 1​ 的数量是否为偶数的问题中,初始状态可以设为 偶数​。

  3. 处理输入:
    将输入字符串(例如 1 1 0​)存储到纸带上。读 / 写头从字符串的第一个符号开始读取。

  4. 执行规则:

    • 读取符号:读 / 写头读取当前符号并根据当前状态查找匹配的规则。

    • 执行动作:根据规则更新状态并移动读 / 写头。例如:

      • 如果状态为 偶数​,且当前符号为 1​,则更新状态为 奇数​,并将读 / 写头向右移动一格。
      • 如果状态为 偶数​,且当前符号为 0​,则在纸带上写入 1​ 表示 1​ 的数量为偶数,并将状态改为 停机​。
      • 如果状态为 奇数​,且当前符号为 1​,则更新状态为 偶数​,并将读 / 写头向右移动一格。
      • 如果状态为 奇数​,且当前符号为 0​,则在纸带上写入 0​ 表示 1​ 的数量为奇数,并将状态改为 停机​。
  5. 结束计算:
    当读 / 写头读取到符合停止条件的符号(例如 0​)并执行对应的动作后,图灵机进入停机状态,完成计算。

图灵机的基本工作流程

4. Turing Machine 的重要性

4.1 通用计算能力

Turing 证明了,给定足够的时间和内存,Turing Machine 可以完成任何计算。这使其成为现代计算机理论的基础模型,并且没有计算机比 Turing Machine 更强大。

4.2 局限性的证明:停机问题

停机问题(Halting Problem)是计算机科学中的一个经典问题。它问:是否存在一种算法,能够在给定另一算法和输入的情况下,确定该算法是否会在有限时间内停机,即计算完成。Turing 通过一个巧妙的逻辑悖论证明了这个问题实际上是不可解的。在他的证明中,Turing 假设存在这样一个算法(我们称之为 H 机器),然后构造了一台依赖 H 机器其判断结果但与预期结果相反的机器,称为 Bizzaro。通过逻辑矛盾,他证明了 H 机器(及任何类似的判断算法)不可能总是正确。因此,停机问题本质上是无法解决的,这表明计算机在解决某些问题上有其固有的限制。

通过停机问题,Turing 证明了并非所有问题都能通过计算来解决。即使有无限的时间和内存,也有些问题计算机无从解决。

5. Alan Turing 在二战中的贡献

5.1 破译 Enigma 密码

Turing 设计了名为 Bombe 的机电计算机,大大简化了破译德国 Enigma 机密的过程。这项工作为盟军在多条战线取得胜利提供了巨大帮助,有史学家认为其缩短了战争的时间。

6. 战后的学术成就

6.1 再次回归学术界

战后,Turing 重返学术界,并参与许多早期电子计算项目,如曼彻斯特 1 号。

6.2 人工智能领域的开创性工作

1950 年,Turing 设想未来计算机能够表现出与人类相当的智能,并提出了著名的 Turing Test,用于评估计算机是否具有人类智力。

7. Alan Turing 的悲剧性个人生活

7.1 同性恋迫害

在同性恋被视为非法行为的时代,Turing 因性取向被判“严重不检点”罪。选择接受激素治疗而非监禁,以继续学术工作,但药物严重影响了他的情绪和个性。1954 年,年仅 41 岁的 Turing 通过服毒结束了自己的生命。

7.2 对 Turing 的纪念

为了表彰他的贡献,许多事物以 Turing 命名,其中最具声望的是计算机科学领域的最高奖项——Turing 奖。

8. 总结

  • Alan Turing 通过 Turing Machine 奠定了现代计算理论基础。
  • 通过停机问题,Turing 证明了计算的局限性。
  • 二战期间,Turing 在破译 Enigma 密码方面做出了重大贡献。
  • Turing 设想并发展了人工智能领域的重要概念。
  • Turing 的人生充满悲剧,但他的工作对计算机科学的发展产生了深远影响。