从上面的原理可以看出,从搜索角度,遗传算法具有许多独特的优点:
l 不必非常明确描述问题的全部特征,通用性和鲁棒性强,能很快适应问题和环境的变化;对领域知识依赖程度低,不受搜索空间限制性假设的约束,不必要求连续性、可导或单峰等。
l 从多点进行搜索,如同在搜索空间上覆盖的一张网,搜索的全局性强,不易陷入局部最优;具有隐并行性,非常适合于并行计算。
在工程实践中的遗传算法应用主要是利用了其并行性和全局搜索的特点来进行优化。尽管遗传算法本身是一种通用弱方法,仍需要尽量结合特定领域的知识,实现解决特定问题的一个遗传算法特定实现,其范围可能更窄,但效果会更好。不过,我认为,从遗传算法的来源--自然界现象看,生物演化的目的并非取得某一限制条件下的某些参数的最优,而是适应环境。生物进化的途径多种多样,没有哪一种是最优的,但是,成功的生物必然是适应其环境和环境内的其它生物的,对于环境的演化和其它生物的进化(它自己也在改变着环境,人类更是前所未有地改变着环境),它能够适应新的变化,继续生存。从这一角度看,虽然目前工程实践上遗传算法的主要应用是用于优化,我认为遗传算法的真正威力却不在于此。
鉴于遗传算法和生物演化现象的紧密关系,人工生命和复杂性科学的研究与遗传算法有着极其密切的联系。在演化现象中,我感兴趣的方面主要有协同演化,学习与进化的相互作用等。
l 协同进化。进化的目标不是形成一个超级物种,一个生态环境进化的结果是物种与环境相互适应、相互影响的复杂系统,虽然遗传算法被大量用于优化,但进化的目标不是优化而是适应。因此,应该研究多个物种在共同的生态环境中的协同进化。对应到遗传算法,这可以用于多目标的优化。
l 学习与进化的相互作用。可以将学习分为以下几种:(1)宗亲(phylogenetic learning)学习:通过血亲遗传将祖先的特征遗传给后代。(2)社团学习(sociogenetic learning):经验和知识在群体(社团)中的共享。(3)个体学习(ontogenetic learning):个体生存过程中的学习。按照现代进化论的观点,自然界生物的进化主要发生于基因型,个体学习和社团学习的结果不能影响基因型,无法通过获得性遗传直接遗传给后代。然而,有些进化生物学家研究了学习对进化的间接影响,尤其著名的是"Baldwin"效应。其基本思想是:如果学习有助于生存,那么学习的最好的有机体将有最多的后代,从而影响到与学习有关的基因在种群中的频率。也就是说,获得某种所需特性的能力使有机体更能生存,从而给了基因突变独立发现所需特性的机会。但是,除了生物界的有性生殖、突变、染色体互换和倒置等等基于生理结构的进化机制外,人类社会还存在基于社会文化的进化机制,个体在社会中的学习,幼体的成长过程中对历史和文化的学习都是人类社会特有的更高级的进化机制。我们希望能在遗传算法中体现学习与进化的相互作用。