- 注册时间
- 2004-8-29
- 最后登录
- 1970-1-1
|
宋方敏
(南京大学,计算机软件新技术国家重点实验室,南京,210093)
§1.引言
美国TIME杂志在1999年出版专卷介绍20世纪100个最伟大的智者,在计算机科学领域中英国数理逻辑学家Alan Turing列入其中(数学有Kurt Godel,物理有Albert Einstein,后来Einstein列为The person of the 20th century)。由于Turing对于人类的极出贡献,他成
为20世纪最有影响科学家和思想家之一。本文介绍Alan Turing的生平和主要工作,以此纪念计算机科学的奠基人。
§2. Turing评说
在数理逻辑的神秘王国里,一个天才提出了质疑和构想——设计一台能够模拟人类思维演
段的机器—— 一个天方夜谭?
如果Turing所做的一切只是回答了神秘的数理逻辑领域里的一个令人苦恼的问题的话,那
么就不会有什么理由让外行人记住他。但正相反,Turing使用他那给整个世界带来巨大影
响的方法,向世人展示——“一个封闭的逻辑系统里的某些命题是不能在本系统内得到证
明的”——这一曾令Kurt Godel名声大振的推论。这个年轻而前卫的剑桥大学学生所做的
就是梦想着造一台假想的机器——一台简洁而精巧,打字机模样的,可以扫描或读入那些
写在(理论上)无限长的磁带上的指令的机器。随着扫描器在磁带上移来移去——机器依
据指令按序执行或跳转,从而,Turing提出,机器执行过程的输出可以重现人类的思维。
这种受灵感启发的思想实验中的机器,连同Turing的另一个想法,很快获得了一个名字:
Turing机。因为磁带上的指令可以控制机器的行为,所以通过更换相应的指令就可以让这
台机器去完成所有这样的机器所能完成的任务。换句话说,通过扫描不同的磁带,同样的
一台机器既可以算题,又能下棋,还会做其它的相对更自然的任一件事.于是,他的机器又
赢得了一个更好听的新名字:通用Turing 机。
随着指令的运行,这样一台十分原始的硬件组合可以完成令人惊讶的各种任务。这样的想
法听起来可能吗?在1937年显然是无法想象的。那一年,Turing的学术论文On Computabl
e Numbers, with an Application to the Entscheidungsproblem发表在伦敦数学会学报
上。但是Turing的想法被很少的读者所理解,他们认为这些构思在理论上十分有趣和诱人,
却没有人认识到Turing的机器为后来的电子数字计算机勾画出了蓝图。
由于今天的计算机继承了如此之多的想法和技术上的创新,以至于我们无论将发明计算机
的功劳归在谁的头上都是鲁莽的。但事实是,每敲击一次键盘或打开一扇窗口,抑或是运
行一个字处理程序都是在一台Turing机的化身上工作。
Turing 1937年的论文改变了他的一生,让一个腼腆而脆弱的男人更多地被卷入到尘世中去,最终走向一个悲剧式的结局。
Alan Mathison Turing 1912年生于伦敦,是这个家庭的第二个孩子。他的父亲是印度Bri
tish Civil Service的成员,但他的母亲认为这样的环境不利于孩子的成长。于是Alan和
哥哥在英国的一个领养家庭中度过了他们的童年,除了偶尔回家看看,大部分时间和父母分
开。也许就是这其间Turing的孤独感诱发了他一生对人脑机理的兴趣——当上帝赐予的这
个世界显得贫瘠和令人不满的时候,怎样创造一个属于自己的世界呢?
Turing从13岁起就读于Dorset的Sherbourne小学,在那里,他已经显示出了自己的数学天
赋,尽管他的卷子总是因为杂乱无章而被批评。Turing在读小学的时候就发现了自己的同
性恋倾向,并爱上了学校里的另一个小男孩——虽然Turing从未告诉过任何人——后来这
个小男孩猝死于结核。这一事件粉碎了Turing的宗教信仰,使他成为了一个无神论者,并
让他坚信所有的现象都有一个客观的解释。机器没有思想,而大脑中也没有灵魂。那么,
思维和意识又是从何而来呢?
在两次向剑桥大学Trinity College 这所令全世界的数学家们神往的学府申请资助失败之
后,Turing 终于获得了 King’s College 的资助。在诸如 John Maynard Keynes 以及
E.M. Forster 这些名家泰斗们的指引下,King’s College 为 Turing 提供了充分自由与
宽松的环境。尽管他被King’s College的核心学术圈以行为不够检点的理由而拒之门外,
Turing还是得到了巨大的发展。并且当他获得了学位证书之后,Turing成了King’s Coll
ege的一名导师。而如果不是后来的Turing 机的诞生和二次大战的爆发,Turing恐怕只会
在数理逻辑的世界里慢条斯理、优哉游哉地生活一辈子了。
由于Turing发表的一系列论文,他被召入政府 Code and Cypher School。这所学院在一个
叫做Bletchley Park的维多利亚风格的大厦里。这里囫囵吞枣似的聚集了那些被认为有可
能攻破纳粹通信密码的人,包括数学家、国际象棋大师、古埃及研究学家等等。因为这项
工程受到了严格的保密,Turing在这里的工作直到他去世后才得以公之于众。正如计算机
的问世一般,Bletchley Park 的工作也是众人共同智慧的结晶。而Turing的角色更是重中
之重——他设计了一台原始的类似计算机的机器,用以高速破译北大西洋上纳粹U-艇间通
信的密码。
二战后,Turing回到了剑桥,他希望能够重新拾回他所向往的宁静的研究生活。与此同时
,国家物理实验室新近成立了一个数学分支——这个千载难逢的机遇使得Turing能够设计
出真正的Turing machine(即ACE —— Automatic Computing Engine)—— Turing 欣然
前往。然而事实并不如人意,官僚主义、繁文缛节,事不关己、高高挂起之风盛行于时。
战争年代里的那种晨兴夜寐、攻苦食淡的精神早已荡然无存。Turing 的提议不是被束之高
阁就是被全然否定。Turing 决定离开NPL,而后他在剑桥小憩,最终来到了曼彻斯特大学
。这里的实验室正在根据他1937年提出的构想建造一台计算机。
Turing自发表第一篇论文以来,就一直致力于拓展其关于会思考的机器的设想。他甚至提
出,一台会思考的机器可以学习并编制指令。1950年,在著名的英国哲学期刊Mind上,Tu
ring提出了“模仿测试”的概念(后来被称做“Turing测试”)。比如在一封闭的屋子里
,一提问人可以向另一个人与一台机器发问。若提问人不能通过二者的回答辨别出哪一个
是人,哪一个是机器的话,则这台机器就被认为能够象人类一样地“思考”。
Turing在人工智能支持者的心目中仍是一位英雄——其原因部分来自于Turing对未来的一
个乐观的估计:“未来的某一天,女士们带着她们的计算机在公园里散步,她们说:‘我
的计算机告诉我这真是个快乐的早晨!’”
不幸的是,美好的憧憬总让路于残酷的现实。在曼彻斯特的时候,一天他因遭抢劫而报警
,那时他正和另一个同性恋男子在一起,而这个人很可能为罪犯所认识。Turing 从不隐瞒
自己的同性恋倾向,但这次却使他身陷囹圄。同性恋在当时的英国仍是极重的罪名,1952
年,Turing 被判决为“严重猥亵罪”。不久他被减刑,并被要求注射雌性荷尔蒙以去除其
同性欲望。一次,Turing对他的朋友说:“我变得越来越有女人味了!”在1954年6月7日
,Turing食注有氰化钾的苹果自尽, 当时他只有41岁。
§3. Turing机简介
Alan Turing 在1936提出了非凡的Turing机概念,从而定义出可计算性,Turing的思法是
基于对人们用笔和纸来实现一个算法的分析,他把这样的过程看作下列两种非常简单的动
作。
(1)写上或擦去某个符号。
(2)把注意从纸的某个部位转移到另一个部位。
而在每个阶段,算法说明下一次要做的动作。这样就依赖于(a)行为者当前观注的纸上某
个部位上的符号和(b)行为者思维的当前状态。为了达到实现算法的目的,假定这完全由
此算法以及迄今为止的运算记录来确定。这可能为编入一个部分的记录,但这不反映行为
者的心情、智力和理解力。而且由于行为者是有穷的,故他只能处于有穷个互异状态。当
然行为者的状态能转为此阶段已执行的动作。Turing以此法设计一种有穷机器来执行算法
,后来这类机器被称为Turing机。
下面我们给出Turing机的定义。一个Turing机M是一个有穷装置其在一条纸带上执行运算。
这条纸带向两端无限延伸且在两个方向上都已画上了无穷多个方格。(参见图1)
图1
纸带代表人类行为者算题时的纸,而每个方格代表即时运作的一个部分。在运算时只有有
穷格被利用,但我们事先不知道要用多少个格子。纸带是无穷的代表人类在计算时可无限
量提供白纸。在任何时刻,纸带上的每个方格要么空白,要么含某个符号,这些符号取自
M的字母表固定的一列符号S1,S2……Sn。下以B表示空白且把B看作S。属于M的字母表。M
有一个读头,它在任何时候都扫描着纸带的单个方格。(参见图2)
M q 当前状态
读头
S3 S2 S1
正被扫描的方格
图2
M可在纸带上进行三种简单动作:
1.擦去正被扫描方格的符号且把它换成M字母表中的另一符号。
2.把读头移至正被扫描方格的右边的方格。
3.把读头移至正被扫描方格的左边的方格。
在任何给定时刻,M处于某个状态,M的状态总共有有穷个,可设为q1,…,qm,在运作中,
M的状态是可变的。我们可设想M的当前状态q展示于M的外体上(参见图2),认为此q既部
分指导当今做了什么以及今后将做什么。
在任何时刻M采取的行动取决于M的当前状态以及正被扫描的符号,这样的依赖关系被用M的
说明来描述,M的说明Q是由有穷个四元组构成,每个四元组呈下形:qisjskql,qisjRql,q
isjLqlp这里1≤i,l≤m,O≤j,k≤n,Q中的四元组qisjαql说明当M处于状态qi且正扫描于S
j时M将采取的动作如下:
1.带上运算
1.1.若α=Sk则擦去Sj,同时在当前方格中写上Sk
1.2.若α=R,将读头向右移一格
1.3.若α=L,将读头向左移一格
2.转成状态ql
M的说明Q需要对每个对qisj至多存在一个呈形qisjαβ的四元组于Q中,否则会导到M下个
动作的不确定。
为了进行计算,必须为M提供一条纸带以及确定M当前所扫描的方格,而且指定M的初始状态
。然后,假设M当前状态为qi且正扫描符号Sj,若在M的说明Q中,有呈形qisjαql的四元组
,则M将如上所述地动作。这种动作将重复于新状态和正被扫描的符号,M将尽可能地如此
进行下去。M的动作终止仅当其状态为qi且正扫描着Sj使Q中不存在呈形qisjαβ的Q元组,
即Q中无四元组其指示下一步做什么,当然这种情况永不发生。
例.该M的一个Turing机其字母表为{B,O,1}且其可能状态为q1和q2,M的说明为
q10Rq1
q110q2
q20Rq2
q21Rq1
假设为M提供的纸带为
1 1 1 1 1 1 1 1
状态为q1
α=q118
α→q2017
α→0q217
α→01q116
α→01q2015
α→010q215
α→0101q114
α→……
α→010101q111
α→010101q201
α→0101010q21
α→01010101q1B
0 1 0 1 0 1 0 1
若为M提供的纸带的每个方格为0或1,则M不停机。
由上例可看出,Turing机M是在纸带上实行算法的一个装置,算法的全部内容含于M的说明
Q中理论上,Turing机被定义成某个Q元组集合,而不是实际上构造的物理Turing机。
为了把Turing机当作计算数论函数,我们首先在纸带上表示数,例如设M的字母表中含1
,把1看作“小木棒”,用连续的n+1个“1”表示n。
B 1 1 1 … 1 B
n+1个1
约定, =1n+1,对于m元组(n,……,nm),其对应的带表达式为
定义:设f为从N到N的部分函数,Turing机M计算f(n)指若为M提供上面的纸带,初始状
态为q1且箭头标出正扫描的方格,则
=
对于m元部分函数f(x1,…,xm),M计算f指M始于状态q1且提供如下纸带且由箭头指出正被扫
描的方格:
B 1 … 1 B 1 … 1 B … B 1 … 1 B
x1+1 x2+1 xm+1
若M计算终止则f(x1, …,xm)为带上1的总数否则f(x1, …,xm)无定义。
例 加法n+m可由如下的Turing机计算:
M的字母表为{B,1},M的说明Q为
q11Bq1
q1BRq2
q21Bq3
q2BRq2
情况1:n≠0
q11n+1B1m+1→q1B1nB1m+1→Bq21nB1m+1→Bq3B1n-1B1m+1停。
情况2:n=0
q11B1m+1→q1BB1m+1→Bq2B1m+1→BBq21m+1→BBq3B1m
定义:一个部分数论函数是Turing可计算的指存在Turing机其计算之。这样就定义了什么
是可计算的。由以上知n+m是Turing的计算的,事实上Turing的计算能力非常强大,一切的
递归函数都是Turing可计算的,可以证明任何一种程序设计语言所能计算的函数一定是Tu
ring可计算的,为此现在人们接受Church-Turing论点:一切可直觉可计算的函数是Turin
g可计算的。 |
|