《知道太多的人:艾伦·图灵和计算机的发明》(W. W. Norton,2006 年)由大卫·莱维特(David Leavitt)(以《鹤的消失语言》(The Lost Language of Cranes)而闻名的小说家)创作,是诺顿(Norton)伟大发现系列的一部分,该系列是创新而有趣的主题和作者组合。
有些人会说安德鲁·霍奇斯(Andrew Hodges)的《艾伦·图灵:谜》( Alan Turing: The Enigma ,Simon & Schuster,1983 年)使得任何其他图灵传记都变得不必要和多余,但我最喜欢莱维特对这个主题的看法。莱维特当然向“霍奇斯 1983 年的权威传记”(第 6 页)致敬,但从脚注来看,莱维特自己也花了大量时间在剑桥大学国王学院的图灵档案馆漫游,这本书中的很多内容对我来说听起来很新奇。我特别喜欢莱维特对丘奇(Alonzo Church)的描绘,对 20 世纪 30 年代普林斯顿的回忆,对著名的维特根斯坦数学讲座的叙述以及对图灵在布莱切利庄园工作的描述。莱维特甚至找到了讨论图灵关于机器智能的著作及其周围争议的新角度。
在整个文本中,莱维特将图灵的生活与各种文化参考点联系起来。其中一些参考是霍奇斯读者所期望的(《白雪公主和七个小矮人》),而一些则出乎意料(《埃里温》(Erewhon)、《米德尔马契》(Middlemarch)、《斯巴达克斯》(Spartacus),前 26 页两次提到《星际迷航》(Star Trek)),但效果最好的是莱维特对《白衣男子》(The Man in the White Suit)和 福斯特(E.M. Forster)的小说的引用,包括(但不限于)《莫里斯》(Maurice)。莱维特观察到,1931 年,图灵住在福斯特家附近,“如果图灵不那么害羞,他可能会结识福斯特,甚至可能被邀请参加晚间聚会,在聚会上,年事已高的作者大声朗读了《莫里斯》的手稿。”(第 17 页)(实际上,福斯特 1931 年只有 52 岁;福斯特于 1970 年去世,享年 91 岁,《莫里斯》终于在次年出版。)
不幸的是,《知道太多的人》第 3 章试图描述图灵的历史论文《论可计算数及其在判定问题中的应用》,但几乎是一场灾难。这里的细节实在太多,而主要观点完全被忽略了。莱维特显然参考了罗杰·彭罗斯的《皇帝的新脑》一书,但只有当莱维特意识到彭罗斯的图灵机与图灵自己的机器完全不同时,这才是安全的。莱维特还不合时宜地提到了“停机问题”(第 82 页),这是马丁·戴维斯首创的一个术语,首次出现在他 1958 年出版的《可计算性和不可解性》一书中。将停机问题与图灵的论文联系起来没有任何意义,因为图灵的机器没有停机指令。图灵的“好”机器(图灵标记为“circle-free”或“satisfactory”的机器)总是永远运行并打印数字。它们需要永远运行,因为每台机器计算 0 到 1 之间的特定实数,并且在一般情况下,数字永远不会停止。
在我看来,理解图灵的论文需要很好地掌握可枚举性的概念,而莱维特根本没有涉及这一点。需要弄清楚为什么整数是可枚举的,有理数是可枚举的,代数数是可枚举的,但实数不是。
很容易确定,图灵的每台机器都由一个整数唯一表示,他称之为描述数。这对现在的人来说是轻而易举的,因为我们熟悉机器代码的性质,并且知道每个 EXE 文件基本上都是一个巨大的整数。很明显,这些描述数是可枚举的,因此可计算数是可枚举的,这意味着可计算数必然是实数的子集。计算机的局限性已经显而易见。计算机无法计算绝大多数可能的实数!
在《论可计算数》第 8 节中,图灵将康托尔关于实数不可枚举性的两个证明应用于可计算数,在这里他遇到了一个悖论。将康托尔的对角化过程应用于可计算数的枚举似乎表明可计算数是不可枚举的。显然有些地方不对劲,而图灵的突破就是解开这个矛盾。尽管circle-free机器是可枚举的,因为它们是整数的子集,但它们实际上不能通过有限过程进行枚举,因为枚举circle-free机器需要确定特定描述数是代表circle-free机器还是circular机器。
这导致图灵意识到,如果不实际运行机器或跟踪它(这相当于运行它),就不可能设计出一个通用的有限过程来确定特定机器将做什么。当然,这意味着您无法编写通用的“调试器”程序来分析其他程序。这些都没有在 Leavitt 的讨论中得到充分体现,这很不幸,因为更易于理解的第 3 章将大大提升整本书的水平。
艾伦·图灵是一名无可辩驳的同性恋男子,他生活在一个男性之间任何类型的性接触都是非法的时代和国家。1952 年,他因严重猥亵罪被捕(半个世纪前奥斯卡·王尔德被起诉的法律与此相同),这似乎让他有些意外。两年半后,他自杀,这通常被归咎于这次被捕以及他代替监狱接受的羞辱性激素治疗。
原文:
https://www.charlespetzold.com/blog/2006/08/110916.html
Summer Reading: “The Man Who Knew Too Much: Alan Turing and the Invention of the Computer”
The Man Who Knew Too Much: Alan Turing and the Invention of the Computer (W. W. Norton, 2006) by David Leavitt (the novelist best known for The Lost Language of Cranes) is part of Norton's Great Discoveries Series, an innovative and interesting pairing of topics and authors.
There are some who would say that Andrew Hodges' Alan Turing: The Enigma (Simon & Schuster, 1983) has made any other Turing biography unnecessary and redundant, but I mostly enjoyed Leavitt's take on the subject. Leavitt certainly pays homage to "Hodges' magisterial 1983 biography" (pg. 6) but judging from the footnotes, Leavitt also spent a considerable amount of time himself roaming the Turing Archive at King's College, Cambridge, and a lot in this book sounded new to me. I particularly liked Leavitt's portrait of Alonzo Church, his evocation of 1930s Princeton, his recounting of the famous Wittgenstein Lectures on Mathematics, and his retelling of Turing's work at Bletchley Park. Leavitt even found new angles for the discussion of Turing's writings on machine intelligence and the controversies that surrounded them.
Throughout the text, Leavitt connects Turing's life with a variety of cultural reference points. Some of these references are expected by readers of Hodges (Snow White and the Seven Dwarfs) and some are unexpected (Erewhon, Middlemarch, Spartacus, two mentions of Star Trek in the first 26 pages), but what works the best are Leavitt's references to The Man in the White Suit and the novels of E.M. Forster, including (but not limited to) Maurice. In 1931, Leavitt observes, Turing lived very close to Forster. "Had he been less shy, Turing might have made Forster's acquaintance and perhaps been invited to one of the evening gatherings in which the author, now getting on in years, read aloud from the manuscript of Maurice." (pg. 17) (Actually, E.M. Forster was only 52 in 1931; Forster died in 1970 at the age of 91 and Maurice was finally published the following year.)
Unfortunately, Chapter 3 of The Man Who Knew Too Much, which attempts to describe Turing's historic paper “On Computable Numbers, with an Application to the Entscheidungsproblem,” is pretty much a disaster. There's simply too much detail here, and the main points are missed entirely. Leavitt has obviously consulted Roger Penrose's The Emperorer's New Mind for some help, which is safe only if Leavitt realizes that Penrose's Turing Machines are quite different from Turing's own machines. Leavitt also anachronistically refers to the "halting problem" (pg. 82), a term that Martin Davis originated and which first appeared in print in his 1958 book Computability and Unsolvability. It doesn't make any sense to refer to the halting problem in connection with Turing's paper because Turing's machines don't have a Halt instruction. Turing's "good" machines (the ones Turing labels as "circle-free" or "satisfactory") always run forever printing digits. They need to run forever because each machine computes a particular real number between 0 and 1, and in the general case, the digits never stop.
It seems to me that understanding Turing's paper requires a good grasp of the concept of enumerability, and that's something Leavitt doesn't get into at all. It needs to be clear why integers are enumerable, rational numbers are enumerable, algebraic numbers are enumerable, but real numbers are not.
It's easy to establish that each of Turing's machines is uniquely represented by an integer, which he calls the Description Number. This is a no-brainer for people now because we're familiar with the nature of machine code and know that every EXE file is basically a humungus integer. It's clear that these Description Numbers are enumerable, and hence the Computable Numbers are enumerable, which means that the Computable Numbers must necessarily be a subset of the real numbers. Already the limitations of computing machines become evident. Computing machines are incapable of calculating the vast majority of possible real numbers!
In section 8 of "On Computable Numbers" Turing applies Cantor's two proofs of the non-enumerability of the real numbes to the computable numbers, and here he encounters a paradox. Applying Cantor's diagonalization process to an enumeration of computable numbers seems to reveal that computable numbers are not enumerable. Something is clearly wrong, and Turing's breakthrough comes with unraveling this contradiction. Although circle-free machines are enumerable because they are a subset of the integers, they cannot actually be enumerated through a finite process because enumerating circle-free machines requires determining whether a particular Description Number represents a circle-free machine or a circular machine.
And that leads to Turing's realization that it is not possible to devise a general finite process to determine what a particular machine will do without actually running the machine or tracing through it, which is the equivalent of running it. This means, of course, that you can't write a general "debugger" program that will analyze other programs. None of this quite comes out in Leavitt's discussion, and it's unfortunate, because a more comprehensible Chapter 3 would greatly elevate this entire book.
Alan Turing was an unapologetic gay man who lived in a time and a country where any type of sexual contact between men was illegal. His 1952 arrest for the crime of gross indecency (the same law under which Oscar Wilde was prosecuted half a century earlier) seemed to come as a bit of a surprise to him. His suicide two and a half years later is usually attributed to this arrest and the humiliating hormone treatments he was subjected to in lieu of prison.
转载本文请联系原作者获取授权,同时请注明本文来自柳渝科学网博客。
链接地址:https://wap.sciencenet.cn/blog-2322490-1461230.html?mobile=1
收藏