计算机基本原理 学习笔记(七)

本篇目录

接上)

十、阿兰·图灵

1.可判定性问题

2.破解英格玛机

3.图灵测试

4.悲剧

总结


接上一篇 学习笔记(六)

十、阿兰·图灵

图灵(1912-1954),计算机科学之父,为计算机理论做出了巨大贡献。

1.可判定性问题

1.可判定性问题

24岁的硕士研究生图灵开始解决德国数学家大卫希尔伯特提出的可判定性问题:是否存在一种算法,输入正式逻辑语句,输出准确的“是”或“否”答案。美国数学家阿隆佐丘奇于1935年首先提出解决方法,他开发了一个“Lambda算子”的数学表达系统,证明了这样的算法不存在。虽然Lambda算子能表示任何计算,但它使用的数学技巧难以理解和使用。大西洋的另一边,图灵想出了自己的方法,也解决了这个问题。

2.图灵机

图灵提出了一种假想的计算机,即“图灵机”,拥有与Lambda算子同等的计算能力,但数学模型更为简单,因此在计算机领域更受欢迎。图灵机是一台理论计算设备,① 有无限长的纸带,纸带可以存储符号,② 还有一个读写头,可以读写纸带内容,③ 以及一个状态变量,用于保存当前状态,④ 还有一组规则,描述机器根据当前状态和读写头看到的符号,决定做什么。图灵机每次输出的结果可能是在纸带上写入一个符号,或者更改状态,或者将读写头移动一格,也可能是让机器HALT(停机),或者是这些动作的组合。

在开机前,先要定义图灵机的规则,即根据当前状态值与当前读入的符号决定要执行的操作,这就像是在给图灵机写一个运行程序。然后还要给“状态”设定一个初始值。接下来就可以开机,开始读取纸带。机器可能执行直到停机,或者一直不停执行下去。

图灵证明了这个简单假想机器,如果有足够时间和内存,可以执行任何计算。它是一台通用计算机,可以创造各种复杂的程序,虽然这样做效率低,但是在理论上是可行的。与图灵机同样强大的,是图灵完备,每个现代计算系统都是图灵完备的。

3.停机问题

为了解决可判定性问题,图灵先解决了另一个计算问题:停机问题,即给定图灵机程序和输入纸带,是否有算法可以确定机器会永远算下去还是到某一点会停机。假设有一台图灵机H,当输入程序(即定义的规则)和纸带(纸带上的数据作为输入)时,图灵机执行这个程序,就可以判断给定的纸带输入运行到最终是否会停机,输出Yes表示会停机,或者输出No表示不会停机。(具体这个程序是怎么实现的就不用考虑了,就假定它能够实现。)

换句话说,这台图灵机是一个强大的执行设备,它需要两个输入,一个输入是要执行的程序,这里假定这个程序叫getHalt();另一个输入是要判断的内容data,也就是getHalt()程序的参数,用纸带来输入。纸带上的内容data可以是任何代码、数据,这个getHalt(data)总是能够判断纸带上的data执行到最后是否会停机。

另外再设计一台新图灵机,叫“异魔”。异魔也需要输入一个程序,以及用纸带输入的要处理的内容data。异魔运行的这个程序就假定为getHalt2(data),纸带输入的内容是作为异魔运行的程序的参数。异魔的内部有一台图灵机H,当开机运行后,先将纸带内容送入内部的图灵机H中计算(这相当于在问图灵机H,纸带输入的内容是否会停机),如果内部的图灵机H输出的结果是Yes(表示图灵机H判断这个纸带内容会停机),那么异魔的程序就接着执行一段无限循环的程序;如果内部的图灵机H输出的结果是No(表示图灵机H判断这个纸带内容不会停机),那么异魔的程序就向外输出No并且停机。

换句话说,异魔的程序getHalt2(data) 中先调用了getHalt(data) 这个程序。执行getHlat2()时,如果getHalt()程序输出Yes,那么就去执行一段无限循环的程序,这样异魔的程序就永远不会停机;如果getHalt()程序输出No,并停机。

然后,将异魔的程序getHalt2()的代码写在纸带上,作为输入,(也就是给异魔的两个输入是完全相同的,只不过一个被当做程序来执行,另一个被当做数据来处理)送入异魔。同样地,这段纸带上输入的data(也就是异魔程序代码getHalt2() )会先被送入异魔内部的图灵机H进行判断,这相当于在问图灵机H,异魔程序能否停机。如果内部的图灵机H输出Yes(即图灵机H判断异魔会停机),接下来异魔的getHalt2()代码会执行一段无限循环的程序,也就是说,实际结果是异魔不会停机;如果内部的图灵机H输出No(即图灵机H判断异魔不会停机),接下来异魔的getHalt2()代码会输出No并停机,也就是说,实际结果是异魔会停机。

这样,就形成了一个悖论!停机问题无法通过图灵机来解决,也就无法通过计算来解决。停机问题证明了,不是所有问题都能用计算来解决。丘奇和图灵证明了计算机能力有极限,这起步了可计算性理论,现在叫“丘奇-图灵论题”。

2.破解英格玛机

二战期间,图灵帮助盟军破解德国“英格玛”机加密的军事信息。英格玛机会加密英文明文,有上亿种可能的组合。德军通信双方都有一台英格玛机,也知道正确的齿轮和插头设置,就可以正常通信。不过英格玛也有缺陷,那就是转换后的加密字符与明文字符一定是不相同的。图灵在前人的成果上设计了一个机电计算机,Bombe,利用了这个缺陷,大大减少了搜索量。德军会经常更新密码。整个战争期间,图灵都和同事一起努力破解密码。

3.图灵测试

战后图灵继续致力于学术。他最有名的战后贡献是“人工智能”。1950年,图灵设想了未来的计算机,并提出:如果计算机能够欺骗人类相信它是人类,才算是智能。这就是智能测试的基础,即图灵测试:一个被测试者使用文字消息的形式与两个“人”交流,其中一个是机器人,如果被测试者无法分辨哪一个是人类,哪一个是机器人,那么这个机器人就通过了测试。

基于这个测试,衍生出了现在的验证码,用于防止机器人冒充人类乱发垃圾信息等。

4.悲剧

图灵那个时代,同性恋是违法的,在英国和大部分国家都是。1952年当局在调查他家的入室盗窃案时,了解到他的性取向,于是起诉他“行为严重不检点”。图灵被定罪,他面临要么入狱要么接受激素来压制性欲的选择。部分原因是为了学术,他选择了后者。但是药物改变了他的情绪和性格。1954年,图灵吃下了含有氰化物的苹果,服毒自尽。

图灵贡献巨大,许多事物以他的名字命名。比如“图灵奖”,这是计算机领域的最高奖项,相当于化学、物理等领域的诺贝尔奖。


总结

本篇内容:阿兰·图灵

猜你喜欢

转载自blog.csdn.net/Dr_Cheeze/article/details/128091518