几百年来,技术拓广了人的物理能力,现在又在扩大人的逻辑和数学“本领”。现代的电子计算机,“学会了”像做算术题那样进行分析运算,即能使用数学符号来简化代数公式,求微分,算出初等函数的不定积分,求解微分方程,证明定理。而这就提出了一系列需要辩证而唯物地加以理解的认识论问题。其中包括如何组织人机之间的对话问题。美国作者中流传一种见解,认为人和电子计算机之间有四种相互作用的形式:没有电子计算机的人(千百年来就曾经是这样),使用电子计算机的人,“没有人的”计算机和“反对人的计算机”。
我们来研究这些见解。我将不谈后两种“形式”:因为我们(和美国作者不同)认为第三种形式是不可能的,第四种形式显然是一种不现实的空洞概念。第二种形式才是一种自然而现实的方案,是拟订人机协同地求解课题的方法。然而怎样组织这种合作呢?
在数学认识过程中组织人机之间的相互作用,提出了一系列认识论和方法论的问题,它们以下面两个问题为焦点:人机“交流”的语言问题,人机之间功能的分配和协调问题。在分析每一个问题时,都必须考虑和重视最近10 ~ 15年来应用电子计算机的经验。
大家知道,电子计算机的程序设计,是从建立课题的数学公式开始的。然后应该把得到的公式变成程序,并用相应的机器语言把程序记录下来。这个复杂的程序起初是由人“用手工”来完成。后来,详细地制订了(普遍化的)程序设计的专门语言,用这种语言不仅能编制程序算法,而且能把任务表示出来;然后,转译程序自动地把具体任务和完成这一任务的算法,从普遍化的程序语言翻译成机器语言(这个方法现在得到普遍推广)。这使得程序设计人员的语言接近于通常的数学语言,用电子计算机来完成人机的相互作用变得容易了。
普遍化的程序设计语言,是从某些电子计算机机器语言的特点中抽象出来的;解决创立这类特殊语言的问题,始于1950年。这类语言的创立,也许是计算机科学史上最伟大的事件。程序设计语言、算法语言的发展,可以分为三个时期。第一个时期(本世纪五十年代)是制订和描述该领域的基本概念的时期。详细拟订程序设计的语言,在这些岁月里是用经验方法来实现的。第二个时期(1961 ~ 1968),是理论程序设计学的准备时期,这时已经开始极大地注意数学和语言学方面的问题,并且把它和自动机与形式语言的理论联系起来。1970年,在整个计算机的数学保障问题的范围内,在程序设计语言的领域内,开始了第三个时期。编制程序的方法论,分析程序的结构,检验程序的方法,都成为仔细研究的对象。程序设计开始从艺术阶段过渡到科学阶段,即形成为理论程序设计学。
程序设计语言是人机之间相互联系的形式语言,是为了描述各种资料和用电子计算机加工这些资料的算法而事先规定好的。这些语言具有确定的句法和语义即规则系统;各种规则决定:用什么符号和应该怎样用这些符号来编制算法(程序),这些符号具有什么样的操作意义。
为了解决“人工智能”问题(下棋程序、定理的自动证明等等,都和这个问题有关),创立了程序设计的所谓索引语言。
有些资料是以索引的形式提供出来的,索引语言就是预定为编制加工这类资料的程序而创立的;这类语言允许利用所谓联合程序设计的手段。它们可以为复杂算法保证提供方便的、直观的和全面的观念,以解决信息逻辑的各种课题(制订生产的和物质技术供应的计划,寻找科技信息,查阅参考资料,干部登记,调整自学程序和启发程序以便估计局势和决策)。有可能把新的项目列入索引,也能从索引中消除不需要的项目,从而使这类语言具有若干特性;这些特性的发展就可以使得利用机器(程序)来工作的人实现:1)程序中事先没有预见到的效益;2)根据自己的直觉来干预寻求解决方案的过程;3)总结已取得的结果,并提出新的任务以及完成它们的方法。一般说来,程序设计的远景,在许多方面取决于未来将在多大的程度上允许利用操作者的直觉考虑。
人在思维过程中主要不是和数、数的功能打交道,而是和概念、定义以及它们的内容打交道。然而,第一代电子计算机和相应的算法语言,首先是以加工数字信息为目标。这就限制了人机相互作用的可能性,虽然也涉及到数学应用者和电子计算机之间的交流。数学应用者虽然习惯于用数学方式和典型的公式进行思维,但也必须常常使自己的思想削足适履地去迁就那些资料和资料加工过程的数字观念。所以,详细拟订能有效而巧妙地利用信息的、借助于符号表示出来的算法语言(代数、微积分、数理逻辑的分析表达式),是人机相互作用中的重要关键。
对话的方式,是利用电子计算机的人进行工作的一种方式,这时人能够观察到求解过程如何实现,记下一定的结果,并根据解题的进程给机器下达新指令,从而控制机器的运转。这种方式,和电子计算机在实时范围内进行工作的方式,有许多共同之处。这两种工作方式,对于组织以计算技术装备起来的数学认识来说,具有巨大的意义。随着程序设计的完善和发展,越来越广泛地使用英文和俄文的语句以及人所共知的数学公式,这对于组织对话是很重要的。由于人是用日常语言进行思维并同他人交流的,所以这种从算法语言向日常语言(也包括现代数学语言)的接近过程,开辟了任何人都可以使用电子计算机的前景,而不一定要求使用者对电子计算机的运转和程序编制有所了解。
于是就产生一个问题:程序设计语言的句法和语义的发展,能不能达到这样一种水平,以致这些语言完全不依赖于电子计算机;即将来能不能把算法语言改进到这样一种程度,以致它们和自然的、数学的语言完全“融合在一起”,从而允许以意义统一,的、自然数学的交流手段(包括数理逻辑语言)为基础来进行“人——机”对话;或者这不可能?
话语的多义与歧义是人所共知的;大家也知道,自然语言中的许多句子,语言学上的日常用语,离开了上下文常常就不可理解,而许多语法规则则是矛盾的。正如Б. B. 比留科夫所说:“在语言交流的过程中,人们并不是用语言学上的规则生硬地联系在一起的。他们可能会破坏、改变这些规则,然而却恰恰表达了他们所想说的东西,同时其他人也能懂”。但是机器在这种情况下就绿得“迟钝而无法理解”。机器的“现实知识”和“生活经验”将总是不足的,而这两者正是在语义学规则不适用的场合下可以消除歧义的东西;究其原因,在于自然语言和有内容的思维具有社会历史基础,而这未必可以“装入”现代电子计算机。所以我们得出一个结论:各种程序设计语言似乎并不是自然语言的近似,它们将永远组成一个独特的领域。把自然语言的词汇引入算法语言,赋予“程序语法”以人类交流语言(包括形式数学手段)的句法和语义特点,可以使得理论程序设计学将来在实质上从数理逻辑的形式语言(它是程序设计语言理论的基础和许多思想的源泉)向自然语言的方向前进。然而自然语言的辩证本质(在社会关系这个活“组织”中的“自我发展”能力,表现理想的意识因素的性质,在上下文中的精确性和“形式上的不严格性”相结合),将是用这种方法永远也达不到的。
自然语言的语法,不得不区别于程序设计语言的语法,即使那些程序设计语言还不是太发达。因为按其“本性”来说,这些程序设计语言必须把各种一般类型(自然的、人工的、形式的)语言的性质吸收到自身中来,从而是以取消了自然语言和人工语言之间的矛盾这种特殊形式出现的。一方面,它们是人造的,是严格地用某种规则系统的形式来描述的;另一方面,它们又必然具有(而且越来越具有)一定的自然语言的性质。
无论如何,各种算法语言是落在语言这个一般概念之中,因为这个概念在现代逻辑学和符号学中已经成熟。第一、这些语言也像自然语言一样,现在已经成了人们(使用电子计算机的工作者)之间进行交往的手段;因为依靠这些语言,才有可能交流对完成程序设计的机械步骤所下达的指令。随着计算技术的发展,这类语言手段将像普通数目字和字母那样,逐渐成为人们所必需的东西:这种交流工具将来可能具有普遍性。第二、程序设计语言也像自然语言一样,将成为认识得以存在和发展的形式,成为思维反映的形式,进行证明和信息探索的形式。这一点,在某些思维领域里特别明显;因为在这些思维领域,要建立逻辑的(演绎的和归纳的)结论和证明,要完成需要一定启发手段的任务,数学语言的式子和逻辑语言的式子的分析变换起着重大的作用。当电子计算机以对话的方式而被应用时,这些方面特别清楚地表现出来。
当然,随着程序设计语言直接“植入”电子计算机的方法不断发展和完善,就越来越允许数学工作者用自己的自然语言进行工作,而机器则用自己的机器语言工作。
现在我们来研究人和电子计算机之间的功能分配问题。我们以数学认识的智能人机过程这种图式为例,即以求解数学课题为例来分析这个问题。
所谓解题,无非是找出一个逻辑环节,把课题的条件和所求的结论联系起来。正如D. 波耶所说:“寻找课题的答案,就是确定早先被分离开来的客体或思想(我们已有的客体和我们要找的客体、已知和未知、前提和结论)之间的联系。相互依赖的客体开始彼此离得越远,发现它们之间具有联系的研究人员就越值得尊敬”。
可以把这种联系想象为一座桥梁;正如人在深川之上建桥,人也会架起一座桥梁把彼此相距很远的两个思想联系起来。人们有时把这种联系比作链条:课题的求解、证明,被看成是推理链条中各个环节的相互联系。假如链条中缺少即使一个环节,整个推理就会被破坏。为了举例说明以上所述,适当的办法是回忆一下:D. 波耶是怎样搞清求解正四棱台的体积这个课题的基本阶段,并指出初始课题可归结为求解两个其他的课题。
在评述彻底求解这类具体课题时,我们看到数学工作者的思维怎样一步一步地向前推进,包括的课题越来越多,并建立起组成求解计划的各种联系汇集而成的系统。这时,每个课题的求解链条,就是实现“可归结性的算法”,即把该课题归结为另一个(另一些)已被解决或认为已被解决的课题。可见,求解任何一个数学课题,可归结为求解一系列其他比较基本的课题;而这个课题本身,在求解另一个(或另一些)复杂程度更大的课题时,也可能是基本的。
D.波耶认为,解题时产生的每一种思维方法,都表现为四种形式;实质上,他论证了在解题过程中存在着四个抽象层次。搞清求解数学课题的这四个层次,可以形成关于数学思维进程的观念。第一个层次,是空间形象的认识形式。第二个层次是图解层次,可以叫做直观逻辑的形式。在数学思维的这个层次上,该具体思维过程的整个“可归结性算法”,是直观地以图表的形式出现的。这个层次,可以以不同的方法来理解,对于人来说,画图和直观想象的形式是最方便的;对于机器加工来说,另一种形式——矩阵是比较容易接受的(至少现在是这样)。第三个层次,是数学思维的纯分析层次,是和各种记号、符号打交道的层次。第四个层次,就像波耶自己所称呼的那样,是在自然语言基础上进行的启发性思维的层次,它要提示并导出数学思维发展中的那些关键性的步骤,不搞清这些步骤就不可能求解。
当然,所有这些层次只有从抽象理论的角度才能加以划分。现实的数学思维看上去是一个不可分割的整体,它的一切层次是辩证地相互联系的。然而上述层次的存在是肯定无疑的。可以肯定地说,第一个特别是第四个层次,曾经是而且整个说来也将是“人类特有的”层次,虽然它们的某些方面也可以形式化。数学工作者和机器“结合起来”发生作用,首先是在求解课题的第三个层次上实现。
按照“可归结性原则”,数学求解中的每一步都是把主要之点导向一个新的课题。同时,在这些课题(子课题)的求解中,总是运用已经为我们所熟悉的(波耶也详细地描述过的)思维手段:分离与联合,动用与组织,判定与回忆。在这种场合下,在某种程度上参与求解全程的新思想的产生过程,具有最重要的意义。D. 波耶把新思想的突然出现,描写成几乎是无声无息的暗示,我们之所以能得到它,全凭我们的内感官;随着具有独创性的思想的出现,思维的方向也发生变化。迂回论证可能失去它的重要性,注意力可能集中到直线进取上来,或者两者都要从思想上加以改造等等。但是,这种观念上的过程怎样“装入”计算机呢?要怎样组织这个观念上的过程,才可以建立类似的物质模拟呢,这些物质模拟中哪些可以由机器来实现呢?
现在来看电子计算机求解用口述方式提出的代数课题的例子。机器在该场合下所“遵循”的程序中所包含的基本思想,可以用如下方式来描述:一切可替换的公式化成某种标准式以后,就要探索进入运算正文的入口处。这是通过比较来进行的,即把被分析的课题正文的句子(公式),和存储器(运算目录)中保存的运算“典型”进行比较。然后用变量代替运算之间的词的序列,并确定哪些片断表示同一个未知的量。如果整个输入端的加入句都是这样“明白易懂的”,机器就用形式数学语言编制代数方程的系统,并按标准程序求解。
可见,电子计算机对它所“熟悉的”各类课题,能够轻而易举地加以解答(当然,条件是这类课题没有超出它所固有的“复杂性的界限”)。正如波耶所说,当这种课题能够很好地保持平衡和协调时,即它包含有一切必要的细节时(一切细节都是可判定的,并没有必要对课题的要素进行重大的改编),它就可以用现有的电子计算机(或者将来的机器)来求解。由于具有适当的数学保障,机器将能“更好地学会”求解类型越来越广泛、多样和复杂的课题。大家知道,随着机器数学的发展,这个“求解问题的领域”将越来越扩大;平凡的东西和富于创造性的东西之间那条可辩证地移动的分界线,将发生变化。
但是,那些既不能“平衡”也不能“协调”的课题(它们和机器“善于”加以判定和求解的课题是不同的)又怎么样呢?是否也可以用电子计算机来求解呢?回答只能是肯定的。在这种场合下,数学工作者的任务就在于:把这种课题的求解,归结为机器“已知的”课题。在“数学工作者——电子计算机”这个新的认识情况下,人的活动的整个启发性的本质,都包含在这种可归结性的手续中。动用和组织课题的材料,离析课题的各个个别元素以及把它们结合起来,判明关键性的方面以及记住必需的资料,对信息加以分类和从直觉的“提示”方面来充实课题的提法,人在做这一切时所遵循的目的,都是重新认识这个课题,以便把它彻底地归结为另一个机器能够加以对付的课题。
我们来具体地看一下,在求解我们上面提到的那个波耶课题时,怎样才能做到这点。假如,在拥有关于正四棱台的底边长度和它的高度的信息时,机器“会”确定它的体积;那么人就把波耶课题的求解,归结为两个课题:确定两个棱锥的体积。为了求解这两个棱锥的体积,机器应该会确定小棱锥和大棱锥的高,即还要会求解两个子课题。如果机器没有“学会”求解它们,那么人就得亲自动用关于两个相似三角形的定理:作图、进行相应的分析计算,把它们的结果输入机器。还必须编写程序;根据这种程序,机器将能求解任何一个按照高和上下底的边长来确定棱台体积的课题。那时,这种课题对于机器来说就成为一个平常而典型的课题,人可以把其他应该由机器来求解的课题归结为它。
可见,数学认识的人机系统是一个有机的统一体,它包括观念心理的(直观形象的和思维的)和技术的成分,它们的总和就决定目的明确的机器行为。这个系统中的目的是人提出来的,人也把创造启发性的因素作为必不可少的方面带入系统。而机械物理的性质(过程的确定性、程序管理、运算的“标准性”)是由机器带来的。这样的系统把两个对立的世界结合在一个辩证的统一体中:一个是人及其思维、目的、动机的世界,另一个是具有因果联系的、由机器来加工资料的物理算法世界。我们说这个统一体是辩证的,是因为这两个世界是所谓相互渗透的:人(数学家、程序设计者、操作者)总是严格约束自己的思想,以便在思想中发展和机器对话所必需的形式算法的成分;而机器却“效法”人的某些特点。在这些特点中,有变换课题这种最有启发性的活动,它在上文是被看作由人来完成的活动。但是,它的某些方面原来可以用电子计算机“再现出来”(建立模型),它们的相应程序(算法)具有启发性的意义。这里,我们就进入了“人工智能”领域;由于新的“人机”认识系统的出现,数学将按照什么方向变化,在很大程度上就依赖于这个人工智能领域。
[фuлософскuе Наукu,1984(3):95 ~ 102]