专栏名称: 人工智能学家
致力成为权威的人工智能科技媒体和前沿科技研究机构
目录
相关文章推荐
爱可可-爱生活  ·  【[23星]iFormer:为移动应用打造的 ... ·  15 小时前  
爱可可-爱生活  ·  【[37星]Ola:打破多模态边界,实现图像 ... ·  昨天  
宝玉xp  ·  GitHub ... ·  昨天  
黄建同学  ·  John Rush对24+种AI编码 ... ·  3 天前  
51好读  ›  专栏  ›  人工智能学家

计算机科学最重要的3个问题

人工智能学家  · 公众号  · AI  · 2024-08-18 17:59

正文


来源:图灵人工智能

计算机科学探索信息处理和系统设计

计算机科学是研究信息和信息处理过程,以及它们与计算机系统的设计、实现和应用的科学。它不仅仅关注计算机本身的硬件设备,更重要的是涉及到软件系统的理论基础、设计、开发和应用。因此通才讲堂的第十三课是计算机科学课。

如何设计计算机?

计算机设计涉及创建计算机的硬件架构和系统结构,包括处理器、存储器、输入输出设备以及这些组件之间的连接和通信方式。设计高效、可靠的计算机硬件是实现现代计算能力的基础。

冯·诺伊曼: ·诺依曼架构

所有现代计算机使用的架构!

约翰·冯·诺伊曼, 美籍匈牙利人,20世纪最具影响力的计算机科学家、数学家和物理学家之一。他出生于匈牙利布达佩斯,在年轻时展现了卓越的数学天赋。他先后在柏林大学和汉堡大学任教,后受邀前往美国普林斯顿大学担任数学教授。 在普林斯顿,他与阿尔伯特·爱因斯坦等科学巨擘共事,并在第二次世界大战期间参与了曼哈顿计划,为核武器的研制做出了贡献。

冯·诺依曼生活在20世纪中叶的美国,这是一个科技飞速发展的时期,尤其是在第二次世界大战及其后的冷战背景下,计算技术的发展受到了前所未有的重视。 在这个时期,计算机从最初的机械式计算设备转变为能够执行复杂计算和任务的电子机器。

冯·诺伊曼的理论核心在于他对计算机架构的贡献,特别是存储程序概念的提出。意思是,计算机的程序存储在内存空间内,程序由一系列指令组成,这些指令可以被读取和执行。

此前,计算机程序通常被硬编码在机器里,修改程序需要重新配置或重建硬件。冯·诺依曼架构的引入,使得计算机能够通过读取存储在内存中的指令来执行操作,极大地提高了计算机的灵活性和功能性。

例如,ENIAC是世界上第一台通用电子计算机,但它的编程需要手动重新连接电缆和开关。引入冯·诺伊曼架构后,计算机如EDVAC能够通过内存中的程序来改变其功能,极大地提高了编程效率。

具体来说,冯·诺伊曼架构由以下几个主要部分组成。 中央处理器(CPU)是计算机的核心部件,负责执行存储在内存中的指令。它包括运算器(ALU)和控制器(CU)。内存用于存储程序和数据。输入输出设备用于与外部环境进行交互,如键盘、显示器等。

几乎所有现代计算机,包括个人电脑、服务器和智能手机,都采用冯·诺伊曼架构。这种架构的灵活性使得计算机能够运行从操作系统到应用软件的各种程序,满足多样化的计算需求。

冯·诺伊曼架构奠定了现代计算机设计的基础。他的贡献不仅改变了计算机的设计方式,还极大地推动了计算机技术的进步和应用,深刻影响了我们的现代生活。

费曼:量子计算机

基于量子力学原理的计算机!

理查德·费曼,20世纪美国物理学家。他出生于美国纽约,在普林斯顿大学获得博士学位,同年参加“曼哈顿计划”。他曾在加州理工学院教授物理学,还撰写了多本广受欢迎的科普书籍,如《别闹了,费曼先生!》。

20世纪下半叶,计算机技术迅猛发展,经典计算机在科学研究、商业应用和日常生活中发挥了越来越重要的作用。 然而,随着计算需求的增加,经典计算机在处理某些复杂问题时显现出性能瓶颈。 例如,模拟分子行为、优化复杂系统和破解密码等问题需要巨大的计算资源。与此同时,量子力学的发展为解决这些问题提供了新的理论基础。

费曼提出了量子计算机的概念。 他在1982年的一次著名讲座中首次阐述了量子计算的基本思想,并指出量子计算机可以在某些问题上远超经典计算机。

