【智能优化算法】白鲨智能优化算法(White Shark Optimizer,WSO)

白鲨智能优化算法(White Shark Optimizer,WSO)是期刊“KNOWLEDGE-BASED SYSTEMS”(中科院一区期刊 IF=8.6)的2022年智能优化算法

01.引言

白鲨智能优化算法(White Shark Optimizer,WSO)的核心理念和基础灵感来自大白鲨的行为,包括它们在导航和觅食时非凡的听觉和嗅觉。行为的这些方面被数学建模,以适应对WSO的探索和利用之间的充分平衡,并协助搜索代理探索和利用搜索空间的每个潜在区域,以实现优化。WSO的搜索代理会根据目前最佳的解决方案随机更新自己的位置,最终得到最优的结果。在CEC-2017测试套件的29个测试功能的基础上,对WSO的性能进行了多个维度的综合基准测试。进一步将WSO应用于CEC-2011进化算法竞赛的基准问题,证明其可靠性和对现实问题的适用性。对计算结果和收敛结果进行了全面分析,以阐明WSO的有效性和稳定性水平。基于生成的解,将WSO在几种统计方法下的性能得分与9种成熟的元启发式方法进行比较。Friedman和Holm对结果的测试表明,与其他现有的元启发式方法相比,WSO在全局最优性、避免局部最小值和解决方案质量方面揭示了合理的解决方案。

02.优化算法的流程

03.论文中算法对比图

04.部分代码

function [fmin0,gbest,ccurve]=WSO(whiteSharks,itemax,lb,ub,dim,fobj)%% Convergence curve
ccurve=zeros(1,itemax);
%% Show the convergence curve
%     figure (1);
%     set(gcf,'color','w');
%     hold on
%     xlabel('Iteration','interpreter','latex','FontName','Times','fontsize',10)
%     ylabel('fitness value','interpreter','latex','FontName','Times','fontsize',10); 
%     grid;
%% Start the WSO  Algorithm
% Generation of initial solutions
WSO_Positions=initialization(whiteSharks,dim,ub,lb);% Initial population
% initial velocity
v=0.0*WSO_Positions; 
%% Evaluate the fitness of the initial population
fit=zeros(whiteSharks,1);
for i=1:whiteSharksfit(i,1)=fobj(WSO_Positions(i,:));
end
%% Initalize the parameters of WSO
fitness=fit; % Initial fitness of the random positions of the WSO[fmin0,index]=min(fit);
wbest = WSO_Positions; % Best position initialization
gbest = WSO_Positions(index,:); % initial global position
%% WSO Parametersfmax=0.75; %  Maximum frequency of the wavy motionfmin=0.07; %  Minimum frequency of the wavy motion   tau=4.11;  mu=2/abs(2-tau-sqrt(tau^2-4*tau));pmin=0.5;pmax=1.5;a0=6.250;  a1=100;a2=0.0005;%% Start the iterative process of WSO 
for ite=1:itemaxmv=1/(a0+exp((itemax/2.0-ite)/a1)); s_s=abs((1-exp(-a2*ite/itemax))) ;p1=pmax+(pmax-pmin)*exp(-(4*ite/itemax)^2);p2=pmin+(pmax-pmin)*exp(-(4*ite/itemax)^2);%% Update the speed of the white sharks in water  nu=floor((whiteSharks).*rand(1,whiteSharks))+1;for i=1:size(WSO_Positions,1)rmin=1; rmax=3.0;rr=rmin+rand()*(rmax-rmin);wr=abs(((2*rand()) - (1*rand()+rand()))/rr);       v(i,:)=  mu*v(i,:) +  wr *(wbest(nu(i),:)-WSO_Positions(i,:));%% or                
%          v(i,:)=  mu*(v(i,:)+ p1*(gbest-WSO_Positions(i,:))*rand+.... 
%                    + p2*(wbest(nu(i),:)-WSO_Positions(i,:))*rand);          end%% Update the white shark positionfor i=1:size(WSO_Positions,1)f =fmin+(fmax-fmin)/(fmax+fmin);a=sign(WSO_Positions(i,:)-ub)>0;b=sign(WSO_Positions(i,:)-lb)<0;wo=xor(a,b);% locate the prey based on its sensing (sound, waves)if rand<mvWSO_Positions(i,:)=  WSO_Positions(i,:).*(~wo) + (ub.*a+lb.*b); % random allocation  else   WSO_Positions(i,:) = WSO_Positions(i,:)+ v(i,:)/f;  % based on the wavy motionendend %% Update the position of white sharks consides_sng fishing school 
for i=1:size(WSO_Positions,1)for j=1:size(WSO_Positions,2)if rand<s_s      Dist=abs(rand*(gbest(j)-1*WSO_Positions(i,j)));if(i==1)WSO_Positions(i,j)=gbest(j)+rand*Dist*sign(rand-0.5);else    WSO_Pos(i,j)= gbest(j)+rand*Dist*sign(rand-0.5);WSO_Positions(i,j)=(WSO_Pos(i,j)+WSO_Positions(i-1,j))/2*rand;end   endend       
end
%     
%% Update global, best and new positionsfor i=1:whiteSharks % Handling boundary violationsif WSO_Positions(i,:)>=lb & WSO_Positions(i,:)<=ub%         % Find the fitnessfit(i)=fobj(WSO_Positions(i,:));    % Evaluate the fitnessif fit(i)<fitness(i)wbest(i,:) = WSO_Positions(i,:); % Update the best positionsfitness(i)=fit(i);   % Update the fitnessend%% Finding out the best positionsif (fitness(i)<fmin0)fmin0=fitness(i);gbest = wbest(index,:); % Update the global best positionsend endend
%% Obtain the results
%   outmsg = ['Iteration# ', num2str(ite) , '  Fitness= ' , num2str(fmin0)];
%   disp(outmsg);ccurve(ite)=fmin0; % Best found value until iteration ite
%  if ite>2
%         line([ite-1 ite], [ccurve(ite-1) ccurve(ite)],'Color','b'); 
%         title({'Convergence characteristic curve'},'interpreter','latex','FontName','Times','fontsize',12);
%         xlabel('Iteration');
%         ylabel('Best score obtained so far');
%         drawnow 
%  end end 
end

