算法介绍

鲸鱼算法(Whale Optimization Algorithm)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时会对猎物进行驱赶和围捕。
在这里插入图片描述

鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。

在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另一种是汽包网,鲸鱼环形游动喷出气泡来驱赶猎物。

在每一代的游动中,鲸鱼们会随机选择这两种行为来进行捕猎。在鲸鱼进行包围猎物的行为中,鲸鱼将会随机选择是向着最优位置的鲸鱼游去还是随机选择一只鲸鱼作为自己的目标,并向其靠近。

(具体算法介绍请加下方微信获取)

部分代码展示

clear all 
clc

SearchAgents_no=30; % 查册代理人数

Function_name='F1'; % 从F1到F23的测试函数名称(123)  

Max_iteration=500; % 最大迭代次数
%% 加载所选基准测试功能的详细信息  
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);

[Best_score,Best_pos,WOA_cg_curve]=WOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

figure('Position',[269   240   660   290])
%% Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])

%% Draw objective space
subplot(1,2,2);
semilogy(WOA_cg_curve,'Color','r', 'LineWidth',3)
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');

axis tight
grid on
box on
legend('WOA')

display(['The best solution obtained by WOA is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by WOA is : ', num2str(Best_score)]);

运行结果

在这里插入图片描述

代码获取途径

 添加vx: shuxuexiaobaibututou,即可获取全部代码以及论文(50元)。
 其他近些年提出的新型智能优化算法也可加微信咨询!
鲸鱼算法(WOA)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