友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
八八书城 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

复杂-第章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



律当然也表现在所有复杂的适应性系统之中。
  但为什么会是这样的呢?事物的这个等级分明的。建设砖块结构的特性就像空气一
样司空见惯。它因无所不在而被我们视而不见。但当你认真思考这个问题时,就会发现
它急需解释:为什么这个世界会形成这种结构呢?
  其实对此已有许多解释。计算机程序员们会把问题分解成许多于程序,因为较小、
较简单的问题比较大、较繁杂的问题易于解开。这就是分而治之的古老法则。鲸鱼和红
杉这样的庞然大物是由无数个微小的细胞组成的,因为总是先要有细胞,才可能形成庞
然大物。当五亿七千万年前巨大的动植物开始出现在地球上时,对自然选择法来说,较
之于从一片混乱无序中重新开始形成大团新的原生质,显然不如将现存的单一细胞形成
生物体要容易得多。通用汽车公司将自己分为无数个部门和子部门,是因为通用汽车公
司的主管不希望公司的五十万名雇员都直接来向他报告。他一天根本没这么多的时间。
事实上,在四十年代和五十年代,西蒙在他的商业组织的研究中就已经指出过,设计优
良的等级制度是在避免让任何一个人疲于应付会议和备忘录的前提下实施实际工作的最
佳方式。
  但当荷兰德思考这个问题时,他越来越觉得,更为重要的理由还基于更深的层次,
因为这个等级分明的建设砖块结构能够彻底改变系统的学习、进化和适应能力。想一下
我们的认知建设砖块,这包含了像红色、汽车和道路这类的概念。一旦这组类别的建设
砖块随着经验的积累而被扭转、精炼和调整,那么,这组概念就会被整个改编和重组成
许多新的慨念,比如像“路边的一辆红色Saab轿车”。当然,较之完全从头开始,这是
一个有效得多的创新的途径,而这反过来又在总体上意味着适应性的一个全新的机制。
适应性系统能够重组它的建设砖块,从而产生巨大的飞跃,而不需要总是要逐步逐步地
在可能性的无限空间中缓慢进展。
  在这个方面,荷兰德最喜欢举的例子是计算机出现之前警方根据目击者的描述来绘
出嫌疑犯的画像的办法,即,把嫌疑犯的面孔分为十个基本区域:发际线、前额、眼睛、
鼻子,一直到下颚。然后绘像师在许多纸片上对各个部位做不同形状的绘画,比如说,
十种鼻子、十种发际线、等等。这加起来就是一百张纸的给像。有了这些之后,绘像师
就可以通过目击者的描述,把合适的部分凑在一起,很快得出嫌疑犯的肖像图。当然,
绘像师无法用这种办法画出所有可能想象出来的面孔。但他或她总是能够得到近似的肖
像:绘像师通过重组这一百张纸片可以得出一百亿张不同的面孔,足够从广大的可能性
空间中找到相似的相貌。“所以如果我能够发现形成建设砖块的过程,这些组合就能为
我所用,而不会成为我的障碍。我就能够用相对少的建设砖块描述出许许多多的复杂事
物。”
  他认识到,这就是解开多基因之谜的关键之所在。“进化过程中的放弃和尝试并不
只是为形成一个优良的动物,而是在于发现优良的建设砖块,并将这些建设砖块结合在
一起,从而产生许多优良的动物。”他现在面临的挑战是要精确而严谨地表明这一切是
如何发生的。他决定,第一步是要做一个计算机模拟,一个既能够陈述过程、又能够帮
助他澄清脑子里的问题的“基因算法”。
  密西根大学计算机科学圈子里的人都看惯了荷兰德拿着折扇状的计算机打印结果跑
过来。
  “看看这个!”他会急煎煎地指着一张整页都是密密麻麻的十六进位的数据符号的
纸说。
  “哦,CCB1095E。太棒了,约翰。”
  “不!不!你知道这是什么意思吗!?”
  事实上,在六十年代初,有相当多的人并不知道,也想不出那些数据表示什么意思。
