计算的本质

1 古代算盘

三下五除二,这是一句珠算口诀。它是指加3时,可以先把算盘上面的5落下来,再从下面扣除2个珠子,这个过程不需要熟悉数学计算,只要背下口诀,小孩子都能打算盘进行复杂计算。事实上,很多科学史专家将中国的算盘作为最早的计算机,人们靠珠算口诀来控制操作计算。算盘打熟了,在人的肌肉记忆下得到计算结果,减少了脑力负担。

使用算盘依然有一定门槛,首先要掌握口诀,还要练习打算盘珠子。如果不熟练到飞起来,计算速度还不如用笔在纸上演算。在漫长的岁月里,中国古代的算盘没有任何进步,它从未真正解放过人力。

2 机械计算器

英国数学家乔治·布尔(1815-1864)提出了布尔代数,通过将逻辑值 TRUE ( 真)和 FALSE( 假)编码为 0 和 1,用这种代数用来研究逻辑推理。

1822年,英国数学家查尔斯·巴贝奇开始研制纯机械结构的计算器 - 差分机。这种机器采用蒸汽驱动大量的齿轮运转,可以自动计算多个变量的复杂算题。差分,是把复杂的算术转化为差分运算,比如用加法代替平方。巴贝奇认为,乘法是加法的重复,除法是减法的重复,减法可以用加法来代替,只要设计一个加法运算器即可,所有的运算转化为最简单的判断和计算,1表示Yes,0表示No,计算机用0和1不断重复计算。

1834年,巴贝奇提出了更大胆的设计 - 分析机,能够自动计算100个变量的复杂算题,每个数可达25位,速度可达每秒钟运算一次。巴贝奇的分析机大体上分三大部分:

  • 存贮库:用齿轮贮存10个数,齿轮组成的阵列总共能够储存1000个50位数。
  • 运算室:用齿轮间啮合、旋转、平移等方式进行数字运算。
  • 控制器:机器判定计算条件,比如第一步运算结果若是"1",就接着做乘法,若是"0"就进行除法运算。

受限于当时的机械工艺水平和社会背景,差分机并没有普及推广,分析机也宣告失败,但是这两种机器为现代计算机设计思想奠定了基础。

3 香农理论

1938年,信息和通信界的双料祖师爷克劳德·艾尔伍德·香农(Claude Elwood Shannon)发表硕士论文《继电器与开关电路的符号分析》,提出用布尔代数来描述电路,将布尔代数的"真"与"假"和电路系统的"开"与"关"对应,用两个数字“1”和“0”来表示。香农的这篇论文,奠定了数字电路的理论基础,后来出现的计算机都以此为设计思路。

香农的电路设计思想可以被总结为“模块化”和“等价性”。模块化就是用少量简单的模块搭建出各种复杂的功能,等价性是指复杂的计算都可以等价成加减乘除的运算,进而等价成开关电路的逻辑运算。我们遇到某个问题很难解决,如果存在一个容易解决的等价问题,就先去解决那个等价问题。等到它被解决后,原来的难题就迎刃而解了。比如,我们在证明三角形全等的过程中,只需要证明两个角加上一个边相等,而不需要直接证明三角形完全相等一样,等价问题的解决难度会下降一个梯度。

4 图灵机

阿兰·图灵(Alan Turing,1912~1954)被誉为计算机科学之父,在计算机程序设计、人工智能和密码学等领域有着深远影响。1952年,图灵被指控涉嫌同性恋行为,并接受雌激素注射治疗作为惩罚。1954,图灵在卧室服用含氰化物的苹果,自杀身亡。

在图灵之前,人类制造计算机都是先从简单问题的计算机开始,越做越复杂。图灵抛开具体的技术,从计算的本质来探究计算机的极限,他思考的问题如下:
(1)数学问题是否都有明确的答案。
(2)如果有明确的答案,是否可以通过有限步的计算得到答案。
(3)可能在有限步的计算出来的数学问题,假设有一种机器可以不断的运动,当它停下来的时候,结算结果就出来了。

他设计出了一种被称为图灵机的数学模型,这个模型的全部定义一共有四条:
(1)要有一条无限长被分成一个个格子的纸带,每个格子里记录着符号或数字,为了清楚起见,可以为这些格子上编号1、2、3、4......这就相当于人们计算数学题时使用的纸张。
(2)有一个读写笔,在纸带上左右移动,它停到哪里就可以改变哪里的符号或数字,这就相当于人们算题的过程。
(3)有一套规则表,根据图灵机当前的状态和读写笔所指向格子中的符号或数字,人们查到后就知道下一步该做什么,完成这个步骤后,图灵机就进入了一个新的状态。
(4)图灵机的状态需要记录在一个地方,图灵机的状态是有限的,其中有一个特殊状态是停机,一旦进入停机状态表示计算完成。

图灵将世界上的数学问题分成了两类,一类是可以用图灵机在有限步内完成计算的,另一类是不可以的。今天我们说一个软件问题能不能计算,其实不是指数学计算,而是能否用图灵机这个简单逻辑来计算。图灵机给后人设计计算机制定了一个行之有效的原则,就是计算机可以通过存储地址、计算机状态、规则表和当前位置的读写来进行计算。

其实,现代计算机的本质依然是机械运动,只是从齿轮变成晶体管。

5 人工智能

ChatGPT的出现会让很多人担心计算机会替代人类,毕竟它看起来做事又快又好,但是这个担忧大可不必。计算机只是人脑的延伸,面对复杂的人性和社会,如果人无法解决,那么计算机也无法解决。从工具的属性思考计算机,它有两个问题:
(1)不是所有问题都可以计算:比如股票的涨跌,计算机可以收集所有的数据,再根据模型预测趋势,但是无法预料某个庄家头脑发热大肆买进。
(2)任何计算都有成本:算力始终有限,算力投入成本如果高于收益,没人会为这种计算买单。

人工智能技术主要依赖大数据的深度学习,这是明确的可解问题,并没有超出图灵机的范畴。以前很多问题没有转化为数学问题,现在转化了,有了对应的数学模型。通过海量芯片堆叠出强力的计算机来运行这些模型,人工智能就越来越“聪明”了。

posted @ 2023-11-02 16:44  编码专家  阅读(101)  评论(0编辑  收藏  举报