量子计算机利用量子力学原理来执行计算,其核心在于量子比特的使用。 与经典比特只能取0或1的状态不同,量子比特可以处于叠加态,即同时取0和1的状态。此外,量子比特之间可以存在纠缠态,使得它们的状态相互关联,即使相距甚远。

量子计算的基本思想是,借助量子叠加和量子纠缠,实现量子 并行计算 。量子并行计算允许量子计算机同时处理多个计算路径,从而大幅提高计算速度。

可以将量子计算机比作一个超强大的图书馆管理员。在经典图书馆中,管理员需要逐本检查每本书来找到所需的信息(经典计算),而在量子图书馆中,管理员可以同时打开所有的书并找到信息(量子并行计算)。

量子计算机在模拟量子系统方面具有天然优势。 经典计算机在模拟分子行为和化学反应时面临巨大的计算挑战,而量子计算机可以高效模拟这些复杂系统。这一能力为药物设计、新材料发现和基础物理研究带来了新的希望。例如,IBM和谷歌等科技巨头正在积极研究量子计算在量子化学中的应用,期望通过量子模拟加速科学发现。

自然界不是经典的,混蛋,如果你想模拟自然,就必须使用量子力学。——费曼

费曼提出的量子计算机概念开辟了一个全新的计算范式,使得科学家们开始探索量子力学在计算领域的应用。如今,全球各地的研究机构和科技公司都在积极投入量子计算的研究和开发,争取在这一前沿领域取得突破。

帕特森:精简指令集

简单带来效率!

大卫·帕特森,依然在世的美国计算机科学家,当代计算机科学领域的杰出人物之一。他出生于美国,在加州大学洛杉矶分校获得计算机科学博士学位,成为加州大学伯克利分校的教授。

20世纪70年代末和80年代初,计算机技术迅猛发展,计算机系统的复杂性也在不断增加。 当时的计算机处理器普遍采用复杂指令集计算机(CISC)架构,如英特尔的x86架构,试图通过提供丰富的指令集来提高处理器的性能。 然而,CISC架构带来了设计复杂、执行效率低和功耗高等问题。

帕特森和他的团队提出了精简指令集计算机(RISC)架构,旨在通过简化处理器的指令集来提高执行效率和降低功耗。

可以把RISC架构比作一个简化但高效的生产线。想象一个制造工厂,以前的生产线(CISC架构)有许多复杂的机器,每台机器可以完成多个步骤,但需要大量的时间和能量。 而新的生产线(RISC架构)则采用了简单但高效的机器,每台机器只负责一个步骤,但执行速度快且耗能少。 通过这种简化和分工,整个生产线的效率得到了显著提高。

ARM处理器是RISC架构的成功典范。ARM处理器因其低功耗、高性能和灵活性广泛应用于移动设备、嵌入式系统和物联网设备中。 如今,全球大多数智能手机和平板电脑都使用ARM处理器。

帕特森提出的RISC架构的理念迅速引起了广泛关注,并在高性能计算和移动设备中得到了广泛应用,为现代计算机设计带来了革命性的变革。

如何编写软件程序?

编写软件程序是指使用编程语言撰写代码,以创建执行特定任务的计算机程序。 软件程序是计算机系统的灵魂,驱动硬件执行各种任务。

巴科斯:高级编程语言

简化编程过程!

约翰·巴科斯,20世纪美国计算机科学家。他出生于美国宾夕法尼亚州费城,曾入伍美国陆军,在哥伦比亚大学获得了数学学位,随后在IBM工作。

20世纪50年代初,计算机技术正处于快速发展的阶段。 早期的计算机,主要依靠机器语言和汇编语言进行编程。这些低级语言直接操作计算机的硬件,编写和调试过程复杂且容易出错。 随着计算机应用的不断扩展,科学家和工程师们迫切需要一种更高效、更易用的编程方法,以应对日益复杂的计算任务。

巴科斯和他的团队开发了FORTRAN,世界上第一个广泛使用的高级编程语言,使编程更加接近人类自然语言。 FORTRAN大幅简化了程序编写,使得科学家和工程师能够专注于解决实际问题,而不是纠结于底层的硬件操作。

想象你要建造一座房子,低级语言就像是你必须亲自去每个工地上指挥工人,而高级编程语言则像是你只需提供一份详细的蓝图,工人们便能根据蓝图自动完成建造工作。FORTRAN就是这种“蓝图”,它让程序员可以用更接近自然语言的方式编写代码,计算机则负责将这些代码转化为具体的机器操作。

