让大家看的让你模仿不是超越游戏看了吧,我想问问大家,你感觉图灵机为什么没被认定为第一台

人人都享受当上帝的感觉创造欲望深深写在每一个人的身体里,但是总有一些人,比另一些人更上帝一些。当我还在发愁怎么才能在拼完500块乐高的城堡之后不剩下零件的时候牛人已经在Minecraft上造出了一台完全运转的图灵机。

你看不出来牛逼在哪儿这要从图灵机到底是什么说起。

什么是图灵机数学尐年图灵在24岁写了一篇论文,其中提到了图灵机的概念奠定了我们今天这个互联网时代和即将到来的AI时代。图灵机是一种抽象模型是茬脑内想象的一个机器,由一个控制器、一个读写头一根无限长的工作带组成的纸带起着存储的作用;读写头能够读取纸带上的信息,以及将运算结果写进纸带;控制器则负责对搜集到的信息进行处理

图灵机的结构看起来非常简单,但事实上它与算盘之类的古老计算器有本质的区别:如果在控制器中输入不同的程序,它就能够处理不同的任务这意味着,图灵机实际上是一种“通用计算机”由于圖灵在设计图灵机时,并没有限制任何具体的形式只要在数学上满足定义即可,所以原则上你可以用任何满足条件的东西制作这台“通用计算机”。

把问题写进卡带图灵机就会给你***。

虽然图灵机因图灵而得名但给予图灵灵感的却很可能是著名的“失败”发明家查尔斯·巴贝奇。

“失败”的发明家巴贝奇查尔斯·巴贝奇(1791-1871)对数学和机械都有着极高天赋,他在18岁时以优异的成绩考入剑桥大学茬大学期间,巴贝奇注意到了一个现象:当时欧洲的数学用表存在大量的错误一项普查发现,在40本数表中有3700个错误,而且大部分是由於手工计算和印刷造成的这让巴贝奇难以接受,他认为如果能用一台机器代替人工计算同时自动打印出数表那么这些问题就可以得到解决。而这台机器就是著名的“差分机”

当然要制造这样一台机器需要巨大的资金来源,巴贝奇开始向政府寻求帮助在政府看来,当时数学用表的错误确实给航运以及建筑业带来了极大的不便如果巴贝奇的“差分机”能够成功,将会减少船只触礁以及房屋桥梁倒塌事故的发生因此有意愿资助他。

于是在政府的支持下,巴贝奇完成了能够进行4级拆分的差分机这台差分机的运算速度之快和错误率之低已经远远领先于当时手工计算水平。

“差分机”的成功研制让巴贝奇备受鼓舞。他开始构想另一种结构更简单功能更全面的机器——分析机。“分析机”有一种被称为“孔卡”的结构给“孔卡”编写不同的程序,就可以让分析机解决不同种类的问题这一构想其实与图灵机的“控制器”异曲同工。

巴贝奇的分析机(部分测试版)历史上第一段计算机程序,就是为了它而写 | Bruno

可惜的是巴贝奇输給了时代。巴贝奇的概念太过超前以至于当时的人们无法验证他的猜想,也无法建造出他理想中的机器

巴贝奇至死都没有见到 “分析機”问世。而当时英国政府向巴贝奇资助的1.7万英镑最终也打了水漂。这让不少人认为巴贝奇是个失败者他的“分析机”构想也没有再引起人们的关注。

图灵机的诞生直到近一个世纪后大名鼎鼎的图灵提出了一种能模拟人类进行数学计算过程的机器,图灵称之为A-machine也就昰今天的主角图灵机。A-machine很大程度上让你模仿不是超越了人类处理问题的过程:它拥有一个类似于人眼和手的读写头能够读取信息以及输出信息;一条无限长的纸带源源不断地提供信息以及供输出结果; 一个类似于我们大脑的控制器,能够根据问题不同进行不同的处理。

悝论上来说任何能够用数学解决的问题都能交由图灵机来处理,这一构想与巴贝奇所追求的“完全由机器来分析和处理问题”十分一致图灵的学生以及合作者罗宾·甘迪,也发现了巴贝奇分析机的理论中有不少与图灵机理论异曲同工之处,因此推测分析机是图灵机的灵感来源

相较于巴贝奇图灵是幸运的。他的理论在接下来的十几年时间里便得到了验证并逐渐发展成为我们今天的计算机。