04.本代码效果图

获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复智能优化算法本公众号致力于解决找代码难,写代码怵。各位有什么急需的代码,欢迎后台留言~不定时更新科研技巧类推文,可以一起探讨科研,写作,文献,代码等诸多学术问题,我们一起进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3030296.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

react18【实战】tab切换,纯前端列表排序(含 lodash 和 classnames 的安装和使用)

技术要点 动态样式 className{tabItem ${currentType item.value && "active"}}安装 lodash npm i --save lodash使用 lodash 对对象数组排序&#xff08;不会改变源数组&#xff09; _.orderBy(dataList, "readNum", "desc")src\De…

自然资源-地质勘查工作的流程梳理

自然资源-地质勘查工作的流程梳理 地质勘查从广义上可理解为地质工作&#xff0c;地质队员就好像是国家宝藏的“寻宝人”&#xff0c;通过地质勘查&#xff0c;为国家找矿&#xff0c;以保障国家能源资源安全和服务国计民生&#xff0c;发挥着地质工作在国民经济建设中的基础性…

AI PC后时代:重新理解大模型的最佳载体

如果站在人机交互变革的角度来畅想&#xff0c;AI PC所带来的变革可以说是人机交互史上的又一次“颠覆”。元宇宙时代下&#xff0c;是苹果让AI装进了Vision Pro里&#xff1b;那么在如今的AI时代&#xff0c;又将会是谁将AI PC彻底照进现实&#xff1f;谁才是最终赢家&#xf…

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形 84.柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&…

数据库开启远程连接

服务器端添加一个允许远程连接的root用户: mysql -u root -p create user root192.168.10.20 identified by admin; //创建一个192.168.10.20地址远程连接的root用户 grant all privileges on *.* to root192.168.10.20; //赋予远程root用户所有的权…

【算法入门赛】A.坐标变换(推荐学习)C++题解与代码

比赛链接&#xff1a;https://www.starrycoding.com/contest/8 题目描述 武汉市可以看做一个二维地图。 牢 e e e掌握了一项特异功能&#xff0c;他可以“瞬移”&#xff0c;每次瞬移需要分别设定 x x x和 y y y的偏移量 d x dx dx和 d y dy dy&#xff0c;瞬移完成后位置会…

leetcode刷题:对称二叉树

题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 提示&#xf…

echarts指标盘属性概括

