• 融合差分进化和混合多策略的麻雀搜索算法


    一、理论基础

    1、麻雀搜索算法

    请参考这里

    2、麻雀搜索算法的改进

    2.1 反向学习初始化种群

    反向学习作为一种智能计算中的新技术,其目的是基于当前解,找出与其对应的反向解,再通过适应度计算选择并保存较好的解。通过反向学习策略初始化能有效提高种群的多样性,避免陷入局部最优。反向学习初始化过程如下:
    (1)随机生成临时的初始化种群 X i , j X_{i,j} Xi,j
    (2)通过式(1)计算 X i , j X_{i,j} Xi,j的反向解 X i , j ∗ X_{i,j}^* Xi,j X i , j ∗ = u b i , j + l b i , j − X i , j (1) X_{i,j}^*=ub_{i,j}+lb_{i,j}-X_{i,j}\tag{1} Xi,j=ubi,j+lbi,jXi,j(1)其中, u b i , j ub_{i,j} ubi,j l b i , j lb_{i,j} lbi,j分别为 X i , j X_{i,j} Xi,j对应的第 i i i个个体当中第 j j j维的上限和下限。
    (3)生成的初始种群。根据适应度函数计算出对应的反向解 X i , j ∗ X_{i,j}^* Xi,j,若 f i t ( X i , j ∗ ) < f i t ( X i , j ) fit(X_{i,j}^*)fit(Xi,j)<fit(Xi,j),则选择其反向解 X i , j ∗ X_{i,j}^* Xi,j作为初始种群中的个体。

    2.2 非线性权重因子

    引入非线性权重因子 λ \lambda λ来改进种群中发现者的位置更新公式以平衡算法的局部和全局的搜索能力,同时改善算法的收敛速度。算法迭代前期,应降低发现者个体对于自身位置的依赖性,以获取更大的解空间并提升全局优化能力;迭代后期,应加大对自身位置的依赖程度,以提高收敛速度。非线性权重因子公式为 λ = ( t / i t e r max ⁡ ) 2 \lambda=(t/iter_{\max})^2 λ=(t/itermax)2此时对发现者位置更新公式进行简化和改进为 X i , j t + 1 = { X i , j t ⋅ λ if    R 2 < S T X i , j t + Q    if    R 2 ≥ S T (3) X_{i,j}^{t+1}=

    \begin{dcases}X_{i,j}^t\cdot\lambda\quad\quad\text{if}\,\,R_2<ST\\[2ex]X_{i,j}^t+Q\quad\,\,\text{if}\,\,R_2\geq ST\end{dcases}" role="presentation" style="position: relative;">