基于莱维飞行扰动策略的麻雀搜索算法-附代码

基于莱维飞行扰动策略的麻雀搜索算法


摘要:为了解决麻雀搜索算法存在迭代后期搜索多样性不足、容易陷入局部最优等问题,提出了一种基于莱维飞行扰动策略的改进麻雀搜索算法。首先借鉴Sin混沌搜索机制,改进种群初始化策略。然后在麻雀种群觅食搜索过程中引入莱维飞行扰动机制,牵引种群移动适当的步长,增加空间搜索的多样性。

1.麻雀优化算法

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

2. 改进麻雀算法

2.1 莱维飞行搜索机制

随着仿生学的不断发展, 模拟布谷鸟巢寄生行为的 CS 算法应运而生。生物学的研究表 明: 布谷鸟利用餒育寄生的方式繁衍后代, 表现为产卵寄生于其他宿主鸟巢并在其他宿主鸟 的帮助下孵化和育雉的一种生物行为, 其繁殖行为关于选巢位置的变化正好体现出莱维飞行 的搜索特性。

CS 算法是将布谷鸟寻窝产卵和莱维飞行的搜索机制形成搜索策略。该算法约定以下 3 条 规则:1)每只布谷鸟每次只产卵一个, 并随机选择寄生巢来卿化;2)在随机选择的一组寄生 巢中, 将最好的寄生巢保留到下一代;3)约定寄生巢的数量, 且宿主鸟按一定的概率发现寄 生卵。在这 3 条规则的约束下, 宿主鸟可以将产卵抛出, 或放弃该鸟巢以建新巢。Levy ( λ ) (\lambda) (λ) 是 一个随机搜索路径, 其随机步长表现为一个 Levy 分布, 具体计算公式为
L e v y ∼ u = t − λ , 1 < λ ⩽ 3 (6) Levy \sim u=t^{-\lambda}, \quad 1<\lambda \leqslant 3 \tag{6} Levyu=tλ,1<λ3(6)
布谷鸟通过莱维飞行寻窝搜索的路径和位置更新公式为
x i t + 1 = x i t + δ ⊕ Levy ⁡ ( λ ) (7) x_i^{t+1}=x_i^t+\delta \oplus \operatorname{Levy}(\lambda)\tag{7} xit+1=xit+δLevy(λ)(7)
式中: x i t x_i^t xit 表示第 i i i 个鸟窝在第 t t t 代的位置; δ \delta δ 表示步长大小, δ > 0 \delta>0 δ>0, 通常设置为 δ = 1 ; ⊕ \delta=1 ; \oplus δ=1; 表 示点对点乘法。

2.2 莱维飞行扰动策略

在 CS 算法中, 采用莱维飞行可以产生变化多样的随机步长。在搜索过程中, 如果步长较 大, 全局搜索范围较广, 则搜索精度会降低, 易产生不稳定的震荡现状; 如果步长较小, 局部 寻优能力增强, 则搜索精度会显著增强。因此, 采用莱维飞行产生的步长具有遍历性和随机 性, 但自适应能力不够。SSA 为了弥补这一不足, 利用发现者-跟随者-警戒者的模型机制, 提 高了全局搜索能力和局部求解精度。
本文受 C S \mathrm{CS} CS 算法启发构建莱维飞行步长扰动方法, 扰动步长 S p S_p Sp 的计算公式如式 (8) (11) 所示:
s i = u ∣ v ∣ 1 / β ( 8 ) u ∼ N ( 0 , δ u 2 ) , v ∼ N ( 0 , δ v 2 ) ( 9 ) δ u = { Γ ( 1 + β ) sin ⁡ ( π β / 2 ) Γ [ ( 1 + β ) / 2 ] β 2 ( β − 1 ) / 2 } 1 / β , δ v = 1 ( 10 ) S p = τ s i x best  j ( 11 ) \begin{aligned} s_i &=\frac{u}{|v|^{1 / \beta}} &(8)\\ u & \sim N\left(0, \delta_u^2\right), \quad v \sim N\left(0, \delta_v^2\right) &(9)\\ \delta_u &=\left\{\frac{\Gamma(1+\beta) \sin (\pi \beta / 2)}{\Gamma[(1+\beta) / 2] \beta 2^{(\beta-1) / 2}}\right\}^{1 / \beta}, \quad \delta_v=1 &(10)\\ S_p &=\tau s_i x_{\text {best }}^j&(11) \end{aligned} siuδuSp=v1/βuN(0,δu2),vN(0,δv2)={Γ[(1+β)/2]β2(β1)/2Γ(1+β)sin(πβ/2)}1/β,δv=1=τsixbest j(8)(9)(10)(11)
式中: i ∈ { 1 , 2 , ⋯   , n } , j ∈ { 1 , 2 , ⋯   , D } , u i \in\{1,2, \cdots, n\}, j \in\{1,2, \cdots, D\}, u i{1,2,,n},j{1,2,,D},u v v v 属于正态分布, β = 1.5 \beta=1.5 β=1.5 。麻雀搜索位置步长 扰动定义为
v i , j = v i , j S p (12) v_{i, j}=v_{i, j} S_p \tag{12} vi,j=vi,jSp(12)