echarts指标盘属性概括 代码 有模拟数据可以直接使用const options {animation: true,title: {top: "35%",left: "center",// text: "单元测试覆盖度", // 主标题itemGap: 15,textStyle: {// 主标题样式color: "#666666",fontSize:…

灰狼优化算法(Grey Wolf Optimizer)

注意&#xff1a;本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 算法引言 灰狼算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;是一种受自然界灰狼行为启发的优化算法。它模拟了灰狼的社会层次和狩猎策…

fb设备驱动框架分析

一、字符设备注册过程&#xff1a; 归根到底&#xff0c;fb设备也是一个字符设备&#xff0c;所以逃不开常规的字符设备驱动框架&#xff1a; Linux内核中编写字符设备驱动通常遵循以下步骤&#xff1a; ①、定义主设备号&#xff1a; 在Linux中&#xff0c;每个字符设备都…

怎么思维导图下载?推荐三个方法

怎么思维导图下载&#xff1f;随着信息时代的到来&#xff0c;思维导图作为一种有效的思维整理工具&#xff0c;被广泛应用于学习、工作和生活中。它可以帮助我们更好地组织信息&#xff0c;理清思路&#xff0c;提高学习效率和工作效率。下面&#xff0c;我将为大家推荐几款优…

【RSGIS数据资源】1980-2021年中国土地利用覆盖和变化数据集

文章目录 摘要1. 数据集概况2. 数据集组织形式2.1 1980-2015年中国森林覆盖数据集CFCD2.2 1980-2021年中国土地利用覆盖与变化数据集 3. 数据生产服务单位4. 引用 摘要 通过融合森林资源清查数据和20种遥感土地利用产品&#xff0c;重建生成了1980-2015年中国森林覆盖数据集&a…

[MRCTF2020]Ez_bypass1 and [网鼎杯 2020 青龙组]AreUSerialz1()php语言基础学习,以及序列化概念的基本了解

1.[MRCTF2020]Ez_bypass1 &#xff08;1&#xff09;打开环境后它是一串很长并且看起来非常混乱的代码&#xff0c;看不懂那咱就先不管&#xff0c;直接查看源码 &#xff08;2&#xff09;看了之后可以发现它涉及到很多东西 首先就是要进行一个仔细的代码审计&#xff0c;分…

码题杯 世界警察 思想:双指针

https://www.matiji.net/exam/brushquestion/4/4446/16A92C42378232DEB56179D9C70DC45C 双指针 思路是这样的&#xff0c;首先r指针向右走&#xff0c;如果r指针遇到了和l指针一样的&#xff0c;那么l指针就&#xff0c;一直加到r指针的位置&#xff0c;此时a[l]a[r]&#xff0…

云衔科技成为卓豪Zoho中国区代理商,开启智能化企业管理新篇章

每一家企业数字化转型&#xff0c;都在寻求通过技术创新实现业务的飞跃。为了更好地服务于中国企业的数字化转型需求&#xff0c;云衔科技荣幸宣布正式成为卓豪Zoho中国区代理商&#xff0c;这一强强联合将为市场带来全新的数字化解决方案与服务体验&#xff0c;共同开启中国企…

0510_IO5

练习题&#xff1a; #include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>#include <pthread.h>#include <semaphore.h>#incl…

河南大学大礼堂火灾事故引发安防监控对智能分析技术应用的思考

一、方案背景 2024年5月2日&#xff0c;在修缮施工期间的河南大学河南留学欧美预备学校旧址大礼堂发生火情。现场航拍画面显示&#xff0c;大礼堂经过火灾&#xff0c;房顶已经基本坍塌&#xff0c;被火烧过的建筑呈焦黑状。 公开资料显示&#xff0c;大礼堂属河南留学欧美预…

ASP.NET网上图书预约系统的设计

摘 要 《网上图书预约系统的设计》是以为读者提供便利为前提而开发的一个信息管理系统&#xff0c;它不仅要求建立数据的一致性和完整性&#xff0c;而且还需要应用程序功能的完备、易用等特点。系统主要采用VB.NET作为前端的应用开发工具&#xff0c;利用SQL Server2000数据…

自动控制原理学习--平衡小车的控制算法(三)

上一节PID的simulin仿真&#xff0c;这一节用LQR 一、模型 二、LQR LQR属于现代控制理论的一个很重要的点&#xff0c;这里推荐B站的【Advanced控制理论】课程&#xff08;up主DR_CAN&#xff09;&#xff0c;讲得很好&#xff0c;这里引用了他视频里讲LQR的ppt。 LQR属于lo…

Tomcat中服务启动失败,如何查看启动失败日志?

1. 查看 localhost.log 这个日志文件通常包含有关特定 web 应用的详细错误信息。运行以下命令查看 localhost.log 中的错误&#xff1a; sudo tail -n 100 /opt/tomcat/latest/logs/localhost.YYYY-MM-DD.log请替换 YYYY-MM-DD 为当前日期&#xff0c;或选择最近的日志文件日…