莱布尼茨:计算机科学的奠基人

莱布尼茨_[遇见数学]在Midjourney下绘制

摘要:2021 年,我们庆祝戈特弗里德·威廉·莱布尼茨(1646-1714)——被誉为“世界上第一位计算机科学家” 375 岁生日。

他的成就包括:

首次公开发表微积分(1684 年)。

设计出能完成四则运算的首台机器(1673 年),这也是第一台具有内部存储功能的机器。

他早在 1679 年就描述了二进制计算机的原理,这是几乎所有现代机器的核心运行方式。

他的形式化思维代数(1686 年)在逻辑上等价于后来的布尔代数。

他的“普遍特性学”和“推理计算”理论主张通过计算解答所有可能的问题。

他的名言“让我们计算!”被视为启蒙时代的决定性宣言。

莱布尼茨被誉为“计算机科学之父”并不为过。他对计算理论与实践的深入研究为后世留下了丰厚的遗产。他被誉为“最后一位全能的天才”、“世界上第一位计算机科学家”,以及“有史以来最聪明的人”。

虽然自动机的设计可以追溯到古代,比如 2000 多年前的基于齿轮的安提基希拉机械(一种天文计算器),或者亚历山大的赫罗在 1 世纪设计的世界上第一台可编程机器,但是许多“现代”计算机科学的概念的确源自莱布尼茨。

安提基特拉机械

在 1673 年,莱布尼茨设计了能执行四则运算的第一台机器——阶梯计算器。这个设计超越了威廉·席卡德在 1623 年基于齿轮设计的数据处理计算器,以及布莱兹·帕斯卡尔在 1642 年的帕斯卡计算器。人们强调,“如果能够计算四种基本的算术运算,就等同于能够执行任何给定数值计算的问题。”事实上,大约 250 年后,库尔特·哥德尔就使用基本算术对任意形式系统和计算进行了编码(1931-1934 年)。

这台阶梯计算器也是第一台带有内部存储器的机器:它通过莱布尼茨轮能够存储了一个乘法的乘数,并计数连续的加法次数。

在 1679 年,莱布尼茨描述了二进制计算机的基本原理,二进制数能够由"使用由打孔卡片控制的弹珠来表示"。他的描述准确地说明了电子计算机的功能。重力和弹珠的运动被电路替代,但工作原理的工作方式相同。"

在 1701 年,莱布尼茨通过与传教士白晋的通信,了解到中国的易经。他发现易经中的结构和他的二进制有着相同的规律,进一步研究两者一致性来证明他的二进制理论。从 1679 年到 1703 年,莱布尼茨已经记录下了几乎所有现代计算机都在使用的二进制算术。然而,应该提到的是,二进制数编码本身比这要早得多,可以追溯到古埃及。关于如何在二进制下进行运算的算法部分则相对较新。

1686 年,莱布尼茨创造了形式化的思想代数,它在演绎上等同于后来于 1847 年问世的布尔代数。在这里,真值 0 和 1 通过基本运算(如 与/或)连接起来,形成可能的复杂表达式。这为戈特洛布-弗雷格(Gottlob Frege)的第一门形式语言(1879 年)奠定了基础,从而也为计算理论奠定了基础。伯特兰·罗素写道,莱布尼茨“以一种自亚里士多德以来从未见过的方式”推进了形式逻辑领域的发展。

令人瞩目的是,莱布尼茨在他的大部分人生中,都在追求一个宏大的目标:通过计算来解决所有可能的问题。他的这一理念是受到 13 世纪学者拉蒙·卢尔的启发,因此他提出了通用语言和推理的普遍演算(Characteristica Universalis & Calculus Ratiocinator)这两个对后世产生影响深远的思想。人工智能先驱诺伯特·维纳(Norbert Wiener)曾说过:“实际上,计算机的整体概念不过是莱布尼茨的推理演算的机械化。”

莱布尼茨_遇见数学绘制

莱布尼茨的名言“Calculemus!”是启蒙时代的精神写照之一。他说:“如果产生了争议,两位哲学家之间就不再需要进行辩论,就如同两位会计师一样。因为他们只需要拿起他们的铅笔,坐下来拿起他们的石板,然后对对方说:让我们计算吧!”