2.3 初始化混沌搜索机制

本文对传统的 SSA 进行了初始化搜索策略的改进。根据 Sin 混沌模型初始化种群分布, 增加种群搜索的多样性, 则产生不同数值的混沌序列可以定义为
x n + 1 = sin ⁡ ( 2 x n ) (13) x_{n+1}=\sin \left(\frac{2}{x_n}\right) \tag{13} xn+1=sin(xn2)(13)
式中: x n ∈ [ − 1 , 1 ] x_n \in[-1,1] xn[1,1] x n ≠ 0 , n = 0 , 1 , ⋯   , N x_n \neq 0, n=0,1, \cdots, N xn=0,n=0,1,,N

LSSA 的伪代码算法步骤如下:
步骤 1 参数设置
设置麻雀种群规模数 n n n 、麻雀发现者数量 P d P_d Pd 、警戒者数量 S d S_d Sd 、寻食步数计数器 t t t 为 0 、最 大寻食迭代次数为 T max ⁡ T_{\max } Tmax
步骤 2 初始化种群
在搜索区域内按式 (13) 产生 n n n 个向量 X i ( i = 1 , 2 , ⋯   , n ) X_i(i=1,2, \cdots, n) Xi(i=1,2,,n), 计算适应度值并记录适应度 值的最佳和最差个体位置。
步骤 3 发现者搜索
根据式 (3) 搜索更新发现者位置。
步骤 4 加入者搜索
根据式 (4) 搜索更新加入者位置。
步骤 5 檠戒者搜索
根据式 (5) 搜索更新警戒者位置。

步骤 6 根据适应度值更新位置
比较 y min ⁡ y_{\min } ymin G min ⁡ G_{\min } Gmin, 若 y min ⁡ ⩽ G min ⁡ y_{\min } \leqslant G_{\min } yminGmin, 则令 G min ⁡ = y min ⁡ , X g ( t ) = X g ′ ( t ) G_{\min }=y_{\min }, X_g(t)=X_g^{\prime}(t) Gmin=ymin,Xg(t)=Xg(t), 记录当前所有麻 雀找到的最优位置, 即全局最优解 s ∗ s^* s
步骤 7 莱维飞行机制
随机生成一个数 r r r, 设置概率 p i p_i pi, 如果 r < p i r<p_i r<pi, 则根据式 (12) 进行莱维飞行搜索。
步骤 8 更新迭代次数, 若满足当前迭代次数 t > T max ⁡ t>T_{\max } t>Tmax, 则搜索停止, 输出全局最优位置 X g X_g Xg 和求解结果 f o p t ( X g ) f_{\mathrm{opt}}\left(X_g\right) fopt(Xg); 否则转步骤 3 继续执行。

3.实验结果

请添加图片描述

4.参考文献

