一张通往计算机世界的地图


来源:原理(公众号ID:principia1687)

概要:计算机科学如今已经扩展出了很多相互关联的分支,但我仍然把整个学科分成三个部分:计算机理论,计算机工程,以及计算机应用。


我们通过计算机来拓展我们自己的大脑。最开始计算机被用来解决和算数有关的问题,但其自身的价值很快地延伸到了各个领域。像是运行互联网络,处理实时图像,制造人工智能,以及模拟整个宇宙等等。而其神奇的地方就在于这一切强大功能的背后,竟然仅是 0 和 1 的来回变化。


计算机正以无法置信的速度变小变快。现在手机的计算能力已经超过了60年代超级计算机计算能力的总和。当年阿波罗11号的整个登月系统如今甚至只需要在两个任天堂就能完成。计算机科学总的来说就是研究计算机能做什么。计算机科学如今已经扩展出了很多相互关联的分支,但我仍然把整个学科分成三个部分:计算机理论,计算机工程,以及计算机应用。


计算机理论


 第一大分支:计算机理论。 | 图片来源:Dominic Walliman 


讲到计算机理论。我们得从计算机之父,创造了图灵机(Turing Machine)的阿伦·图灵讲起。图灵在一篇名为《论可计算机器判定问题的应用》一文中首次定义了“有限次运算”并提出了图灵机的原型。图灵机是一个对现在通用计算机的一个简单的描述,而并非一个实体的机器。之后的科学家们提出了很多计算机模型,但这些模型的根本都是图灵机。所以说图灵机也是现代计算机的理论基础。


图灵机由几个部分组成,一个写有符号的无限长的带子,一个可以在带子上读写的读写头,一个储存当前状态的状态寄存器,以及一串命令。在如今的电脑上,带子就是现在的内存(当然不再是无限大的),读写头就是现在的处理器(CPU)。命令串被存在电脑的内存里。虽然图灵机是一个简单的描述,但也却是对电脑设计的一个非常全面的描述。现在的计算机当然由更多部分组成,例如硬盘,键盘,音响,显卡,屏幕等等,但其运行原理皆在图灵机概念的之内。


 图灵机与现代计算机。 | 图片来源:Dominic Walliman 


图灵通过对机器的描述为计算机的发展奠定了基础。然而与此同时,我们更加不能忘了另外一位与图灵密切相关的计算机科学家,他的博士导师——阿隆佐.丘奇。丘奇发明了lambda算子,通过整套严谨的数学理论描述出了计算机运算的概念。所有能用图灵机解决的问题都能用lambda算子进行等价的计算。如果图灵机的思想代表了算法和机器的原型,那么lambda算子则是现在所有的编程逻辑和语言的基础。


正如最开始说到的,在计算机理论中最基础的问题就是计算机是万能的吗?如果不是,它能做或不能做什么呢。这个问题直接在计算机理论这个分支中延伸出了一个领域——可计算性理论(Computability Theory)。可计算性理论是一个用来确定哪些问题能够用图灵机进行计算并得出最终结果的学科。有些问题是本身是不可能用计算机得出结果的,其中最著名的代表就是停机问题。总结来说,停机问题代表着一些无法确定计算机程序是否会无限运行的问题。图灵却巧妙地运用了自洽的概念证明了只要没有跳出图灵机的范畴,计算机都不是全能的。有些问题穷计算机的一生也是无法得到解决的。


 复杂度理论分类。 | 图片来源:Dominic Walliman 


在可以用计算机解决的问题中,也有很多问题需要花太长的时间来解决(甚至可能超过宇宙能存在的时间)。基于此,计算复杂度(Computational Complexity)理论便成为了计算机理论中另外一个重要的组成部分。复杂度理论基于解决一个问题所需时间随问题输入增大而增大的程度,将问题分类成P类问题(例如将数列从小到大排序),NP类问题(例如在指定城市内寻找一条能遍历所有城市且总路程小于N的路线)等等。虽然现实中有很多问题在理论上是不可以被解决的,但计算机科学家们可以通过一些技巧上的简化来得出大概的答案,然而没人可以确定这些答案是否是最佳答案。正如上述NP问题中我们能在多项式级时间内找到遍历所有城市且总路程小于N的路线,但却不能在多项式级时间内找到最短的路程。


 算法及算法复杂度。 | 图片来源:Dominic Walliman 


