【计算机科学速成课】[40集全/文字版] - 15.阿兰·图灵

(。・∀・)ノ゙嗨,欢迎阅读计算机科学速成课!

前几集我们聊了基础,比如函数,算法和数据结构,今天,我们来看一位对计算机理论贡献巨大的人,计算机科学之父,长得不怎么像本尼的阿兰·图灵。阿兰·马蒂森·图灵于1921年出生在伦敦,从小就表现出惊人数学和科学能力,他对计算机科学的建树始于1935年,当时他是剑桥国王学院的硕士生,他开始解决德国数学家大卫·希尔伯特提出的问题,叫Entscheidungsproblem(德语),即"可判定性问题"。

是否存在一种算法,输入正式逻辑语句输出准确的"是"或"否"答案?,如果这样的算法存在,可以回答比如"是否有一个数大于所有数",不没有我们知道答案,但有很多其他数学问题,我们想知道答案。所以如果这种算法存在我们想知道,美国数学家阿隆佐·丘奇于1935年首先提出解决方法,开发了一个叫"Lambda算子"的数学表达系统。证明了这样的算法不存在,虽然"Lambda算子"能表示任何计算,但它使用的数学技巧难以理解和使用,同时在大西洋另一边,阿兰·图灵想出了自己的办法来解决"可判定性问题",提出了一种假想的计算机,现在叫"图灵机"

图灵机提供了简单又强大的数学计算模型,虽然用的数学不一样,但图灵机的计算能力和Lambda算子一样,同时因为图灵机更简单,所以在新兴的计算机领域更受欢迎。因为它如此简单,我现在就给你解释,图灵机是一台理论计算设备,还有一个状态变量,保存当前状态,还有一组规则,描述机器做什么,规则是根据当前状态+读写头看到的符号,决定机器做什么。结果可能是在纸带写入一个符号,或改变状态,或把读写头移动一格,或执行这些动作的组合,为了更好理解,讲个简单例子:

让图灵机读一个以零结尾的字符串,并计算1的出现次数是不是偶数,如果是在纸带上写一个1,如果不是,在纸带上写一个0,首先要定义"图灵机"的规则,如果当前状态是"偶数"当前符号是1,那么把状态更新为"奇数",把读写头向右移动,如果当前状态为偶数,当前符号是0,意味着到了字符串结尾。那么在纸带上写一个1,并且把状态改成停机(halt),状态改为"停机"是因为图灵机已完成计算,但我们还需要2条规则,来处理状态为奇数的情况。一条处理奇数+纸带是0的情况一条处理奇数+纸带是1的情况,最后,要决定机器的初始状态,这里定成"偶数"

定义好了起始状态+规则,就像写好了程序,现在可以输入了,假设把"110"放在纸带上,有两个1,是偶数。如果"偶数"对你是新知识也许我们该开一门【十分钟速成课:数学】注意,规则只让读写头向右移动,其他部分无关紧要,为了简单所以留空,"图灵机"准备好了,开始吧。机器起始状态为"偶数",看到的第一个数是1,符合最上面那条规则,所以执行对应的步骤,把状态更新到"奇数",读写头向右移动一格。然后又看到1但机器状态是"奇数",所以执行第三条规则,使机器状态变回"偶数",读写头向右移动一格,现在看到0,并且机器状态是偶数,所以执行第二条规则,在纸带上写1,表示"真"的确有偶数个1,然后机器停机。这就是图灵机的原理,很简单对吧?

你可能想知道有什么大不了的,图灵证明了这个简单假想机器,如果有足够时间和内存,可以执行任何计算,它是一台通用计算机,刚才的程序就是个简单例子。只要有足够的规则,状态和纸带可以创造任何东西,浏览器魔兽世界任何东西!当然这样做效率很低,但理论上可行,所以图灵机是很强大的计算模型,事实上,就可计算和不可计算而言,没有计算机比图灵机更强大,和图灵机一样强大的,叫"图灵完备"。

每个现代计算系统比如笔记本电脑,智能手机,甚至微波炉和恒温器内部的小电脑,都是"图灵完备"的。为了回答可判定性问题,他把图灵机用于一个有趣计算问题:"停机问题",简单说就是,"给定图灵机描述和输入纸带,是否有算法可以确定,机器会永远算下去还是到某一点会停机?

我们知道输入110,图灵机会停机,因为刚做过这个例子,它最后停机了,但如果是更复杂的问题呢?有没有办法在不执行的情况,弄清会不会停机?一些程序可能要运行好几年,所以在运行前知道会不会出结果很有用,否则就要一直等啊等,忧虑到底会不会出结果,当几十年后变老了,再按强制结束,好悲伤!图灵通过一个巧妙逻辑矛盾证明了停机问题是无法解决的,我们来看看他的推理

