进化算法,或称“演化算法” (evolutionary algorithms, EAS) 是一个“算法簇”,尽管它有很多的变化,有不同的遗传基因表达方式,不同的交叉和变异算子,特殊算子的引用,以及不同的再生和选择方法,但它们产生的灵感都来自于大自然的生物进化。与传统的基于微积分的方法和穷举法等优化算法相比,进化计算是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题。
进化计算包括遗传算法(Genetic Algorithms)、遗传规划(Genetic Programming)、进化策略(Evolution Strategies)和进化规划(Evolution Programming)4种典型方法。第一类方法比较成熟,现已广泛应用,进化策略和进化规划在科研和实际问题中的应用也越来越广泛。
遗传算法的主要基因操作是选种、交配和突变,而在进化规则、进化策略中,进化机制源于选种和突变。就适应度的角度来说遗传算法用于选择优秀的父代(优秀的父代产生优秀的子代),而进化规则和进化策略则用于选择子代(优秀的子代才能存在)。遗传算法与遗传规划强调的是父代对子代的遗传链,而进化规则和进化策略则着重于子代本身的行为特性,即行为链。进化规则和进化策略一般都不采用编码,省去了运作过程中的编码—解码手续更适用于连续优化问题,但因此也不能进行非数值优化。进化策略可以确定机制产生出用于繁殖的父代,而遗传算法和进化规则强调对个体适应度和概率的依赖。
此外,进化规则把编码结构抽象为种群之间的相似,而进化策略抽象为个体之间的相似。进化策略和进化规则已应用于连续函数优化、模式识别、机器学习、神经网络训练、系统辨识和智能控制的众多领域。
从本世纪40年代起,生物模拟就构成了计算科学的一个组成部分,象早期的自动机理论,就是假设机器是由类似于神经元的基本元素组成的,它向人们展示了第一个自复制机模型。这些年来诸如机器能否思维、基于规则的专家系统是否能胜任人类的工作,以及神经网络可否使机器具有看和听的功能等有关生物类比的问题已成为人工智能关注的焦点。最近生物计算在机器昆虫和种群动态系统模拟上所取得的成功激励越来越多的人们致力于人工生命领域的研究。当今计算机科学家和分子生物学家已开始携手进行合作研究,并且类比也得到了更为广泛的应用。
自然界生物体通过自身的演化就能使问题得到完美的解决。这种能力让最好的计算机程序也相形见拙。计算机科学家为了某个算法可能要耗费数月甚至几年的努力,而生物体通过进化和自然选择这种非定向机制就达到了这个目的。
近三十年的不断的研究和应用已经清楚地表明了模拟自然进化的搜索过程可以产生非常鲁棒(orbust)的计算机算法,虽然这些模型还只是自然界生物体的粗糙简化。进化算法就是基于这种思想发展起来的一类随机搜索技术,它们是模拟由个体组成的群体的集体学习过程。其中每个个体表示给定问题搜索空间中的一点。进化算法从任一初始的群体出发,通过随机选择(在某些算法中是确定的)、变异和重组(在某些算法中被完全省去)过程,使群体进化到搜索空间中越来越好的区域。选择过程使群体中适应性好的个体比适应性差的个体有更多的复制机会,重组算子将父辈信息结合在一起并将他们传到子代个体,变异在群体中引人了新的变种。
目前研究的进化算法主要有三种典型的算法:遗传算法、进化规划和进化策略。这三种算法是彼此独立发展起来的,遗传算法由美国J.Holand创建,后由K.De Jong,J.Grefenstette,D.Goldberg和L.navis等人进行了改进;进化规划最早由美国的L·J·Fogel,A.J.Owens和M.J.walsh提出,最近又由D.B.Fogel进行了完善;进化策略是由德国的I·Reehenberg和H.p.Sehwefel建立的。
群体搜索策略和群体中个体之间的信息交换是进化算法的两大特点。它们的优越性主要表现在:首先,进化算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数是不连续的,非规则的或有噪声的情况下,它们也能以很大的概率找到全局最优解;其次,由于它们固有的并行性,进化算法非常适合于巨量并行机;再者,进化算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决非常困难的问题;此外,由于它们容易介人到已有的模型中并且具有可扩展性,以及易于同别的技术混和等因素,进化算法目前已经在最优化、机器学习和并行处理等领域得到了越来越广泛的应用。1993年德国Dortmound大学的等人在一份研究t报告中搜集了篇有关进化算法的应用的科技文献。