荷兰德不禁想起塞缪尔的跳棋下法程序,这个程序正是利用了这种反馈:它可以随着不断吸取经验和更多地了解对方而经常改变战术。但现在荷兰德开始认识到塞缪尔将注意力放在游戏上是多么具有先见之明了。游戏的这一相似性似乎可以解释任何适应性系统。在经济中,所获是金钱,在政治中,所获是选票,等等。在某种程度上,所有这些适应性系统在根本上都是一样的,这反过来又意味着,所有这些系统从根本上就像下跳棋或象棋一样:可能性的空间大得难以想象。一个作用者不断改进下棋技术,这便是适应。但要想寻找到这场游戏的最佳化和稳定的均衡点,就好比下国际象棋一样,你根本就无法穷尽其无限的可能性。”....荷兰德在撰写博士论文的时候,暂时把这些想法搁置一旁。但1959年他刚刚毕业——那时勃克斯已经邀请他继续留在计算机逻辑小组做博士后——就决定将自己的这些想法变为完整而严谨的适应性理论。他说:“我相信如果我将基因的适应性当作最长久的适应性来观察,把神经系统当作最短期的适应性来观察,那么,这两者之间的总体性理论框架将是相同的。”为了将他脑子里的这些初步想法陈述清楚,他甚至就这个研究课题写了一个宣言,这份他于1961年7月发表的长达四十八页的技术报告的题目是:《适应性系统逻辑理论之非正式描述》。他在计算机逻辑小组发现了许多紧皱的眉头。但这并不是一种敌意,而是有些人认为他的这个一般性的适应性理论听起来太稀奇古怪了。难道荷兰德不能把时间花在更富有成果的研究上?“但问题在于,这是一个古怪的想法吗?”荷兰德回忆此事时愉快地承认,如果他在他同事的位置上,他也会对此持怀疑态度。“我所从事的研究不属于既完善又为人熟知的学科范畴。它既不能算硬件,也不能算软件。而那时它当然也不属于人工智能。所以你无法用任何常规标准来对它做出判断。”勃克斯却并不需要他来说服。“我支持荷兰德,”勃克斯说。“有一些逻辑学家们认为荷兰德的研究并不属于‘计算机逻辑’范畴之内。他们的思想更为传统,但我告诉他们,这正是我们需要做的,为这个项目争取经费的重要性和其他项目等同。”结果勃克斯赢了:作为这个项目的创始人和带头人,他的话有相当大的分量。渐渐地,对荷兰德研究的怀疑消失了。1964年,在勃克斯的大力推荐下,荷兰德获得了终身教职。他说:“那些年,在很大程度上我全靠勃克斯为我做挡箭牌。”确实,勃克斯的支持所给予荷兰德的安全感使他能够力争获取适应性理论的研究成果。到1962年,他放下了他的所有其它研究项目,基本上全力投入了对适应性理论的研究。特别是他下决心解决基于多基因的选择的难题——这不仅仅是因为费舍尔在书中对单体基因的假设最使他感到困惑,同时也是因为对多基因的研究也是摆脱均衡的困惑的关键。荷兰德说,公平地评价费舍尔,均衡的概念就每个单独的基因而言不无意义。比如,假设某个物种有一千个基因,大致上与海藻一样复杂。为了使事情简单明了,再假定每个基因只含有两种信息,绿色的或棕色的,叶片皱折的或叶片平滑的,等等。自然选择要经过多少次尝试才能发现使海藻发展到最强壮的那组基因搭配呢?意义。比如,假设某个物种有一千个基因,大致上与海藻一样复杂。为了使事情简单明了,再假定每个基因只含有两种信息,绿色的或棕色的,叶片皱折的或叶片平滑的,等等。自然选择要经过多少次尝试才能发现使海藻发展到最强壮的那组基因搭配呢?但当我们假设基因并不是相互独立的,让我们来看看含有一千个基因的海藻会发生什么样的情形。如果是为达到最强壮状态,自然选择就会检验每一个可能的基因组合。因为每个基因组合都有其不同的强健性。当你计算基因组合的总数,就不是二乘以一千,而是二自乘一千次了,即二的一千次方,或大约为十的三百次方——这个数目大得甚至使跳棋的步数都显得微不足道。荷兰德说:“进化甚至根本就不可能做这么多次数的尝试。而且无论我们把计算机发展到多先进也做不到。”确实,就算在可观察到的宇宙中所有的基本粒子都变成超级计算机,从大爆炸就开始不停地运算,也远不能完成运算。另外必须记住,这还只是就海藻而言。人类和其它哺乳类动物含有的基因数大概是海藻含有基因数的一百倍,而且大多数基因都含有不止两条信息。所以再次出现了这种情形:这是一个向着无穷无尽的可能性的空间探索的系统,不存在哪怕为一个基因找到“最佳”点的现实希望。进化所能达到的是不断改进,而绝非尽善尽美。但这当然正是他1962年就已经决意要找到回答的问题。但如何寻找答案呢?了解多种基因进化的问题显然不只是用多变量方程式来替代费舍尔的单一变量方程式这么简单的事。荷兰德想知道的是,进化是怎样于无穷无尽的可能性的探索中找到有用的基因组合,而不需要搜遍整个领域。当时,相似的“可能性爆炸”概念已经为主流人工智能研究人员所熟知。比如,在匹兹堡卡内基理工学院(即现在的卡内基麦伦大学),爱伦·奈威尔(Allen Newell)和赫伯特·西蒙(Herbert simon)自五十年代中期开始就在进行一项里程碑式的研究,即,研究人类如何解决问题。奈威尔和西蒙让被试验对象猜各种谜语和玩各种游戏,包括下国际象棋,并让被实验对象陈述在这个过程中自己的思想。他们通过这种方法发现,人类解决问题总是会涉及脑力对广阔的可能性“问题空间”的逐步搜索,而每一步都以实际经验为导向:“如果情况是这样的话,那么就该采取那个步骤。”奈威尔和西蒙通过将他们的理论编入“一般问题解决法”(General Problem Solver)程序和将这个程序应用于解那些谜语和游戏,表明“问题-空间”角度能够出色地反映人类的推理风格。确实,他们的经验性检索概念早已成为人工智能领域的金科玉律。一般问题解决法至今仍然是新兴的人工智能发展史上最有影响的程序之一。但荷兰德仍然对此半信半疑。这并不是因为他认为亲威尔和西蒙对问题空间和经验导向的概念有什么错误。事实上,他取得博士学位不久就特意邀请他们两位来密西根大学讲授人工智能的主课。从此他和奈威尔成了朋友和知识上的伙伴。但奈威尔—西蒙的理论不能在生物进化研究上有助于他。进化论的整个概念中没有任何经验可循,也没有任何导向。一代代的物种是通过突变和两性基因的随机重组,简言之,是通过尝试和错误,探索于可能性的空间。而且,这一代代物种并不采取逐步逐步的方式搜索于基因组合的可能性之中,而是采取齐头并进的搜索方式:物群中的每一个成员的基因组合都略有不同,所搜索的空间也略有不同。但尽管有这些不同之处,尽管进化的时间更为长久,但它所产生的创意和奇迹恰如脑力活动。对荷兰德来说,这意味着,适应性的真正的统一规律隐藏在更深的层次之中。但到底隐藏在哪儿呢?化论的整个概念中没有任何经验可循,也没有任何导向。一代代的物种是通过突变和两性基因的随机重组,简言之,是通过尝试和错误,探索于可能性的空间。而且,这一代代物种并不采取逐步逐步的方式搜索于基因组合的可能性之中,而是采取齐头并进的搜索方式:物群中的每一个成员的基因组合都略有不同,所搜索的空间也略有不同。但尽管有这些不同之处,尽管进化的时间更为长久,但它所产生的创意和奇迹恰如脑力活动。对荷兰德来说,这意味着,适应性的真正的统一规律隐藏在更深的层次之中。但到底隐藏在哪儿呢?但是,荷兰德越是思考统一而自我加强的基因群这个概念,整桩事就显得越微妙。首先,到处都有类似的例子,比如计算机程序中的子程序、官僚体系中的部门、以及国际象棋棋局中的布棋法。而且,这样的例子存在于组织的每一层。如果一个基因群有足够的统一性和稳定性,那么这个基因群通常就可以作为更大的基因群的建设砖块。细胞的结合形成生理组织、生理组织的结合形成器官、器官的组合形成生物体、生物体的组合形成生态系统,等等。荷兰德想,确实,这就是“突现”的全部意义:一个层次上的建设砖块组合成更高层次上的建设砖块。这似乎是这个世界最根本的规律之一。这一规律当然也表现在所有复杂的适应性系统之中。但为什么会是这样的呢?事物的这个等级分明的、建设砖块结构的特性就像空气一样司空见惯。它因无所不在而被我们视而不见。但当你认真思考这个问题时,就会发现它急需解释:为什么这个世界会形成这种结构呢?其实对此已有许多解释。计算机程序员们会把问题分解成许多子程序,因为较小、较简单的问题比较大、较繁杂的问题易于解开。这就是分而治之的古老法则。鲸鱼和红杉这样的庞然大物是由无数个微小的细胞组成的,因为总是先要有细胞,才可能形成庞然大物。当五亿七千万年前巨大的动植物开始出现在地球上时,对自然选择法来说,较之于从一片混乱无序中重新开始形成大团新的原生质,显然不如将现存的单一细胞形成生物体要容易得多。通用汽车公司将自己分为无数个部门和子部门,是因为通用汽车公司的主管不希望公司的五十万名雇员都直接来向他报告。他一天根本没这么多的时间。事实上,在四十年代和五十年代,西蒙在他的商业组织的研究中就已经指出过,设计优良的等级制度是在避免让任何一个人疲于应付会议和备忘录的前提下实施实际工作的最佳方式。但当荷兰德思考这个问题时,他越来越觉得,更为重要的理由还基于更深的层次,因为这个等级分明的建设砖块结构能够彻底改变系统的学习、进化和适应能力。想一下我们的认知建设砖块,这包含了像红色、汽车和道路这类的概念。一旦这组类别的建设砖块随着经验的积累而被扭转、精炼和调整,那么,这组概念就会被整个改编和重组成许多新的概念,比如像“路边的一辆红色Saab轿车”。当然,较之完全从头开始,这是一个有效得多的创新的途径,而这反过来又在总体上意味着适应性的一个全新的机制。适应性系统能够重组它的建设砖块,从而产生巨大的飞跃,而不需要总是要逐步逐步地在可能性的无限空间中缓慢进展。系统能够重组它的建设砖块,从而产生巨大的飞跃,而不需要总是要逐步逐步地在可能性的无限空间中缓慢进展。他认识到,这就是解开多基因之谜的关键之所在。“进化过程中的放弃和尝试并不只是为形成一个优良的动物,而是在于发现优良的建设砖块,并将这些建设砖块结合在一起,从而产生许多优良的动物。”他现在面临的挑战是要精确而严谨的表明这一切是如何发生的。他决定,第一步是要做一个计算机模拟,一个既能够陈述过程、又能够帮助他澄清脑子里的问题的“基因算法”。密西根大学计算机科学圈子里的人都看惯了荷兰德拿着折扇状的计算机打印结果跑过来。“看看这个!”他会急煎煎地指着一张整页都是密密麻麻的十六进位的数据符号的纸说。“哦,CCB1095E。太棒了,约翰。”“不!不!你知道这是什么意思吗!?”事实上,在六十年代初,有相当多的人并不知道,也想不出那些数据表示什么意思。对荷兰德持怀疑态度的同事们对于荷兰德所从事的研究的怀疑,至少在一点是对的:荷兰德最终推出的基因算法是个稀奇古怪的东西。除非以最为书面的意义而论,否则这根本不能算是计算机程序。就它的内部机制而言,它更像是一个模拟生态系统,其中所有的程序都可以相互竞争、相互交配、一代接一代地繁衍,一直朝着程序员设置的任何问题的解答方向不断演化。说得轻一点,这不是程序的通常编写法。所以荷兰德发现,要向同事们解释为什么这具有意义,最好用非常实际的语言来告诉他们他正在做什么。他通常会告诉他们,我们把计算机编程当作一个由FORTRAN或LISP这样的特殊编程语言写成的一系列指令。确实,编程的全部技艺就在于确保准确无误地按照正确的指示和顺序来编写程序。这显然是编程的最有效的方法——如果你早就知道你想让计算机干什么的话。但假设你并不知道你想让计算机干什么,比如假设你想找到某种复杂的数学功能的最大价值。功能可以表示利润、或工厂的产量、或任何其它东西。这个世界到处都有希望价值被最大化的东西。确实,计算机程序员已经为此设计出先进的计算机算法来了。但即使是其中最优秀的算法都无法保证在任何情况下都能提供正确的最大化价值。在某种层次上,这些算法总是不得不依赖传统的尝试/错误法,也就是猜测法。荷兰德对他的同事们说,如果情况真是这样的话,如果你反正总是要依赖尝试/错误法的话,也许就值得试试利用大自然的尝试/错误法则,也就是自然选择法。与其编一个程序来执行你自己都不知道该如何定义的任务,还不如让它们通过进化自然产生。荷兰德对他的同事们说,如果情况真是这样的话,如果你反正总是要依赖尝试/错误法的话,也许就值得试试利用大自然的尝试/错误法则,也就是自然选择法。与其编一个程序来执行你自己都不知道该如何定义的任务,还不如让它们通过进化自然产生。记FORTRAN编码,深入到计算机的内核里去。计算机程序在计算机上是以一列1或0的二进制来表示的:11010011110001100100010100111011..在这种形式下,计算机程序看上去像是一大片染色体。每一个二进制数字都是一个单独的“基因”。一旦你用生物学眼光来思考二进制编码,你就可以用类似的生物方法使之进化。荷兰德说,首先,让计算机产生一群数量约为100个数字的染色体,其中包含大量的随机变量。假设每一个染色体都相对应一群斑马中的一匹。(这是为使事情简化之故。因为荷兰德试图把握进化的最基本的本质,所以在基因算法中舍弃了诸如马蹄、胃和脑这样的细节,而把个体当作单个的纯DNA来模拟。而且,为了使之更便于操作,他把二进制的染色体限制在长度不超过几十个二进制数字之内,所以这些染色体实际上并不是完整的程序,而只是程序的片断。事实上,在他最初的实验中,这些染色体只代表单一的变量。但这并不能改编这个算法的基本原则。)第二,把现有的问题当作每一单个的染色体,把问题当作计算机程序来运作,用这种方法来进行测试。然后,评价它的运行好坏,给它打个分。从生物学的角度来看,这个分数将评判出个体的“强健”程度,也就是它繁殖成功的概率。个体的强健程度越高,被基因算法选择出来,得以将自己的基因遗传给下一代的机会就越大。第三,将你所选择的个体当作具有足够繁殖能力的染色体,使它们相互交配,从而繁衍新的一代。让剩余的染色体自行消亡。当然,在实际操作时,基因算法舍弃了两性的差异、求偶礼仪、性爱动作、精子和卵子的结合,以及两性繁衍的所有复杂细节,而只是通过赤裸裸的基因材料的交换繁衍下一代。如果用图解来表示的话,基因算法选择了有ABCDEFG的染色体和有abcdefg染色体的一对个体,随意在中间切断它们的染色体序列,然后将双方染色体相互交换,形成对它们的一对后代的染色体:ABCDefg和abcdEFG。(真正的染色体经常会发生这种交换,或交叉,荷兰德从中得到启发。)最后,通过这种基因交换繁衍出来的下一代之间又会继续相互竞争,同时在新一代的循环中,与它们的父母也发生竞争。这无论是对基因算法来说,还是对达尔文的自然选择法来说,都是最关键的一环。没有两性之间的基因交换,新的一代就会完全像他们的父母一样,物种的发展就会进入停滞状态。低劣的物种会自然消亡,但优良的物种也决不会发生任何改良。但有了两性之间的基因交换,新一代就会相似于它们的父母,但又有所不同,有时会比它们的父母强些。当发生这种情形的时候,被改良的物种就会获得普及的大好机会,从而显著地改良自己所属的整个物种群。自然选择法提供了一种向上进取的机制。当然,在真正的生物体中,相当大一部分的变量是由于突变、遗传密码的排版错误所致。事实上,基因算法确实也允许通过故意将1改变为0,或把0改为1而产生一些偶然的突变。但对荷兰德来说,基因算法的核心是两性交换。不仅仅是因为两性的基因交换给物种提供了变量,而且这同时也是一个极好的机制,通过这个机制可以寻索到能够相互密切配合,产生高于一般水平的强健的基因群,也就是建设砖块。一个极好的机制,通过这个机制可以寻索到能够相互密切配合,产生高于一般水平的强健的基因群,也就是建设砖块。像11####11#10###10.或##1001###11101##,获得了很高的分数。(荷兰德用#来表示“没有关系”。数字处于这个位置可以是0,也可以是1。)他说,这种模型就具有建设砖块的功能。也许它们凑巧表示的是变量的范围,在这些范围中,其功能确实具有超常的高价值。但不管是什么原因,含有这种建设砖块的染色体都会繁荣发展,并普及于整个物种,从而取代那些不含有这类建设砖块的染色体。另外,既然两性繁衍使数字染色体能够在每一代都重组它们的基因材料,那么物种就会经常产生新的建设砖块和现有建设砖块的新组合,这样基因算法就会很快产生具有双倍和三倍优势的建设砖块。而如果这些建设砖块的组合又产生出更大的优势,那么具有这些优秀建设砖块的个体特色就会比以往更快地普及于整个物种。结果就是,这个基因算法会很快指向现有问题的答案,即使事先并不知道从哪儿寻找答案。荷兰德记得当他在六十年代初刚发现这一点时感到非常激动。但他的听众却从未为此而欢欣鼓舞。那时候,在尚属新兴的计算机科学领域里,大多数计算机科学家都感到,在常规性编程方面尚有大量的基础研究要做。从纯粹实际的角度来说,演化一个程序的概念显得不着边际。但荷兰德不在乎这些。这正是他自决心要发展费舍尔的独立基因假设以来一直苦苦探索所获得的成果。繁殖和交叉为基因的建设砖块提供了突现和共同演化的机制,同时又是物种个体高效率地探索于可能性空间的机制。事实上,到六十年代中期,荷兰德已经证明了基因算法的基本定理,他称其为图解定理:在繁衍、交叉和突变之中,几乎所有具有超常强健性的紧密基因群都能够在物种中成指数比例地发展。(荷兰德所说的“图解”,是指任何特定的基因模型。)他说:“当我最终将图示定理发展到令我满意的地步后,我才开始着手写书。”心智的突现荷兰德原来以为能够在一两年内完成一本书,一本关于图解定理、基因算法、以及他对适应性的总的思考的汇编。但事实上,这本书的出版耗费了他十年的时间。他的撰写和研究一直是齐头并进,他不断有新的想法需要探索,或理论上有新的方面需要分析。他指派他指导下的好几个研究生去做计算机实验,也就是证实基因算法是否真正有用、是否是一个解决最优化问题的有效办法。荷兰德觉得他这是同时在提出和实践他的适应性理论,他希望做得准确无误,既深入细致、又精确严谨。他无疑做到了这一点。1975年出版的《自然和人工系统中的适应性》一书罗列了大量的方程式和分析。该书总结了荷兰德二十年来对学习、进化和创造性之间深刻的内在关联的思考,对基因算法做了周密的陈述。荷兰德的研究成果并没有在密西根大学之外更广泛的计算机科学世界里引起任何反响。对那些喜欢优雅、简明和被证明是正确的算法的人来说,荷兰德的基因算法太离奇古怪了。人工智能圈子对荷兰德的基因算法研究反应较为热烈。在这个圈子里,他的书的年销量可达一百至二百本。但即使如此,即使对他的书偶有评论,最多不过是“约翰是个极聪明的人,但..”这类话。即使对他的书偶有评论,最多不过是“约翰是个极聪明的人,但..”这类话。总之,他根本就没有玩那套学术界自我推销的把戏,这似乎不是他喜欢玩的游戏。更确切地说,他并不真的介意他是赢是输。打个比喻,他仍然情愿和他的小伙伴们一起混在地下室里做游戏。荷兰德说:“这就好比是打棒球,只不过你参加了非主力队,而没有参加主力队。但重要的是打棒球的乐趣,而不是参加哪个队。我所从事的科学对我而言总是其乐无穷的。”“我觉得如果没人愿意听我说,会使我很烦恼。但我总是非常幸运,总是有既聪明、又对我的研究课题兴致勃勃的研究生与我产生思想上的共鸣。”这确实从一个侧面反应了他和少年伙伴在地下室做游戏的态度:在密西根大学,荷兰德将极大的精力放在了和他最直接的圈子里的伙伴共同工作之上了。尤其是在任何时候他手下都有六七个研究生,远远超过通常导师指导研究生的数额。事实上,从六十年代中期开始,他所指导的研究生每年都有不止一个人获得博士学位。“他们中有些人确实绝顶聪明,与他们相处给我带来了很大的乐趣。”他说。荷兰德看到有太多教授累计了长长的论文名单,其实这些论文都是他们和他们所指导的研究生共同研究的成果,甚至完全是由他们的学生写的。所以他故意用相当放手的方式对研究生进行指导。“他们都按照自己的想法进行研究,做他们自己感兴趣的事。然后我们所有的人每周一次围聚在桌旁,其中有一个人就会告诉大家他的论文已经进行到什么程度了,我们大家就会就此展开批评和讨论。这对所有介入者来说都充满了乐趣。”七十年代中期,荷兰德和学部里一群志同道合的同事开始了每周一次的自由讨论,讨论任何有关进化和适应性的问题。这群人里除了有勃克斯之外,还有政治科学家罗伯特·爱克思罗德(Robert Axelrod)。罗伯特力图想理解人们为什么和什么时候会相互合作,而不再相互在背后捅刀子。另外还有专攻人类组织的社会动力学的政治科学家米歇尔·考亨(Michael Cohen)和威廉·汉密尔顿(WilliamHamilton)。威廉是一位进化生物学家,和爱克思罗德一起研究共生、社会行为和其他形式的生物合作。“麦克·科恩(Mike Cohen)是个中介人。”荷兰德回忆说。在他的适应性一书刚出版不久,科恩来旁听他的课。有一天课后他走过来对荷兰德介绍自己,并说:“你真应该去和爱克思罗德谈谈。”荷兰德就照做了。通过爱克思罗德,他又结识了汉密尔顿。很快,BACH小组的人,勃克斯、爱克思罗德、科恩、汉密尔顿就携手联合了。(BACH是由他们四个人名字的头一个字母组成。他们几乎经常一起工作。在小组成立伊始,他们就想把斯图尔特·考夫曼网罗进来,但考夫曼去了宾州大学。)“把我们联系在一起的是我们都有很强的数学背景,都强烈地感觉到进化和适应性问题比任何一个单一的问题都涉猎广泛。我们开始定期聚会:某个人会读到一篇文章,然后大家一起讨论,激发了许多探索性思考。”荷兰德说。对荷兰德来说尤为如此。他已经完成了适应性一书,但他与BACH小组成员的讨论却涉及到书中未及涉猎、留待研究的地方。基因算法和图解定理紧紧抓住了进化的本质问题,对此他深信不疑。但即便如此,他仍然不免要遗憾,基因算法对进化的赤裸裸的解释毕竟过于简单了。他的理论把“生物体”直接当作由程序员设计出来的单纯的.. DNA,这样的理论一定存在缺憾。它对于在复杂环境中复杂的生物体的进化能向我们说明什么呢?什么也不能说明。基因算法相当不错,但仅仅是基因算法本身,并非包括适应性作用者。对荷兰德来说尤为如此。他已经完成了适应性一书,但他与BACH小组成员的讨论却涉及到书中未及涉猎、留待研究的地方。基因算法和图解定理紧紧抓住了进化的本质问题,对此他深信不疑。但即便如此,他仍然不免要遗憾,基因算法对进化的赤裸裸的解释毕竟过于简单了。他的理论把“生物体”直接当作由程序员设计出来的单纯的.. DNA,这样的理论一定存在缺憾。它对于在复杂环境中复杂的生物体的进化能向我们说明什么呢?什么也不能说明。基因算法相当不错,但仅仅是基因算法本身,并非包括适应性作用者。所以,从七十年代后期起,荷兰德就开始了对该理论的研究。从根本上来说,一个适应性作用者经常是在和它所处的环境做游戏。而这又确切地意味着什么呢?如果剥离到本质,这对游戏的作用者的生存和发展来说,究竟会发生什么?荷兰德认为会发生两件事:预测和反馈。这是他在.. IBM公司工作时他和