融合多策略的改进麻雀搜索算法-附代码
融合多策略的改进麻雀搜索算法
文章目录
- 融合多策略的改进麻雀搜索算法
- 1.麻雀优化算法
- 2. 改进麻雀算法
- 2.1 正弦搜索策略
- 2.2 多样性变异处理
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
摘要:针对麻雀搜索算法收敛速度缓慢、寻优精度不足和容易陷入局部最优等缺点,提出了一种融合正弦搜索策略和多样性变异处理策略的改进麻雀搜索算法。通过引入正弦搜索策略,自适应调整个体权重提高算法收敛速度。针对个体聚集程度过高问题,采用多样性变异处理,引入生物学中种群聚集度的概念和柯西变异对最优解进行扰动,提高算法逃离局部最优的可能。
1.麻雀优化算法
基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
2. 改进麻雀算法
2.1 正弦搜索策略
考虑到基本 SSA 算法中仅区分为探索者或追随者两种 个体类型, 在两种类型中无论个体位置的优劣, 所有个体均 按照相同的位置更新公式进行更新, 无法根据其自身位置给 予合适的更新策略。针对这一问题, 本文引入正弦搜索策略。
正弦搜索策略可以根据个体不同位置赋予权重不同的值。在 麻雀搜索算法中引入正弦搜索策略, 可使得原本种群中适应 度较好的个体能够在原来的位置附近进行搜索, 增强算法的 局部搜索能力; 原本种群中适应度较差的个体能够远离其自 身位置进行探索, 增强算法的全局搜索能力。正弦搜索策略 公式如下。
w=wmin+(wmax−wmin)×(sin((fit−fbest tfnomst t−fteot t+1)×π2+π)+1)(6)\begin{aligned} w=& w \min +(w \max -w \min ) \\ & \times\left(\sin \left(\left(\frac{f_i^t-f_{\text {best }}^t}{f_{\text {nomst }}^t-f_{\text {teot }}^t}+1\right) \times \frac{\pi}{2}+\pi\right)+1\right) \end{aligned}\tag{6} w=wmin+(wmax−wmin)×(sin((fnomst t−fteot tfit−fbest t+1)×2π+π)+1)(6)
其中, wmin、wmax 分别是权重变化范围的最小值和最大值, fi′f_i^{\prime}fi′ 是第 ttt 次迭代种群中第 i\mathrm{i}i 个麻雀的适应度值。 fbeet ′f_{\text {beet }}^{\prime}fbeet ′ 是第 ttt 次 迭代种群的最优适应度值, fnorst ′f_{\text {norst }}^{\prime}fnorst ′ 是第 ttt 次迭代种群的最差适应 度值。将正弦搜索策略中 w 的值应用于 SSA 算法中,ISSA 算法的探索者和追随者的更新公式可做如下描述。
Xi,jt+1={Xi,jt⋅exp(−1α⋅it)if R2<STXi,jt+w⋅Q⋅Lif R2≥ST(7)\begin{aligned} &X_{i, j}^{t+1}=\left\{\begin{array}{lll} X_{i, j}^t \cdot \exp \left(-\frac{1}{\alpha \cdot i t}\right) & \text { if } & R_2<S T \\ X_{i, j}^t+w \cdot Q \cdot L & \text { if } & R_2 \geq S T \end{array}\right.\\ \end{aligned}\tag{7} Xi,jt+1={Xi,jt⋅exp(−α⋅it1)Xi,jt+w⋅Q⋅L if if R2<STR2≥ST(7)
Xi,jt+1={Q⋅exp(Xwort −Xi,jti2)if i>n2Xpt+1+w⋅∣Xi,jt−Xpt+1∣⋅A+⋅Lif i≤n2A+=AT(AAT)−1(8)\begin{aligned} &X_{i, j}^{t+1}=\left\{\begin{array}{cc} Q \cdot \exp \left(\frac{X_{\text {wort }}-X_{i, j}^t}{i^2}\right) & \text { if } i>\frac{n}{2} \\ X_p^{t+1}+w \cdot\left|X_{i, j}^t-X_p^{t+1}\right| \cdot A^{+} \cdot L & \text { if } i \leq \frac{n}{2} \\ A^{+}=A^T\left(A A^T\right)^{-1} \end{array}\right.\\ \end{aligned}\tag{8} Xi,jt+1=⎩⎨⎧Q⋅exp(i2Xwort −Xi,jt)Xpt+1+w⋅∣∣Xi,jt−Xpt+1∣∣⋅A+⋅LA+=AT(AAT)−1 if i>2n if i≤2n(8)
Xi,jt+1={Xbest t+w⋅β∣Xi,jt−Xbest t∣if fi>fgXi,jt+w⋅K∣Xi,jt−Xbest t∣(fi−fw)+εif fi=fg(9)\begin{aligned} &X_{i, j}^{t+1}= \begin{cases}X_{\text {best }}^t+w \cdot \beta\left|X_{i, j}^t-X_{\text {best }}^t\right| & \text { if } f_i>f_g \\ X_{i, j}^t+w \cdot K \frac{\left|X_{i, j}^t-X_{\text {best }}^t\right|}{\left(f_i-f_w\right)+\varepsilon} & \text { if } f_i=f_g\end{cases} \end{aligned}\tag{9} Xi,jt+1={Xbest t+w⋅β∣∣Xi,jt−Xbest t∣∣Xi,jt+w⋅K(fi−fw)+ε∣Xi,jt−Xbest t∣ if fi>fg if fi=fg(9)
2.2 多样性变异处理
算法在迭代收敛过程中, 个体极易大规模聚集于某一位 置, 造成算法的种群多样性降低并陷入局部最优。为了克服 这一问题, 引入了生物学中表示种群聚集度的指标 A[15]A^{[15]}A[15],
A=δ−xˉxˉ2(10)A=\frac{\delta-\bar{x}}{\bar{x}^2} \tag{10} A=xˉ2δ−xˉ(10)
其中, δ\deltaδ 表示麻雀种群适应度的方差, xˉ\bar{x}xˉ 表示麻雀种群适应度 的均值。当 A≫>0\mathrm{A} \gg>0A≫>0 时, 种群表现出聚集状态; 当 A\mathrm{A}A 趋近于 0 时, 种群表现出随机状态。为了避免聚集状态在迭代的初期出现, 采用柯西变异对种群进行处理。
当 t≤it2t \leq \frac{i t}{2}t≤2it 时, 且当 AAA 值大于预设阈值时, 使用式(11)对全局 最优解进行变异处理。
X=Xbest +Xbest ⋅Cauchy(0,0.5)(11)X=X_{\text {best }}+X_{\text {best }} \cdot \operatorname{Cauchy}(0,0.5) \tag{11} X=Xbest +Xbest ⋅Cauchy(0,0.5)(11)
3.实验结果
4.参考文献
[1]张晓萌,张艳珠,刘禄,张硕,熊夫睿.融合多策略的改进麻雀搜索算法[J/OL].计算机应用研究:1-8[2021-12-17].https://doi.org/10.19734/j.issn.1001-3695.2021.09.0412.
5.Matlab代码
6.Python代码
融合多策略的改进麻雀搜索算法-附代码相关推荐
- 基于正交对立学习的改进麻雀搜索算法-附代码
基于正交对立学习的改进麻雀搜索算法 文章目录 基于正交对立学习的改进麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 正态变异扰动 2.2 对立学习 2.3 正交对立学习 3.实验结果 4. ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
- 基于莱维飞行扰动策略的麻雀搜索算法-附代码
基于莱维飞行扰动策略的麻雀搜索算法 文章目录 基于莱维飞行扰动策略的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 莱维飞行搜索机制 2.2 莱维飞行扰动策略 2.3 初始化混沌搜索机制 ...
- 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法-附代码
基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 文章目录 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 基于 Sobol 序列初始化种群位置 2 ...
- 混合策略改进的麻雀搜索算法-附代码
混合策略改进的麻雀搜索算法 文章目录 混合策略改进的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 Circle 混沌初始化策略 2.2 蝴蝶优化策略 2.3 逐维变异策略 3.实验结果 ...
- 融合柯西变异和反向学习的改进麻雀算法-附代码
融合柯西变异和反向学习的改进麻雀算法 文章目录 融合柯西变异和反向学习的改进麻雀算法 1.麻雀搜索算法 2.融合柯西变异和反向学习的改进麻雀算法(ISA) 2.1 Sine 初始化种群 2.2 动态自 ...
- 基于levy飞行改进的麻雀搜索算法-附代码
基于levy飞行改进的麻雀搜索算法 文章目录 基于levy飞行改进的麻雀搜索算法 1.Levy飞行 2.基于Levy飞行映射的麻雀搜索算法 3.算法结果: 4.Matlab 5.Python 1.Le ...
- 基于Singer混沌映射的麻雀搜索算法-附代码
基于Singer混沌映射的麻雀搜索算法 文章目录 基于Singer混沌映射的麻雀搜索算法 1.Singer映射 2.基于Singer映射的麻雀搜索算法 3.算法结果: 4.Matlab 5.pytho ...
- 基于Chebyshev混沌映射的麻雀搜索算法-附代码
基于Chebyshev混沌映射的麻雀搜索算法 文章目录 基于Chebyshev混沌映射的麻雀搜索算法 1.Chebyshev映射 2.基于Chebyshev映射的麻雀搜索算法 3.算法结果: 4.Ma ...
最新文章
- UITests操作指南
- 台式您想使用系统还原计算机吗,联想台式机一键恢复,小编教你怎么使用联想电脑一键恢复...
- 提高工作效率-shell操作快捷键
- php javascript wav波形绘制,PHP分析.wav文件并绘制png格式的波形图
- JAVA Web.xml 加载顺序
- Java设计模式详解
- NFS客户端、服务器协商读写粒度(rsize、wsize)流程 【转】
- java数据结构之排序-- 插入排序算法
- Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期
- 《三毛。。。。》烂漫
- dubbo学习总结——思维导图
- Cisco ××× troubleshooting
- Theano 中文文档 0.9 - 5.2 Mac OS安装说明
- java排错_java排错之CPU高
- 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...
- Web图形开发方案选型,SVG/VML/Flash/Applet优劣比较
- k8s glusterfs mysql_k8s使用glusterfs实现动态持久化存储
- 工科生快速翻译英文文献的两个软件
- VideoPlayer取某一帧图片
- 丁腈橡胶自然老化时间_丁腈橡胶自然贮存老化及寿命研究
热门文章
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差
- wordpress用户注册_如何在WordPress网站上允许用户注册
- Ubuntu下使用Python调用乐视三合一摄像头
- CornerStone Unresolved conflicts exist for some items
- 记一次线上面试实习生岗位的心得和体会
- 关于单片机对三极管B值测量的硬件电路和软件思路分享
- “但是……”萧雨萱还想说什么,却立刻被季枫给打断了
- IEEE Access录用了一篇文章,目前在web of science中还检索不到,请问童鞋们该肿么办?
- python二元多次函数拟合_对python实现二维函数高次拟合的示例详解
- 华为OD机试 - 相对开音节(Java JS Python)