标准电子计算机执行单一指令流,每一指令都可借助于地址而查阅数据或其他指令。这样设计的计算机才使我们的现代计算机文明有了可能性,但是这种计算机有许多问题太复杂了,无法在一定时间内解决。例如,大型交通系统的在线控制,飞机和核武器的设计。已建造了大功率并联计算机来解决这类问题。
研究表明,应付普通情况的人类智能已经极其复杂。人类学习和发现的能力则更为复杂,因为要解决一个新问题,就必须首先形成一个有指望的方法或假说(其可能性是很大的),然后通过试错过程逐步加以改进(以免走进死胡同以及走上错误的极点)直到结果令人满意为止。由于它的极端复杂性,要一个机器人具有人的技能和学习、创造的能力,则必须包含一种大功率的并联计算机。通过为现存计算机编制智能行动程序的经验,我们和其他许多人都相信,设计专为机器人使用的并联计算机应当沿着完全不同于过去和现在并联计算机的发展路线进行。我们正在为机器人计算机进行一种新型的并联设计,其中所有的指令都能同时被用于所有的数据。
作为第一步,我们发明了一种新的程序语言。把现在通用的程序语言如何工作同人类如何进行推理加以对比,就使这种程序语言得到完满的解释。
单个计算机程序的指令是依次被执行的,每一指令都以先前指令所完成的任务为先决条件。但是,在指令顺序中的任何一点上,计算机程序又都有可能根据输入数据或计算结果而走上不同的方向,同样,在运用一种技巧或能力方面,一个人可以合乎标准地完成一系列操作和思考,同时又根据环境刺激或他的思想行动的结果而走上各种不同的方向。
尽管有这些极大的相似性,但计算机指令序列同人的思想行动序列之间还是存在一个根本的不同:单个计算机指令中的一点微小变化通常都会引起混乱,而人在运用技巧或能力时却一般都能适应思想和行动中的微小错误。因此人的程序要比计算机程序健全得多。
为了克服目前计算机程序的这一弱点,我们设计了一种新型的程序语言,叫做“分类者语言”。每一指令都是一条这种形式的规则:为那种环境中的这样刺激而完成某种动作。用分类者语言所写的程序,可以用来把数据或图样分成不同类别,因此,一个指令被称为一个分类者。分类者语言在三个方面是崭新的。首先,一个分类者程序的所有指令可以在同一时刻被执行,或以任何次序连续被执行。其次,指令(分类者)的执行围绕着处理标准长度的消息加以调整。第三,如果一个分类者程序的某些指令遭到毁坏或破损,这个程序并不会遭到破损,只是受到损失,程序还能够通过它最初学到的同样步骤而逐渐恢复,因此总的说来,一个分类者程序中的微小变化对那一程序的完成只有一种微弱而暂时的影响。
这是通过两个新的步骤而实现的,首先是关于学习的规则系统,即根据每一指令对整个程序成功的贡献大小给以评分。第二是关于发现的规则系统,它考虑它们的得分而作用于指令(分类者)。关于发现的规则系统选择那些得分最高的指令,结合为新的指令,并用这些新的指令代替得分低的指令。
然后这些新的指令将受到经验检验:有些很好地经受了检验,用以形成更新的指令,有些勉强地幸存下来,另外一些则被得分较高的指令所取代。
分类者程序语言通过模拟标准串联计算机而受到检验。David Goldberg在他的博士论文中发展了一种分类者程序,它学会了实现气体输送管道系统最佳化的经验法则。John Holland也有一个为机器人在其视野中寻找目标的简单的分类者顺序,这个顺序学会了怎样进行三个连续的行动序列:旋转机器人的头使目标集中到它的视野之中,把机器人推向前去接触目标,以及使机器人抓住目标。我们目前正在着手写一篇关于通用的分类者程序模拟机的论文,以便根据各种各样的问题检验关于学习以及关于发现的规则系统。
分类者程序语言对于标准计算机,不管是串联的还是并联的,将无疑是有用的。但为了充分实现分类者程序潜在可能的速度,我们需要为此目的而设计计算机结构。我们已经十分细致地设计了这样—个结构,几乎细致到可以从小片设计着手的程度。分类者程序、关于学习的规则系统以及关于发现的规则系统在这一新型结构中是以高度并联方式起作用的。我们下一步计划把这个方框图结构用于小片设计之中。