计算机理论这一分支也包含了对算法(Alogorithm)和信息理论的研究。算法是独立于所有的编程语言以及计算机硬件的解决问题的套路。算法是创建程序的基础,很多计算机科学家都致力于通过研究算法而找到解决问题的最优解。比如不同的算法可能可以解决同样的问题并得到相同的结果,像是将杂乱无章的数字从小到大排序。但有些算法却比另一些更加快速有效。而这些都属于算法复杂度这一领域。


信息理论(Information Theory)通过研究信息的性质,研究信息如何被接受,储存,以及传播。例如如何在保留大多数甚至所有信息的基础上压缩信息,使得我们能用更少的内存来储存这些信息。编码理论(Coding Theory)和加密理论(Encryption Theory)也是信息理论中非常重要的一个部分。这两个理论使用复杂的数学作为辅助,将传输的信息进行重新的加密,使得信息在网络传输中的安全性得到了大大的增加。



 信息理论和密码学。 | 图片来源:Dominic Walliman 


以上就是计算机理论分支中非常重要的部分。当然除此之外,还有很多其他组成部分,包括逻辑学,图形学,计算几何学,自动机理论,量子计算,并行处理,数据结构等。这里不再一一列举。


计算机工程


第二大分支:计算机工程。 | 图片来源:Dominic Walliman 


计算机科学的第二个大的分支是计算机工程。设计计算机是一个很大的挑战,因为要考虑到从底层硬件到上层软件很多不同的方面。设计者必须保证计算机能够以尽量优化的方式解决尽量多的问题。处理器(CPU)是计算机的中心,计算机执行的所有任务都经过处理器,并通过其进行调度。在单个处理器处理多个任务的时候,处理器需要在每项任务中来回执行,所有任务都能在用户可接受的时间里完成。


任务的调度(Scheduling)是一个复杂的过程,由处理器中的调度器完成。调度器决定什么时候执行什么任务,并尝试用最优化的方式调度所有任务。在这种情况下,使用多核处理多个任务可以提升计算机执行的速度,因为每个任务现在可以由一个单独的核执行。但与此同时多核执行也使得调度器的设计更加复杂。而这些设计都隶属于体系结构(Computer Architecture)的研究范畴。不同的体系结构适合完成不同的任务。处理器(CPU)适合执行通用程序例如我们所用的操作系统。图像处理器(GPU)适合图像处理,例如我们玩的高画质的游戏,而现场可编程门阵列(FPGA)适合高速执行一些范畴非常狭窄的任务,比如挖比特币等。


单核与多核的调度。 | 图片来源:Dominic Walliman 


软件机编程语言(Software and Programming Languages)也是组成计算机工程的重要部分。在硬件之上有以各种编程语言写成的软件层。从底层的汇编语言到高层的Java语言,编程语言是程序员给计算机下达命令的语言,并以不同的语法特征编写不同特性的任务。例如我们汇编语言编写计算机底层的执行,用Java来编写网页应用。可想而知,越底层的编程语言越贴近计算机本身的结构,但越难让人们理解。然而无论多高层或底层的语言,最终都会被转化成处理器能执行的二进制码。这个转换机制由编译器通过一个或多个步骤完成。每个编程语言都会有它自己的编译器以便将程序翻译为可执行的二进制码并进行优化。编译器和编程语言的设计在计算机里非常重要,因为这些设计必须既简单适用,又灵活多变,使得程序员能够容易的将他们疯狂的想法付诸实践。


 编程语言及编译器。 | 图片来源:Dominic Walliman 