工程师们使用FORTRAN进行结构分析和模拟,如桥梁和建筑物的设计。FORTRAN的高效计算和对数学表达式的支持,使得工程模拟变得更加精确和高效。例如,NASA使用FORTRAN进行火箭和航天器的设计和模拟,确保其安全性和可靠性。

巴科斯的工作不仅简化了编程过程,还奠定了现代编程语言设计的基础。 它使得编程不再局限于少数专家,而是让更多的科学家和工程师能够参与到程序开发中来。

戴克斯特拉: 结构化编程

简单和清晰带来可靠!

艾兹赫尔·戴克斯特拉, 20至21世纪荷兰人,计算机科学领域的一位杰出人物。他出生于荷兰鹿特丹,他的父亲是一位化学家,母亲是一位数学家。他在阿姆斯特丹大学获得博士学位,成为欧洲最早的计算机科学研究人员之一。

20世纪60年代,计算机技术迅速发展,软件规模和复杂性也不断增加。随着计算机应用的扩展,软件系统变得越来越庞大和复杂,开发过程中出现了许多问题,如代码难以理解、维护成本高和错误难以排除。 戴克斯特拉的工作时期正值软件工程面临重大挑战的时刻,即如何高效、可靠地开发越来越复杂的软件系统。

戴克斯特拉的结构化编程理论主张通过引入清晰的控制结构来改善软件的编写和维护过程。 他提倡的结构化编程包括三种基本的控制流结构:顺序、选择(如if/else语句)、和迭代(如while或for循环)。 戴克斯特拉反对使用无限制的跳转语句(如goto),因为这会导致程序流程难以跟踪。

简单性和直接性是可靠性的两个基本要求。——戴克斯特拉

可以将结构化编程比作搭建积木模型。想象你要搭建一个复杂的城堡,直接把所有积木随意堆砌在一起会导致混乱和不稳定。而使用结构化编程的方法,则像是将城堡分成多个模块,每个模块负责一个部分,并且按照清晰的步骤进行搭建。这样不仅使得城堡结构稳定、易于管理,还能方便地进行修改和扩展。

大型企业软件系统,如银行的交易处理系统,通常具有复杂的业务逻辑和高可靠性的要求。通过结构化编程方法,可以将系统的各个功能模块化,每个模块负责特定的业务功能。

他的理论和实践显著提高了软件的可理解性和可靠性,极大地影响了软件工程的发展,推动了编程范式向更高层次的抽象和结构化发展。

艾伦·凯: 面向对象编程

使用对象来模拟现实世界的行为和交互!

艾伦·凯,依然在世的美国计算机科学家。他出生于美国马萨诸塞州,在科罗拉多大学获得数学和分子生物学学士学位后,转向计算机科学,并在犹他大学获得博士学位。

20世纪60年代和70年代,计算机技术快速发展,计算机系统的复杂性也随之增加。 早期的软件开发主要依赖于过程式编程,这种方法将程序视为一系列有序执行的步骤。 随着软件系统规模的扩大,过程式编程的局限性变得越来越明显,代码复用困难、维护成本高、错误难以定位等问题频繁出现。

艾伦·凯提出并发展了面向对象编程(OOP)范式,强调使用对象来模拟现实世界的行为和交互。在面向对象编程中,每个对象都能够接收消息、处理数据和发送消息到其他对象。 每个对象都可以被视为一个小型的独立机器,具有特定的角色或责任。 凯的理论重点在于三个主要概念:封装、继承和多态。

预测未来的最好方法就是创造未来。——艾伦·凯

C++是一种广泛使用的面向对象编程语言,由比雅尼·斯特劳斯特鲁普在1980年代初开发。C++结合了面向对象编程和过程式编程的优点,广泛应用于系统软件、游戏开发和高性能计算等领域。C++的引入和普及进一步推动了面向对象编程的应用和发展。

艾伦·凯提出的概念极大地提高了软件的可重用性、可扩展性和可维护性,是当今软件工程中不可或缺的部分。

托瓦兹: 开源软件

全世界的开发者一起写同一个软件!

林纳斯·托瓦兹,美籍芬兰人。托瓦兹在大学期间接触到了UNIX操作系统,但因为UNIX的许可费用昂贵,托瓦兹开始着手开发一个免费、开源的操作系统——这就是后来的Linux。

