⛄一、运行结果
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。
更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)
⛄二、被囊群算法 简介
被囊群算法对深海中被囊动物其自身的两种行为(喷气推进和种群行为)进行建模,并通过迭代计算寻找全局最优解。喷气推进行为主要利用其自身重力、海洋中的水流平流以及个体之间的相互作用力,避免个体之间出现冲突,也具有向最优个体移动的能力。喷气推进行为主要由3部分组成:避免搜索位置冲突、向最优邻居移动和向最佳个体的位置靠拢。群体行为主要为更新搜索个体最优解的位置,通过被囊动物对水流的变化和同伴的发光的神经感知确定同伴位置,共同向目标食物源位置靠拢,从而达到群体成功寻得食物的目的。TSA具体实现如图1所示。
图1 TSA流程图
2.1喷气推进
被囊动物利用其喷气推进行为来进行垂直迁移。在迁移期间,被囊动物从一个位置沿着某个方向移动到另一个位置。为了避免相邻之间搜索个体的位置冲突,计算新的位置变量A。
式中:G表示重力作用;F表示深海中的水流平流;M表示个体之间的相互作用力;变量c1、c2、c3均为[0,1]的随机数;Pmin和Pmax分别表示个体相互作用的初始速度和从属速度,一般Pmin和Pmax的值定义为1和4。
在避免邻域之间的冲突后,搜索个体向最佳邻居的方向移动,此时计算食物源与搜索个体之间的距离。第t次迭代时第i个搜索个体与食物源之间的距离为:
式中:PD表示食物源与搜索个体之间的距离,FS表示食物源的位置,i表示当前算法迭代次数,Pp(i)表示被囊个体的位置,rand为[0,1]的随机数。
搜索个体可以保持其朝向最优食物源的位置移动,即:
式中,FS为第t次迭代时种群的食物位置,A为个体避免冲突计算的位置向量,PD为当前第i个个体与食物来源之间的距离,Pp(i’)为第t代迭代时第i个被囊个体的位置。
2.2种群行为
在避免搜索个体冲突、计算个体与食物源之间的位置之后,被囊个体采用种群行为向最佳食物源靠拢。从数学上模拟被囊的群体行为,保存前两个最优解,并根据最优搜索个体的位置更新其他搜索个体的位置。以下公式用于定义被囊动物的群体行为:
2.3复杂度分析
假设算法的种群大小为n,给定的搜索空间维度为n,最大迭代次数为maxgen,则种群的初始化过程时间复杂度为O(n×d),适应度值计算复杂度为O(maxgen×n×d),被囊个体在喷气推进和种群行为过程中位置更新复杂度为O(N)。则TSA算法的时间复杂度为:
⛄三、部分源代码
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 导入数据(时间序列的单列数据)
result = xlsread(‘数据.xlsx’);
%% 数据分析
num_samples = length(result); % 样本个数
kim = 12; % 延时步长(kim个历史数据作为自变量)
zim = 1; % 预测未来多少数据(跨zim个时间点进行预测)
ST = 100; % 递归预测未来多少数据,100是预测100个数据
%% 划分数据集
for i = 1: num_samples - kim - zim + 1
res(i, 😃 = [reshape(result(i: i + kim - 1), 1, kim), result(i + kim + zim - 1)];
end
%% 数据集分析
outdim = 1; % 最后一列为输出
num_size = 0.7; % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim; % 输入特征维度
%% 划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)‘;
T_train = res(1: num_train_s, f_ + 1: end)’;
M = size(P_train, 2);
P_test = res(num_train_s + 1: end, 1: f_)‘;
T_test = res(num_train_s + 1: end, f_ + 1: end)’;
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax(‘apply’, P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax(‘apply’, T_test, ps_output);
%% 转置以适应模型
p_train = p_train’; p_test = p_test’;
t_train = t_train’; t_test = t_test’;
%% 参数设置
pop = 5; % 种群数目
Max_iter = 50; % 迭代次数
dim = 2; % 优化参数个数
lb = [10, 10]; % 下限
ub = [1000, 1000]; % 上限
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]仝卫国,郭超宇,赵如意.基于改进麻雀算法优化LSSVM的再循环箱浆液密度预测模型[J].电子测量技术. 2022,45(01)
[2]郑依莎,莫愿斌.被囊群算法的无线传感器网络节点的部署研究[J].信息与电脑(理论版). 2022,34(02)
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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合