3.1 差分进化算法的理论
3.1.1 差分进化算法的发展史
差分进化算法是一类基于种群的自适应全局优化算法,属于演化算法的一种,由于它具有结构简单、容易实现、收敛快速、鲁棒性强等特点,因此被广泛应用在数据挖掘、模式识别、数字滤波器设计、人工神经网络、电磁学等各个领域。
与遗传算法一样,差分进化算法也是一种基于现代智能理论的优化算法,通过种群内个体之间的相互合作与竞争产生的种群智能指导优化搜索的方向。为了使更多研究者了解和研究差分进化算法,Storn和Price于1997年建立了差分进化算法的官方网站,该网站的建立得到了广大研究者的关注和支持,为相关人员进行差分演化算法的理论和应用研究提供了极大的方便。此外,Storn和Price在差分进化算法上没有申请任何形式的专利,这也对推动差分进化算法的研究和应用起了重要的作用。
3.1.2 差分进化算法的描述
差分进化算法是一个自组织最小化方法,用户只需很少的输入即可,它的关键思想与传统统计方法的关键思想不同。传统统计方法是用预先确定的概率分布函数决定向量扰动的,而差分进化算法的自组织程序利用种群中两个随机选择不同的向量干扰一个现有向量,种群中的每一个向量都要进行干扰。如果新向量对应函数值的代价比它们的上一代的代价小,那么它们将取代其前辈。
差分进化算法利用了一个向量种群,其中种群向量的随机扰动可独立进行,因此固有并行的。
3.1.3 差分进化算法的思想
差分进化算法主要用于求解连续变量的全局优化问题,其主要工作步骤包括变异、交叉、选择。差分进化算法的基本思想是从某一随机产生的初始种群开始的,它利用从种群中随机选取的两个个体的差分向量作为第三个个体的随机变化源,将差分向量加权后按照一定的规则与第三个个体求和而产生变异个体,该操作称为变异。然后,将变异个体与某个预先决定的目标个体进行参数混合,生成试验个体,这一过程称为交叉。如果试验个体的适应度值优于目标个体的适应度值,则在下一代中用试验个体取代目标个体;否则目标个体仍保存下来,该操作称为选择。在每一代的进化过程中,每个个体向量作为一次目标个体,算法通过不断地迭代计算,保留优良个体、淘汰劣质个体,并引导搜索过程向全局最优解逼近。
3.1.4 差分进化算法的特点
差分进化算法从提出到现在,人们对其进行了广泛的研究并取得了成功的应用。该算法的主要特点如下。
(1)结构简单,容易使用。差分进化算法主要通过差分变异算子进行遗传操作,由于该算法只涉及向量的加、减运算,因此很容易实现。该算法采用概率转移规则,不需要确定性的规则。此外,差分进化算法的控制参数少,这些参数对算法性能的影响已经得到了一定的研究,并得出了一些指导性的建议,因而可以方便使用人员根据问题选择较优的参数设置。
(2)性能优越。差分进化算法具有较好的可靠性、高效性和鲁棒性,对于大空间、非线性和不可求导的连续问题,其求解效率比其他进化方法的求解效率高,而且很多学者还在继续对差分进化算法进行改良,以不断提高其性能。
(3)自适应性。差分进化算法的差分变异算子可以是固定常数,也可以具有变异步长和搜索方向自适应的能力,可以根据不同目标函数进行自动调整,从而提高搜索质量。
(4)具有内在并行性,可协同搜索,具有利用个体局部信息和种群全局信息指导算法进一步搜索的能力。在同样的精度要求下,差分进化算法具有更快的收敛速度。
(5)算法通用,可直接对结构对象进行操作,不依赖问题信息,不存在对目标函数的限定。差分进化算法操作十分简单,易于编程实现,尤其利于求解高维的函数优化问题。