2023年CCF-C NCA:自适应麻雀搜索算法MASSA,深度解析+性能实测

目录


1.摘要

麻雀搜索算法(SSA)是一种受麻雀觅食策略启发的元启发式算法,尽管SSA性能竞争力强,但仍存在开发与探索不平衡,容易陷入局部最优的问题。本文提出改进自适应麻雀搜索算法(MASSA),其通过引入混沌反向学习技术增加种群多样性,并通过动态自适应权重来平衡算法的开发与探索能力。此外,自适应螺旋搜索策略进一步提升了MASSA的性能。

2.麻雀搜索算法SSA原理

【智能算法】麻雀搜索算法(SSA)原理及实现

3.改进策略

自适应混沌反向学习

种群多样性与个体在搜索空间中的分布有关,更均匀的个体分布意味着更好的多样性。混沌映射具有随机选择和遍历的特点,有助于生成新的解。自适应混沌反向学习策略:
X i c o = L B + U B − λ i X i t X_{i}^{co}=\mathrm{LB}+\mathrm{UB}-\lambda_{i}X_{i}^{t} Xico=LB+UB−λiXit

随着算法的推进,采用混沌反向学习策略会导致大量无效搜索,这不仅增加了计算成本,还不利于算法的收敛,采用线性递减种群方法:
P o p = r o u n d ( ( p o p min ⁡ − p o p max ⁡ ) ⋅ t M + p o p max ⁡ ) \mathrm{Pop}=\mathrm{round}\left(\frac{(\mathrm{pop}{\min}-\mathrm{pop}{\max})\cdot t}{M}+\mathrm{pop}_{\max}\right) Pop=round(M(popmin−popmax)⋅t+popmax)

自适应螺旋搜索策略

对于发现者将原始搜索策略与自适应螺旋搜索策略相结合:
X i t + 1 = ∣ X i t − X p b e s t t ∣ β + X p b e s t t \mathbf{X}i^{t+1}=\left|\mathbf{X}i^t-\mathbf{X}{\mathrm{pbest}}^t\right|\beta+\mathbf{X}{\mathrm{pbest}}^t Xit+1= Xit−Xpbestt β+Xpbestt

其中,
β = e a l ⋅ cos ⁡ ( 2 π a ) \beta=e^{al}\cdot\cos(2\pi a) β=eal⋅cos(2πa)

每个跟随者在更新位置时不仅考虑最优个体,还应参考其前方的一个个体:
X i t + 1 = X p t + ∣ X i t − X p t ∣ ⋅ β + r 1 ⋅ ( X i − 1 t − X i t ) \mathbf{X}_i^{t+1}=\mathbf{X}_p^t+\left|\mathbf{X}_i^t-\mathbf{X}p^t\right|\cdot\beta+r_1\cdot(\mathbf{X}{i-1}^t-\mathbf{X}_i^t) Xit+1=Xpt+ Xit−Xpt ⋅β+r1⋅(Xi−1t−Xit)

动态自适应权重

为了解决发现者在迭代过程初期就接近全局最优而导致的搜索范围不足和精度下降问题,我们引入了前一代全局最优解至发现者的位置更新公式中。采用惯性权重实现从全局搜索向局部搜索的平滑过渡:
w = 1 − ( ( e t / M − 1 ) / e − 1 ) 2 w=1-\left((e^{t/M}-1)/e-1\right)^2 w=1−((et/M−1)/e−1)2
X i t + 1 = ∣ X p b e s t t − X i t ∣ ⋅ w ⋅ r a n d + X i t \mathbf{X}i^{t+1}=\left|\mathbf{X}{\mathrm{pbest}}^t-\mathbf{X}_i^t\right|\cdot w\cdot\mathrm{rand}+\mathbf{X}_i^t Xit+1= Xpbestt−Xit ⋅w⋅rand+Xit

伪代码

4.结果展示

PS:效果一般



5.参考文献

1 Geng J, Sun X, Wang H, et al. A modified adaptive sparrow search algorithm based on chaotic reverse learning and spiral search for global optimizationJ. Neural Computing and Applications, 2023, 35(35): 24603-24620.

6.代码获取

相关推荐
倒头就睡的小比特3 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼3 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark3 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her13 天前
并查集-听课笔记
笔记·算法·并查集
码流子3 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven3 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark3 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法