历史

5复杂系统和人工智能的进化(1/2)

    机器能够思维吗?图林提出的这个著名问题在复杂系统框架中具有新的讨论意义。本章先对莱布尼茨和他的机器思维纲领(通用数学)以来的计算机科学史作一简短回顾(5.1节)。现代的可计算性理论使我们能够进行问题的复杂性分类,即划分对它们的算法或计算程序的计算时间的函数的级别。现代计算机科学感兴趣的,不仅仅是通用问题求解的复杂性而且还有基于知识程序的复杂性。在特定的领域中模拟人类专家问题求解行为的专家系统,是一个著名的例子。我们还要进一步问一问,是否可以期待从量子计算机和量子复杂性理论中得到更有效的问题求解方法(5.2节)。

    但是在采用程序控制的计算机算法机械化时遇到几个严重的障碍,是增加计算能力所不能克服的。例如,模式识别、运动协调和其他复杂的人的学习任务,都是图林类型计算机程序所难以把握的。人工神经网络实现了复杂动力学系统的原理。它们得到了非线性动力学在固态物理学、自旋玻璃体物理学、化学平行计算机、光学平行计算机、激光系统中和对于人脑的成功应用的鼓舞(5.3节)。人工神经网络已经在神经仿生学、医学和机器人学中得到了一些应用。新技术应用的另一个更为推测性的方面是赛博空间。虚拟现实在世界范围的远距离通信者的社会中已经成为一个关键词(5.4节)。显然,图林的“机器能否思维?”这个问题不可能由复杂系统探究方式作出最终的回答,尽管我们可以运用人工神经网络来完成一些有趣的认知任务。

    5.1莱布尼茨和通用数学

    复杂系统的一个最为推测性的应用是人工智能(AI)的进化。在经典的AI传统中,大脑被理解为最先进机器的计算机硬件,而神经是相应的具有确定性算法的软件程序。甚至基于知识的专家系统也被设想为高度发展的AI编程语言的算法表示。但是数理逻辑的理论结果(丘奇、图林和哥德尔等人)以及编程的实际问题限制了经典AI框架中的思维机械化。

    一种关于作为自然进化产物的“脑计算机”的理论已经提出,主张用复杂神经网络的非线性动力学(“自组织”)来为大脑的本性及其精神状态建立模型。由此引起的问题是,对于它们的动力学的洞见,是否会获得一种新的革命性技术的“蓝图”,并由此来追索大脑和精神的自然进化。实际上,人的知识和知识技术的发展表现为一种技术的进化,它导致了如同生物进化中的突变那样的技术创新。

    最初的水平是由如锤子、杠杆等简单工具实现的。高一级水平上,发明了运用力和能量的机器。今天,程序控制的计算机和信息处理自动机已经变成了日常生活中的工具。计算机科学家在他们的机器的历史发展中把硬件和软件划分成若干代。在人工智能研究中,人们可以说“第2代计算机”,指的是从数字处理机到知识处理系统,如专家系统。专家系统被认为是至少部分地模拟人类专家。

    计算机科学的早期历史根源可以追溯到经典机器时代。随着自动执行初等算术操作的机械装置的发展,思维的机械化也就开始了。一台机械计算机一步一步地执行顺序指令。因此,它的动力学是由机械的单向因果性所决定的,本质上不同于复杂系统平行主义和自组织。一般地说,机械计算机的传统设计中包括如下的装置。

    首先是输入机制,数字由此输入到机器中。选择机制选取机械运动,对寄存机制中的数值进行加法或减法运算。寄存机制对于显示存储在机器中的数值是必要的,技术上是用一系列的轮子或圆盘来实现的。如果进行了一次计算,是因为结果寄存器中的一个数字从9提升到了0,然后必须由运行机制将这一运算传播到下一个数字甚至穿过整个结果寄存器。控制机制保证了所有的齿轮在每一次加和循环以后正确地到位,以避免错误结果或阻塞机器。消去机制必须对寄存机制进行重新设置,使之处于零位。

    希伯莱语教授、东方语言学家、数学家、天文学家和地理学家威廉姆·希克尔德(1592-1635)被看成是第一位能够进行四则运算的机械计算机的发明者。他的机器中,加法和减法部分是由自动运行机制驱动齿轮来实现的。乘法和除法机制是以亲普尔的乘法表为基础的。杰出的法国数学家和哲学家布莱斯·帕斯卡尔(1623-1662)发明的加法和减法机中,其精致可进行四则运算的运行机制原理在今天的路程计中仍然运用着。

    正是莱布尼茨的可进行四则运算的机械计算机中包含了如下机械装置:输入机制、选取机制、进行运算的寄存器、以及消去机制。莱布尼茨机成了手摇计算机的原型。如果我们对莱布尼茨机的技术细节和特殊机械构造进行抽象,那么我们就获得了一种理想计算机模型,它在原则上能够计算所有的自然数的可计算函数。

    图5.1是这种理想计算机的图式,其中有摇把C,3个数字寄存器**、TM和RM。设置操纵杆SH可以使自然数输进(输入)机制**。如果摇把向右方转动,**的内容就加入到结果机制RM的内容中,转动机制TM的内容就提高1。摇把C向左方转动,从RM的内容中减少**的内容,并使TM的内容减少1。

    加法意味着如下的结果:在计算开始时,消去机制程序由设置TM和RM到零来完成。然后,第1个数用SH设置在**中。摇把C向右转动,就把这个数字送入了RM。换言之,在RM中把数字加到了零上。现在,第2个数字输入到**,并通过向右转从而加到RM的内容中。两个数字的和可以在RM上读出。在向右摇动两次曲柄以后,TM显示出2。乘法仅仅是意味着反复相同数字的反复加法。乘积b·a是数字a加到自己身上b次。

    莱布尼茨甚至设计了仅仅有两个数字0和1的二进制数字系统的机械计算机,二进制是他早些年发现的。他描述了一个机制,可以把十进制翻译成相应的二进制,并且反之亦然。由于现代的电子计算机只有两种状态1(电脉冲)和0(没有电脉冲),莱布尼茨的确成为计算机科学的先驱之一。

    莱布尼茨的机器遇到了许多技术上的问题,因为那时的材料和技术工艺都难以满足要求。然而,他的设计是通用数学的一般研究纲领的一部分,通用数学机的意图是要通过计算程序(“算法”)并通过机械计算机来模拟人的思维。莱布尼茨提出了他的通用数学的两个基本学科。

    ars iudicandi允许每一种科学问题,在编码成为数字符号以后,都可由适当的算术算法来解决。ars

    inveniendi允许科学家去寻找和计算出科学问题的可能解。莱布尼茨的通用数学看来已经预见了我们这个世纪著名的希尔伯特纲领,此纲领号召对数学知识进行形式化和公理化。实际上,莱布尼茨发展起来了一些程序,对语言进行形式化和编码。他深深地坚信,存在着用机械装置解决世界上所有问题的通用算法。

    结果,他主张自然系统如细胞、植物、动物甚至人类都是复杂性程度不同的计算机。莱布尼茨在他的《论形而上学》(1686)中强调,活系统的因果解释的机械描述并不与在科学中有巨大启发价值的目的论观点相抵触,(22)。他在《单子论》中(18),引入了一种个体实体(单子)作为基本的自动机,它以状态(“感觉”)的(连续)系列为特征。基本的自动机构成了集合体,其程度不同的复杂性以不同的关联性为标志,并可以解释为复合的自动机。在他的《神正论》(200)中,莱布尼茨讨论了活系统中的等级结构和从属关系:

    ……事物的关联和秩序引起了,每种动物和每种植物的身体都包含了其他动物和其他植物,或其他活的有机体:结果是存在着从属关系,一种身体,一种实体都服务于另一种。

    活系统的统一性是由其组织形式来保证的,对此莱布尼茨采纳了亚里士多德的观点,称之为“隐德来希”。但是莱布尼茨仅仅是借用了一种老的形而上学术语,以引出他自己的新概念。对于莱布尼茨来说,只有在从属关系和等级程度高低不同的意义上,一个系统才有一定程度的统一性。一个其中所有的实体之间有同等关联的集合体,就没有等级秩序,比起初级的细胞有机体,它的结构性就较差,而在植物、动物和人类中,我们都可以观察到一种不断增长的从属关系。

    对于莱布尼茨来说,目的性术语具有启发性价值,尽管大自然原则上可以用机械因果性来解释。但是,把莱布尼茨说成是一位生命力论的信徒是一个基本的错误和误解。主要的区别在于,对于莱布尼茨来说,解释活系统决不需要新的原理或生命力。在一定程度的复杂性中,目的论术语仅仅是启发性地适用于描述自然系统。但是,与自然系统不同,人造的机械自动机是由人在有限步骤中构造出来的。只有无限分析才能够揭示出自然自动机的复杂性,它是与世界上的每一单个自动机(“实体”)相关联的。显然,莱布尼茨设计了一种复杂系统理论,但是仍然是处于经典力学框架中,仍然是一种可决定的通用算法的信念。

    在19世纪,英国的数学家和经济学家查尔斯·巴贝奇不仅仅构造了第一台程序控制的计算机(“分析机”),而且还研究了它的经济和社会后果。他的名著《论机械和制造的经济》(On

    theEconomy of Machinery and Manufactures,1841)的先声是亚当·斯密的经济规律思想,这与牛顿的力学规律是并行不悖的(对照6.2节)。在《国富论》中,斯密把钢针的工业生产描述为一个算法程序,预见了亨利·福特的工业中程控批量生产的思想。

    5.2从图林机到基于知识的系统

    弗雷格和罗素的现代形式逻辑以及希尔伯特和哥德尔的数学证明理论,主要受到了莱布尼茨通用数学纲领的影响。手摇计算机(图5.1)是对于5.1节所述莱布尼茨机的抽象,可以方便地推广到马尔文·闵斯基的所谓寄存机。它使人们在现代计算机科学中可以定义一般的可计算性概念。

    一台手摇计算机只有两个寄存器TM和RM,只能输入相当小的自然数。一台理想的寄存器具有有限个寄存器,它们都可以贮存任意有限个数量。寄存器用自然数i=1,2,3,……标记。寄存器i的内容用(i)来标记。作为一个例子,装置(4):=1意味着,寄存器4的内容为1。如果其内容为0则寄存器是空的。

    在手摇计算机中,加法或减法仅仅由两个寄存器(**)和(RM)来实现,(**)+(RM)或(**)-(RM)都将存入寄存器RM。在寄存机中,减法的结果应为0,如果大于。这种修改的减法标记为。一般地,理想寄存机的程序是用如下的基本步骤作为建筑块来定义的:

    ①向(i)中加人1并把结果置人寄存器i,即(i):(i)+1;

    ②从(i)中减去1并把结果置人寄存器i,即(i):=(i)-1;

    这两个基本步骤可以运用如下的概念进行合成:

    ③如果P和Q都是明确定义的程序,那么P→Q也是明确定义的程序。P→Q意味着,机器必须在执行程序P之后执行程序Q。

    ④程序的重复,这对于乘法是必要的,例如,重复相加受到如下问题的控制:一定的寄存器是否是空的。

    这种反馈可以示意如下:

    如果P是明确定义的程序,执行P直到寄存器i中的内容变成零。

    程序的每一基本操作①和②都计为一步计算。一个简单的例子是如下的加法程序:

    机器的每一状态都表示为如下的矩阵,它不断地把(j)的内容y加到寄存器(i)的内容X中,同时使得(j)的内容逐步减少到零。x+y加和的结果显示在寄存器中:

    一台具有程序F的寄存机定义为,计算出n个自变量的函数值f,即对于寄存器1,…,n中任意的自变量x1,…,xn(对于所有其他寄存器均为零),执行程序F,在有限步骤后停止,此时寄存器1,…,n中函数的自变量和寄存器n+1中的函数值为f(x1,…,xn)

    按照相应的矩阵进行运算。函数f称作由寄存机RM可计算的(RM-可计算性),如果由程序F计算f。

    一定程序F计算一个函数f所需的步骤数,由该程序所决定,并取决于函数的自变量。程序F的复杂性用函数SF(x1,…,xn)来度量,它计算出按照程序F进行计算的步骤。例如,x+y的加法程序的矩阵显示了,y步加上1的基本步骤和y步减去1的基本步骤是必要的。因此,SF(x,y)=2y。由于RM可计算函数f可以由若干种程序进行计算,函数g称作函数f的步骤计算函数,如果有一个程序F去计算f,且对于所有的自变量x1,…,xn有g(x1,…,xn)=SF(x1,…,xn)。一个函数的复杂性定义为最好程序的复杂性,最好程序即进行函数计算时花费步骤最少的程序。

    显然,闵斯基的寄存机是一种对于莱布尼茨的手摇计算机的直觉概括。但是,历史上另一种等价表述的机器是阿兰·图林和埃米尔·波斯特在1936年首先提出来的。图林机(图5.2a)可以执行任何有效的程序,如果该程序是正确编程的。它的构成:

    a)控制箱,其中置入某个有限程序;

    b)潜在无限的带子,带子上划分出小方格;。

    c)计数装置,或将每一结果打印在带子的每一方格中,沿着带子的移动或停机都处于控制箱的命令控制下。

    如果图林机使用的符号限制在竖线I和空格*,那么可以证明,RM可计算函数是图林机可计算的,反之亦然。我们必须记住,每一自然数都可以一个x条竖线的序列来表示(例如3表示为III),每一竖线都占据图林带子上的一个方格。空格*用来标记空的方格(或相应的数字为零)。特别是,对于分开代表着数目的坚线序列,空格是必要的。因此,图林机计算一个自变量为x1,…,xn的函数f,始于带子上的…*x1*x2*…*xn,停机于…*x1*x2*…*xn*f(x1,…xn)*…。

    从逻辑学的观点来看,一台通用计算机是技术上实现了的通用图林机,——如美国的约翰·冯·诸葛曼小组构造的计算机以及德国的康拉德·朱斯独立构造的计算机。它可以执行任何种类的图林程序。同样,我们可以定义一种通用的寄存机,它可以执行任何种类的寄存程序。实际上,通常设计的冯·诺意曼机包括中心处理器(程序控制器),记忆装置,算法单元和输人-输出装置。它以长序列方式一步一步地运行。今天的一台冯·诺意曼计算机实际是一台通用化的图林机。图林机的效率可以由引进几条带子而增加,它们不必是一维的,每一条带子有一个或多个读写头,但是都要报告给单个控制箱,控制精协调着机器的所有活动(图5.2b)。因此,这种更有效的机器的每一计算都可以由一台普通的图林机来实施。从复杂系统探究方式来看,一台多带图林机仍然是一种程序控制的计算机,与自组织系统如神经网络有本质上的差异。

    除了图林机和寄存机以外,可计算函数还可以用许多其他数学上等价程序来定义。递归函数由函数置换和重复来定义,它始于某种显然是可计算的基本函数(例如相继函数n(x)=x+1)。所有这些由图林机、寄存机、递归函数等来定义的可计算性,可以被证明是数学上等价的。显然,每一种这样的精确概念都定义了一种程序,这样的程序是直觉上有效的。

    因此,阿朗索·丘奇提出了他的著名公设,有效程序这个非形式的直觉概念与图林机那样的等价的精确概念是一致的。丘奇的公设当然是不可能证明的,因为这里是数学上精确的概念与非形式的直觉概念的比较。然而,几种精确的可计算性概念的数学等价在直觉上是丘奇公设的有效确证。结果是,我们可能在不涉及特定的有效程序(“算法”)如图林机、寄存机、递归函数等时,来谈论可计算性、有效性和计算函数。按照丘奇的公设,我们特别可以说,每一可计算程序(算法)都可以由图林机进行计算。所有的递归函数作为一种机器程序,都可以由通用计算机进行计算。

    现在,我们能够定义决策和可计数的有效程序,而莱布尼茨的通用数学纲领就已经提出了这样的要求。自然数的集合M的特征函数fM定义为fM(x)=1,如果x是M的一个元素,否则fM(x)=0。因此,子集M被定义为有效可决定的,如果其特征函数对于一个数无论是否属于M,都是有效可计算的(或递归的)。

    集合M定义为有效(递归)可计数的,如果存在有效(递归)程序f可相继地产生出其元素(对于M中所有元素x1,x2,…,有形式f(1)=x1,f(2)=x2,……)。容易证明,所有递归(可决定的)集都是递归上可计数的(或递归的)。但是,存在着这样的集合,它是递归上可计数的,但却不是可决定的。这是第一条线索,它意味着,莱布尼茨的基于通用可决定程序信念的乐观纲领存在着局限性。

    对于自然智能和人工智能,有效可计算性范式意味着精神是由程序控制机器表示的。神经结构涉及的是符号数据结构,而精神过程也就是操作算法。历史上,AI的核心是在1956年的达特茅斯会议期间建立起来的。参加会议的约翰·麦卡锡、阿兰·纽厄尔、赫伯特·西蒙以及来自其他不同学科领域的一流研究人员,形成了新的AI科学共同体。他们都受到图林的“机器能否思维?”问题的启发,这个问题是图林在著名的《计算机器和智能》(1950)一文中提出来的。

    在莱布尼茨的通用数学的传统中,人们可能会相信,人的思维可以用某种通用演算来形式化。在其现代的翻版中,人们可能会假定,人的思维可以用某种强有力的形式编程语言来表示。无论如何,形式表达式都是符号序列,是可以用自然数进行编码的。于是,对于对象的断言就相应于关于数字的函数,结论就将从某种有效的计数程序中得出,如此等等。实际上,现代计算机的机器语言就是由数字序列构成的,对于机器的每一状态和程序进行了编码。因此,计算机的操作可以描述为有效的或递归的数字程序。

    如果人的思维可以用递归函数来表示,那么按照丘奇公设,它就可用图林程序来表示,而图林程序可以用图林机计算。因此,人的思维也就可以用通用计算机来加以模拟,在此意义上,对于图林提出的问题也就必定要回答“是”。人的思维是可以编码、可用递归程序来表示的,这一前提当然是可疑的。甚至数学思维的过程也可以远比递归函数更为复杂。按照丘奇的公设,递归性或图林可计算性仅仅是可计算性的一种理论限度。

    下面我们希望考虑在这种限度之下和之上的复杂性程度问题。在这种限度之下,有许多涉及到一定限度的实际问题,其限度涉及到如何增加算法的速度。特别是在数学问题中,有一些种类的问题,它们的算法求解本来要比解决其他一些问题困难得多。因此,图林机有不同程度的可计算性,计算机科学中的复杂性理论使之精确化。

    问题(或相应的函数)的复杂性分类可以由复杂性程度来标志,这给出了函数的阶,函数描述了依赖于其输入长度的算法(或计算程序)的计算时间(或基本计算步骤的数目)。输入的长度可以用十进制的数目来度量。按照计算机的机器语言,可以方便地将十进制数字编码成仅仅用0和1的二进制码,并用二进制字符来定义其长度。例如,3的二进制码是11,其长度为2。函数f具有线性的计算时间,如果f的计算时间不大于c·n,其中n是输入长度,c是常数。

    两个(二进制)数的加法显然只具有线性计算时间,例如,对于3+7=10中应的二进制计算

    0   1

    1

    1

    1   1

    __________________

    1  0

    1   1

    其中需要5个基本计算步骤把两个二进制数加和(包括运算)。我们提醒读者,加和二进制数字相加的基本步骤是0+0=0,0+1=1,1+1=10,以及运算。可以方便地假定,两个将要相加的数具有同等长度。否则,我们简单地把较短的数加上一系列的零,例如,111和011而不是和11。一般地,如果将要相加的特定的数对的长度为n,则一个数的长度为n/2,因此,我们需要不大于n/2+n/2=n个基本计算步骤,其中包括了运算。

    函数f具有二次计算时间,如果对于所有的长度为n的输入和常数c,f的计算时间不大于c·n2。

    一个简单的二次计算时间的例子是两(二)数相乘。例如,对于7·3二21,相应的二进制计算:

    1

    1 1·0 1 1

    ___________________

    0 0 0

    1 1 1

    1 1 1

    ——————————

    1

    0 1 0 1

    按照前面的约定,我们有n=6。基本二进制乘法的步数是n/2·n/2=n[2]/4。包括进运算,基本二进制相加的步数是n/2·n/2-n/2=n2/4-n/2。总起来,我们得到n2/4+n2/4-n/2=n2/2-n/2,它小于n2/2。

    函数f具有多项式计算时间,如果f的计算时间不大于c·nk,假定它是多项式P(n)的首项。函数f具有指数计算时间,如果f的计算时间不大于c·2P(n)。许多实际的和理论的问题都属于这种P复杂性,所有P类函数都是可以用确定论的图林机在多项式时间中加以计算。

    数学史上有一些优美的图论问题可以说明复杂性理论的基本概念。1736年,著名的数学家利昂纳德·欧拉(1707-1783)解决了图论中的第一个问题。在东普鲁士的首都柯尼斯堡,所谓的老普里戈尔河和新普里戈尔河在普里戈尔河连接起来了。在18世纪,河上建造了7座桥,把南面s、北面n、东面e与小岛i联系起来(图5.3)。是否有这样一条路线,即每座桥只走一次而可以返回到最初的起点?

    欧拉把问题归结为图论。区域n,s,i,e用图的顶点来代替了,在两个区域之间的桥用相应顶点之间的边来代替(图5.3b)。

    在图论的语言中,欧拉的问题就成为,对于每一顶点,是否存在一条线路,它仅仅通过每一条边一次而最终返回到起点(“欧拉环”)。对于任意的图形,欧拉证明:欧拉环存在,当且仅当每一顶点都具有偶数条边(“欧拉条件”)。对于图5.3a,它并不满足这种条件,因此在这里欧拉问题不可能有解。一般地,存在用欧拉条件来检验任意的图的算法,如果它是欧拉环。算法的输入包括所有顶点1,…,n的集合V,所有边的集合E,它是所有顶点对的集合的子集。这种算法的计算时间线性地依赖于图的大小,它由定点数和边数之和来定义。

    1859年,数学家威廉姆·哈密顿(1805-1865)引入了一个颇为类似的问题,但比欧拉的问题更复杂。哈密顿考虑的是任意的图,它仅仅意味着有限的顶点的集合,通过边联系起来的一定数目的顶点对。哈密顿问题是:是否有一个通过每一顶点(而不是欧拉问题中的通过每一边)的封闭环(“哈密顿环”)。图5.3c示意了有一个哈密顿环的图,其中按照数字顺序通过每一顶点。

    不过,与欧拉问题的情形不同,我们并不知道这样的条件:它精确地表明一个图中是否包含哈密顿环。我们仅仅能够定义一种算法,来检验任意的图是否包含有哈密顿环。该算法检验所有的顶点的排列,以确定它们是否形成了一个哈密顿环。由于n个顶点有n!种不同的排列,该算法找到某个解的步骤不大于c·n!,其中c是常数。容易证明,n!阶相应于n[n]阶。结果是,对于哈密顿问题,一个算法需要指数的计算时间,而欧拉问题的算法求解需要的是线性计算时间。因此,哈密顿问题实际上是计算机无法解决的,甚至对于小的数目n也如此。

    大的计算时间的主要原因在于,确定论的计算机只能一步步地对于其中巨大数量的一个个情形进行检验。更方便的是运用非确定论的计算机,它允许在有限的可能数目中随机地选择计算程序,而不是以系列的方式一步步地进行。让我们再一次考虑哈密顿问题。假定一个输人图具有n个顶点u1,…,un。一个非确定论的算法以非确定论的、随机的方式选择了一定的顶点顺序Vi1,…,Vin。然后,该算法进行检验:这种顺序是否形成了一个哈密顿环。问题也就是,对于所有的数字j(j=1,…,n-1),相继的顶点Vij和Vij+1以及起初的开始顶点Vin和Vi1是否是由边联系起来的。这种非确定论算法的计算时间线性地依赖于图的大小。

    一般地说,NP意味着这样类型的函数的复杂性,它们用非确定论图林机进行计算时需要多项式时间。哈密顿问题是一个NP问题的例子。另一个NP问题是“旅行推销员问题”,除了种种边都有一定的数目规定以外,它与哈密顿问题非常相似。人们要解决的是:对于这一问题的哈密顿环,找出其数字的和的极小值,或更直觉地说,找出其旅行的距离的极小值。

    所有的P问题由定义,都是NP问题。但是,复杂性理论的关键性问题在于是否有P=NP,或换言之,由非确定论计算机以多项式时间解决的问题,是否也可以由确定论计算机以多项式时间来加以解决。

    哈密顿问题和旅行推销员问题,是所谓的NP完全问题的例子。这意味着,任何其他的NP问题都能够以多项式时间转化成它。结果是,如果一个NP完全问题实际上被证明是P问题(例如能够构造以多项式时间来解决哈密顿问题的一个确定论算法),那么接着还有是否所有的NP问题实际上都是P问题。否则,如果P≠NP,那么NP完全问题就不可能用确定论算法以多项式时间来解决。

    显然,复杂性理论表达了图林机或图林类型机的算法能力的程度。它在科学应用和工业应用中具有实际的后果。但是,它是否意味着人的思维的极限呢?复杂性理论的基本问题(例如N=NP或N≠NP)涉及到算法的速度、计算时间、存贮能力等等的度量。另一个问题是,人们如何开始发现复杂性程度不同的算法。这是计算机科学家的创造性工作,是算法的复杂性理论中不考虑的。

    另一方面,哥德尔的著名定理常常被认为限制了计算机和人的思维的数学能力。他的不完全性定理说,对于形式数论的每一协调的公理化扩展,就有一个(封闭的)不确定的表达式。实际上,他的定理陈述了,在整数的真陈述在其逻辑内不可能得到证明的意义上,任何合理的协调的算术逻辑都是不完整的。甚至如果我们用不可确定的表达式来扩展我们的公理化,那么也会有另一表达式在扩展的形式化中是不可确定的。哥德尔的结果表明,在莱布尼茨和希尔伯特传统中对于完整协调的算术逻辑的形式化追求,是注定要失败的。

    而且,哥德尔证明,算术逻辑——它可能是不完整的——使用可以在其逻辑内表示的方法来使之协调,也是不可能的。在哥德尔的著名结果提出来若干年以后,金藤(1909-1945)证明了初等数论的协调性,他运用了所谓的EO归纳法,该方法是通常的归纳法对自然数的无限扩展。但是,金藤的扩展的证明法的协调性却还是有疑问的,有待证明。换言之,证明方法的复杂性并不低于被证系统的复杂性。因此,只可能有相对协调的证明,所用证明方法必须得到证明,所用来进行证明的方法又需要得到证明,如此等等。对于人的思维,不存在绝对的可以由形式算法提供的协调性基础。

    但是,哥德尔定理对人的思维的限制是有某些基本假设条件的:我们必须把定理的证明作为人的智能的关键。公理仅仅适用于这样的精神模型:它是由其中所有知识都仔细形式化了的机器构成的。而且,哥德尔定理仅仅是对协调机的限制,而模糊性、不协调性和迷惑性都是人的决策的典型特征。如果我们在作出是否要行动的决定之前先要作出长时间的仔细的定理证明,那么我们就不可能有长期的生存。还应该考虑到,图林机具有固定的数据结构,而人的精神则是对新奇经验开放的,并能够从错误中进行学习。因此,哥德尔定理对于机器的限制,就如同对于人的大脑封锁新信息的进入一样。

    1936年,丘奇和图林证明了根本没有一种算法能决定一个一阶预测逻辑的表达式是否是同义反复的真理。随之即有,为找到某种数学证明,我们必须具有某些启发性思想。

    所以,AI的第一阶段(1957-1962)是受启发性编程问题支配的,这意味着在可能的分支树中自动地寻求人的问题求解,其间借助启发性来控制和评价。一个例子是纽厄尔、肖和西蒙的“逻辑理论家”(1957),它首次对罗素和怀特海的《数学原理》中前面的38条定理提供了证明。他的启发性来自一些人在心理学测验中使用的约略估量法。

    1962年,这些模拟程序被推广和扩展到所谓的“一般问题求解者”(GPS),它被假定为人的问题求解的启发性框架。但是GPS只可能解决形式化微观世界中的一些无意义的问题。另一个启发性编程的例子是,在博奕(下棋、将军)中寻求取胜策略。最初的模式识别程序(例如词语和符号的词汇表和句法表)都是以统计方法为基础的。但是从长远的观点看,这些早期的任何程序,都没有证明一般认知模拟程序中的欣快信念。至少,它的形而上学鼓舞了麦卡锡发明编程语言LISP,它是作为一种功能的编程语言引入的,用于处理可怕的符号表,成为今天基于知识的系统的一种最强大的编程语言。

    在一般方法失败以后,AI研究者们传播了一种预设的“语法信息处理”程序。AI的第二阶段(1963-1967)以专业程序的发展为特点。这样的专业程序,例如有求解简单代数问题的STUDENT,进行类似物体的模式识别的ANALOGY,等等。麻省理工学院的马尔文·闵斯基是这个时期的头面人物,他放弃了进行心理学模拟的主张:“目前的探索,其特点是聪明地选取问题从而得到复杂智能活动的幻象来进行的预设求解。成功的实用编程方法依赖于专业知识,这个思想首次被加以强调,成为后来基于知识的系统的中心概念。

    对于问题求解的一般原理的追求,在理论计算机科学中仍在继续:J.A.罗宾逊引入了所谓的以预测逻辑演算和赫布兰德的完全性定理为基础的求解原理,允许用逻辑反驳程序去发现证明。

    在AI中推动实用和专业编程方法,在第三个阶段(1967-1972)得到了加速发展。其标志是构造出专业系统、知识表示方法和对于自然语言的兴趣。发明了在数学应用中取得成功的MACSYMA程序的J.摩西描述了AI中范式的变化:“事实上,1967年是我的精神的转折点,那时候我充分地感受到一般原理的旧思想必须放弃……并抓住了我称作专业技能至上的证据。”

    这一时期的另一个著名例子是DENDRAL程序,它运用了质谱学中化学家的专业知识,以发现分子的结构式。这个阶段中的一个范式的例子变成了机器人的SHRDLU程序,机器人可以操纵不同组件组成的小世界。这种系统可以用英语理解和回答关于这个组件世界的问题,执行操作这个组件世界的指令,并把次序划分为一系列操作,理解干了什么并为什么这样干,并用英语描述它的行动。

    在第四阶段(1972-1977),知识的描述、组织和处理成为了把工程学和AI哲学结合起来的中心范式。米彻尔·费根鲍姆引入了“知识工程”这一术语,用于所谓专家系统的发展。一个例子是用于医学诊断的MYCIN程序,它模拟了一个具有细菌感染专业医学知识的内科医生。

    一种新的知识表示方法是马尔文·闵斯基提出的框架概念。一种用于符号性知识处理的新的编程语言是PROLOG(“逻辑编程”),它可以与LISP相比拟。

    AI的第五阶段(1977-1986)被说成是托马斯·库恩的意义上的“常规”阶段,指的是专家系统范式正在运行并实现了商业化。一些工具发展起来,以建设诸如大规模汽车生产使用的新专家系统。AI正在从实验室和哲学家的研究中崛起,正在变成世界性的知识工业的关键性技术。

    接下去,我们重点讨论专家系统,因为这里看来具有最令人感兴趣的哲学问题。一个专家系统是一种计算机程序,其中已经装入了知识和能力,使得它可以在专家水平上进行操作(例如化学中的DENDRAL和医学中的MYCIN)。人类专家的推理过程示意在图5.4中。

    一些专家系统甚至可以揭示为何它们拒绝一定的推理途径而选择其他的途径。设计者们在努力工作以实现这一点,因为他们知道,专家系统的最终运用取决于它对于使用者的可信度。如果它的行为是透明的、可解释的,那么它的可信度就会增加。

    但是,与人不一样,专家系统的知识是限于某种专业信息基础的,而没有关于世界的概括性、结构性知识。因此,专家系统在数字计算机的约定程序和人之间发挥着某种中间功能(图5.5)。

    一个专家系统包括如下的组件:知识基础、问题求解组件(推理系统)、解释组件、知识获取组件和对话组件。它们的协调示意在图5.6中。

    知识是专家系统运行中的关键性因素。知识具有两种类型:第一种类型是领域事实,它们书写在该领域的教科书和杂志中;对于一个领域的实践同样重要的是第二种知识,叫做启发性知识,是在该领域中的良好实践和进行判断的知识。正是实验性的知识,猜测高超艺术为一位专家经过多年工作所能获得的。

    顺便说一下,知识库与数据库不同。例如,一位医生的数据库是关于病人的记录,包括病人历史、重要症状的测量、所开药物和药物反应。这些数据必定要通过医生的医学知识来解释,以进一步进行诊断并制订医治方案。知识库是医生在他的医学教育中和在实习阶段、高级训练阶段、专业训练阶段和医学实践中学会的东西。它包括事实、倾向、信念和启发性知识。

    启发性知识是最难获得的,因为专家很少自觉地认识到它是什么。所以,跨学科训练的知识工程必须去获得专家的规则,将其表示为编程语言,并植入工作程序中。这个专家系统的组件叫做知识获取。它在专家系统的知识处理过程中的中心功能示意在图5.7中。

    最重要的知识表示方法是产生系统、逻辑、框架和语法网络。除了知识以外,专家系统还需要一种推理程序,一种用以理解和作用于知识和问题数据及其组合的推理方法。这些程序是独立于特定的知识库的,是建立在多种哲学方法论基础上的,为此我们将在后面分析几个专家系统的例子。

    专家系统的解释组件的任务是向使用者解释程序的步骤。问题“如何”也就是要对该系统导出的事实或断言进行解释;问题“何时”则是要求,指出一个系统的问题或秩序的前提。

    对话组件处理专家系统与使用者的通信。自然语言的处理器当然可以使甚至未受过专门训练的使用者也容易接受。

    从技术的观点看,专家系统的局限性是显然的。首先是知识表示问题。所论领域的知识如何表示为计算机记忆装置中的数据结构并为问题求解所接受?其次是知识利用问题。推理器应该如何设计?第三是知识获取问题。获得知识是如何可能的?这对于自动的问题求解是非常重要的,以使得计算机容易将人的专业知识转移到符号数据结构中。

    专家系统的最后一个也是最重要的问题是哲学问题。如何将专家系统的专业知识库与关于世界的一般化结构化的知识结合起来?这种一般化结构化的知识会影响人的专家的决策和行动。

    因此,当医生作出进行手术的决策时,还将考虑到有关病人的生活条件(家庭、工作等)的非对象性以及他对于生命的态度。特别是,例如在当今有关死亡尊严的争论中,对于生和死这种基本问题;医生的总体态度和见识也是融入到他的决策中的,尽管立法上在寻求建立一般的行为标准,但对此却是难以进行规范的。例如,在法律的专家系统中也表现出同样的问题。法官会置规范系统的自治性于不顾,最终将发现某种可能决策的正式范围,在此他将倾向于他自己关于生命和世界的观点。对于这种主观性影响,不要抱怨缺乏客观性,而是要看作一种作出更为人道的医学和裁决的机会。不过,对此并没有排除,未来的计算机科学应该去进一步地扩展以专家系统为基础知识,这种知识今天还是非常专业化的。当然,根本性的局限也是明显的,是专家系统的本质所导致。

    专家系统是问题求解程序的技术实现。因此,实际上存在着的专家系统可以由特定的要解决的问题来进行分类。图5.8示意了专家系统最重要问题的类型。

    输入

    问题类型

    输出

    测量数据、症状等

    →分类或诊断→

    规则/模式的识别

    约束

    →设计→

    满足性质的对象

    初始态、目标态

    →计划→

    将初始态转变到目标态的行动顺序

    初始态

    →模拟→

    未来的后果状态

    图5.8专家系统的问题类型

    一类已经深入分析过的问题涉及到“诊断”,例如医学中的诊断。这种专家系统的输入由测量的数据、症状等等所构成,它在结果中提供了从数据规则中识别出来的模式。另一类问题涉及到“设计”。此问题是如何发现在相应约束下的产物。计划问题的解答要求某种行动序列,把初始态转变成目标态。模拟问题从模型的初始态出发,必须计算其后续状态并进行评价。

    问题求解策略是由产生规则推导出来的,这里必须由所谓的规则解释者进行选取。如果有几种规则是可用的,冲突求解策略将决定哪一条规则是适用的。例如,可能的规则可以用优先性和一般性的程度整理出次序。然后,选取具有最高程度的优先性或专业性的规则就可能是合适的。

    在推理中的规则组合可以由所谓前向和后向链接来实现。前向链接从一定的数据和事实A出发,运用此演绎机制直至推导出一定的目标D(图5.9)。

    从方法论的观点看,专家系统的前向和后向链接程序,只不过是众所周知的古典逻辑学家和哲学家帕波斯的发现确证的必要性或充足理由的方法。不足为奇的是,几乎所有专家系统的推理策略都是以众所周知的哲学方法论为基础的。

    今天,AI中运用的大多数哲学理论都不是直接从哲学文献中获取来的,但是这无损于它们的哲学意义。然而,有一些著名专家系统的作者却是直接受到了哲学家的影响。

    要弄明白AI是哲学逻辑和方法论,人们只要仔细考虑一些专家系统。它们的问题分类决定了何种策略适合于问题求解。一般地说,一种策略的目的也就是减少问题的复杂性。

    DENDRAL程序所涉及的任务,是从数据中决定出分子的结构,数据中包含着化合物的分子式和化合物的质谱。输出整理成有序的表格,列出各种可能的结构式。其问题求解的策略被称作“产生和检验”,其算法是产生出与给定的分子式一致的有机分子的拓扑结构,以及产生出分子中的化学键最可能从何处断裂的规则。简言之,我们可以说,该程序是采用尽早修剪掉坏的分枝的方法来减少求解生成树的复杂性。方法论上,它涉及某种确证标准。

    一般地,如下的要点具有重要性,而不论其化学应用如何:

    a)有某个形式对象的集合,其中包含了解答。

    b)有某种产生机制,例如某种对于该集合的完整计数过程。

    c)有某种检验,例如判断所鉴定出的某种产生出来的元素是否在解答集中。

    这种一般方法由如下的算法来定义,例如由如下的遵从丘奇定理的递归函数来定义:

    函数GENERATE-AND-TEST(SET):

    如果要检验的集合SET为空,

    那么失败,

    否则让ELEM是SET的“如下”元素;

    如果ELEM是目标元素,

    那么将其作为解答,否则对于集合SET在没有元素ELEM情况下重复这一函数。

    对于翻译成AI编程语言LISP,必须引入一些递归辅助函数,例如GENERATE(产生一定集合的某个元素),GOALP(是判断函数,如果论据是解答集的一部分则提供T(真),否则NIL),SOLUTION(为“输出”准备的解答元素),和REMOVE(提供集合减去给定元素)。当设计一张符号表时,考虑到LISP中通常的缩写,例如

    DE(定义)、COND(条件)。EQ(方程)、T(真)以及LISP的约定(例如括号规则),如下的算法在LISP中是可接受的:(DE

    GENERATE-AND-TEST(SET)(COND((EQ SET NIL)’FAIL)

    (T(LET(ELEM(GENERATE SET))

    (COND((GOALP ELEM)(SOLUTION ELEM))

    (T(GENERATE-AND-TEST

    REMOVE ELEM SET)))))))

    对于给定的化学分子式,所有的化学结构都系统地产生出来,例如对于C5H12,第一步是:

    一些化学结构被排除了,因为它们是不稳定的或相矛盾的。下一步,计算出相应的质谱并与经验上确定的质谱进行比较。这个比较也就是检验过程。GENERAIE-AND-TEST从而在技术上实现了一种方法论,排除了不可能的假定并检验可能的变体。

    META-DENDRAL程序是设计来改进DENDRAL程序的,涉及何种分子键将在质谱仪中被打破。所以META-DEN-DRAL运用了DENDRAL程序再加上确证的预测标准,这被亨佩尔批判地分析过。

    帮助医生进行诊断感染的MYCIN程序,是一种后向链接的演绎系统。MYCIN的知识库中,大约有300种血液细菌感染生成方式。下面是一个典型例子:

    如果感染的类型是基本的细菌血症,怀疑的入侵点是胃肠道,培养部位是一处无菌部位,那么这就表明此种有机体是拟肠杆菌。

    运用这样的知识,MYCIN进行后向运行。对于所有100种诊断假设,MYCIN试图逼近从实验室结果和临床观察获得的基本事实。由于MYCIN工作在推论往往不确定的领域中,它的设计者把看来合情概率推理的理论与基本的产生装置结合起来。该理论用来为与/或(AND/OR)树中每一个结论建立起所谓的确定性因子(图5.10)。

    这里,Fi是使用者指定给一事实的确定性因子,Ci表明一结论的确定性因子,Ai是产生规则所预期的可信度。确定性因子在AND节点和OR节点处指向前面的式子进行计算。如果一个确定性因子为0.2或更小,相应事实的真假被看作是未知的,就规定其值为0。

    该程序计算出归纳合理性的大小取决于保证事实的多少。这种方式使我们想起鲁道夫·卡纳普的归纳理论。卡纳普自然是不相信培根的普遍归纳结论的。结论总是演绎性的。对此不需要波普尔式忠告,否则专家系统不会运行。然而,像MYCIN系统中所用的概率测量则使得该系统对于使用者更透明。

    另一方面,也可以这样说,在此采用了“假说和检验”策略的波普尔纲领,即产生出最有趣的假说并进行严峻检验。有这样的程序,有助于用统计数据构造起线性的因果解释。另一些程序运用昔日哲学家的知识,归纳推理是单调的,即意味着从一组前提归纳地导出的结论,可能并不是前提的协调拓展。例如,鸟会飞,吱吱叫是鸟,于是推论出吱吱叫会飞,但是它不会飞,如果我知道吱吱叫是鸵鸟。

    另一种策略是将复杂问题分解成简单部分或复杂性较小的子问题,例如乔治·波利亚的启发性数学手册《如何求解》中就使用了这种策略。因此,应用领域必须允许分解为独立的部分。但是,显然,相关性复杂网络并不总能分解而不改变系统的原先状态。例如,人类环境的生态网络或精神病医生必须要分析的复杂的心灵相关性。系统并非总是其部分之加和。

    科学哲学中的一些划界可以翻译为以知识为基础的系统的性质。如果研究使得理论概念得到广泛运用而成为一个理论的固有特性,那么发现过程就可以描述为依赖理论的(理论推动的)。相反的观点,通常叫做培根观点,把大批数据作为其起始点。那么,发现过程就称作数据推动的。在理论的和数据的知识处理之间的划界,在AI中是众所周知的。

    现在我将从以知识为基础的系统中勾画出一些程序,这些系统使得各种各样学科的任务得以完成,其优点前面也已经提到了。我的第一个例子涉及到数学。AM是一个以知识为基础的系统,可以说,它从数论中递归地产生出和重新发现了概念。与经验科学中的程序形成鲜明对照的是,AM成功的标准并非是一个概念与经验数据的吻合,“有趣”的方面却是它产生出例子、新问题等等的能力。这种程序是1977年用LISP语言写出的,始于诸如集合、表格、相等和操作这样的基本概念,可以提出引导发现过程的建议。启发过程是在原来的基础上提出新任务并创立新概念。新的任务按照其有趣的程度整理成一定次序。由若干不同启发过程提出的种种任务,比由单个规则提出的任务更为有趣。

    运用这种措施来引导它对数学概念空间进行搜索,AM为整数、乘法和质数定义了概念,并发现了关于质数的命题(例如因子唯一分解性定理)。

    不过,更深入的分析表明,对发现的历史过程进行模拟的要求是难以满足的。AM的成功完全决定于编程语言LISP的特征。然而,分析显示了与人们研究过程的有趣类似。

    如同其名称LISP表明的,符号表是系统地作出的。两个表可以递归地定义为相等的,当两者是原子的且原子是相等的,否则当表头是相等的且表的其余部分是相等的。在LISP中,递归的布尔函数标记如下:

    (DE LIST-EQUAL(XY)

    (COND((OR(ATOM X)(ATOM Y))

    (EQ X Y))

    (T(AND

    (LIST-EQUAL(CAR X)(CAR Y))

    (LIST-EQUAL(CDR X)(CDR Y))))))

    这里,CAR和CDR分别是LISP中,对于给定的符号表进行表头和表的其余部分分类的基本操作。AM的一个启发的概括规则推广了等价这一术语。然后,两个表被称作“广义相等的”,如果两者是原子的且原子是相等的,否则表的其余部分是“广义相等的”。在LISP中:

    (DEL-E-1(XY)

    (COND((OR(ATOM X)(ATOM Y))

    (EQ X Y)

    (T(L-E-1(CDR X)(CDR Y)))))

    由此推广,所有具有相同长度的表都被看作是等价的。它们定义了叫做“数”的一类。儿童面对具体对象时实现的这种发现过程,由AM通过变换规则进行了模拟。加法是两个表的连接。由启发变换规则来形成已产生概念的逆时,发现了质数概念。在AM基础上改进的EURISKO(1983),不仅仅可以发现新的概念,还可以发现新的启发过程。

    一系列叫做BACON的程序对定量经验定律的发现进行了分析。BACON系统的名字取自弗朗西斯·培根,因为其中运用了培根关于科学推理性质的思想。它们是数据驱动的知识处理系统,其中包括数据收集,找出在两个或更多个变量之间的规则并对其进行检验。BACON的基本方法并不需要涉及数据的语法意义,它们对于数据进行操作,不对数据的结构作任何特殊的假定。有时,需要人们对于独立项进行实验控制,传统的“一次改变一项”的方法可以用来从相关变量中分开每一独立项的效应。BACON程序可以再产生出物理定律,包括波义耳定律、开普勒第三定律、伽利略定律和欧姆定律。

    有关考察表明,这种以知识为基础的系统至少要遵从这样的前提条件:对于不同学科间规律的关联,应该满足同样的方法论和启发框架条件。相应的以知识为基础的系统,不仅仅是再产生一定的定律,这些定律是在不同的历史背景中发现的,而且也对称地产生出完整的方法论概念的范围和挑选出有趣的应用。最新的BACON程序不仅仅是数据推动的,因而是严格的意义上的“培根式的”,而且还是理论推动的。在其对称性和守恒定律的理论前提下,它产生出了例如动量守恒定律。

    另一系列程序能够从经验数据中归纳出定性定律(GLAUBER,STAHL,DALTON)。这些程序还可以从一些现象中归纳出结构性和解释性模型。定性定律通常是化学中的定律。

    科学家与机器之间的竞争并非是有意的。不过,对于科学定律和理论做出系统的结构性分类已经实现。它可以使人们对科学定律及其发现条件的复杂性进行新的洞察。

    对于科学发现的多种多样活动的若干方面,诸如发现定量定律,产生出定性定律,推导出物质的成分和提出结构模型。一种整合的发现系统已经显示出曙光,它把个别系统作为组件结合起来。每一组件都接受其他一个或多个组件的输入。

    例如,STAHL集中在确定化学物质的成分上,而DAL-TON则关心反应中涉及到的微粒数目。因此,STAHL可以看作是,为DALTON所论的问题奠定了详细的结构模型基础。以这种方式,有可能发展起越来越复杂的以知识为基础的系统,将研究分解为知识处理和问题求解。

    甚至在这样的扩大了的研究框架中,我们仍然没有涉及到实验计划或新测量手段的发明所依赖的机制。任何固有的概念与实施测量的实验安排结合起来,都可以用作一种科学的工具。在此情形下,工具的发现恰好也就与概念自身的发现是重合的。

    还有一些以知识为基础的系统,它们考虑了实验的设计以及它们与其他科学研究活动的相互作用。在图5.11中示意了一个叫做KEKADA的系统(由西蒙研究小组发明),其中有假说产生者、实验选取者和预期设定者等等。它已经发展到为生物化学中的实验设计建立模型(克雷布斯1935年发现尿素循环)。如同知识工程师,西蒙和他的小组分析了克雷布斯的实验室记录,定义了他的研究方法论规则,并将其翻译成LISP类型的编程语言。

    如果该系统没有确定哪一任务继续进行,问题选取者就将决定该系统将继续进行某一任务。当遇到了新的问题时,假说产生者就造出假说。假说或策略建议者将选取一种策略继续进行下去。然后,实验建议者将提出将要进行的实验。两种类型的启发过程可能都需要决策者。实验者的结果由假说修订者和确证修订者来加以解释。合适时,问题产生者可能把新问题加入进来。如果实验的结果与对于实验的预期相抵触,那么对于这种迷惑人的现象的研究就成为一个任务,并列入议程。

    甚至该系统的组件也是一种操作者,它是由产生规则表来定义的。除了专业领域启发过程以外,系统还包含一般的规则,它们是一般研究方法论的部分。引人瞩目的是,特定的规则定义了这样的情形,即实验结果是某种“迷惑人的现象”。科学发现因此就成为了由问题求解启发过程引导的一个渐进过程,而不是由个别的“洞察闪光”或突然飞跃所导致的。这些以知识为基础的系统的例子,在例如程序DENDRAL是化学家的实验室助手的意义上,可以解释为哲学家对科学进行研究的助手。借助它们,可以对某些启发性规则产生的整个可能规律的空间进行调查。但是,它们是精确的助手,而不是主人。它们的“洞察的闪光”,这种由系统识别到的“惊奇之举”,是取决于程序框架的,是由主人设定的。

    激发了早期AI研究者的图林问题怎么样呢?“机器能否思维”?机器有“智能”吗?在我看来,这种问题对于计算机技术是一种形而上学的问题,因为“思维”和“智能”都不是清晰定义的计算机科学或AI的概念。

    这就是我们今天所能说的一切。如果一个程序产生出一种结构,该结构可以解释为一种新概念,那么所用变换规则就隐含地包含了这种概念和相应的数据结构。引导这些规则应用的算法,使得这种隐含给出的概念和数据结构变得明白起来。在关于AI的哲学讨论中,多数含混都是由AI的术语引起的,它是在技术意义上引入的,但是却结合进了一些往往是陈旧的和精致的哲学和心理学意义。在其他学科中,我们不得不与传统的术语和概念生活在一起,同样,如果将它们从其技术内容中抽象出来,那么它们就可能是高度含混的。“人工智能”(AI)中的“智能”概念就是一个例子。

    一个常常迷惑哲学家的术语是AI中“知识”的用法。让我再一次强调,在“以知识为基础的系统”术语中的“知识”具有技术上的意义,并不声称要解释整个哲学的、心理学的或社会学的知识概念。在AI技术中,作为实际的计算机科学的部分,完全没有涉及到哲学还原论。

    在所谓的“以知识为基础的系统”中的“知识处理”意味着一种新的复杂信息处理,这要与过去的仅仅是数字的数据处理区别开来。它涉及到翻译和解释的复杂变换规则,其特点是处于编程语言(今天是LISP或PROLOG)层次结构的较高水平上。这种水平接近于自然语言,但是当然不是等同于自然语言,而只是抓住了人类知识的广泛意义的一些方面(图5.12)。然而,知识处理仍然是程序控制的,并处在莱布尼茨的思维机械化的传统中。

    如果人的精神被认为一种图林类型的计算机,那么支配着人的身体和大脑的自然规律之间就没有什么关联。计算机软件中的算法程序并不取决于物理机械的硬件,而取决于数学上理想化的图林机概念。但是如果把人的精神理解为自然进化的产物,那么关于人的精神的形成的物理、化学和生物学的规律的关联性就必须加以考察。在现代物理学中,基本的物质理论是量子力学。在经典物理学中,物理系统的相互作用被设想成与人类观察者完全无关的过程,而现在看来人的意识也在测量过程中起着关键性的作用。首先,我将要尽量地批判这些解释,但是采取怀疑式的探究方式。然而,业已表明,量子力学是高效的广义量子计算机和量子复杂性理论的物理学框架,它们与经典的图林机和经典的复杂性理论是不相同的。

    显然,图林机可以在经典物理学框架中得到解释(图5.13)。这种计算机是一个物理系统,其动力演化使之从一组输入状态之一进入到一组输出状态之一。状态以某种系列方式加以标记。让机器处于一定输入水平的某个状态,随之进行某种确定性运动,然后再测量其输出状态。对于一个经典确定性系统,所测得的输出标记是输入标记的一个函数f。原则上,该标记值可以由外部观察者进行测量,这就是说该机器计算出了函数f。但是,经典的随机计算机和量子计算机并不计算上述意义上的函数。一台随机计算机的输出状态是随机的,依赖于输入状态的可能输出只是某种几率分布函数。量子计算机的输出状态,尽管完全是由输入状态确定的,但并非可观测的,因此观测者一般很难发现其标记。原因何在?我们必须记住量子力学的一些基本概念,这在2.3节中已经谈论过。

    经典的确定论机器:

    输入

    →

    输出

    经典可观测量

    确定论演化

    经典可观测量

    经典随机计算机:

    输入

    →

    输出

    经典可观测量

    随机演化

    经典可观测量

    量子计算机

    输入

    →

    输出

    量子可观测量

    确定论演化

    量子可观测量

    图5.13经典的和非经典的计算机

    在量子力学中,如动量或位置这样的矢量,必须用算符来代替,此种算符满足某种依赖于普朗克量子的非对易关系(图2.18)。由哈密顿函数描述的经典系统被量子系统代替,例如,电子或光子用哈密顿算符来描述。量子系统的状态由希尔伯特空间的矢量来描述,由其哈密顿算符的本征矢量来确定空间距离。算符状态的因果动力学是由叫做薛定谔方程的偏微分方程确定的。经典的可观测量是可对易的,而且总是取确定值,而非经典的量子系统的可观测量则不可对易,一般没有共同的本征矢量,结果也就没有确定的本征矢量。对于量子状态的可观测量,可以计算的只是统计的预期值。

    与经典力学的一个主要区别在于叠加原理。它揭示了量子力学的线性特征。在一个关联的纯量子叠加态,可观测量只有不定的本征值。简言之,量子力学的叠加或线性原理提供了复合系统相关(“关联”)状态,这得到了EPR实验的高度确证(Alain

    Aspect,1981)。从哲学上看,(量子)整体要大于其部分的加和。

    叠加原理对于量子系统的测量有重要的后果。在量子形式化中,一个量子系统和一套测量装置由两个希尔伯特空间来表示,它们以张量积组合起来H=H1H2。以H1和H2分别出于两个独立的状态和,在时刻O,测量系统的始态(O),相应有(O)=。两个系统的因果发展是由薛定谔方程确定的,即(t)=U(t)(O),U(t)是归一化算符。由于U(t)的线性,态(t)是与不定本征值关联的,而测量仪器在时刻t显示出一定的测量值,它们显示出不同的测量值。因此,线性的量子动力学不可能解释测量过程。

    以更通俗的方式来说明测量过程,可以用薛定谔的一个关于猫的思想实验,其中涉及“死”和“生”两个状态的线性叠加(图5.14a)。设想一只猫,被关在一个封闭箱子中。箱子中装有镭,镭一小时发生一次衰变,其几率为1/2。如果发生了衰变,电路闭合,引起相应机制的动作,使得小锤打破装有氰氢酸的小瓶,从而杀死这只猫。该箱子继续保持封闭一小时。

    按照量子力学,猫的两种可能状态——死和生——都是不确定的,直到观测者打开箱子才能得到结论。对于箱子中的猫的状态,如薛定谔解释的,量子力学预见了一种相关(“关联”)的叠加态,即猫的死和活各占一半。按照测量过程,“死”和“活”状态被解释为测量指示器,代表着镭“发生了衰变”或“未发生衰变”状态。

    在玻尔、海森伯和其他人的哥本哈根解释中,测量过程被解释为所谓的“波包坍缩”,即把叠加态分裂成测量仪器的两个状态,并测得了量子系统有两个确定的本征值。显然,我们必须把量子系统的线性动力学与测量的非线性动作区别开来。原因在于,世界的非线性常常被解释为人的意识突现。

    欧基尼·威格纳(1961)主张,薛定谔方程的线性,对于有意识的观测者可能不适用,应该以某种非线性程序来代替,据此其中的任何一种选择都可以得到解决(图5.14b)。但是,威格纳的解释使我们不得不去相信,复杂的量子线性叠加仅仅在宇宙中出现了人这样的意识的角落,才将被分解为独立的部分。在弹子球、行星和星系的宏观世界中,EPR关联性是测量不到的,它只在基本粒子如光子的微观世界中才显示出来。显得十分奇怪的是,在宏观世界的独立系统状态——它们可以用具有确定测量值的经典力学来描述的,却是由人这样的意识引起的。

    埃弗里特的量子力学的“多世界”解释,将人的意识分裂成不同分支,使不同的、互不相容的世界受到抑制(图5.14c),从而仿佛避免了非线性还原的问题。

    在测量过程中,测量仪器和量子系统的动力学的描述使用的方程

    (t)=

    ci(t)i

    i,式中状态(i)涉及测量仪器的测量值。埃弗里特认为,态矢量(t)不分裂成部分状态,但是出现了所有的分支i

    i状态(t)描述了多重的同时存在的真实世界,ii相应于第i个平行的世界。因此,所测量的分系统决非一个纯态。在埃弗里特的意义上,n可以解释为相对态,它依赖于观察者或测量仪器的状态:

    n=Cn-1(n,)H2。如果n被看作记忆状态,那么具有一定记忆的观察者只可能意识到他自己的世界分支n×

    n。但是,他能够观测其他的分世界。

    埃弗里特解释的优点在于,叠加的非线性还原并不需要解释。而缺陷在于他的多世界的本体论信念,这样的世界原则上是不可观察的。因此,埃弗里特的解释(如果数学上协调)需要奥卡姆剃刀。

    在科学史上,拟人的或目的论的论据往往表明,科学在此存在着解释的分歧或失败。因此,一些科学家如罗杰尔·彭罗斯提出,量子力学的线性动力学对于解释出现意识的宇宙演化是不能令人信服的(爱因斯坦说它是“不完善的”)。他争辩道,线性量子力学和非线性广义相对论的统一理论,至少在原则上可以解释世界上的独立宏观系统状态,而不必牵涉到拟人的或目的论原理。在彭罗斯主张的统一理论中,物理系统的线性叠加,当系统对于相对论引力效应充分大时,就会分裂成独立状态。彭罗斯计算了在一个引力子水平上,对于这