在计算机科学的领域,莱布尼茨的伟大成就已经足以让他在科学家的殿堂中占有一席之地。然而,他的贡献远不止于此。他在 1684 年首次发表了微积分,从而扩展了阿基米德两千多年前引入的无穷小的概念。阿基米德或许是有史以来最伟大的科学家,他已经在无穷小的基础上研究出了微积分的特殊应用,比如用于求解球体和抛物线段的问题。关于微积分的更多近期突破,可以参考 14 世纪马达瓦和他的同事们的研究成果。鉴于篇幅所限,所以在这里我就不再详述莱布尼茨在数学和概率论、工程学、语言学、生物学、医学、地质学、心理学、政治学、法学、伦理学、神学、历史学、语言学和哲学等领域的众多额外贡献了。

莱布尼茨于 1716 年逝世后的数百年间,计算理论并无任何重大进展。直到两个多世纪后,库尔特·哥德尔扩展了弗雷格基于莱布尼茨理论的形式化语言(1879 年),并在 1931-34 年间推出了一种全新的通用编码语言。哥德尔采用了他所创立的“哥德尔编码”,用以表示数据(例如公理和定理)和程序,以此揭示了决策或可计算性的基本限制,这对莱布尼茨的通用问题解决方案构成了挑战。他在 1931 年的开创性论文奠定了现代理论计算机科学和人工智能(AI)理论的基础。他揭示了定理证明、计算、人工智能、逻辑学和数学本身的边界,为整个学术界带来了沉重的震撼。这对 20 世纪的科学和哲学产生了深远影响,甚至有些人误解了哥德尔的结论,误以为他证明了人类优于人工智能。

1935 年,阿隆佐·邱奇引申了哥德尔的结论,他证明了希尔伯特和阿克曼的著名“决策问题”并无通用解法。1936 年,艾伦·图灵提出了另一个通用模型——图灵机,并重新推导出上述结论。同年,埃米尔·波斯特也发布了另一个独立的通用计算模型。今天,我们已经知道许多这样的模型。然而,哥德尔(1931-34 年)、邱奇(1935 年)、图灵(1936 年)和波斯特(1936 年)的形式模型只是在纸面上的理论构造,不能直接作为实际计算机的基础。那么在莱布尼茨之后,实际硬件又有何进展呢?

德国慕尼黑德意志博物馆的Zuse Z3复制品,图自维基 By Venusianer, CC BY-SA 3.0,

大约在 1800 年,约瑟夫·马里·雅卡尔等人在法国制造出了第一台商用的程序控制机器(基于打孔卡片的织布机),他们可能是世界上最早的“现代”程序员,编写了世界上第一款工业软件。他们的工作启发了阿达·洛夫莱斯和她的导师查尔斯·巴贝奇(大约 1840 年,英国)。巴贝奇计划但未能构建一台可编程的通用计算机(只有他的非通用特殊用途计算器直到 20 世纪才被后人真正制作出了一个工作模型)。然而,康拉德·楚泽在 1941 年完成了 Z3,这是世界上首台实用、可操作、可编程的通用计算机,它基于他在 1936 年的专利申请。虽然任何物理计算机都无法避免存储限制,但 Z3 的物理硬件在哥德尔、邱奇、图灵和波斯特的“现代”理解中,确实是通用的——一些简单的算术技巧可以弥补 Z3 缺乏显式条件跳转指令的问题。

与巴贝奇不同,楚泽采用的是莱布尼茨的二进制系统,而非十进制。这极大地简化了硬件。自 20 世纪后期以来,基于朱利叶斯·埃德加·利利恩费尔德(Julius Edgar Lilienfeld)的场效应晶体管原理(1925 年)的二进制计算机已经无处不在。数十亿人依赖它们来完成从早晨泡咖啡到在医院监测生命体征的所有事情。

2021 年,我们不仅需要庆祝莱布尼茨 375 周年,还需要庆祝了哥德尔于 1931 年发表的著名论文 90 周年,以及楚泽于 1941 年完成的世界上第一台实用、工作的、可编程的通用计算机 80 周年。距离 2031 年哥德尔百年纪念还有 10 年,距离 2041 年楚泽百年纪念还有 20 年,距离莱布尼茨第四个百年纪念 2046 年还有 1/4 个世纪!我们有足够的时间来计划最适宜的庆祝活动。返回搜狐,查看更多

阅读 ()
平台声明
该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。