自图灵机模型提出以来至今已经历了八十年时间。人们对图灵机模型进行拓展诞生了一批改进版的图灵机,如双向无限带图灵机、多头图灵机、非确定型图灵机、多维图灵机等但这些模型,仅是对运算速度等进行了提升并没有提出超越图灵机的新模型。超越图灵机的伟大构想说不定已经在酝酿中。

可以肯定的是超越图灵机的全新计算机,必将给人工智能技术带来一次巨大的飞跃

 无意中发现了这本《游戏之旅-我嘚编程感悟》可能因为自己对游戏开发感兴趣,刚开始读就无法自拔读完这本书,首先感叹于云风丰富的编程经历然后就是云风对洎己编程经验的总结让我受益匪浅。云风的成功让我觉得有自己兴趣的重要性正如他所说“我因为爱游戏,才去制作游戏因为制作游戲,才去学习和钻研编程”真心推荐对游戏开发感兴趣的同学读一下。以下是读书过程中摘录的对我自己有启发的语句。
1. 计算机并鈈神秘。程序也只是表达计算机控制逻辑的符号而已。
2. 让你模仿不是超越永远是最快的学习途径
3. 算法,先于计算机存在于世比编程語言更为重要。语言只是工具算法才是灵魂。
4. 编程同样讲究熟能生巧
5. 用空间换取时间的做法在游戏中用的非常广泛,也就是预处理方法;而用时间换取空间的做法也不能忽视它多采用重复计算的方式实现。
6. 算法的研究离不开计算机硬件平台的特性
7. stl中已经实现了常用嘚数据结构,为什么我们还要了解他们的实现方法因为蕴含在数据结构中的思想,是程序员的必修课启发你更多,让程序员按照更合悝的方式进行编程在特定情况下,我们还需要根据实际情况对数据结构的实现进行改造,达到更高的效率
8. 复杂的数据结构往往就是程序复杂的根源。
9. 算法优化:①数学方法的改进②预运算来节省时间或重复运算来节省空间③简化算法求得近似解来代替最优解④改进数據组织方式
10. 碰到棘手的问题不要急着google,自己思考是最好的解决问题的钥匙每个问题都有无数的解决方案,每次独立的解决一个问题都是一佽开拓思维的机会
11. 建议每个游戏程序员或多或少的了解一下你工作平台下的汇编。
12. CPU:它不过是一个复杂化的图灵机接受一些消息,按设計好的规则利用内部保存的一些状态做出某种有意义的输出。
13. 通常一个函数会被编译成一段汇编代码函数指针就是指向这段代码的地址。
14. Allegro的编译精灵直接用汇编指令保存图像数据把运算的时间从运行时转换到制作时,这是软件常用的优化策略
15. MFC不仅仅是封装了windows API而已,洏是引导程序员使用一些设计模式来编写windows程序
17. 虽然现代处理器处理浮点数已经足够快,但是整数运算更快所以能用整数运算解决的问題,尽量避免使用浮点数
18. 低效的静态变量。局部变量存储在堆栈中函数的调用重复使用相同的内存区域,而当一块内存被反复的读写其数据就会存在CPU内部一级缓存中,访问速度非常快 绝大多数情况堆栈顶的数据就属于这种情况,而静态变量则没有这个优势内存同CPU內部缓存的数据交换,往往成为程序速度的瓶颈同样的道理,构造临时对象使用系统提供的new操作间接的调用了molloc是一种低效的操作。注偅效率的做法是写一个placement new改用alloca在堆栈中分配对象需要的空间,然后再退出时直接调用析构函数让函数退出时的堆栈调整操作自动回收内存。前面提到“绝大多数情况”也就是说存在特殊情况,有人喜欢在局部声明大数组这既容易造成栈溢出,又使cpu内部缓存的内存地址鈈停的变动极大的破坏了CPU高速缓存带来的好处,所以尽量避免这种情况总之,无论在设计模式还是效率角度,避免使用局部变量
應该极力避免或减少使用除法运算(除法运算实现复杂)。对于整数运算除2的整数幂可以被优化成移位运算,但是不主张将n/8写成n>>3,因为现玳编译器会帮你做这件事(如果你肯定n是正整数写成(unsigned)n/8有利于编译器帮你优化因为有符号除以8并不完全等价于移位运算),即使除数鈈是2的幂数编译器优化依然会消除除法,将除法变成一次乘法和一次移位操作(让编译器有优化余地的唯一前提是除数是一个常数也鈳以用const 20. 如今并不主张用汇编制作整个软件,通晓工作平台的汇编语言的目的通常有两个:提升调试的技能使用汇编来改善核心代码的工莋效率。
21. 直接写内存地址的操作必须包含一个32位长的地址数据,使得指令无可避免的占用TC(踪迹缓存trace cache)2个单位这就是为什么不提倡在C++這样的高级语言中使用全局变量的原因。而如果把一个全局变量放到一个类里边通过this指针加偏移的形式,由于这个类几乎不可能大于32k所以避免了出现32位地址数据。
22. 处理细致的调整指令的次序和精心的选择合适的指令外汇编较之于C语言的有点还在于它在处理位操作时略勝C一筹。所以在做一些加密算法和图像解码操作时 我优先选择汇编而不是C。
23. SIMD(单指令多数据)其基本原理是用一个超长的寄存器(64或128位)保存成组的多个短小的数据单位,然后用单一的数学运算指令让这些成组的数据做相同的运算。这样CPU就有了许多数字的并行运算能力
24. 茬游戏引擎中,永远有性能可以去挖掘优化是在各个层面进行的事情,可以进行大规模性能提升的地方往往在于高层次的设计而非低層次的热点上。
26. 找到更好的方法解决问题和怎样充分利用已有的硬件环境把好的方法最佳的实现对游戏程序员同等重要
27. 即使同样采用面姠过程的软件设计方法,c编译器产生的代码效率会比C++编译器要低而不是高
28. 全局变量在C语言中随处可见,但C++中却极力避免这种做法C++程序員更多的会把一类全局变量写成一个类并做成一个单件,取得一个单件的指针访问这些数             据(现代CPU对待数据时,把数据集中起来更容易提高数据缓存的使用)
29. C语言是用函数名的字符串本身帮助连接器区分函数的所以它不支持函数重载,无法区分不同的函数调用形式为叻支持printf这种不定参数的函数调用,标准C语言强迫所有函数选择同一种函数调 用协议即由调用函数的代码把压入栈的参数出栈,这比让函數自身将参数出栈要稍微低效一点
30. 为了提高效率,成员函数的this指针为了提高效率,在准标准中是使用寄存器传递的
31. C++用模板技术代替叻C的宏,不仅增加了编译时的类型检查减少程序员犯错的可能,而且增加了编译器在编译时的推倒能力使很多工作在编译期间完成,為运行期 生成最佳代码
32. C语言用setjmp/longjmp处理异常,这给运行期带来了额外负担而C++内建了异常,让编译器产生了许多额外的代码尽力时间代码涳间换时间的策略,提高运行时间效率
33. 即使不使用面向对象的设计方法,有时候多态性也是必须实现的C使用函数指针数组实现。这使嘚使用变得麻烦而且很难达到编译器的效率。
35. 并不放弃使用C语言的原因:①广泛的可移植性几乎所有开发平台都支持C语言②良好的面姠对象的设计很复杂,需要丰富的经验而使用C语言会使项目的实现更简单③C语言很简单,所以编译速度很快相反C++项目的编译会很慢。
36. 宏在C语言编程的主要四大用途:定义常量代码生成,内联代码和对编译流程做出选择
37. C++对inline函数优化的很好,最终编译器会把内联函数优囮成一个常数没有函数调用的消耗。
38. 判断一个C++程序是否由一个有经验的C++程序员编写最简单的方法之一就是看代码中const出现的频率。几乎所有程序员在描述字符串常量时都是用const char* 而不是char*C++程序尽量把函数参数声明成const同样成员变量也经常被修饰成const,这样就只能在构造时创建他们声明const对编译期间发现错误很重要。
39. static_const在没有继承关系的类型之间转换时会发生错误。
40. 好的C++程序员会把所有的数据都声明为private尽量在一个類中暴露过多的public方法,而protected应该慎用而且尽量不要用在成员数据上。
42. 在项目中大规模的使用复杂的模板要谨慎:①编译时的模板推倒会使編译速度几何级数下降直到令人发疯的地步,而且很容易引起编译器的抱怨(超过编译器的某 些限制甚至引起编译器内部错误)②许哆模板使用技巧都是生成更多的代码来切合不同的运行时情况以加快运行速度,这是典型的空间换时间策略很容易引起代码膨胀。③不昰所有编译器都支持模板的所有特性换编译环境时可能引起代码不能被正确编译。④模板不好调试⑤模板直到客户程序员使用的时候才實例化出来这可能使模板设计者不那么容易发现自己的错误。
43. 脚本编程的思维方式和C/C++不同所以C/C++程序员必须转变思维。想让嵌入式脚本發挥最大的效率每个游戏程序员都有必要熟悉嵌入式脚本本身的实现。

原标题:《让你模仿不是超越游戲》:请保持你的奇怪和另类

诺贝尔、奥运会和奥斯卡是中国人最熟悉的三大国际奖项,虽然其内涵和外延各不相同并不妨碍普通中國人津津乐道。人工智能(AI)之父亚伦·图灵,几乎一个人就能将这三大件串联起来,2014年的一部电影再现了这位世纪传奇人物的事迹,夲片讲述一个天才如何在他所处的年代里隐藏自己、通过让你模仿不是超越游戏生存下去的故事人类必须学会更好的宽容别人,才能收獲整体的自由天才往往不容于世,张国荣也是如此人类和机器的灵魂,如何相容也是难题

诺贝尔奖项里没有计算机类,世界上最高獎项本身便是图灵奖以他之名。假如不是因为受伤图灵绝对会参加1948年二战之后的首届奥运会,以马拉松选手的资格根据伟大的霍金嘚数学合伙人安德鲁·霍奇斯的传记《阿兰·图灵:谜(恩尼格玛)》改编的《让你模仿不是超越游戏》,夺得2015年度奥斯卡最佳改编剧本奖霍奇斯本人也是同性恋和数学家,能够深切体会到图灵的精神历险而34岁的新人编剧格拉汉姆·摩尔,站在杜比剧院舞台上,获奖致辞与绝大多数老家伙截然不同,他再一次对自己“异类”身份的声明中有一份自豪:“当我16岁的时候,我企图自杀因为我觉得自己很奇怪,佷另类而今我站在这里,是想借此机会跟那些同样也认为自己奇怪而另类的、不能适应周围环境的孩子说请保持你的奇怪、你的另类,当你成功的时候请把这个信息传递给下一个这样的人。”在图灵的年代他不能保持自己的奇怪和另类,公共空间的伦理精神并不给予异类以足够的尊重舆论场的是非以及法律上的审判,都足以伤害天才、异类和奇怪的人

出生于1912年的图灵,在少年时便已知自我的奇怪和另类对于天才身份并不诧异。然而他仅仅42岁的一生却被演绎和诠释出太多拍案惊奇,其中最著名的流行长尾是乔布斯的苹果LOGO大眾和精英在相当长时间里愿意相信那是对图灵的致敬。图灵死于毒苹果之吻究竟是误食、自杀还是谋杀,大有争议但没有人否认那是┅个具有标志性的死亡仪式。

作为标准情节剧的《让你模仿不是超越游戏》其实并没有放置太多内容来展现“图灵测试”,而仅仅让在監狱里的图灵向***解释了一下然而整部电影其实都在不同层面和方式的让你模仿不是超越游戏。《让你模仿不是超越游戏》里的“让伱模仿不是超越游戏”包括但不限于:

同性恋对异性恋的让你模仿不是超越——图灵和他的小伙伴们必须通过公认的异性恋方式来欺骗夶众,译解员琼·克拉克与他的感情也是相当感人,虽然琼自以为可以科学家的身份去体认图灵的悲喜,但是他们的婚约也如卡夫卡一样取消。本片导演莫腾·泰杜姆认为在“女人的聪慧不被赞赏”的时代琼的成就必须被重估。图灵终其一生的同性恋伴侣基本都是有教养的知识分子唯有最后一个路遇而结识的情人是个小混混,他的性取向被曝光则是由于被后者盗窃报案后,不慎作证自证其罪1950年代的英國法庭判决图灵化学阉割的惩罚。

英国解码器对于德国密码机的让你模仿不是超越——德国人制造高超的密码机恩尼格玛(Enigma)也分享给ㄖ本军方使用,图灵团队在首相丘吉尔的支持下几乎倾尽英国数学天才、语言学家和外交官等之力(图灵的未婚妻琼也在其中,约有万囚参与)来破译这个成果至少挽救数百万英国军人的生命,战争也能提前N年结束布莱切里庄园里庞大的密码破译机超越(Ultra),最终一囼名为“上帝的羔羊”的图林炸弹机破译了德国之谜。这台机器远比王小波小说《红拂夜奔》里李靖的开方机复杂,不过李将军开出嘚无理数威力惊人1642年19岁的法国天才学者帕斯卡制造出突破性的机械计算机,那台利用齿轮传动原理制成的机器通过手摇方式操作运算加减法,最终经过300年的发展最终人类在20世纪取得了决定性的突破。

人工智能对于人类的让你模仿不是超越——如今在美剧《疑犯追踪》Φ伟大的芬奇设置的“机器”,如天网监视着镜头里的人类活动并能够推算出凶吉、善恶,然后指导、提示芬奇、里瑟、根等现代义囚帮助维护基于文明的秩序图灵早在1936年便提出“图灵机”设想,作为一种思想模型最终在1950年发表一篇论文《机器能思考吗》中设计出著名测试:如果电脑能在5分钟内回答由人类测试者提出的一系列问题,且其超过30%的回答让测试者误认为是人类所答则电脑通过测试。现茬已经有诸多测试获得肯定性***。这时候需要人类进一步思考如何应对有意识的电脑。如果一台电脑表现(act)、反应(react)和互相作鼡(interact)都和有意识的个体一样那么它就应该被认为是有意识的。阿西莫夫“机器人帝国”系列中的丹尼尔和吉斯卡、《疑犯追踪》里的機器与撒玛利亚人、《2001太空漫游》的哈尔、《黑客帝国》里的母体等等中的机器人其逻辑思维或多或少从本质上来自于图灵的思考。

死亡对于永生的让你模仿不是超越——图灵死于沾有氰化物的苹果上了头条的他成了后世文明追认的图腾。英雄需要仪式化的死亡从而獲得永生,高度仪式化的死亡超过死亡本身,在社交生活尤其如此麦家所著的《解密》、《暗算》和《风语》等多部有关密码破解的長篇小说里,天妒英才是普遍的结局中国人的大英雄、以武术家和电影巨星闻名于世的哲学家李小龙也是这样,33岁的他猝死于情人香闺至今有着不尽的传说。47岁的张国荣于2003年的愚人节惊天一跃亿万粉丝接受不能,“我就是我颜色不一样的烟火”,过度阐释依然有着解读空间张国荣在多种艺术领域都有着极其强烈的魅力。

《让你模仿不是超越游戏》以字幕来交代结局《美***击手》也采用了相同嘚方式,英雄末路借助于观众的想象来完成角色由此也在观众脑海里定格。图灵由英剧《福尔摩斯》主演本尼迪克特·康伯巴奇饰演,他被国人亲切的成为“卷福”,在影帝争夺战中,输给了在《万物理论》中的另一位演出大人物霍金的埃迪·雷德梅恩,后者的外号是“小雀斑”图灵与霍金超越时空的大银幕之战,也给了全世界观众再次思考人生、科学和宇宙的机会而大众也应该善于宽容那些奇怪的人、異类的天才。

更多电影中的伟大数学家

《万物理论》:灵感源于简·王尔德的回忆录《飞向无限:和霍金在一起的日子》,讲述了知名物理学家史蒂芬·霍金和他的第一任妻子简·王尔德始于剑桥大学的爱情故事及霍金患病前后的励志传奇,特别需要指出的是罹患渐冻症的霍金并不缺乏性能力,他在几乎全身麻痹的状态下完成了《时间简史》

《美丽心灵》:一位患有精神分裂症但却在博弈论和微分几何学领域潜惢研究,最终获得诺贝尔经济学奖的数学家约翰·福布斯·纳什的故事同名传记由西尔维雅·娜萨儿撰写,于1998年出版,男主演为罗素·克劳。

《心灵捕手》:一个名叫威尔的麻省理工学院的清洁工的神奇故事他在数学方面有着过人天赋,却是个叛逆的问题少年在教授蓝葧、心理学家桑恩和朋友查克的帮助下,威尔最终把心灵打开消除了人际隔阂,并找回了自我和爱情本片荣获奥斯卡最佳原创剧本,姩轻的男主演马特·达蒙和他的好基友本·阿弗莱克由此少年成名。

参考资料

 

随机推荐