【LEACH协议】蝴蝶优化算法WSN安全分簇路由设计【含Matlab源码 2567期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、蝴蝶优化算法(MBO)简介

1 介绍
蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算法。该算法受到了蝴蝶觅食和交配行为的启发,蝴蝶接收/感知并分析空气中的气味,以确定食物来源/交配伙伴的潜在方向。
蝴蝶利用它们的嗅觉、视觉、味觉、触觉和听觉来寻找食物和伴侣,这些感觉也有助于它们从一个地方迁徙到另一个地方,逃离捕食者并在合适的地方产卵。在所有感觉中,嗅觉是最重要的,它帮助蝴蝶寻找食物(通常是花蜜)。蝴蝶的嗅觉感受器分散在蝴蝶的身体部位,如触角、腿、触须等。这些感受器实际上是蝴蝶体表的神经细胞,被称为化学感受器。它引导蝴蝶寻找最佳的交配对象,以延续强大的遗传基因。雄性蝴蝶能够通过信息素识别雌性蝴蝶,信息素是雌性蝴蝶发出的气味分泌物,会引起特定的反应。
通过观察,发现蝴蝶对这些来源的位置有非常准确的判断。此外,它们可以辨识出不同的香味,并感知它们的强度。蝴蝶会产生与其适应度相关的某种强度的香味,即当蝴蝶从一个位置移动到另一个位置时,它的适应度会相应地变化。当蝴蝶感觉到另一只蝴蝶在这个区域散发出更多的香味时,就会去靠近,这个阶段被称为全局搜索。另外一种情况,当蝴蝶不能感知大于它自己的香味时,它会随机移动,这个阶段称为局部搜索。

2 香味
为了理解BOA中的香味是如何计算的,首先需要理解,像气味、声音、光、温度等这样的模态是如何计算的。感知、处理这些模态需要知道三个重要的术语:感觉模态C、刺激强度I和幂指数a。在感觉模态中,感觉意味着测量能量的形式并以类似方式对其进行处理,而模态是指传感器使用的原始输入。不同的形态可以是气味,声音,光线,温度,在BOA中,模态是香味。I是物理刺激的大小。在BOA中,I与蝴蝶/解决方案的适应度相关。这意味着,当一只蝴蝶散发出更多的香味时,周围的其他蝴蝶可以感知到并被吸引。幂是强度增加的指数。参数a允许正则表达式、线性响应和响应压缩。响应扩展是当I增加时,香味(f)比I增长更快。响应压缩是当I增加时,f比I增长慢。线性响应是当I增加时,f成比例地增加。经实验证明,有时随着刺激的增强,昆虫对刺激变化的敏感性变得越来越低。因此在BOA中,为了估计I的大小,使用了响应压缩。
蝴蝶的自然现象基于两个重要问题:I的变化和f的表示。简单地说,蝴蝶的I与编码后的目标函数相关联。但是,f是相对的,即应该由其他蝴蝶来感知。史蒂文斯幂定律中,为了将气味与其他形式区别开来,使用了C。现在,当I较少的蝴蝶向I较多的蝴蝶移动时,f比I增加得更快。因此,我们应该允许f随幂指数参数a实现的吸收程度而变化。在BOA中,香味被表示为刺激物的物理强度的函数,如下所示:
在这里插入图片描述
3 具体算法
为了用搜索算法演示上述讨论,将蝴蝶的上述特征理想化如下:
(1)所有的蝴蝶都可以发出气味,这使蝴蝶间相互吸引。
(2)每只蝴蝶都会随机移动或朝最好的蝴蝶移动,散发出更多的芳香。
(3)蝴蝶的刺激强度受目标函数的景观影响或决定。
该算法分为三个阶段:(1)初始化阶段、(2)迭代阶段和(3)结束阶段。
  在BOA的每次运行中,首先执行初始化阶段,然后进行迭代搜索,最后在找到最优解时终止算法。BOA中使用的参数值也会被分配,设置这些值后,算法将继续创建初始蝴蝶种群以进行优化。由于在BOA的模拟过程中蝴蝶总数保持不变,分配了一个固定大小的内存来存储信息。蝴蝶的位置是在搜索空间中随机生成的,并计算和存储它们的香味和适应值。这样就完成了初始化阶段,算法开始了迭代阶段,该阶段使用创建的人工蝶形执行搜索。算法的第二阶段,即迭代阶段,由算法执行多次迭代。在每次迭代中,解空间中的所有蝶形都移到新位置,然后重新评估其适应性值。算法首先计算解空间中不同位置的所有蝴蝶的适应度值。那么这些蝴蝶就会利用式1在自己的位置产生香味。该算法有两个关键步骤,即全局搜索阶段和局部搜索阶段。在全局搜索阶段,蝴蝶向最合适的蝴蝶/解g∗迈出一步,该蝴蝶/解g可以用公式(2)来表示。
