基于逐维高斯变异的混沌麻雀优化算法-附代码

基于逐维高斯变异的混沌麻雀优化算法

文章目录

  • 基于逐维高斯变异的混沌麻雀优化算法
    • 1.麻雀优化算法
    • 2. 改进麻雀算法
      • 2.1 Singer 映射
      • 2.2 翻筋斗策略
      • 2.3 基于惯性权重因子的高斯变异
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对麻雀算法初始化种群盲目性、全局搜索能力尚差容易陷入局部最优等问题,提出了一种逐维高斯变异的混沌麻雀优化算法.该算法首先利用singer混沌映射策略对种群进行初始化,克服种群初始化的盲目性。然后引入翻筋斗觅食策略来提高种群的全局搜索能力,最后引入惯性权重因子,针对最优原子采用逐维度高斯变异,提高其跳出局部最优解的能力,提高算法的全局搜索能力。

1.麻雀优化算法

基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958

2. 改进麻雀算法

2.1 Singer 映射

Singer 映射 是混沌映射的典型代表, 它的数学形 式很简单。其表达式女如下:
x k + 1 = u ( 7.86 x k − 23.31 x k 2 + 28.75 x k 3 − 13.302875 x k 4 ) , u ∈ ( 0.9 , 1.08 ) (5) \begin{gathered} x_{k+1}=u\left(7.86 x_k-23.31 x_k^2+28.75 x_k^3-13.302875 x_k^4\right), \\ u \in(0.9,1.08) \end{gathered}\tag{5} xk+1=u(7.86xk23.31xk2+28.75xk313.302875xk4),u(0.9,1.08)(5)
Singer 表达式中 x x x 的范围为 [ 0 , 1 ] [0,1] [0,1] 。 Singer 映射分布在[0,1]之间,其混沌性来代替随机初始化,能够使种群在搜索空间更加均匀的分布。

2.2 翻筋斗策略

引人较为新颖的翻筋斗 [ 8 ] { }^{[8]} [8] 觅食策略来改善 SSA 的跳 出局部最优能力。这种捕猎行为, 可以将猎物视为一个 支点, 每次捕猎将会更新到当前位置与对称于支点对面 位置的某一位置, 数学模型可列为式:
X i ( t + 1 ) = x i ( t ) + S ( r 1 ∗ x b e t − r 2 ∗ x i ( t ) )  (6)  X_i(t+1)=x_i(t)+S\left(r_1 * x_{b e t}-r_2 * x_i(t)\right) \text { (6) } Xi(t+1)=xi(t)+S(r1xbetr2xi(t)) (6) 
式中代表空翻因子, 决定了翻到猎物对面的位置, 取 S = 2 , x best  S=2, x_{\text {best }} S=2,xbest  为目前最优位置, r 1 、 r 2 r_1 、 r_2 r1r2 为两个区间为 [ 0 , 1 ] [0,1] [0,1] 的 随机数。

2.3 基于惯性权重因子的高斯变异

为了提高算法的收敛速度, 引人惯性权重因子, 惯性 权重因子定义如下:
w = 1 − ( t /  MaxIter  ) 2 (7) w=1-(t / \text { MaxIter })^2 \tag{7} w=1(t/ MaxIter )2(7)
为了提高算法的全局搜索能力, 针对最优位置, 引入 惯性权重因子并采用高斯变异 [ 9 ] { }^{[9]} [9] 进行变异, 然后采用贪 婪策略保留最优解。针对每个维度进行变异:
X best ⁡ = w ∗ X best ⁡ ( j ) + rand ⁡ n ∗ X best ⁡ ( j ) (8) X \operatorname{best}=w * X \operatorname{best}(j)+\operatorname{rand} n * X \operatorname{best}(j) \tag{8} Xbest=wXbest(j)+randnXbest(j)(8)
采用贪婪策略进行适应度更新:
X  best  = { X  bestnew  ,  if  f ( X  bestnew  ) < f ( X  best  ) X  best  ,  else  (9) X \text { best }=\left\{\begin{array}{l} X \text { bestnew }, \text { if } \quad f(X \text { bestnew })X best ={X bestnew , if f(X bestnew )<f(X best )X best , else (9)
ISSA 算法步骤:

(1)利用 singer 映射策略初始化种群、迭代次数、捕 食者和加人者比列。
(2)计算适应度值, 并排序。
(3) 麻雀更新捕食者位置。
(4) 麻雀更新加人者位置。
(5)麻雀更新警戒者位置。
(6)计算适应度值并更新麻雀位置。
(7) 对所有麻雀利用翻筋斗策略进行更新
(8)对最优麻雀进行逐维惯性因子的高斯变异。
(9) 是否满足停止条件, 满足则退出, 输出结果, 否 则, 重复执行 (2)-(8)

3.实验结果

基于逐维高斯变异的混沌麻雀优化算法-附代码_第1张图片

4.参考文献

[1]楚哲宇,唐秀英,谭庆,张清君.基于逐维高斯变异的混沌麻雀优化算法[J].自动化应用,2021(08):60-63.DOI:10.19769/j.zdhy.2021.08.019.

5.Matlab代码

6.Python代码

你可能感兴趣的:(智能优化算法改进,算法,机器学习,人工智能)