对荷兰德持怀疑态度的同事们对于荷兰德所从事的研究的怀疑,至少在一点是对的:荷
兰德最终推出的基因算法是个稀奇古怪的东西。除非从最为书面的意义而论。否则这根
本不能算是计算机程序。就它的内部机制而言,它更像是一个模拟生态系统,其中所有
的程序都可以相互竞争、相互交配、一代接一代地繁衍,一直朝着程序员设置的任何问
题的解答方向不断演化。
  说得轻一点,这不是程序的通常编写法。所以荷兰德发现,要向同事们解释为什么
这具有意义,最好用非常实际的语言来告诉他们他正在做什么。他通常会告诉他们,我
们把计算机编程当作一个由FORTRAN或LISP这样的特殊编程语言写成的一系列指令。确
实,编程的全部技艺就在于确保准确无误地按照正确的指示和顺序来编写程序。这显然
是编程的最有效的方法——如果你早就知道你想让计算机干什么的话。但假设你并不知
道你想让计算机干什么,比如假设你想找到某种复杂的数学功能的最大价值。功能可以
表示利润、或工厂的产量。或任何其它东西。这个世界到处都有希望价值被最大化的东
西。确实,计算机程序员已经为此设计出先进的计算机算法来了。但即使是其中最优秀
的算法都无法保证在任何情况下都能提供正确的最大化价值。在某种层次上,这些算法
总是不得不依赖传统的尝试/错误法,也就是猜测法。
  荷兰德对他的同事们说,如果情况真是这样的话,如果你反正总是要依赖尝试/错
误法的话,也许就值得试试利用大自然的尝试/错误法则,也就是自然选择法。与其编
一个程序来执行你自己都不知道该如何定义的任务,还不如让它们通过进化自然产生。
  基因算法便是这样的一个方法。荷兰德说,如果想看它怎样发生作用,那就忘记
FORTRAN编码,深入到计算机的内核里去。计算机程序在计算机上是以一列1或0的二进
制来表示的:11010011110001100100010100111011……在这种形式下,计算机程序看上
去像是一大片染色体。每一个二进制数字都是一个单独的“基因”。一旦你用生物学眼
光来思考二进制编码,你就可以用类似的生物方法使之进化。
  荷兰德说,首先,让计算机产生一群数量约为100个数字的染色体,其中包含大量
的随机变量。假设每一个染色体都相对应一群斑马中的一匹(这是为使事情简化之故。
因为荷兰德试图把握进化的最基本的本质,所以在基因算法中舍弃了诸如马蹄、胃和脑
这样的细节,而把个体当作单个的纯DNA来模拟。而且,为了使之更便于操作,他把二
进制的染色体限制在长度不超过几十个二进制数字之内,所以这些染色体实际上并不是
完整的程序,而只是程序的片断。事实上,在他最初的实验中,这些染色体只代表单一
的变量。但这并不能改编这个算法的基本原则)。
  第二,把现有的问题当作每一单个的染色体,把问题当作计算机程序来运作,用这
种方法来进行测试。然后,评价它的运行好坏,给它打个分。从生物学的角度来看,这
个分数将评判出个体的“强健”程度,也就是它繁殖成功的概率。个体的强健程度越高,
被基因算法选择出来,得以将自己的基因遗传给下一代的机会就越大。
  第三,将你所选择的个体当作具有足够繁殖能力的染色体,使它们相互交配,从而
繁衍新的一代。让剩余的染色体自行消亡。当然,在实际操作时,基因算法舍弃了两性
的差异、求偶礼仪、性爱动作、精子和卵子的结合,以及两性繁衍的所有复杂细节,而
只是通过赤裸裸的基因材料的交换繁衍下一代。如果用图解来表示的话,基因算法选择
了有ABCDEFG的染色体和有abcdefg染色体的一对个体,随意在中间切断它们的染色体序
列,然后将双方染色体相互交换,形成对它们的一对后代的染色体:ABCDefg和abCdEFG
(真正的染色体经常会发生这种交换,或交叉,荷兰德从中得到启发)。
  最后,通过这种基因交换繁衍出来的下一代之间又会继续相互竞争,同时在新一代
的循环中,与它们的父母也发生竞争。这无论是对基因算法来说,还是对达尔文的自然
选择法来说,都是最关键的一环。没有两性之间的基因交换,新的一代就会完全像他们
的父母一样,物种的发展就会进入停滞状态。低劣的物种
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!