一种基于收敛因子改进的灰狼优化算法 -附代码
一种基于收敛因子改进的灰狼优化算法
文章目录
摘要: 为求解复杂函数计算问题,很多启发式算法得以发展,灰狼优化算法因其实现简单、算法寻优能力强等特点得以广泛应用。为提高灰狼优化算法求解精度,改进灰狼优化算法在后期收敛速度较慢的问题,本文讨论了迭代过程全局搜索与局部搜索所占比例对灰狼优化算法的影响,将一种新型收敛因子应用于算法中,提出一种改进的灰狼优化算法。
1.灰狼优化算法
基础灰狼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107716390
2.基于收敛因子改进的 IGWO 算法
2.1 广度搜索与深度搜索的比例对算法影响的讨论
在 GWO 算法中,变量 A 是主要影响到广度搜索和深度搜索的变量。在 GWO 算法中定义,当 | A | > 1时,灰狼群体将扩大包围圈,此时,算法主要为广度搜索,当| A| <1 时,灰狼群体将缩小包围圈,以完成对猎物的包围攻击,此时,算法主要为深度搜索。在 GWO 算法的定义中,由式(4)可知,A 的值的变化主要由收敛因子 a 决定,收敛因子 a 由式(5)定义。当 a 从2 递减为0,A 的取值在[- a,a]之间变化。当 a 为1 时,当前迭代次数约为总迭代次数的一半,即在原算法中,影响算法广度搜索和深度搜索各占一半。
对于全局寻优算法,当广度搜索在整个搜索过程中所占比例过少,则算法很容易陷入局部最优,找不到全局最优点,但当广度搜索所占比例过多时,会对算法的寻优过程带来较多随机性和不确定性。针对原GWO 算法存在的容易陷入局部最优的问题,本文将适当增加前期广度搜索的比例,讨论不同比例的广度搜索与深度搜索对应的收敛因子对算法的影响。
(1)广度搜索∶ 深度搜索 =7∶ 3,对应的收敛因子由 a 1 表示。见式(9)。
a
1
=
{
2
−
t
0.7
∗
M
a
x
_
i
t
e
r
,
a
≤
0.7
∗
M
a
x
_
i
t
e
r
10
/
3
−
t
0.3
∗
M
a
x
_
i
t
e
r
,
a
>
0.7
∗
M
a
x
_
i
t
e
r
(9)
a_{1}=\begin{cases} 2-\frac{t}{0.7*Max\_{iter}}, a\leq 0.7*Max\_iter\\ 10/3-\frac{t}{0.3*Max\_{iter}},a>0.7*Max\_iter \end{cases}\tag{9}
a1={2−0.7∗Max_itert,a≤0.7∗Max_iter10/3−0.3∗Max_itert,a>0.7∗Max_iter(9)
(2)广度搜索∶ 深度搜索 =6∶ 4,对应的收敛因子由 a 2 表示。见式(10)。
a
1
=
{
2
−
t
0.6
∗
M
a
x
_
i
t
e
r
,
a
≤
0.7
∗
M
a
x
_
i
t
e
r
5
/
2
−
t
0.4
∗
M
a
x
_
i
t
e
r
,
a
>
0.7
∗
M
a
x
_
i
t
e
r
(10)
a_{1}=\begin{cases} 2-\frac{t}{0.6*Max\_{iter}}, a\leq 0.7*Max\_iter\\ 5/2-\frac{t}{0.4*Max\_{iter}},a>0.7*Max\_iter \end{cases}\tag{10}
a1={2−0.6∗Max_itert,a≤0.7∗Max_iter5/2−0.4∗Max_itert,a>0.7∗Max_iter(10)
(3)广度搜索∶ 深度搜索 =5∶ 5,对应原算法的收敛因子,为方便对比,用 a 3 表示。见式(11)。
a
3
=
2
−
2
M
a
x
_
i
t
e
r
(11)
a_3=2-\frac{2}{Max\_iter} \tag{11}
a3=2−Max_iter2(11)
本文中将用式(9)的收敛因子替代原算法的收敛因子,提出一种改进的灰狼优化算法(ModifiedGrey Wolf Optimizor,IGWO)。
2.2 IGWO 算法描述
综上所述,IGWO 的算法步骤如下:
步骤 1:初始化种群规模 N,随机产生初始种群,初始化 t =0,初始化 a、A 和 C 等参数。
步骤 2:计算种群中每个个体的适应度值,将适应度排名前三的个体分别记为 X α ,X β 和 X δ 。
步骤 3:由式(6)计算种群中其他个体与 X α ,X β 和 X δ 的距离,并根据式(7)更新个体位置。
步骤 4:由决策层 X α ,X β 和 X δ 进行决策,由式(8)完成群体位置更新。
步骤 5:更新算法中 a,A 和 C 等参数。
步骤 6:判定算法是否满足收敛条件。如果满足,则算法结束;否则,令 t = t +1,返回步骤 3。
3.实验结果
4.参考文献
[1]邢燕祯,王东辉.一种基于收敛因子改进的灰狼优化算法[J].网络新媒体技术,2020,9(03):28-34.
5.Matlab代码
6.python代码
相关文章
- java全排列递归算法_java排列组合代码实现
- 平均每天只写 7 行代码:一算法工程师被开除
- 手眼标定算法Tsai-Lenz代码实现(Python、C++、Matlab)
- 文本分类算法的效果[通俗易懂]
- c# 非阻塞算法_c# – 了解非阻塞线程同步和Thread.MemoryBarrier
- 快速阶乘算法
- 操作系统–银行家算法c语言代码
- 一致性哈希算法及其实现
- VBA: 最优化算法(二分法、黄金分割法、循环迭代法)的代码实现
- SIGIR2022 | 基于行为融合的冷启动推荐算法
- 回溯算法 js_回溯算法代码
- 【视频】Copula算法原理和R语言股市收益率相依性可视化分析|附代码数据
- 数据结构与算法
- 如何用70行Java代码实现深度神经网络算法详解编程语言
- Oracle分页求和算法实现(oracle中分页求和)
- C#计算两个文件的相对目录算法的实例代码
- 最小生成树算法C语言代码实例
- 一组PHP可逆加密解密算法实例代码