超过时代的远大观念官方澳门新永利下载:,巴贝奇的差分机与深入分析机

官方澳门新永利下载 1伦敦科学博物馆·分析机设计图纸&模型机

Engine),是巴贝奇毕生的研究所在。和你想象的可能有些不同,这其实并不是一台一般意义上的「计算器」

当时可以做简单的加减乘除的机械装置已经存在,而巴贝奇的机器也没打算和他们抢工作。准确的说,巴贝奇的机器是一台「多项式求值机」,只要将欲求值的一元多次方程式输入到机器里,机器每运转一轮,就能产生出一个值来。假设我们以
F = x²+4 做为例子好了,差分引擎吐出来的结果,就会是 F = 5,F = 8,F =
13,F =20…etc.
直到系统停止为止。机器运作最重要的基础,在于其实要求值,完全只需要用到加减法而已喔!官方澳门新永利下载 2上图同样是
F = x²+4 的例子。第一步是先算出 F 的值之间的差,称为第一阶差( First
Difference)。如果这个值和 F
之间的差不同的话,就拿这两个第一阶差再算一次差,称为第二阶差( Second
Difference)。在这个例子里,第二阶差每一个都是
2,所以就不用再计算下去了。一次方程式最多只会有第一阶差,二次会到第二阶差,N
次会到 N
阶差…etc。一但有了一个固定不变的差数后,就可以开始往前推算回去,接下来的每一个值,就是将差数和前一阶的上一个值相加,即可获得。例如求
F 时,先将 2 加上上一阶差的值 5 得到 7,再将 7 加上 F 的值 13,就会得到
F =
20,以此类推。以人类的角度来看似乎略显得有些啰嗦,但这正是最适合机械计算的结构了。差分机引擎一号官方澳门新永利下载 3巴贝奇的想法很简单,他想要造一台机器,从计算一直到最后印结果全部都自动化,在减少人工的同时,全面地消除可能出错的一切问题点。他开始设计的第一台机器称为差分机引擎一号(Difference
Engine No.1),由英国政府补助出资,工匠 Joseph Clement
打造,预计完工后将有 25,000 个零件,重 15
吨。可惜,一方面是因为大量精密零件制造困难,加上巴贝奇不停地边制造边修改设计,从
1822 到 1832 年的十年间,巴贝奇只能拿出完成品 1/7
的部份来示范。但即使如此,差分机引擎运转中的精密仍然令当时的人叹为观止。可惜,再精采的演出,也无法改变巴贝奇已经严重超支的事实,再加上他不停的在制作过程中修改设计和其他的一些因素,令他和工匠师傅
Clement 间时有争论。最后不仅导致 Clement
辞职,差分机引擎一号也很不幸地一直未能完成。最后 12000
个零件被熔掉回收,英国政府在 1842
年的最后清算发现,整个计划一共让英国政府赔掉了 17500 英镑 — 约等同于 22
台蒸汽火车头,一个相当惊人的数字。差分机引擎一号如果完成的话,25000
个零件会差不多平均分摊在计算的部份和印出的部份里,两者是不可分开的。1830
年的设计显示它可以计算到第六阶差,最高可以存 16
位数。分析机引擎官方澳门新永利下载 4不过对巴贝奇来说,差分机引擎不是个「失败」。事实上他本来就对制造差分机引擎的行政工作感到无比地厌烦,和英国政府结束合作意味着他可以专心的坐下来,做他最拿手的事
— 设计更强大的机器。在 1834
年他设计出了一台更加野心勃勃的机器,称为分析机引擎(Analytical
Engine)。列出它的功能可以让人眼睛都突出来:首先,它的机械结构被分成了「计算单元」和「储存单元」两个部份,其中计算单元不仅内建四则运算,而且还可以「存」四组不同的运算方程式,用穿孔卡片(Punch
Card)加载到机器里。这台机器在设计上甚至有能力进行条件分支、循环、平行处理等程序逻辑,只是巴贝奇的年代自然还没有这些名词的出现。最后的结果还可以选择印刷、打卡、绘图等多种输出方式,从某些方面来说,它计算、储存、I/O
三项分离的设计,和今日的计算机并无二致,只是最后分析机引擎只停留在了纸上,从没做成实机过。提到分析机引擎,就不能不提一下另一个传奇的人物:爱达.勒芙蕾丝(Ada
Lovelace)。爱达的父亲就是英国的大诗人拜伦,只是拜伦在爱达九岁时就过世了。爱达小时候身体并不好,但并没有因此落下教育,特别是(以当时的女性来说还蛮稀少的)科学和数学。她的家庭教师之一
Augustus De Morgan
对她数学能力的评价非常之高,认为她非常有机会成为第一流的数学家。爱达和巴贝奇认识于
1833
年,之后一直有维持通讯,因此对巴贝奇在差分机和分析机引擎方面的进展颇有了解。1842-43
年间,爱达翻译了另一位意大利数学家 Luigi
Menabrea(这位老兄后来做到意大利首相)关于分析机引擎的著作时,应巴贝奇的要求在后面附上了七篇她自已的手记。这七篇笔记比
Luigi
的原文还长,其中第七篇里爱达用非常详细的描述,设想了如果分析机引擎成真的话,要如何用它来求伯努利数列的值。虽然机器是机械的不是数字的,计数方式也是十进制的不是二进制的,但一般仍然认为这是世界上第一个计算机程序。差分机引擎二号在分析机引擎之后,巴贝奇运用在开发过程中得到的心得,重新回头设计了差分机引擎。运用新的方法,在
1847-49 年间设计的差分机引擎二号可以计算到 31
位数,可以计算到第七阶差,而且零件数还只有差分机引擎的
1/3。可惜的是,这时候巴贝奇已经找不到愿意出资的人,因此差分机引擎二号也就停留在了纸上。到巴贝奇一生结束,一共只留下来了
1/7
的差分机引擎一号,一些实验性的分析机引擎零件,和大量的笔记和图纸。故事结束了吗?当然没有。事实证明巴贝奇留下来的详细图纸才是最重要的遗产,在
1985
年时伦敦科学博物馆决定照着巴贝奇的图纸,打造一台完整的差分机引擎出来,回答两个历史性的问题:这东西,到底做不做得出来?做得出来的话,能照着巴贝奇的说明操作吗?整个计划一如巴贝奇当年的翻版,充满了经费困难、生产问题、一推再推的期限和无数的技术困难。最主要的,因为只是纸上的概念,巴贝奇并没有注明材料、工法等事项,因此工程学家只能用现代技术去反推当时的技术上限,确保做出来的机器是那个年代也能完成的。整台机器到
2002 年才完工,一共花了 17
年的时间,最后的成果,就是这个:机器本身的部份大约在 3:30
开始,前面是巴贝奇的生平。完成的差分机引擎重五吨,长 11 英呎、高 7
英呎、最窄处 18 英吋,有 8000
个各式零件。机器的运作一如巴贝奇的描述,虽然单论运算能力来说是比今日的计算机差远了,但至少完全证明了巴贝奇的设计并没有错。换了一个时空,说不定信息革命还能提前个五十年呢!当然,剩下来的问题就只有一个了:那分析机引擎呢?巴贝奇的儿子亨利.巴贝奇花了相当长的时间,试图让分析机引擎成真,但最多也就是在
1910
年时完成了没有程序化能力的一部份计算单元,从此巴贝奇的名字便消失在历史的长河中,
1930、1940
年代的科学家重新开始制造计算机时,根本就已经忘了巴贝奇的成就,不得不重新再走一次巴贝奇走过的老路,有趣的是,最后的基本架构依然是如此地相似。目前有计划要让分析机引擎也像差分机引擎一样「死而复生」,希望能再一次地从实物中,了解查尔斯巴贝奇的天才。