20世纪80年代到90年代,个人计算机的普及和互联网的兴起为软件开发带来了革命性的变化。 在这个时期,尽管商业软件公司如微软在市场上占据主导地位,开源软件和自由软件运动也开始兴起,它们提倡更为民主和协作的软件开发模式。

托瓦兹支持开放源代码的软件开发模型。 托瓦兹坚信软件的开发和改进最有效的方式是让全世界的开发者能够访问源代码、自由地修改并分享改进后的版本。 这种协作的、非中心化的开发模式不仅加速了软件的迭代速度,也提高了软件的安全性和稳定性,因为有成千上万的开发者可以帮助检测错误、优化代码和增加新功能。

给我足够的眼睛,让我可以找出任何错误。——托瓦兹

例如,Linux内核作为一个开源项目,任何人都可以下载其源代码,对其进行修改和定制,以适应特定的硬件或软件需求。在实际应用中,一个公司可能需要对Linux内核进行修改,以使其在特定类型的服务器上运行得更加高效。 这种修改后的内核可以被该公司内部使用,也可以被重新发布给社区,从而让其他用户或公司受益。

Linux内核的开发和普及标志着开源软件运动的一个重要转折点,证明了开源项目可以与商业软件竞争并在很多情况下提供更优的解决方案。 托瓦兹的贡献不仅限于技术本身,更在于他倡导的开放源代码开发模式,这种模式鼓励全球范围内的开发者共同参与项目的改进和迭代,极大地促进了软件开发的协作和创新。

如何实现人工智能?

实现人工智能(AI)是指通过算法和计算模型,使计算机具备模仿人类智能的能力,包括学习、推理、问题解决和决策等。通过赋予计算机智能,AI提高了生产力、创造了新的经济机会,正在深刻改变社会的运作方式。

图灵: 图灵测试

什么样的机器可以说具有智能?

艾伦·图灵,20世纪英国计算机科学家, 他的工作为计算机科学领域奠定了基石。 图灵出生于英国伦敦。他在剑桥大学学习数学。图灵在1936年发表了他的里程碑式论文,首次提出了图灵机的概念。二战期间,图灵加入了英国政府的密码学工作,他在破解德国军方的恩尼格玛密码机中发挥了关键作用。战后,图灵继续在计算机科学和人工智能领域进行研究,直到1954年因为当时英国的同性恋法律而不幸自杀。

20世纪上半叶,计算和信息处理领域正在经历革命性的变化。随着机械计算机和电子计算机的出现,科学家们开始探索机器计算的潜力。 与此同时,哲学家和科学家们也在思考智能的本质以及机器能否具备智能的问题。

图灵在1950年的论文《计算机器与智能》中提出了著名的图灵测试。图灵测试是一种判断机器是否具有智能的方法,即如果一台机器能够与人类进行对话而不被人类识别为机器,则该机器被认为具有智能。 图灵测试的核心思想是通过行为表现(即对话能力)来评估机器的智能,而不是通过内部结构或运作机制。

图灵提出了一种被称为“模仿游戏”的测试方法。 在这个测试中,一位人类评审员与两位受试者(一个是人类,一个是机器)通过文本终端进行对话。评审员的任务是判断哪一位是人类,哪一位是机器。如果评审员无法可靠地区分出机器和人类,那么机器被认为通过了图灵测试,即具有智能。

近年来,像OpenAI的ChatGPT这样的先进语言模型在与人类的对话中表现出高度的智能和自然语言能力。 虽然这些系统尚未完全通过图灵测试,但它们在某些对话场景中已经能够让人类相信自己是在与另一位人类对话。

图灵测试对人工智能的发展产生了深远的影响。 它为人工智能研究提供了一个明确的目标,即开发能够与人类进行自然对话的智能系统。 尽管图灵测试本身并不完美,它为衡量机器智能提供了一个重要的基准,激发了大量关于机器智能本质的讨论和研究。

费根鲍姆: 专家系统

第一种成功的人工智能软件!

爱德华·费根鲍姆,依然在世的美国计算机科学家, 被誉为“专家系统之父”。 他出生于美国新泽西州,在卡内基梅隆大学获得电气工程学士学位、工业管理研究生院博士学位,师从著名计算机科学家和心理学家赫伯特·西蒙。后在斯坦福大学担任教授。

20世纪60和70年代,人工智能研究处于探索和发展的初期。计算机科学家们开始意识到, 人类专家在某些领域的决策过程具有高度的专业性和准确性,如果能够将这些知识和经验转化为计算机系统,将大大提高计算机在这些领域的能力。







请到「今天看啥」查看全文