操作系统(Operating System)是计算机系统中最重要的软件,也是用户和计算机打交道必须通过的介质。操作系统在接受用户指令的同时控制着所有计算机的硬件。因此设计制造一款好的操作系统是一个很大的挑战。所以软件工程(Software Engineering)也因此成为了计算机工程分支的重要组成部分。软件工程师们通过设计软件,新的操作系统或和现有操作系统互动来告诉计算机在什么时候做什么。设计软件是一门艺术,需要工程师们将极富创造性的思维通过特定的编程语言转化成严谨的逻辑程序,并使得转化后的逻辑程序能够有效快速的在计算机上运行。因此,软件工程作为一项独立的学科也有很多设计思想和哲学供程序员们学习、使用以及研究。


 操作系统。 | 图片来源:Dominic Walliman 


当然,计算机工程还包含了许多其他的组成部分,例如实现多台计算机大规模协作的网络(例如淘宝的服务器),大数据存储(例如谷歌脸书中需要储存的个人信息),机器性能研究(例如编写大型软件作为测试计算机性能的基准)以及计算机图像处理(例如简单的美图秀秀)等。我们会在今后的文章中具体提到。


计算机应用


第三大分支:计算机应用。 | 图片来源:Dominic Walliman 


接下来讲讲计算机科学的第三个分支——计算机应用。这个分支旨在使用计算机来解决现实生活中的各种问题。当你出门旅游的时候你希望找到最大的旅游性价比,这就涉及到了使用计算机解决最优解(Optimisation)的问题。最优解问题自古以来也是生意场上最重要的部分之一,因为正确的解答该问题能为公司省下巨额的资金。然而最优解的问题有时可能无法用计算机有效地得到答案,例如上述提到的在所有城市中找到能遍历所有且最短的一条路程。于是有些人开始指望新的科技(例如人工智能或量子计算机),看他们是否能够为这类问题的解决带来转机。


人工智能(Artificial Intelligence)在计算机应用这个分支中占有举足轻重的地位。计算机拓展了我们的大脑,数倍地提高了我们的认知能力。前沿的人工智能研究正试图让机器像人类一样思考。人工智能的研究有很多部分组成,其中发展最迅速的当属机器学习(Machine Learning),让机器通过事先定下的算法,以大数据为输入进行学习,最终达到能准确分辨实物或作出决定的目的。这里最成功的例子当属谷歌AlphaGo接连大败围棋冠军的事情。除此之外机器学习也分成有监督(通过现有的样本对未知的数据分类),无监督(没有任何样本,单从数据中的某一特性将数据分类)与增强学习(例如训练之前很有名的一款小游戏flappy bird 中的小鸟。如果小鸟撞到柱子了,那就获得-1的回报,否则获得0回报。通过这样的若干次训练,我们最终可以得到一只飞行技能高超的小鸟,知道在什么情况下采取什么动作来躲避柱子)三种。除此之外,计算机视觉(Computer Vision)和自然语言处理(Natural Language Processing)也是人工智能中很重要的组成部分。计算机视觉希望通过图像处理让计算机能和人类一样分辨事物。自然语言处理则旨在让计算机和人类能够通过人类的语言进行交流,或以文字为输入进行对文字的分析。这些人工智能的各个领域我们今后也将会一一讨论。


 人工智能的领域。 | 图片来源:Dominic Walliman 


机器学习的成功大大受益于大数据(Big Data)的发展。于是大数据的研究也成为了计算机应用分支中很重要的领域。大数据的研究旨在总庞大的数据中找出有价值的信息。物联网(Internet of Things)更进一步为大数据的研究添砖加瓦,通过连接各种物体提供更庞大的数据。黑客(Hacking)技术不是一个正统的学术界领域,但在此也非常值得一提。黑客利用计算机系统及网络中的漏洞在不被别人发现的情况下在他人计算机系统中窃取他们所需要的信息,例如最近刚发生的针对windows操作系统漏洞的攻击。即便是如今的技术,对这些黑客的攻击也只能是一筹莫展。


