从1995年被首次提出以来,差分进化算法在全局优化上已赢得相当不错的赞誉。虽然也有缺陷,但它的可靠性和鲁棒性的记录表明它就像每一位科学家和工程师的布袋戏法,往往能化腐朽为神奇。相对于遗传算法,差分进化算法用浮点代替串编码,用算术运算代替逻辑运算,同时交叉变异因子的使用使其在操作上更加方便简单。对于一些复杂环境的优化问题,如多种群、高维度等,差分进化因为其较强的全局收敛能力和高鲁棒性往往能得到非常满意的效果。现如今,DE算法已被广泛应用于机器学习、生产调度、化工、电力等多个领域,研究并改良DE算法对当前我国在智能优化方面的学术发展及科技领域的革新都有非常重要的意义。
1。2 进化算法的发展历程
优化问题是科学与工程中普遍存在的问题,例如,设计成什么形状能给翼一个最大升力?哪一个多项式最适合给定的数据?配置什么样的透镜能产生清晰的图像?毫无疑问,很多研究者需要一个强大的优化算法来解决问题,这是他们日常工作的基础。在简单的条件下,优化是试图最大限度地提高系统的理想性能,同时最大限度地减少其不良特性。在科学研究和工程设计过程中,很多具体问题都可以归纳为参数优化问题,而在现实当中,这些优化操作一般会含有一个或以上的设计目标,这些目标之间往往自相冲突,或者相互制约,一般情况下其中一个目标的机能优化很可能会导致其另外至少一个目标的机能衰减,也就是说多个目标很难同时达到最优。论文网
就像牛顿在苹果树下被落下的苹果砸中而萌发重力的设想一样,许多科学家都会在大自然中通过观察动植物的习性或者大自然的运行规律来寻求解决问题的方法。如同自然界适者生存,优胜劣汰的生存法则,近代的研究者们也试图通过进化计算来优化问题。在早期,Fogel[1]提出了进化规划,这种方法的主要思路是,首先确定μ个初代个体,这些初代个体通过突变从而产生新的μ个新个体,然后,在初代和新生代中继续挑选μ个个体作为第二代,如此反复,持续的迭代直到产生最满意的结果。可以看出,早期的进化计算引用了自然界的变异操作及基本的选择(与后来的选择操作不同)。但是,早期的进化规划在对选择过程的分析不甚明确,对于挑选的个体往往是随机操作而非淘汰,因此对于选择操作的设置引起后来者的浓厚兴趣。然后,在七十年代,Ingo Rechenberg 和 HP Schwefel[2]又改进发明了进化策略,可是,最开始的进化策略也叫(1+1)策略,因为种群的初代个体只有一个,因此突变后的新生代也只有一个个体,这个个体再与父代进行竞争产生子代,这个子代也只有一个个体,如何迭代直至最优结果。但是这种策略显然不具有多样性和参考性,所以之后的进化策略又引入了重组操作,在此上又发展(μ+λ)和(μ、λ)策略,同时两种策略都加入适应度问题,两种策略都是基于在初代的μ个个体上经过变异、重组产生新的λ个个体,但是,(μ+λ)和(μ、λ)策略的不同之处在于,(μ+λ)策略是在初代和新代μ+λ个个体上根据适应度筛选出适应度最优的μ个个体,而(μ、λ)策略则是在新代的λ个个体中,并且λ>μ,选出适应度最优的μ个个体。这两种策略在引入适应度的方法上基本完善了选择操作,但是其结果也存在出现局部最优解的缺陷。从以上我们可以看出,早期的进化计算基本都借鉴了宏观的生物进化规则,直到遗传算法的出现。