计算可以成为沿着物理、生命和社会科学的第四大科学领域
计算是科学的组成部分-它不仅是分析数据的工具,而且是思考和发现的媒介。
它并不总是这样。计算机是一门相对年轻的学科。它在20世纪30年代开始作为一个学术研究领域,由Kurt Gödel,Alonzo Church,Emil Post和Alan Turing撰写了一系列出色的论文。这些论文奠定了数学基础,回答了“什么是计算”的问题。并讨论了其实施方案。这些人看到了自动计算的重要性,并寻求其精确的数学基础。他们各自提出的各种计算实现方案很快被发现是等效的,因为任何一个方案中的计算都可以在任何其他方案中实现。更值得注意的是,他们的模型都得出了相同的结论,即某些具有实际意义的函数——例如,计算算法(一种评估函数的方法)是否会完成而不是陷入无限循环——无法通过计算来回答。
在撰写这些论文时,“计算”和“计算机”这两个术语已经很常用了,但含义与今天不同。计算是指评估数学函数所遵循的机械步骤;计算机是指进行计算的人。为了认识到他们正在引领的社会变革,第一批数字计算机项目的设计者都用以“-AC”结尾的首字母缩写词来命名他们的系统,意思是自动计算机——从而产生了诸如 ENIAC、UNIVAC 和 EDSAC 等名称。
第二次世界大战开始时,美国和英国的军队开始对将计算应用于弹道和导航表的计算以及密码的破解感兴趣。他们委托了设计和制造电子数字计算机的项目。只有一个项目在战争结束前完成。那就是英国布莱切利园的绝密项目,该项目使用阿兰·图灵设计的方法破解了德国恩尼格玛密码。
参与这些项目的许多人后来在 20 世纪 50 年代初创办了计算机公司。20 世纪 50 年代末,大学开始提供这一新领域的学习课程。该领域和行业已稳步发展成为一个现代庞然大物,据说其互联网数据中心消耗了全球近 3% 的电力。
计算机在发展初期对现有的科学和工程领域来说是一个谜。起初,计算机看起来只是数学、电子工程或科学的应用技术,这取决于观察者的看法。然而,多年来,计算机似乎提供了源源不断的新见解,它通过拒绝被其根源领域吸收而打破了许多早期的预测。到 1980 年,计算机已经掌握了算法、数据结构、数值方法、编程语言、操作系统、网络、数据库、图形、人工智能和软件工程。它的伟大技术成就——芯片、个人电脑和互联网——将它带入了许多人的生活。这些进步刺激了更多新的子领域的发展,包括网络科学、Web 科学、移动计算、企业计算、协同工作、网络空间保护、用户界面设计和信息可视化。由此产生的商业应用在社交网络、不断发展的计算、音乐、视频、数码摄影、视觉、大型多人在线游戏、用户生成内容等领域引发了新的研究挑战。
类别 | 重点 | 示例 |
---|---|---|
计算 | 什么可以计算?什么不可以计算? | 根据解决问题所需的计算步骤数对问题的复杂性进行分类 |
通信 | 在不同地点之间可靠地传输信息 | 以熵来衡量的信息。文件压缩、纠错码、密码学 |
协调 | 有效利用多台自主计算机 | 消除导致不确定结果的条件的协议 |
回忆 | 表示、存储和检索媒体中的信息 | 所有存储系统都是分层的,但没有一个存储系统可以为所有对象提供相同的访问时间。所有计算都会在任何时间间隔内偏向其数据对象的子集 |
自动化 | 发现信息处理算法 | 大多数启发式算法都可以表述为对巨大数据空间的搜索。许多人类认知过程可以建模为信息过程 |
评价 | 预测复杂系统的性能 | 大多数计算系统都可以建模为服务器网络,其快速解决方案可以产生接近实际吞吐量和响应时间的近似值 |
设计 | 构建软件系统以实现可靠性和可信赖性 | 复杂系统可以分解为交互模块和虚拟机。模块可以根据操纵对象的事件的时间尺度进行分层 |
计算范式
传统科学家经常质疑计算机科学这个名称。他们很容易看到工程范式(系统的设计和实现)和数学范式(定理的证明),但却看不到科学范式(假设的实验验证)。此外,他们认为科学是一种处理自然世界的方式,而计算机看起来则带有可疑的人工性质。
该领域的创始人来自所有三个范式。一些人认为计算是应用数学的一个分支,一些人认为是电子工程的一个分支,还有一些人认为是计算导向科学的一个分支。在最初的四十年里,该领域主要关注工程学:构建可靠的计算机、网络和复杂软件的挑战非常艰巨,几乎占据了每个人的注意力。到了 20 世纪 80 年代,这些挑战基本已经得到应对,在网络、超级计算机和个人计算机的帮助下,计算迅速传播到所有领域。在 20 世纪 80 年代,计算机变得非常强大,科学界的远见卓识者可以看到如何使用它们来解决最困难的问题——科学和工程中的“大挑战”问题。由此引发的“计算科学”运动吸引了来自各个国家的科学家,并最终导致美国国会通过了 1991 年的《高性能计算和通信 (HPCC) 法案》,以支持对一系列大型问题的研究。
今天,人们一致认为,计算是科学和工程的典型,科学和工程都不能代表计算。那么,计算的典型特征是什么呢?计算的范式是什么?
该领域的领导者从一开始就对这个范式问题苦苦挣扎。在此过程中,曾有三波试图统一观点的浪潮。艾伦·纽厄尔、艾伦·佩利斯和赫伯·西蒙在 1967 年领导了第一波浪潮。他们认为,计算在信息处理研究方面是所有科学中独一无二的。诺贝尔经济学奖获得者西蒙甚至称计算是一门人工智能科学。这波浪潮的口号是“计算是研究计算机周围现象的科学”。
第二波浪潮专注于编程,即设计产生信息处理的算法的艺术。 20 世纪 70 年代初,计算机先驱 Edsger Dijkstra 和 Donald Knuth 坚定地主张将算法分析作为统一主题。这波浪潮的口号是“计算机科学等于编程”。近年来,这种观点已经失败,因为该领域已经远远超出了编程的范围,而公众对程序员的理解已经缩小到仅仅是编写代码的人。
第三次浪潮是 20 世纪 70 年代末 Bruce Arden 领导的计算机科学与工程研究计划 (COSERS) 的成果。该计划的口号是“计算是信息处理的自动化”。尽管该计划的最终报告成功地揭示了计算的科学性,并向外行人解释了许多深奥的方面,但其核心观点并未流行起来。
这三个定义的一个重要方面是将计算机定位为关注的对象。20 世纪 80 年代的计算科学运动开始摆脱这一观念,采用了这样的观点:计算不仅是科学的工具,也是一种新的思维方式和科学发现。20 世纪 90 年代末,以诺贝尔奖获得者戴维·巴尔的摩和认知科学家道格拉斯·霍夫施塔特为代表的生物学领域的领军人物表示,生物学已成为一门信息科学,DNA 翻译是一个自然的信息过程,从此,脱离计算机作为焦点的过程完成了。许多计算机科学家和生物学家一起研究 DNA 信息过程的性质,并发现哪些算法可以控制它们。
物理 | 社会 | 生物 | 计算 | |
---|---|---|---|---|
计算被实现: | 机械、光学、电子、量子和化学计算 | 机械机器人、人类认知、有输入和输出的游戏 | 基因组、神经、免疫、DNA 翻译、进化计算 | 编译器、操作系统、仿真、抽象、程序、架构、语言 |
计算实现: | 建模、模拟、数据库、数据系统、量子密码学 | 人工智能、认知建模、自主神经系统 | 人工生命、仿生学、系统生物学 | 编译器、操作系统、仿真、抽象、程序、架构、语言 |
计算被影响: | 传感器、扫描仪、计算机视觉、光学字符识别、定位 | 学习、编程、用户建模、授权、语音理解 | 眼睛、手势、表情和运动跟踪;生物传感器 | 网络、安全、并行计算、分布式系统、网格 |
计算影响: | 运动、制造、操纵、开环控制 | 屏幕、打印机、图形、语音生成、网络科学 | 生物效应器、触觉、感官沉浸 | 网络、安全、并行计算、分布式系统、网格 |
双向影响 | 机器人,闭环控制 | 人机交互、游戏 | 脑机接口 | 网络、安全、并行计算、分布式系统、网格 |
计算的伟大原理
随着我们对计算的理解日趋成熟,我们对该领域的内容有了全新的认识。直到 20 世纪 90 年代,大多数计算科学家都认为计算涉及算法、数据结构、数值方法、编程语言、操作系统、网络、数据库、图形、人工智能和软件工程。这一定义是对该领域的技术解释。科学解释将强调赋能和制约技术的基本原则。
为了实现这一目标,我和我的同事开发了计算框架的伟大原则。这些原则分为七类:计算、通信、协调、回忆、自动化、评估和设计(参见第一个表格中的示例)。
每个类别都是计算的一个视角,是计算知识空间的一个窗口。这些类别并不相互排斥。例如,互联网可以看作是一个通信系统、一个协调系统或一个存储系统。我们发现大多数计算技术都使用了这七个类别的原则。每个类别在混合中都有自己的权重,但它们都存在。
除了相对静态的原理之外,我们还需要考虑计算与其他领域之间相互作用的动态性。科学现象可以通过两种方式相互影响:实施和影响。现有事物的组合通过产生其行为来实现现象。因此,数字硬件在物理上实现计算;人工智能实现人类思维的各个方面;编译器使用机器代码实现高级语言;氢和氧实现水;氨基酸的复杂组合实现生命。
当两种现象相互作用时就会产生影响。原子源于质子、中子和电子产生的力之间的相互作用。星系通过引力波相互作用。人类通过语音、触觉和计算机进行交互。交互存在于跨领域以及领域内。例如,计算影响物理动作(电子控制)、生命过程(DNA 翻译)和社会过程(具有输出的游戏)。第二张表说明了计算与物理、生命和社会科学之间的相互作用,以及计算本身的相互作用。毫无疑问,计算在所有科学领域都具有普遍性。
什么是信息过程?
从信息的角度来定义计算可能存在困难。
信息似乎没有固定的定义。信息论之父克劳德·香农于 1948 年将信息定义为人们为确定某个信息源所发送的信息而必须提出的是或否问题的预期数量。他故意回避了位模式的含义问题,而这似乎对信息的定义很重要。在仔细研究了许多已发表的定义后,保罗·罗基于 2010 年得出结论,信息的定义必然涉及一个客观成分——符号及其指称物,或者换句话说,符号及其所代表的含义——和一个主观成分——含义。我们如何才能根据具有如此重要的主观成分的东西来制定信息的科学定义?
生物学家对“生命”也有类似的问题。生命科学家罗伯特·哈森指出,生物学家没有对生命的精确定义,但他们确实列出了一个衡量实体是否活着的七项标准。生命的可观察影响,如化学、能量和繁殖,足以为生物学奠定基础。同样,我们可以将信息科学建立在可观察影响(符号和指称物)的基础上,而无需对意义进行精确定义。
表征是一种代表某种事物的符号模式。表征与其所代表事物之间的关联可以记录为表格或数据库中的链接,也可以记录为人们大脑中的记忆。表征有两个重要方面:句法和内容。句法是构建模式的规则;它使我们能够区分代表某种事物的模式和不代表某种事物的模式。内容是可测量的世界物理状态,通常以媒体或信号的形式保存表征。将这两者结合起来,我们就可以制造出能够检测何时存在有效模式的机器。
表示函数求值方法的表示称为算法。表示值的表示称为数据。当算法由机器实现时,它控制输入数据表示到输出数据表示的转换。算法表示控制数据表示的转换。算法和数据表示之间的区别相当弱;编译器生成的可执行代码对编译器来说看起来像数据,对运行代码的人来说就像算法。
即使是这种简单的表示概念也会产生深远的影响。例如,正如 Gregory Chaitin 所指出的,没有一种算法可以找到某种事物的最短表示。
一些科学家对观察到的信息过程是否实际上由算法控制的问题持开放态度。因此,DNA 翻译可以称为信息过程;如果有人发现了一种控制算法,它也可以被称为计算。
一些数学家将计算定义为与实现分开的。他们将计算视为抽象语言中字符串的逻辑排序,并能够确定计算的逻辑极限。然而,为了回答有关可观察计算的运行时间的问题,他们必须引入成本——存储、检索或转换表示的时间或能量。许多现实世界的问题需要指数时间计算作为这些可实现表示的结果。我和我的同事仍然喜欢处理可实现的表示,因为它们是科学计算方法的基础。
这些表示概念足以为我们提供计算所需的定义。信息过程是一系列表示。(在物理世界中,它是一种不断发展变化的表示。)计算是一种信息过程,其中从序列的一个元素到下一个元素的转换由表示控制。(在物理世界中,我们会说每个无穷小的时间和空间步骤都由表示控制。)
计算的现状
计算领域已经成为优秀科学和工程的典范。科学对于该领域的发展至关重要,因为许多系统非常复杂,实验方法是发现和了解极限的唯一方法。计算现在被视为一个研究信息过程的广泛领域,包括自然和人工信息过程。
这个定义足够宽泛,可以容纳困扰计算科学家多年的三个问题:连续信息过程(如通信系统或模拟计算机中的信号)、交互过程(如正在进行的 Web 服务)和自然过程(如 DNA 翻译)都看起来像计算,但不符合传统的算法定义。
伟大的原则框架揭示了所有计算都基于的一套丰富的规则。这些原则与物理、生命和社会科学领域以及计算技术本身相互作用。
计算不是其他科学的子集。这些领域都没有从根本上关注信息过程及其转换的性质。然而,这种知识如今在所有其他科学领域都至关重要。南加州大学的计算机科学家保罗·罗森布鲁姆 (Paul Rosenbloom) 于 2009 年指出,计算是一个新的伟大科学领域。他确实发现了一些问题。
参考文献
- Arden, B. W., ed. 1983. What Can Be Automated: Computer Science and Engineering Research Study (COSERS). Cambridge, MA: The MIT Press.
Bacon, D., and W. van Dam. 2010. Recent prog- ress in quantum algorithms. Communications of the ACM 53:84–93. - Baltimore, D. 2001. How Biology Became an In- formation Science. In The Invisible Future, P. Denning, ed. New York, NY: McGraw-Hill.
Chaitin, G. 2006. Meta Math! The Quest for Omega. New York, NY: Vintage Press. - Denning, P. 2003. Great Principles of Computing. Communications of the ACM 46:15–20.
- Denning, P., and C. Martell. Great Principles of Computing Website. http://greatprinciples. org
- Denning, P. 2007. Computing is a natural science. Communications of the ACM 50:15–18.
- Denning, P., and P. Freeman. 2009. Computing’s paradigm. Communications of the ACM 52: 28–30.
- Hazen, R. 2007. Genesis: The Scientific Quest for Life’s Origins. Washington, D.C.: Joseph Henry Press.
- Hofstadter, D. 1985. Metamagical Themas: Quest- ing for the Essence of Mind and Pattern. New York, NY: Basic Books.
- Newell, A., A. J. Perlis and H. A. Simon. 1967. Computer science. Science 157:1373–1374.
- Rocchi, P. 2010. Logic of Analog and Digital Ma- chines. Hauppauge, NY: Nova Publishers.
- Rosenbloom, P. S. 2004. A new framework for computer science and engineering. IEEE Com- puter 31–36.
- Shannon, C., and W. Weaver. 1949. The Math- ematical Theory of Communication. Champaign, IL: University of Illinois Press. Available at http://cm.bell-labs.com/cm/ms/what/ shannonday/paper.html
- Simon, H. 1969. The Sciences of the Artificial. Cam- bridge, MA: The MIT Press.
- Wolfram, S. 2002. A New Kind of Science. Cham- paign, IL: Wolfram Media.