除了上述的领域,计算机应用这一分支也利用计算机来研究科学问题,例如物理学和神经学。这个领域通常使用超级计算机来解决大规模的模拟(Simulation)问题。与此同时计算机应用还包括人机交互(Human Computer Interaction)的研究,旨在设计让用户更加轻松使用的计算机系统。同时,虚拟现实(Virtual Reality,例如戴在头上的VR眼镜),增强现实(Augmented Reality,例如之前很流行的一款pokemon go 的游戏)以及混合现实(Mixed Reality, 例如用手机扫描实体书的时候能看到网上的书评)的研究将虚拟和现实世界渐渐联系在一起。机器人(Robotics)的研究也将机器在形态和运动方式上和人更加相似。


如今的计算机仍然在高速发展。虽然在硬件方面的研究因为很难再将晶体管做小而遇到了瓶颈,计算机科学家们试图通过对其他领域的研究来解决这个问题。计算机对整个人类的发展有着至关重要的影响,所以计算机在今后的一个世纪将如何发展也成了科学家们争相追捧的问题。谁知道呢?可能到了未来的某一天我们都会多多少少以计算机的形式而存在在这个世界上。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

esxi root 密码规则_陌陌风控系统静态规则引擎aswan

陌陌风控系统静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为。【名词解释】策略原子:基于用户行为数据进行异常判断的基础元素,如设备黑名单、手机号黑名单等管控原子:用户命中策略原子后对…

DeepMind最新论文提出「Rainbow」,将深度强化学习组合改进