在这里插入图片描述
这里,g∗表示在当前迭代的所有解中找到的当前最佳解;fi表示第i只蝴蝶的香味,r是[0,1]中的随机数。局部搜索阶段可以表示为
在这里插入图片描述
其中,xjt和xkt是解空间中的第j个蝴蝶和第k个蝴蝶。
蝴蝶寻找食物、交配伙伴可以在局部和全局范围内发生。考虑到地理上的接近和各种其他因素,如雨、风等,在整个交配伙伴或蝴蝶的觅食活动中,寻找食物可能占很大比例。因此,在BOA中使用切换概率p来在普通全局搜索和密集局部搜索之间切换。
在未达到停止标准之前,一直进行迭代。迭代结束的标准可以有多个,如使用的最大CPU时间、达到的最大迭代次数、没有改进的最大迭代次数、达到错误率的特定值或任何其他适当的标准。当迭代阶段结束时,算法输出具有最佳适应度的最优解。

⛄二、部分源代码

%簇群形成:K-means聚类 划分12个区域
%簇头选择:每个区域最高适应度节点当选CH(%适应度主要计算簇头剩余能量、簇头到基站距离、节点到簇头的距离))
%数据传输:节点到BS单跳/多跳传输
%是否每轮选择簇头?(1)每r_CH轮重新分簇 (2)当有簇头死掉重新分簇
clear all;
close all;

global rmax
rmax=1500;
[Round_Alive_Num0,RoundCluster0,Remaining_En0,Round_Packet_Num0]=Improve_LEACH_MSBOA(1);
[Round_Alive_Num0_1,RoundCluster0_1,Remaining_En0_1,Round_Packet_Num0_1]=Improve_LEACH_MSBOA(2);
[Round_Alive_Num1,RoundCluster1,Remaining_En1,Round_Packet_Num1]=Improve_LEACH_MSBOA(2);
[Round_Alive_Num1_1,RoundCluster1_1,Remaining_En1_1,Round_Packet_Num1_1]=Improve_LEACH_BOA(1);

figure;
hold on
plot(Round_Alive_Num0,‘Color’,‘#167C80’,‘LineWidth’,1.5);
plot(Round_Alive_Num0_1,‘Color’,‘#4DBEEE’,‘LineWidth’,1.5);
plot(Round_Alive_Num1,‘Color’,‘#EDB120’,‘LineWidth’,1.5);
plot(Round_Alive_Num1_1,‘Color’,‘#7E2F8E’,‘LineWidth’,1.5);
title(‘每轮存活的节点数量’);
legend(‘MSBOA’, ‘F-MSBOA’,‘F-BOA’,‘BOA’)

figure;
hold on
plot(RoundCluster0,‘Color’,‘#167C80’,‘LineWidth’,1.5);
plot(RoundCluster0_1,‘Color’,‘#4DBEEE’,‘LineWidth’,1.5);
plot(RoundCluster1,‘Color’,‘#EDB120’,‘LineWidth’,1.5);
plot(RoundCluster1_1,‘Color’,‘#7E2F8E’,‘LineWidth’,1.5);
title(‘每轮选择簇头的数量’);
legend(‘MSBOA’, ‘F-MSBOA’,‘F-BOA’,‘BOA’)

figure;
hold on
plot(Remaining_En0,‘Color’,‘#167C80’,‘LineWidth’,1.5);
plot(Remaining_En0_1,‘Color’,‘#4DBEEE’,‘LineWidth’,1.5);
plot(Remaining_En1,‘Color’,‘#EDB120’,‘LineWidth’,1.5);
plot(Remaining_En1_1,‘Color’,‘#7E2F8E’,‘LineWidth’,1.5);
title(‘每轮的剩余能量’); %全部节点的剩余能量之和
legend(‘MSBOA’, ‘F-MSBOA’,‘F-BOA’,‘BOA’)

figure;%传输到基站的数据量
hold on
plot(Round_Packet_Num0,‘Color’,‘#167C80’,‘LineWidth’,1.5);
plot(Round_Packet_Num0_1,‘Color’,‘#4DBEEE’,‘LineWidth’,1.5);
plot(Round_Packet_Num1,‘Color’,‘#EDB120’,‘LineWidth’,1.5);
plot(Round_Packet_Num1_1,‘Color’,‘#7E2F8E’,‘LineWidth’,1.5);
title(‘每轮的数据量’);
legend(‘MSBOA’, ‘F-MSBOA’,‘F-BOA’,‘BOA’)

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 宁杰琼,何庆.混合策略改进的蝴蝶优化算法[J].计算机应用研究,2021,38(06)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值