从算盘开始说起

科学史专家们将中国的算盘作为人类历史上最早出现的计算机,由此算来计算机从出现至今已有2000年的历史。古希腊的算盘比中国的算盘早出现近7个世纪,为何中国算盘却被认为是人类历史上最早的计算机呢?

古希腊的算盘与中国的算盘外形十分相似,但是古希腊的算盘只是用来辅助计算,算盘上的铜珠在计算过程中用来计数而计算的过程是靠人动脑筋来完成的,因此它只是一个辅助计算工具。中国的算盘是通过一套珠算口诀来控制操作而不是通过心算来完成,打算盘的人只是在执行珠算口诀而已。例如:“三下五除二”,这其实是一句珠算口诀,它的意思是:加3时先把算盘上半部分代表5的珠子拨下来,再从下面的珠子中减掉2个,是“加3”的操作指令。打算盘的人不需要懂数学运算,只要背下这些珠算口诀按照口诀拨动算珠即可完成运算。由此可见古希腊算盘是靠人动脑筋完成计算,而使用中国算盘的过程中人只是提供机械动能,而非脑中的运算能力。正是这个区别使得中国算盘被认为是计算机的原因。

对此类机器的一个较为严谨的描述为:一个具有运算能力、可能还有一定存储能力的机器设备,受指令控制,包括但不限于:计算机、服务器、平板电脑、程控交换机等。对比一下算盘和计算机会发现二者的相似之处:

1
2
算盘:珠算口诀、算珠、人
计算机:CPU指令集、电子器件、电力

布尔代数与开关电路

1642年法国数学家布莱兹·帕斯卡发明了最早的机械计算机,可以完成加法和减法运算。

1822年英国科学家查尔斯·巴贝奇研制出简单的差分机,可以完成简单的微积分运算且具有6位小数的精度。随后他试图制造一台精度为20位小数的差分机,但是巴贝奇耗费了自己大部分精力和财富直到去世仍未完成这个庞大的机器。巴贝奇陷入了一个误区:用复杂的方法解决复杂的问题。要完成的计算越复杂,机械计算机的设计就越精巧,内部的结构就越复杂。要实现更复杂的功能就需要设计和制造出更复杂的机械,机械复杂到一定程度就无法造出来了。

1854年英国数学家乔治·布尔出版的《思维规律的研究》第一次向人们展示了如何用数学的方法解决逻辑问题。

1937年美国科学家克劳德·香农完成其硕士论文《继电器和开关电路的符号分析》,香农发现很多现象和布尔代数的逻辑是对应的,例如:电路连接和断开、高低电压、数学的0和1等。他提出基于布尔代数的逻辑电路来控制分析仪的运转,进一步发现加减乘除各种运算都可以用多个基本的逻辑电路“搭”出来。香农通过逻辑电路在布尔代数和算术之间搭起来一座桥梁:布尔代数—>逻辑电路—>算术运算。香农电路设计的核心思想总结为:模块化和等价性。模块化指用少量简单的模块搭建出各种复杂的功能。等价性指再复杂的计算都可以等价成很多的加减乘除运算,进而等价成开关电路的逻辑运算

德国工程师康拉德·楚泽凭借着自己深厚的数学功底在二战时期研制出人类第一台可编程计算机,直到二战结束楚泽都不知道图灵和香农等人的理论,他完全是从一个工程师的经验出发发现了和香农开关电路类似的规律,采用简单的方法实现了复杂的计算功能。经过后面的多次改进在其第三个版本的计算机上实现了图灵所描绘的功能,而此时他依然不知道图灵的工作。(真是一个牛逼的工程师,数学功底深厚,知道布尔代数,懂得用二进制实现运算和控制机械以及进制间的转换)

计算的本质的机械运动

1936年图灵提出了可计算性理论,从数学上奠定了可计算问题的理论基础,提出了计算机的数学模型——图灵机。

图灵在20世纪30年代中期开始思考三个非常根本的问题:

  1. 数学问题是否都有答案
  2. 如果有明确的答案是否可以通过有限步的计算得到答案
  3. 对于有可能在有限步计算出来的数学问题,能否有一种假象的机器,它不断的运动,最后当它停下来的时候,那个数学问题就解决了

由此可见大师级的人物思考问题都是很直接,图灵抛开具体技术从计算的本质来寻找计算机的极限。更进一步他设计了一种后来被称为图灵机的数学模型:

  1. 要有一条无限长的纸带,纸带被分成一个个格子,每个格子里记录着符号或者数字
  2. 有一个读写头在纸带上左右移动,它停在那里就可以改变哪里的数字或者符号
  3. 要有一套规则表,根据图灵机当前的状态和读写头所指格子中的符号或者数字查表后就知道下一步该做什么,完成这步操作后图灵机也进入下一个状态
  4. 图灵机需要有寄存器来记录图灵机的状态,图灵机的状态是有限的,其中一个特殊的状态是停机,一旦进入这个状态则表示计算完成

图灵机对计算机科学的发展产生了深远的意义:

  1. 它将数学问题分为两类:一类是可以用图灵机在有限步骤内完成计算的,另一类是不可以。今天在计算机科学中说一个问题可不可以计算不是指数学上能否计算,而是指能否用图灵机这样一个简单的逻辑来计算。由此可见能用图灵机进行计算的问题只是可计算数学问题的很小一部分

  2. 图灵机提出的存储地址、计算机状态、规则表(今天的指令集)、当前位置读写头四个重要概念至今影响这计算机的发展

  3. 图灵机将求解数学问题的过程和机械运动对应起来

人工智能的边界

近些年人工智能的发展让人们担忧人工智能将取代人类,但了解了图灵的可计算理论之后就会发现这种想法有些过于担忧,人工智能所能解决问题的范畴仍未超越图灵机的范畴。如果给给所有问题进行集合划分的话,其大致如下:

所有问题集合⊇数学问题⊇可判定问题⊇有答案的问题⊇可计算问题⊇工程可解问题⊇人工智能可解问题

近几年人工智能的发展只是将人工智能可解问题的范畴扩大了一些,但无论怎么扩大都不可能超出可计算这个范畴,况且世间好多问题不是数学问题,例如:情感问题、企业管理问题等,这也说明理论对工程的影响有多么深远。

参考

《计算之魂》——吴军博士著