[1]马卫,朱娴.基于莱维飞行扰动策略的麻雀搜索算法[J].应用科学学报,2022,40(01):116-130.

5.Matlab代码

6.Python代码

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
1.版本:matlab2014/2019a/2021a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信 %% 开发者:Matlab科研助手 %% 更多咨询关注天天Matlab微信公众号 ### 团队长期从事下列领域算法的研究和改进: ### 1 智能优化算法及应用 **1.1 改进智能优化算法方面(单目标和多目标)** **1.2 生产调度方面** 1.2.1 装配线调度研究 1.2.2 车间调度研究 1.2.3 生产线平衡研究 1.2.4 水库梯度调度研究 **1.3 路径规划方面** 1.3.1 旅行商问题研究(TSP、TSPTW) 1.3.2 各类车辆路径规划问题研究(vrp、VRPTW、CVRP) 1.3.3 机器人路径规划问题研究 1.3.4 无人机三维路径规划问题研究 1.3.5 多式联运问题研究 1.3.6 无人机结合车辆路径配送 **1.4 三维装箱求解** **1.5 物流选址研究** 1.5.1 背包问题 1.5.2 物流选址 1.5.4 货位优化 ##### 1.6 电力系统优化研究 1.6.1 微电网优化 1.6.2 配电网系统优化 1.6.3 配电网重构 1.6.4 有序充电 1.6.5 储能双层优化调度 1.6.6 储能优化配置 ### 2 神经网络回归预测、时序预测、分类清单 **2.1 bp预测和分类** **2.2 lssvm预测和分类** **2.3 svm预测和分类** **2.4 cnn预测和分类** ##### 2.5 ELM预测和分类 ##### 2.6 KELM预测和分类 **2.7 ELMAN预测和分类** ##### 2.8 LSTM预测和分类 **2.9 RBF预测和分类** ##### 2.10 DBN预测和分类 ##### 2.11 FNN预测 ##### 2.12 DELM预测和分类 ##### 2.13 BIlstm预测和分类 ##### 2.14 宽度学习预测和分类 ##### 2.15 模糊小波神经网络预测和分类 ##### 2.16 GRU预测和分类 ### 3 图像处理算法 **3.1 图像识别** 3.1.1 车牌、交通标志识别(新能源、国内外、复杂环境下车牌) 3.1.2 发票、身份证、银行卡识别 3.1.3 人脸类别和表情识别 3.1.4 打靶识别 3.1.5 字符识别(字母、数字、手写体、汉字、验证码) 3.1.6 病灶识别 3.1.7 花朵、药材、水果蔬菜识别 3.1.8 指纹、手势、虹膜识别 3.1.9 路面状态和裂缝识别 3.1.10 行为识别 3.1.11 万用表和表盘识别 3.1.12 人民币识别 3.1.13 答题卡识别 **3.2 图像分割** **3.3 图像检测** 3.3.1 显著性检测 3.3.2 缺陷检测 3.3.3 疲劳检测 3.3.4 病害检测 3.3.5 火灾检测 3.3.6 行人检测 3.3.7 水果分级 **3.4 图像隐藏** **3.5 图像去噪** **3.6 图像融合** **3.7 图像配准** **3.8 图像增强** **3.9 图像压缩** ##### 3.10 图像重建 ### 4 信号处理算法 **4.1 信号识别** **4.2 信号检测** **4.3 信号嵌入和提取** **4.4 信号去噪** ##### 4.5 故障诊断 ##### 4.6 脑电信号 ##### 4.7 心电信号 ##### 4.8 肌电信号 ### 5 元胞自动机仿真 **5.1 模拟交通流** **5.2 模拟人群疏散** **5.3 模拟病毒扩散** **5.4 模拟晶体生长** ### 6 无线传感器网络 ##### 6.1 无线传感器定位(Dv-Hop定位优化、RSSI定位优化) ##### 6.2 无线传感器覆盖优化 ##### 6.3 无线传感器通信及优化(Leach协议优化) ##### 6.4 无人机通信中继优化(组播优化)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值