第676章 一剑西来,力挽天倾!_人工智能之不能_宠文网
首页

第676章 一剑西来,力挽天倾!

关灯 护眼    字体:

上一章 章节列表 下一页




人类喜欢秩序、模式和规范。我们对于任何有意义的数字序列都感兴趣。从数拥有多少头家畜中我们发明了自然数,从测量中我们发明了有理数,从几何中我们发明了无理数。对不同的数的操作构成了算法。从古希腊开始的数学的基本认知在其形成很久以后,13世纪的西班牙数学家拉蒙·柳利(Ramon Llull)认为数学逻辑推理可以用人造的机械来实现。16世纪的英国数学家托马斯·霍布斯(Thomas Hobbes)认为头脑里的逻辑推理可以表达为数值计算,“我们在无声的思维中加加减减”。在1500年前后,达·芬奇(Leonardo da Vinci)设计了一台机械计算机,但他并没有建造出这台机器。更出名的计算机Pascaline是由法国数学家、机械师布莱士·帕斯卡(Blaise Pascal)在1642年建造的。在这不久之前,已知的更早的一台可以被称为计算机器的设备是由德国科学家威廉·施卡德(Wihelm Schickard)在1623年左右建造的。布莱士·帕斯卡写道:“算数机器产生了明显比所有动物行为更接近思维的效果。”莱布尼茨建造了一个试图对概念而不是对数学执行操作的机械装置,但是其使用范围非常有限。莱布尼茨建造的计算机器确实超过了帕斯卡的,因为莱布尼茨建造的计算器能加、减、乘、求根,而Pascaline只能加与减。从算盘到计算尺,再到机械计算器和计算芯片,人类在计算工具上的探索一直到今天都还没有停歇。图灵的天才之处在于,他认识到,在任何计算器中可执行的任何算法(即任何程序)都可以通用图灵机(Universal Turing Machine,简写为UTM)实现。于是,除了完全由硬件部分决定的计算机速度外,通用图灵机可以做任何计算机可以做的事情。而任何一台计算机都是通用图灵机的某种变体,它们是等效的。

1934年春天,哥德尔在普林斯顿做了一系列讲演。在讲演中,哥德尔引入了一类可以精确定义的可计算函数,他称之为一般递归函数。递归的概念意味着函数在运行的过程中调用自己,事实上,这也意味着无法避免的可怕的自指。这项工作很快成为图灵机的基石。

1936年,英国年轻数学家图灵发表了一篇重要文章《论可计算数及其在判定问题中的应用》,标志着图灵机的诞生。图灵在他的这篇开创性的论文中,提出了著名的“图灵机”的设想。他将逻辑中的任意命题用一种通用的机器来表示和计算,并按照一定的规则推导出结论,其结果是:可计算函数可以等价为图灵机能计算的函数。在这篇文章中,图灵定义了用图灵机可以计算的函数,同时,他也提出了一个论点:“可计算的函数”与“用图灵机可计算的函数”是一回事。换句话说,图灵机能计算的函数便是可计算的函数,图灵机无法计算的函数便是不可计算的函数。同时期,美国数学家丘奇(Alonzo Church)也得到了相同的结论。“所有计算或算法都可以由一台图灵机来执行”的观点便被称为“丘奇—图灵论题”。

图灵机由四个部分组成:

1.输入集合,一个无限长的存储纸带,带子由一个个连续的存储格子组成,每个格子可以存储一个数字或符号;

2.输出集合,一个读写头,读写头可以在存储带上左右移动,并可以读、修改存储格上的数字或符号;

3.内部状态存储器,该存储器可以记录图灵机的当前状态,并且有一种特殊状态为停机状态;

4.状态转移表(固定的程序指令),指令可以根据当前状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作(左移还是右移),并改变状态存储器的值,令机器进入一个新的状态或保持状态不变。



图7–6 图灵机理论示意图


整台图灵机的核心在于读写头的状态转移表,它指示着读写头的状态和当前读写头正对格子的符号如何变化。状态转移表就是由一系列这样的简单规则组成的,它相当于图灵机的源代码。

图灵机的运转和我们笔算的思维过程非常相似:在每个时刻,我们只将注意力集中在一个地方,根据已经读到的信息移动笔尖,在纸上写下符号;而指示我们写什么和怎么写的,则是早已背好的九九乘法表,以及简单的加法。如果将一个笔算乘法的人看成一台图灵机,纸带就是用于记录的纸张,读写头就是这个人和他手上的笔,而状态转移表则是笔算乘法的规则,包括九九表、列式的方法,等等。这种模式似乎也适用于更复杂的机械计算任务。如此看来,图灵机虽然看起来简单,但它足以作为机械计算的定义。

下面我们通过一个小例子来了解下图灵机到底是如何进行计算的。这个例子比较简单,我们将在空白的纸带上打印1、1、0三个数字。

假设有一条无限长的纸带,纸条上有一个个方格,每个方格可以存储一个符号,纸条可以向左或向右运动。

图灵机进行下面3个基本的操作:

1.读取指针头所指的方框里的符号。

2.修改方框中的字符。

3.将纸带向左或向右移动,以便修改其临近方框的值。

首先,我们向指针头指向的方框中写入数字1:

接着,我们让纸带向左移动一个方框:

现在,我们再往指针头指向的方框写入数字1:

接着,我们继续让纸带向左移动一个方框,并写入数字0:

这样我们就完成了一个简单的图灵机操作。



上一章 章节列表 下一页