想象有一个假想图灵机,输入:问题的描述+纸带的数据,输出Yes代表会"停机",输出No代表不会。我要给这台机器一个有趣的名字叫H,来自"停机"的第一个字母,不用担心它具体怎么工作,假设这样的机器存在就好毕竟重点是推论,图灵推理说:如果有个程序,H无法判断是否会"停机",意味着"停机问题"无法解决。为了找到这样的程序,图灵用H设计了另一个图灵机。如果H说程序会"停机",那么新机器会永远运行(即不会停机)如果H的结果为No,代表不会停机。那么让新机器输出No,然后"停机",实质上是一台和H输出相反的机器。如果程序不停机,就停机,如果程序停机,就永远运行下去,我们还需要在机器前面加一个分离器。让机器只接收一个输入,这个输入既是程序,也是输入,我们把这台新机器叫异魔

目前为止,这个机器不难理解,但接下来马上会变复杂,会有点难懂,如果把异魔的描述,作为本身的输入会怎样,意味着在问H,当异魔的输入是自己时会怎样,但如果H说异魔会停机,那么异魔会进入无限循环,因此不会停机。如果H说异魔不会停机,那么异魔会输出No然后停机,所以H不能正确判定停机问题,因为没有答案,这是一个悖论

意味着"停机问题"不能用图灵机解决,还记得刚刚说:图灵证明了图灵机可以实现任何计算,"停机问题"证明了,不是所有问题都能用计算解决。哇,好难理解,我都可能要再看一遍,长话短说,丘奇和图灵证明了计算机的能力有极限,无论有多少时间或内存,有些问题是计算机无法解决的,丘奇和图灵证明了计算是有极限的。起步了可计算性理论,现在叫"丘奇图灵论题",当时是1936年,图灵只有24岁,他的职业生涯才刚刚开始,从1936年到1938年在丘奇指导下,他在普林斯顿拿到博士学位,毕业后回到剑桥

1939年后不久,英国卷入第二次世界大战,图灵的才能很快被投入战争,事实上,在战争开始前一年,他已经在英国政府的密码破译学校兼职。位于"布莱切利园"的一个密码破译组织,他的工作内容之一是破解德国的通信加密,特别是"英格玛机"加密的信息。简单说,英格玛机会加密明文,如果输入字母HELLO,机器输出XWDBJ,这个过程叫"加密"。文字不是随便打乱的,加密由"英格玛机"顶部的齿轮组合决定

每个齿轮有26个可能位置,机器前面还有插板,可以将两个字母互换,总共有上十亿种可能,如果你有"英格玛机",并且知道正确的齿轮和插头设置。输入XWDBJ,机器会输出hello,解密了这条消息,当然,德军不会把机器设置发到微博上。盟军必须自己破译密码,有数十亿种组合,根本没法手工尝试所有组合,幸运的是,英格玛机和操作员不是完美的,一个大缺陷是:字母加密后绝不会是自己,H加密后绝对不是H。

图灵接着之前波兰破译专家的成果继续工作,设计了一个机电计算机,叫Bombe,利用了这个缺陷,它对加密消息尝试多种组合。如果发现字母解密后和原先一样,我们知道英格玛机决不会这么做,这个组合会被跳过,接着试另一个组合,Bombe大幅减少了搜索量。让破译人员把精力花在更有可能的组合,比如在解码文本中找常见的德语单词,德国人时不时会怀疑有人在破解,然后升级英格玛机,比如加一个齿轮,创造更多可能组合。他们甚至还做了全新的加密机,整个战争期间,图灵和同事在布莱切利园努力破解加密,解密得到的德国情报,为盟军赢得了很多优势

有些史学家认为他们把战争减短了好几年,战后,图灵回到学术界为许多早期计算机工作做出贡献,比如曼彻斯特1号,一个早期有影响力的存储程序计算机,但他最有名的战后贡献是"人工智能",这个领域很新,直到1956年才有名字。这个话题很大,以后再谈(第34集),1950年,图灵设想了未来的计算机,拥有和人类一样的智力,或至少难以区分。图灵提出如果计算机能欺骗人类相信它是人类,才算是智能,这成了智能测试的基础,如今叫"图灵测试",想像你在和两个人沟通不用嘴或面对面,而是来回发消息,可以问任何问题,然后会收到回答,但其中一个是计算机,如果你分不出哪个是人类,哪个是计算机,那么计算机就通过了图灵测试。这个测试的现代版叫,"公开全自动图灵测试,用于区分计算机和人类",简称"验证码"

防止机器人发垃圾信息等,我承认有时我都认不出那些扭曲的东西是什么字,这难道意味着我是计算机?通常这个系列我们不会深入历史人物的个人生活,但图灵与悲剧密不可分,所以他的故事值得一提,图灵那个时代,同性恋是违法的,英国和大部分国家都是,1952年调查他家的入室盗窃案时,向当局暴露了他的性取向,被起诉"行为严重不检点",图灵被定罪,有2个选择:1入狱2接受激素来压制性欲,他选了后者,部分原因是为了继续学术工作,但药物改变了他的情绪和性格,虽然确切情况永远无法得知。图灵于1954年服毒自尽,年仅41岁,由于图灵对计算机科学贡献巨大,许多东西以他命名。其中最出名的是"图灵奖",计算机领域的最高奖项,相当于物理化学等其它领域的诺贝尔奖。

虽然英年早逝,但图灵激励了第一代计算机科学家,而且为如今便利的数字时代做出了重要基石性工作

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值