来源:本文经公众号「雷克世界」授权转载(微信号:ROBO_AI) 作者:DeepMind 编译:嗯~阿童木呀、多啦A亮 概要:在将强化学习(RL)扩展到复杂序列决策问题(sequen…

2018年人工智能将赋能所有行业,未来市场将超过400亿美元

来源:机械鸡 计算分析大数据绝不是一时性的。随着数据量的不断增长,分析大数据的方式也将改善。涉及到预测性分析的应用时,我们只看到冰山一角。它通过数据挖掘、机器学习、AI技术帮助组织机构分析现有数据,比如预测销售额、优化营…

评论后的Ajax和刷新分页,Wordpress Ajax 评论分页/翻页 – Fatesinger

WordPress 升级到4.4版本后源代码分页函数失效。只需要给paginate_comments_links函数加上个total参数就可以了。代码已更新。如果某篇文章评论特别多的时候,我们可以启用分页,但是想查看其他分页的评论就要刷新页面,但是文章内容是相同的&am…

深度丨我们可以有多信任人工智能

来源: 人工智能爱好俱乐部 概要:AI中通常,但也并非一定,由软件主导控制,然而软件很容易出现漏洞。鉴于这点,我们该如何确定AI本身是否足够可靠以完成其任务,或简单来说,我们可以有多…

科学:螳螂虾大脑拥有记忆和学习中心

来源:科学网 www.sciencenet.cn 概要:研究人员发现,螳螂虾的大脑含有被称为蕈形体的记忆和学习中心。迄今为止,这一结构仅在昆虫中见到。 螳螂虾或许拥有比此前认为的更加复杂的大脑。这是对包括螃蟹、虾和龙虾在内的200多种甲壳类…

大牛激辩:AI 该像婴儿一样生来就懂事,还是该从零学习?

来源:36氪 概要:人工智能的学习是否需要内置人类与动物与生俱来的那种认知手段来实现类似水平的一般智能? 人工智能的学习是否需要内置人类与动物与生俱来的那种认知手段来实现类似水平的一般智能? 虽然现在人工智能炒作得很厉害…

矿井通风计算c语言_矿井主通风机的技术发展现状与未来发展趋势

矿井安全的重要性人人皆知,矿井主通风机是确保井下正常通风的重要设备,不仅影响矿井的生产能力,而且对矿业的安全是至关重要的。国内矿用主通风机在经历了早期的离心风机以及七、八十年代以2K60、2K58为代表的轴流风机之后,目前市…

全球AI报告:探索人工智能革命

来源:199IT互联网数据中心 概要:报告认为,到2030年,AI将为全球经济贡献高达15.7万亿美元,比中国和印度目前经济产值的总和还多。 最近发布了一份名为“探索AI革命”的全球AI报告,强调人工智能如何增强企业的…

datetimepicker 更新值无效_文献阅读之Voronoi图的生成与更新

通俗的说,在机器人导航方面,Voronoi图是一种将地图分区的方法,分区的界限即Voronoi图的边,常用作机器人远离障碍物避障的规划路径。本文主要参考了 Boris Lau 的论文和代码,对Voronoi图的生成和更新进行分析。相关的3篇…

马化腾:我创办腾讯的这些年

来源:全球创新论坛 概要:回顾腾讯的创业之路,我觉得机遇很重要,至少占了五成。我不觉得自己特别聪明,做的东西也都是很简单的判断。在这个过程中,时代的因素也是非常重要的,很多机遇是外界赋予的…

谷歌全方位自曝Waymo无人车技术方案 | 42页报告要点解读+下载

李杉 夏乙 编译整理 量子位 出品 | 公众号 QbitAI 谷歌今天发布了一份无人车重磅报告:《通往完全自动驾驶之路》。 这份42页的报告从技术层面详细展示了谷歌Waymo无人车的软件、硬件、测试流程,还讲了无人车行驶的限制条件,“失败”时如何安全…

Gartner公布:2018年十大战略科技发展趋势 研发战略演进研究榜单

来源:壹佰案例 全球领先的信息技术研究和顾问公司Gartner公布了将在2018年对大部分企业机构产生显著影响的首要战略科技发展趋势。 Gartner将战略科技发展趋势定义为具有巨大颠覆性潜力、脱离初期阶段且影响范围和用途正不断扩大的战略科技发展趋势;这些…

“芯”战争,人工智能芯片研发攻略

来源:半导体行业观察、安信证券 概要:深度学习作为新一代计算模式,近年来,其所取得的前所未有的突破掀起了人工智能新一轮发展热潮。 在全球科技领域,人工智能无疑是最热门的领域。这种并不算新的应用场景将会带动新一…

红米k30pro工程测试代码_3299起?红米K30Pro官宣3.24发 对比米10 追悼会来了?

声音 | 小白今天上午,官方正式宣布将于 3月24日 下周二 举行Redmi K30 Pro旗舰新品线上发布会。有些尴尬的是,官方宣布的K30Pro发布会最终日期和早前卢伟冰预热的完全不一样...似乎也间接说明卢总的话也不能全信(华为P40系列全球发布会是3月26日&#xf…

Facebook打算与Google的人工智能一较高下吗?

译者:彭婷 概要:每年,一些个人爱好者和大型团队会构建人工智能机器人,以争夺“星际争霸”。今年,Facebook在悄无声息中也加入了这场比赛。如此一来,他们的较量情形会是怎样的呢? 每年&#xff0…

微云存照片会变模糊吗_手机自带微云台防抖,VivoX50系列不一般

喜欢我的文章吗?请点上方蓝色字体关注吧VIVO X50系列共发布三个版本:标准版,pro版,pro版。其售价格分别为:3498,4298,4998元。X50标准版很一般,完全不建议购买。毕竟都卖…

四大科技巨头都如何利用AI来相互竞争?

来源:全球人工智能 概要:想想时下大型科技公司悉数追逐的最火爆、竞争最激烈的那些行业:家居自动化,无人驾驶汽车,增强现实。而贯穿所有这些商业机会的主题又是什么呢?人工智能。 据国外媒体Fast Company报…

log4j 禁止类输出日志_SpringBoot统一日志处理原理

阅读推荐程序员跳槽时机已到,闲聊中面试官无意泄题SpringBoot作为日常开发利器,开箱即用,大量的star等已经成为节省开发的重要框架之一,但是各个框架的star中引入的日志框架却不尽相同,有的是log4j,有的是s…

AI 三大教父齐聚深度学习峰会,讨论尖端研究进展

来源:36氪 概要:近日,深度学习峰会正在加拿大蒙特利尔举行,有史以来第一次3位AI教父:Yoshua Bengio、Yann LeCun以及 Geoffrey Hinton聚在了一起出席RE•WORK举办的一个专题讨论会。 近日,深度学习峰会正在…