差分演化算法(Differential Evolution )是曾经一度非常热门的算法,该算法简单易用,收敛速度快。这篇文章对其进行总结。
算法简介
所谓的演化算法是一种自适应,并行的全局优化算法,还包括遗传算法等。
差分演化算法与其他演化算法的最大区别在与差分变异算子的应用。
差分演化算法主要用于求解实数优化问题,一般不用于求解离散问题。
算法流程
算法流程图如下。
伪代码流程如下。
下面对每一个具体的阶段进行说明。
在初始化阶段,对于每个个体的每一维在其自变量范围内采用均匀随机初始化。
在变异阶段,采用差分变异算子,经典差分算子DE/rand/1的公式如下:
在交叉阶段,采用离散重组,常用的二项式杂交算子如下(就是让子个体和父个体交换某些维度的坐标值):