复杂-第36部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
误法的话,也许就值得试试利用大自然的尝试/错误法则,也就是自然选择法。与其编
一个程序来执行你自己都不知道该如何定义的任务,还不如让它们通过进化自然产生。
基因算法便是这样的一个方法。荷兰德说,如果想看它怎样发生作用,那就忘记
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小组成员的讨论却
涉及