function [Alpha_score,Alpha_pos,Convergence_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj)
%% 优化算法初始化
Alpha_pos = zeros(1, dim); % 初始化Alpha狼的位置
Alpha_score = inf; % 初始化Alpha狼的目标函数值,将其更改为-inf以解决最大化问题
Beta_pos = zeros(1, dim); % 初始化Beta狼的位置
Beta_score = inf; % 初始化Beta狼的目标函数值 ,将其更改为-inf以解决最大化问题
Delta_pos = zeros(1, dim); % 初始化Delta狼的位置
Delta_score = inf; % 初始化Delta狼的目标函数值,将其更改为-inf以解决最大化问题
%% 初始化搜索狼群的位置
Positions = initialization(SearchAgents_no, dim, ub, lb);
%% 用于记录迭代曲线
Convergence_curve = zeros(1, Max_iteration);
%% 循环计数器
iter = 0;
%% 优化算法主循环
while iter < Max_iteration % 对迭代次数循环
for i = 1 : size(Positions, 1) % 遍历每个狼
% 返回超出搜索空间边界的搜索狼群
% 若搜索位置超过了搜索空间,需要重新回到搜索空间
Flag4ub = Positions(i, :) > ub;
Flag4lb = Positions(i, :) < lb;
% 若狼的位置在最大值和最小值之间,则位置不需要调整,若超出最大值,最回到最大值边界
% 若超出最小值,最回答最小值边界
Positions(i, :) = (Positions(i, :) .* (~(Flag4ub + Flag4lb))) + ub .* Flag4ub + lb .* Flag4lb;
% 计算适应度函数值
% Positions(i, 2) = round(Positions(i, 2));
% fitness = fical(Positions(i, :));
fitness = fobj(Positions(i, :));
% 更新 Alpha, Beta, Delta
if fitness < Alpha_score % 如果目标函数值小于Alpha狼的目标函数值
Alpha_score = fitness; % 则将Alpha狼的目标函数值更新为最优目标函数值
Alpha_pos = Positions(i, :); % 同时将Alpha狼的位置更新为最优位置
end
if fitness > Alpha_score && fitness < Beta_score % 如果目标函数值介于于Alpha狼和Beta狼的目标函数值之间
Beta_score = fitness; % 则将Beta狼的目标函数值更新为最优目标函数值
Beta_pos = Positions(i, :); % 同时更新Beta狼的位置
end
if fitness > Alpha_score && fitness > Beta_score && fitness < Delta_score % 如果目标函数值介于于Beta狼和Delta狼的目标函数值之间
Delta_score = fitness; % 则将Delta狼的目标函数值更新为最优目标函数值
Delta_pos = Positions(i, :); % 同时更新Delta狼的位置
end
end
% 线性权重递减
wa = 2 - iter * ((2) / Max_iteration);
% 更新搜索狼群的位置
for i = 1 : size(Positions, 1) % 遍历每个狼
for j = 1 : size(Positions, 2) % 遍历每个维度
% 包围猎物,位置更新
r1 = rand; % r1 is a random number in [0,1]
r2 = rand; % r2 is a random number in [0,1]
A1 = 2 * wa * r1 - wa; % 计算系数A,Equation (3.3)
C1 = 2 * r2; % 计算系数C,Equation (3.4)
% Alpha 位置更新
D_alpha = abs(C1 * Alpha_pos(j) - Positions(i, j)); % Equation (3.5)-part 1
X1 = Alpha_pos(j) - A1 * D_alpha; % Equation (3.6)-part 1
r1 = rand; % r1 is a random number in [0,1]
r2 = rand; % r2 is a random number in [0,1]
A2 = 2 * wa * r1 - wa; % 计算系数A,Equation (3.3)
C2 = 2 *r2; % 计算系数C,Equation (3.4)
% Beta 位置更新
D_beta = abs(C2 * Beta_pos(j) - Positions(i, j)); % Equation (3.5)-part 2
X2 = Beta_pos(j) - A2 * D_beta; % Equation (3.6)-part 2
r1 = rand; % r1 is a random number in [0,1]
r2 = rand; % r2 is a random number in [0,1]
A3 = 2 *wa * r1 - wa; % 计算系数A,Equation (3.3)
C3 = 2 *r2; % 计算系数C,Equation (3.4)
% Delta 位置更新
D_delta = abs(C3 * Delta_pos(j) - Positions(i, j)); % Equation (3.5)-part 3
X3 = Delta_pos(j) - A3 * D_delta; % Equation (3.5)-part 3
% 位置更新
Positions(i, j) = (X1 + X2 + X3) / 3; % Equation (3.7)
end
end
% 更新迭代器
iter = iter + 1;
Convergence_curve(iter) = Alpha_score;
disp(['第',num2str(iter),'次迭代'])
disp(['current iteration is: ',num2str(iter), ', best fitness is: ', num2str(Alpha_score)]);
end
%% 记录最佳参数
% best_lr = Alpha_pos(1, 1);
% best_hd = Alpha_pos(1, 2);
% best_l2 = Alpha_pos(1, 3);
end
没有合适的资源?快使用搜索试试~ 我知道了~
基于GWO-HKELM灰狼算法优化混合核极限学习机多变量回归预测(matlab完整源码和数据)
共9个文件
m:8个
xlsx:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 193 浏览量
2024-03-23
16:57:11
上传
评论
收藏 19KB ZIP 举报
温馨提示
1.基于GWO-HKELM灰狼算法优化混合核极限学习机多变量回归预测(matlab完整源码和数据) 2.运行环境为Matlab2021b; 3.excel数据集,输入多个特征,输出单个变量,多变量回归预测预测,main.m为主程序,运行即可,所有文件放在一个文件夹; 4.命令窗口输出R2、MAE、 MBE、MAPE、 RMSE多指标评价; 代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 1.基于GWO-HKELM灰狼算法优化混合核极限学习机多变量回归预测(matlab完整源码和数据) 2.运行环境为Matlab2021b; 3.excel数据集,输入多个特征,输出单个变量,多变量回归预测预测,main.m为主程序,运行即可,所有文件放在一个文件夹; 4.命令窗口输出R2、MAE、 MBE、MAPE、 RMSE多指标评价; 代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
资源推荐
资源详情
资源评论
收起资源包目录
GWO-HKELM 回归预测 (多输入单输出).zip (9个子文件)
calc_error.m 2KB
kelmPredict.m 236B
kelmTrain.m 352B
fobj.m 1KB
initialization.m 487B
main.m 4KB
kernel_matrix.m 1KB
GWO.m 4KB
data.xlsx 15KB
共 9 条
- 1
资源评论
前程算法屋
- 粉丝: 5476
- 资源: 782
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于 JavaFX 和 MySQL 的影院管理系统.zip
- (源码)基于EAV模型的动态广告位系统.zip
- (源码)基于Qt的长沙地铁换乘系统.zip
- (源码)基于ESP32和DM02A模块的智能照明系统.zip
- (源码)基于.NET Core和Entity Framework Core的学校管理系统.zip
- (源码)基于C#的WiFi签到管理系统.zip
- (源码)基于WPF和MVVM框架的LikeYou.WAWA管理系统.zip
- (源码)基于C#的邮件管理系统.zip
- 【yan照门】chen冠希(1323张) [2月25日凌晨新增容祖儿全94张].rar.torrent
- (源码)基于C++的员工管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功