1701066720
GA是如何演化出好的技巧的
1701066721
1701066722
下一个问题是,GA是如何从随机的群体演化出像策略G这样好的策略的呢?
1701066723
1701066724
要回答这个问题,我们可以看一看策略是如何一代一代改进的。图9.7中画出了每一代中最佳策略的适应度。你可以看到最好的适应度最开始是小于0的,前300代提高得很快,此后的提高要慢一些。
1701066725
1701066726
第1代有200个随机生成的策略,可以想象它们都很糟糕。最好的策略适应度才-81,最糟糕的到了-825。(可能这么低吗?)
1701066727
1701066728
1701066729
1701066730
1701066731
▲图9.7 GA演化出策略G的过程中,各代群体中的最佳适应度
1701066732
1701066733
我用几个任务测试了一下罗比采用这一代中最糟糕的策略时的行为。在一些环境设定中,罗比移动了几步就卡住了,之后在整个任务过程中都停止不动。在一些情况下,则不停地撞墙,直到任务结束。有时候则一直不断地去捡罐子,虽然当前位置上没有罐子。显然这些策略在进化过程中很快就会被淘汰掉。
1701066734
1701066735
我也测试了一下这一代中最好的策略,还是很糟糕,比最差的好不了多少。不过比起来它还是有两个优点:不那么容易一直撞墙了,而且偶尔碰到罐子的时候还能把罐子捡起来!作为这一代中最好的策略,它有很大的机会被选中用来繁殖!一旦被选中,它的子代就会继承这些优点(同时也会继承许多缺点)。
1701066736
1701066737
到第10代,群体中最佳策略的适应度已经变成正数了。这个策略经常会停滞不动,有时候还会在两个格子之间不停地来回移动。但基本不怎么撞墙,同第1代的前辈一样,偶尔也会捡罐子。
1701066738
1701066739
GA就这样不断改进最佳适应度。到200代时,最好的策略已经具有向罐子移动并捡起罐子这个最重要的能力——至少大部分时候是这样。不过,如果周围没有罐子,它也会浪费很多时间用来随机游走,这一点同策略M相似。到250代时,做得已经和策略M一样好了;等到了400代,适应度超过了400分,这时的策略如果少做一些随机移动,就能和策略G一样好。到800代时,GA发现了将罐子留作相邻罐子的路标的技巧,到900代时,沿着围墙转的技巧就基本完善了,到1000代时会进一步做些修正。
1701066740
1701066741
虽然罗比机器人的例子相当简单,但它与实际应用的GA区别已不是很大。同罗比的例子一样,在实际应用中,GA经常能演化出有用的答案,但是很难看出为什么会有用。这是因为GA找到的好答案与人类想出的相当不同。美国国家航空航天局(NASA)的遗传算法专家罗恩(Jason Lohn)曾这样说:“进化算法是探索设计死角的伟大工具。 [143] 你向具有25年工业经验的专家展示(你的设计),他们会说‘哦,这个真的能有效?’……我们经常发现进化出来的设计完全无法理解。”
1701066742
1701066743
罗恩的设计也许是无法理解,但的确能有效。2004年,罗恩和他的同事因为用GA设计出了新的NASA航天器天线被授予“人类竞争”奖(Human Competitive Award)。这表明GA的设计改进了人类工程师的设计。
1701066744
1701066745
1701066746
1701066747
1701066749
复杂 3 大写的计算
1701066750
1701066751
计算机科学的真义 [144] 是在自然界中无处不在的大写的计算。
1701066752
1701066753
——朗顿(Chris Langton),引自勒温(Roger Lewin)的《复杂性:混沌边缘的生命》(Complexity:Life at the Edge of Chaos)
1701066754
1701066755
1701066756
1701066757
1701066759
复杂 第10章 元胞自动机、生命和宇宙
1701066760
1701066762
自然界中的计算
1701066763
1701066764
《科学》杂志不久前出版了一篇文章, [145] 题为《社会性昆虫行为的计算》(Getting the Behavior of Social Insects to Compute),文中介绍了一些昆虫学家的工作,他们将蚂蚁群体的行为等同于“计算机算法”,每只蚂蚁都执行简单的程序,使得整个种群作为一个整体执行复杂的计算,比如在决定何时将巢穴搬往何地的问题上形成一致。
1701066765
1701066766
如果由一只蚂蚁来领导和决策,很容易就能在计算机上编出程序来进行计算。其他蚂蚁只需按照领导者的决策来做就行了。然而,在前面我们已经看到,在蚂蚁群体中没有领导者;蚁群“计算机”由数百万只自主的蚂蚁组成,每只蚂蚁都只是根据与一小部分蚂蚁的交互来进行决策和行动。这种计算与具有CPU和内存的普通电脑进行的计算差别很大。
1701066767
1701066768
与此类似,1994年三位杰出的大脑科学家也写了一篇文章:“大脑是计算机吗?” [146] 他们认为:“如果我们同意接受更宽泛的计算概念,答案就一定是‘是’。”同蚁群一样,大脑的计算方式——数以亿计的神经元并行工作,而无须中央控制——也与现代的数字计算机的运作方式完全不同。
[
上一页 ]
[ :1.701066719e+09 ]
[
下一页 ]