具有记忆功能的海鸥优化算法-附代码
具有记忆功能的海鸥优化算法
摘要:在SOA算法海鸥群体进行攻击行为基础上改进,引入两个随机因子以及两个学习因子;同时在种群更新中,加入了海鸥种群的最佳位置和个体的历史最优值。一方面,MSOA算法使得海鸥向个体历史最优位置学习,另一方面,它又增强了向群体最佳位置的学习,从而避免了陷入局部最优解区域,增强了种群的寻优性能。
1.海鸥优化算法
基础海鸥优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107535864
2. 改进海鸥优化算法
2.1 引入记忆功能
海鸥优化算法的介绍以及相关定理请参考引言里面的 文献, 文中 MSOA 算法是在 SOA算法海鸥群体进行攻击 行为基础上改进的, 引人两个随机因子以及两个学习因子; 同时在种群更新中, 加人了海鸥种群的最佳位置和个体的 历史最优值。一方面, MSOA 算法使得海鸥向个体历史最 优位置的学习; 另一方面, 它又增强了向群体最佳位置的 学习, 从而避免了种群陷人局部最优解区域, 增强了种群 的寻优性能。记忆功能的公式如下所示
P
m
(
t
)
=
d
s
(
t
)
×
x
×
y
×
z
+
P
b
s
(
t
)
+
(
P
g
(
t
)
−
P
s
(
t
)
)
×
r
1
×
w
1
+
(
P
b
s
(
t
)
−
P
s
(
t
)
)
×
r
2
×
w
2
(5)
P_m(t)=d s(t) \times x \times y \times z+P_{b s}(t)+\\ \left(P_g(t)-\left.P_s(t)\right) \times r_1 \times w_1+\left(P_{b s}(t)-P_s(t)\right) \times r_2 \times w_2\right.\tag{5}
Pm(t)=ds(t)×x×y×z+Pbs(t)+(Pg(t)−Ps(t))×r1×w1+(Pbs(t)−Ps(t))×r2×w2(5)
式中: 随机因子
r
1
r_1
r1 和
r
2
r_2
r2 设置为 0 和 1 之间的随机数, 从而 增强海鸥飞行过程中的随机性, 学习因子
w
1
、
w
2
w_1 、 w_2
w1、w2 的值设置 为
0.9
0.9
0.9, 从而保证算法能够更好收敛, 增强了海鸥向个体学 习以及群体学习的能力,
P
g
(
t
)
P_g(t)
Pg(t) 表示海鸥个体的历史最优位 置,
P
m
(
t
)
P_m(t)
Pm(t) 为记忆个体,
P
s
(
t
)
P_s(t)
Ps(t) 为上一代个体。
为了增强算法的求解能力, 需要将迭代出来的海鸥位 置, 即记忆个体与上一代个体位置的适应度进行比较, 选 出最优的位置。判断如下所示:
if 记忆个体的适应度值
>
>
> 上一代个体的适应度 上一代个体位置替换记忆个体位置
else
记忆个体的位置保持不变
M
S
O
A
\mathrm{MSOA}
MSOA 算法不但更新当前群体的全局最优值, 而且更新 了每个海鸥个体的历史最优信息。这样不仅能够使海鸥个体跳 出局部极值进人解空间的新区域继续进行搜索最优解, 也还能 够提高算法的收敛精度和收敛速度, 避免陷人局部最优。
具有记忆功能的海鸣优化算法的求解过程分为初始化 过程、适应度计算过程、循环迭代过程、篮选过程、更新 适应度值和位置过程、输出结果过程 6 个过程。具有记忆 功能的海鸥优化算法 (MSOA) 的求解步骤如下所述:
步骤 1 种群初始化。设置种群大小 popsize, 最大迭 代次数 maxiter, 线性频率
f
c
\mathrm{f}_{\mathrm{c}}
fc, 螺旋形状的参数
u
、
v
u 、 \mathrm{v}
u、v 等;
步骤 2 计算当前海鸥种群每个个体的适应度值, 计算 出当前海鸥种群的全局最优位置和设置个体最优位置;
步骤 3 迭代寻优, 更新海鸥的位置;
步骤 4 计算出海鸥避免碰撞后的新位置;
步骤 5 计算出海鸥的最佳位置方向;
步骤 6 计算海鸥靠近最佳位置;
步骤 7 引人具有记忆功能式 (5) 结合攻击行为的公 式计算出海鸥的新位置, 从而得到新的一代海鸥个体;
步骤 8 比较记忆个体和上一代个体的适应度值, 把最 好的个体保存下来;
步骤 9 更新海鸥的位置和适应度值, 个体更新和全体 更新;
步骤 10 是否满足条件, 若满足, 结束循环, 否则, 继 续迭代寻优;
步骤 11 输出海鸥的最佳位置和适应度值、输出迭代过程;
步骤 12 结束程序。
3.实验结果
4.参考文献
[1]许乐,莫愿斌,卢彦越.具有记忆功能的海鸥优化算法求解方程组[J].计算机工程与设计,2021,42(12):3428-3437.DOI:10.16208/j.issn1000-7024.2021.12.018.
5.Matlab代码
6.python代码
相关文章
- java算法集训代码填空题练习2
- java算法集训代码填空题练习1
- Paxos算法
- 基于一种交互式的光伏组件特性曲线算法(Matlab代码实现)
- 基于改进粒子群优化算法的UAV三维路径规划研究(Matlab代码实现)
- 【SSA-LSTM】基于麻雀算法优化LSTM 模型预测研究(Matlab代码实现)
- 基于粒子群算法优化BP神经网络的PID控制算法(Matlab代码实现)
- 【车间调度】基于模拟退火优化算法的的并行车间机器优化调度(Matlab代码实现)
- 基于粒子群优化算法的面向综合能源园区的三方市场主体非合作交易方法(Matlab代码实现)
- 多旋翼无人机组合导航系统-多源信息融合算法(Matlab代码实现)
- 基于原子势函数及人工蜂群算法进行形状匹配优化(Matlab代码实现)
- 基于蜣螂算法优化的SVM数据分类预测-附代码
- 基于鲸鱼算法优化的lssvm回归预测-附代码
- 智能优化算法:非洲秃鹫优化算法-附代码
- 智能优化算法:未来搜索算法-附代码
- 智能优化算法:黑猩猩优化算法-附代码
- 智能优化算法:和声搜索算法-附代码
- 智能优化算法:黏菌优化算法 - 附代码
- 智能优化算法:入侵杂草优化算法-附代码
- 智能优化算法:布谷鸟搜索算法-附代码
- 混合模拟退火和教与学的鸽群优化算法-附代码
- 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法-附代码
- 一种基于差分进化和灰狼算法的混合优化算法-附代码
- 一种改进非线性收敛方式的灰狼优化算法研究 -附代码