在人类进化过程中,工具的使用发挥了重要作用,机器是工具的重要形式之一。在人工智能成为一门学科之前,人们更关注怎样让机器更加智能,怎样让机器更好地工作。
最早的机器设计可以追溯到15世纪,列奥纳多·达·芬奇(Leonardo da Vinci)设计的机械式计算器草图(见图4.1)。达·芬奇的草图在当时的技术条件下无法实现,1967年,意大利科学家复原了达·芬奇的部分机械设计。达·芬奇是人类历史上少有的全才型天才,他留下的手稿中有很多设计远远超越了他所在的时代的科学发展水平,那些设计在几百年后都实现了,计算器就是其中的一种,因此甚至有人怀疑达·芬奇是一个时空穿越者。
1642年,布莱士·帕斯卡(Blaise Pascal)制造出可进行加减运算的机械式计算器(帕斯卡计算器,又称“滚轮式加法器”),被认为是第一台人造机械式计算器。该计算器利用一系列齿轮和杠杆装置来完成计算。帕斯卡是法国著名的科学家,他发明了水银气压计,“帕斯卡”(Pascal,简称Pa)也成了压强的国际标准单位。
图4.1 达·芬奇设计的机械式计算器草图(资料来源:达·芬奇的《马德里手稿I》〔 Codex Madrid I 〕)
1674年,德国著名数学家戈特弗里德·莱布尼茨(Gottfried Leibniz)借鉴了帕斯卡的思路,设计了特殊的乘法器和除法器(改进手稿方案见图4.2),使得计算器能够进行四则运算,甚至可以进行开方运算。然而,无论是帕斯卡的滚轮式加法器,还是莱布尼茨的四则运算计算器,都只能进行简单的算术操作。莱布尼茨是大数学家,他和牛顿分别独立地创立了微积分,现在的微积分符号主要使用的是莱布尼茨发明的符号体系。
随着人类文明不断进步,工业革命的巨浪扑面而来,人们重新认识了机器,它不再是冷冰冰的工具,而可以拥有热能流动。
图4.2 莱布尼茨的计算器改进手稿方案(资料来源:莱布尼茨的《数学史源》〔 A Source Book in Mathematics 〕)
1834年,英国发明家查尔斯·巴贝奇(Charles Babbage)设计了一台由蒸汽机驱动的机械式计算机,它被称为“差分机”。此前很多人为了提高织布的生产效率而设计机器,巴贝奇从这些机器中获得了灵感,提出将计算和存储分离的计算机设计理念,可以自动执行多种算术运算,并把计算结果存储在以蒸汽驱动的存储器中,便于以后处理或分析。这种思想为现代计算机的中央处理器(Central Processing Unit,简称CPU)和存储器设计打下了基础,对现代计算机的发展产生了重要影响。由于资金短缺等各种原因,巴贝奇没有完整地建造出这台机器,直到1991年才由伦敦科学博物馆实现了巴贝奇的“差分机”设计。
1842年,英国浪漫主义诗人乔治·拜伦(George Byron)的女儿阿达·洛芙莱斯(Ada Lovelace,见图4.3)在翻译意大利数学家路易吉·梅纳布雷亚(Luigi Menabrea)关于分析机的论文的过程中,添加了许多标记和注解,详尽阐述了使用打孔卡片机计算伯努利数(Bernoulli numbers)的步骤,这项工作标志着计算机编程的诞生。后来人们称阿达·洛夫莱斯为“世界首位程序员”,也就是现代程序员的祖师爷。人们没有忘记她对现代计算机软件工程所作的贡献,1980年,美国国防部历时20年研制成功的第四代计算机语言被命名为“Ada语言”。
1936年,著名计算机科学家艾伦·图灵在《伦敦数学学会学报》( Proceedings of the London Mathematical Society )发表了一篇名为《论可计算数及其在判定问题上的应用》( On Computable Numbers , with an Application to the Entscheidungsproblem )的论文,他巧妙地构想了一种虚拟的机器—图灵机。
图4.3 17岁的阿达·洛芙莱斯画像(资料来源:迈克尔·奥克斯档案馆)
图灵机是一种理论上的计算模型,它可以计算各种函数。它包含了三个基本元素:一个无限长的纸带,一个读写头和一个状态机。读写头可以移动,读取和写入纸带上的符号,并根据当前状态和读取的符号执行相应的计算操作。图灵机采用数学语言来描述计算机与算法,为现代计算机的设计和发展奠定了理论基础。
1945年,冯·诺伊曼撰写了《关于EDVAC报告书的第一份草案》( First Draft of a Report on the EDVAC ),阐述了制造电子计算机与程序设计的理念,在EDVAC(Electronic Discrete Variable Automatic Computer,离散变量自动电子计算机)设计中,计算机包括:运算器、逻辑控制装置、存储器、输入设备、输出设备等。这种架构后来被称为“冯·诺伊曼体系结构”,今天我们使用的计算机基本都采用了这个体系结构。可以认为,图灵机是计算机的抽象模型,而冯·诺依曼架构则是对这个抽象模型的具体实现。
1946年,世界首台通用电子计算机“埃尼阿克”(ENIAC,见图4.4)在美国宾夕法尼亚大学诞生,由科学家冯·诺依曼、约翰·埃克特(John Eckert)、约翰·莫奇利(John Mauchly)等人完成,这台机器体积庞大,总重量达30吨,占地面积170平方米。“埃尼阿克”的运算速度在当时可谓相当快,每秒可完成5 000次加法或400次乘法,是其他机器计算速度的一千倍。19世纪40年代,正值第二次世界大战,为满足军事方面的计算需要,美国投入了大量的经费用于计算机研究,“埃尼阿克”的诞生离不开政府大规模的科研投入。
图4.4 计算机“埃尼阿克”的主控制面板(资料来源:北美研究型图书馆协会技术图书馆档案)
“埃尼阿克”的问世标志着现代计算机的诞生,此后,各种改进版本的计算机不断涌现。当计算机能力变得越来越强时,人们考虑的就是怎样让它变得更加聪明。人们对于创造智能机器的追求从来没有停止过,与“埃尼阿克”问世同一时代,人工智能也诞生了。今天,人工智能已成为计算机技术的一个重要分支。
人类似乎对于改进机器有很强的执念,那么我们为什么一定要去制造和改进机器呢?推动计算机发展的主要动力是什么?一个国家怎样才能发展好计算机学科?这些问题值得我们思考。