



差分进化算法是一种随机的启发式搜索算法,也是一种自组织最优化方法,其关键思想与传统进化方法不同。传统进化方法是用预先确定的概率分布函数决定个体位置更新的向量扰动,而差分进化算法利用种群中两个随机选择的不同个体向量产生差分向量来干扰一个现有个体向量,且种群中的每个个体向量都要进行干扰。由于随机扰动可独立进行,因此差分进化算法具有良好的并行性。如果经过进化操作产生的新个体优于当前个体,则新个体将取代当前个体。
差分进化算法通过“变异(Mutation)→交叉(Crossover)→选择(Selection)”不断迭代,实现种群进化。通过变异操作产生中间个体,交叉操作产生候选个体,候选个体与当前个体竞争选择,保留更优的个体进入下一代种群。在差分进化算法中,利用不同个体位置向量之差作为随机扰动产生新个体的方式具有较好的收敛性,可引导搜索过程向全局最优解逼近。在进化过程中,种群中所有成员必须作为目标向量被这样操作一次,并保持种群数量不变,同时记录每一代种群中的最优个体。
差分进化算法和遗传算法十分相似,两者在父辈生成子代的过程中均包括变异、交叉和选择操作,但二者是有差别的。差分进化算法采用差分变异操作,用两个父辈个体向量的差分向量乘以某个系数作为扰动向量加到另一个父辈个体向量上,产生中间个体向量,再通过交叉概率控制中间个体向量和当前个体向量进行交叉产生候选个体向量。这种变异方式能更有效地利用种群的分布特性,提高算法的全局搜索能力。同时,随着进化代数的增加,种群中的个体逐渐向最优解靠拢,差分向量整体上也有逐渐减小的趋势,扰动向量的减小也有利于提高最优解的求解精度,具有一定的自适应性。差分进化算法的选择操作采用“一对一”方式的贪婪竞争选择,能够保证进化过程中不会出现个体退化现象。
差分进化算法从提出至今,被广泛研究,在众多领域取得了许多成功应用。该算法的主要特点如下。
(1)结构简单、控制参数少。差分进化算法中的变异操作只涉及向量的加减运算,很容易实现。此外,差分进化算法所需控制参数很少,并且这些参数对算法性能的影响已得到较为深入的研究,在控制参数设定方面有一些指导性建议可供参考借鉴。因此,使用者可以根据求解优化问题方便地选择较好的控制参数值。
(2)性能优越、适用性广。差分进化算法具有可靠性、高效性和鲁棒性都较好的特点。对于大空间、非线性和不可导的连续问题优化,求解效果较好,而且很多学者对其仍在继续改进,以提高其性能和适用范围。
(3)调整能力强、搜索效率高。差分进化算法的变异因子可以取固定常数,也可以根据求解问题需要取动态值,使算法具有动态变步长和搜索自适应调整能力,从而提高搜索效率和求解质量。
(4)并行协同、快速收敛。差分进化算法具有内在的并行性,能够利用个体局部信息和群体全局信息指导算法进一步搜索,可实现协同搜索。在同样精度要求下,差分进化算法具有更快的收敛速度。
(5)通用性好、易于使用。差分进化算法通用性好,操作简单,便于编程实现,可直接对结构对象进行操作,不依赖于问题信息,不存在对目标函数的限定,非常适用于求解多维连续函数的优化问题。