官方澳门新永利下载 5

年,是活跃于十九世纪的数学家、发明家兼机械工程师。那是个人们相信机械的力量可以做到一切的时代,源自于工业时代的进步带来了蒸汽机和各种机械装置,将人们从各种劳动中解放了出来。就是在这样的环境下,巴贝奇开始了对数学制表的机械化的研究

在那个没有计算器和计算机的时代,很多计算最快的方式其实是用查表的,但是靠人工来制表不仅费时费力,而且难免会有计算错误、抄写错误、校对错误、印制错误等各式各样的问题。巴贝奇在剑桥求学时,发现到了这个现象,于是就将改善制表时的各种问题当作了毕生的志业。听起来这么厉害的人,我们都应该读过他的传记了啊?为什么最后这个名字却没有多少人知道呢?那是因为很可惜的,最后他因为经费、个性、大环境等种种因素而失败了,没能在十九世纪就掀起一次计算器革命。然而他的想法和图纸却留了下来,让我们有机会可以一探这位天才在几乎
200
年前的维多利亚时代,是如何差一点改变了世界。让我们一起来看看巴贝奇的计算器吧!

什么是差分机?差分机又称差分引擎(Difference

巴贝奇优化了算法过程,让每列数据成对成对地并行相加,把7步压缩成两步,可以更快地得到结果,但为此付出的代价是,需要事先计算更多初始数据:

查尔斯.巴贝奇(Charles Babbage)生于 1791 年,卒于 1871

学过高数的朋友应该知道,一个函数在满足一定条件的情况下可以用多项式逼近,于是常用的三角函数、对数函数都可以通过多项式来计算的,而机械时期的计算设备最擅长的就是做加法,有了差分思想,巴贝奇看到差分机的前途一片光明。

可惜的是,巴贝奇穷其一生也没能真正把分析机做出来,留给后世的又是一台模型机和两千多张图纸,以及这样一段遗言:

官方澳门新永利下载 6花本上记录了每一纬需要提起哪些经线(图片来自《中国丝绸通史》)

官方澳门新永利下载 7图片来自《Babbage’s
Difference Engine No. 2, Part 2: The Calculation Section》

以上三部分,加上巴贝奇并没有疏漏的输入输出设备,我们惊讶地发现,分析机的组成部分和现在冯·诺依曼架构所要求的五大部件一模一样!

官方澳门新永利下载 8查尔斯·巴贝奇(Charles
Babbage 1792-1871),英国数学家、哲学家、发明家、机械工程师。

官方澳门新永利下载 9乔治·舒茨和他的差分机

1834年,分析机概念诞生之际,巴贝奇自己都为之感到无比震惊。在此之前,任何一台计算机器都只能完成其被预定赋予的计算任务,要么是简单的加减乘除,要么像差分机那样只能做差分运算,它们都属于calculator,而分析机才是真正的computer,它不局限于特定功能,而竟然是可编程的,可以用来计算任意函数——现代人无论如何也无法想象在一坨齿轮上写程序是怎样一种体验吧!

01改变世界:现代计算机真正的鼻祖——超越时代的伟大思想

官方澳门新永利下载 10在本例中需要的初始数据是这些

官方澳门新永利下载 11穿孔卡片的提花原理

加上传动装置和进位装置,就成了这样一副丧病的模样:

对于一次多项式,每个相邻的x所对应的F之差都是一个常数,这个常数很明显就是x的系数。那么二次多项式呢?依然以今天的日期(15年12月12日为例),对于函数F
= 15x^2+12x+12,x取自然数:

巴贝奇另一大了不起的创举就是将穿孔卡片(punched
card)引入了计算机器领域,用于控制数据输入和计算,从那时起,到第一台电子计算机诞生为止,期间几乎所有的数字计算机都使用了穿孔卡片。穿孔卡片本身并不是巴贝奇的发明,而是来自提花机。

对于二次多项式,每个相邻的x所对应的一次差分之差都是常数,我们可以导出这一常数的通用公式:

巴贝奇在一次巴黎展览会上看到了贾卡的提花机,对其印象十分深刻,由于一直在研究计算机器,自然想到可以把穿孔卡片也应用到分析机上。于是分析机中的输入数据、存储地址、运算类型都使用穿孔卡片来表示。在机器运行时,卡片上有孔和无孔的地方会导致对应的金属杆执行不同操作,可编程性由此体现。下图可以直观地展现这一原理:

Andrew Carol. Babbage Difference Engine made with LEGO[EB/OL].
, 2010-07-08.

官方澳门新永利下载 12这四对数据分别是函数值+一次差、二次差+三次差、四次差+五次差、六次差+七次差,这一步得到了函数值F

之所以叫差分机这个名字,是因为它计算所使用的是帕斯卡在1654年提出的差分思想:n次多项式的n次数值差分为同一常数。举个简单的例子(以笔者撰写该部分时的日期——12月12日——为例),对于函数F
= 12x+12,x取自然数:

实景地图展示平台xRez为计算机历史博物馆的差分机做了超高清摄像,机器的各个部位都能看得非常清楚。

和差分机不同的是,分析机现存的图纸并不完整,因此至今也没能建造出来。不过好消息是,有两个英国专家在前几年发起了建造分析机的计划——Plan
28(名称来源于巴贝奇的第28套设计方案),宣称要在2020年前做出来,让人们看看CPU究竟是怎样工作的,就让我们拭目以待。

Wikipedia. Ada Lovelace[EB/OL].
, 2015-12-13.

巴贝奇使用梯形的传动轮实现两个计数轮之间的相加,由于有梯形齿,传动轮可以同时带动两个计数轮,也可以只带动一个。于是在进行两数相加时,传动轮先顺时针旋转,将右侧计数轮上的数字加到左侧轮上,而后上升一段距离,逆时针旋转相同度数,将右侧计数轮的示数还原到原来的位置。

官方澳门新永利下载 13伦敦科学博物馆·差分机设计图纸&半成品

MechanicalComputing. Babbage’s Difference Engine No. 2, Part 2: The
Calculation Section[EB/OL].
, 2015-04-10.

01改变世界:没有计算器的日子怎么过——手动时期的计算工具

官方澳门新永利下载 14图片来自《Babbage
Difference Engine in
Motion》官方澳门新永利下载 15居然还有人用乐高积木做了差分机模型,而且居然还能运行。(图片来自《Babbage
Difference Engine made with LEGO》)

而后是另外组合的三对数据分别相加:

整个分析机就是在类似这样的齿轮和拉杆作用下实现可编程运算的:先从数据卡片读入数据到存储器,再将存储器中的数据传输到运算器,运算器算完后又将数据传回存储器。过程有点复杂,感兴趣的朋友可以欣赏一下Youtube上Sydney
Padua的视频。

F = F 下一列的函数值

F1 = ∆F1 下一列的一次差分值

……

F6 = ∆F6 下一列的六次差分值

尽管没能亲手实现差分机,但巴贝奇并不会气馁,或者说他本来就是根本停不下来的那种人。明知实现不了,巴贝奇仍在一刻不停地改进着自己的设计,直到有一天,他构思出了一种空前的机器——分析机,正式成为现代计算机史上的第一位伟大先驱。

官方澳门新永利下载 16图片来自《Babbage’s
Difference Engine No. 2, Part 2: The Calculation Section》

01改变世界:机械之美——机械时期的计算设备

官方澳门新永利下载 17《天工开物》中的花机图,在南京云锦研究所可以看到实物。

胡守仁. 计算机技术发展史[M]. 长沙: 国防科技大学出版社, 2004.

官方澳门新永利下载 18(图片来自《霞蔚天成
上》)图中黄色的就是经线,部分经线被提起,梭口一目了然。

如果一个人不因我一生的借鉴而却步,仍然一往直前制成一台本身具有全部数学分析能力的机器……那么我愿将我的声誉毫不吝啬地让给他,因为只有他能够完全理解我的种种努力以及这些努力所得成果的真正价值。

Sydney Padua. Punchcard and rod controller[EB/OL].
, 2013-11-01.

背景色相同的四对数据分别相加,所得结果分别为下一列对应的值:

以此类推,无穷尽也:

官方澳门新永利下载 19图片来自《Babbage’s
Difference Engine No. 2, Part 2: The Calculation Section》

差分机的进位机构比较复杂,简单地说,每个计数轮都有一个针对高位的“进位提示器”,当计数轮从9转到0,其对应的“进位提示器”就被拨到“需要进位”的状态,每次计算,计数轮都要转动两次,第一次是每位数相加,第二次是按照“进位提示器”进行进位。我们直观地感受一下连续进位是什么样子:

官方澳门新永利下载 20伦敦科学博物馆·史上第一台巴贝奇差分机

其实早在巴贝奇出生前,有个叫米勒(Johann Helfrich von
Müller)的德国工程师就提出了差分机的思想,但仅仅是提了一下,并没有进行具体设计和制造,他最终还是把研制差分机的历史重任让给了巴贝奇。

官方澳门新永利下载 21这三对数据分别是一次差+二次差、三次差+四次差、五次差+六次差,这一步没有得到新的函数值

Sydney Padua. Babbage’s Analytical Engine: Overview[EB/OL].
, 2015-05-30.

John Graham-Cumming. The greatest machine that never was[EB/OL].
,
2012-03.

从1812年到1822年,巴贝奇克服重重困难完成了一台可以计算六位数二次多项式的模型机,他给皇家学会的主席写信,希望政府可以出资,赞助他建造真正可用的大型差分机。政府也觉得这事儿很有意义,尤其对海军很有价值,于是在1823年拨款1500英镑,巴贝奇如鱼得水,号称只要两三年时间就能完工。谁知实行起来要比想象中困难得多,那个时代的机械制造水平实在落后,差分机是十分精密的仪器,巴贝奇跑遍了欧洲都没找到多少能用的零件,于是在制造差分机之前,他还要先想着怎么制造各类零件。在英国当时一个牛逼的机械师克莱门特(Joseph
Clement)的帮助下,他们真的在提高机械制造方面下足了功夫,不但做出了差分机能用的零件,还培养出大批优秀的技师。本来这两人强强联合势必能把差分机做好,但是巴贝奇是个精益求精的人,经常改动设计方案,导致工程时常要返工,工作量大大增加,外加亲人的相继去世,后来又和克莱门特闹掰,到了1833年,十年都过去了,巴贝奇只做出了机器的一小部分,却已经花费了3万英镑。政府对巴贝奇大失所望,终于在1842年正式宣布不再出资,到头来巴贝奇给后世留下的就只有一个半成品,以及在1839年修订好的一大堆设计图纸,现存于伦敦科学博物馆。

下一篇:让电代替人工去计算——机电时期的权宜之计

Wikipedia. Charles Babbage[EB/OL].
, 2015-12-10.

上一篇:机械之美——机械时期的计算设备

发表评论

电子邮件地址不会被公开。 必填项已用*标注