鲸鱼优化算法(WOA)函数寻优、附代码
目录
一、WOA算法数学模型
1.1 包围捕食(Encircling prey)
1.2 气泡网攻击方式(Bubble-net attacking method)
1.3 搜索猎物(Search for prey)(exploration phase)
二、 鲸鱼算法函数寻优代码
鲸鱼优化算法(Whale Optimization Algorithm,WOA)于2016年由澳大利学者Mirjalili等人提出,是一种模拟座头鲸特殊捕食行为的群智能优化算法。采用随机或最佳搜索代理来模拟捕猎行为,并使用螺旋来模拟座头鲸的泡泡网攻击机制。
一、WOA算法数学模型
1.1 包围捕食(Encircling prey)
座头鲸可以识别猎物的位置并将其包围。由于最优设计在搜索空间中的位置不是先验已知的,WOA 算法假设当前的最佳候选解是目标猎物或接近最优解。在定义了最佳搜索代理之后,其他搜索代理将因此尝试向最佳搜索代理更新它们的位置。这种行为由下列方程表示:
1.2 气泡网攻击方式(Bubble-net attacking method)
共设计了两种方法来对座头鲸的气泡网行为进行建模:
这里需要注意,座头鲸在一个不断缩小的圆圈内绕着猎物游动,同时沿着螺旋形路径游动。为了对这种同时发生的行为进行建模,假设有 50%的可能性在收缩包围机制和螺旋模型之间进行选择,以便在优化过程中更新鲸鱼的位置,数学模型如下:
这里的p是[0,1]之间的随机数。
1.3 搜索猎物(Search for prey)(exploration phase)
二、 鲸鱼算法函数寻优代码
1.参数初始化。
SearchAgents_no=30; % 搜索代理数量
Max_iteration=500; % 最大迭代次数
2.种群初始化
Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb;
3.评估种群中每个代理的目标值,如有某个代理由于当前最优解,则将其设为最优解。
for i=1:size(Positions,1)% 计算每个代理的目标值fitness=fobj(Positions(i,:));% 更新最优解if fitness<Leader_score % 如果是最大化问题,这里就是">"Leader_score=fitness; Leader_pos=Positions(i,:);end
end
4.设置和迭代次数相关的算法参数
a=2-t*((2)/Max_iter); % 等式(3)中a随迭代次数从2线性下降至0
%a2从-1线性下降至-2,计算l时会用到
a2=-1+t*((-1)/Max_iter);
5.对每个代理的每一维度进行位置更新
% Update the Position of search agents
for i=1:size(Positions,1)r1=rand(); % r1为[0,1]之间的随机数r2=rand(); % r2为[0,1]之间的随机数A=2*a*r1-a; % 等式(3)C=2*r2; % 等式(4)b=1; % 等式(5)中的常数bl=(a2-1)*rand+1; % 等式(5)中的随机数lp = rand(); % 等式(6)中的概率pfor j=1:size(Positions,2)if p<0.5 if abs(A)>=1rand_leader_index = floor(SearchAgents_no*rand()+1);X_rand = Positions(rand_leader_index, :);D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % 等式(7)Positions(i,j)=X_rand(j)-A*D_X_rand; % 等式(8)elseif abs(A)<1D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % 等式(1)Positions(i,j)=Leader_pos(j)-A*D_Leader; % 等式(2)endelseif p>=0.5distance2Leader=abs(Leader_pos(j)-Positions(i,j));% 等式(5)Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);endend
end
鲸鱼优化算法(WOA)函数寻优、附代码相关推荐
- 基于鲸鱼优化算法的函数寻优算法
文章目录 一.理论基础 1.启发 2.包围猎物 3.狩猎行为 4.搜索猎物 二.结果显示 三.参考文献 一.理论基础 1.启发 鲸鱼优化算法 (whale optimization algorithm ...
- 基于人工兔优化算法的函数寻优和工程优化
文章目录 一.理论基础 1.人工兔优化算法 (1)绕道觅食(探索) (2)随机躲藏(开发) (3)能量收缩(从探索转向开发) 2.ARO算法伪代码 二.仿真实验与结果分析 1.函数寻优 2.工程优化 ...
- 简单粒子群优化算法的函数寻优
原文链接:http://blog.csdn.net/on2way/article/details/44699223 一:关于粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法 ...
- 基于沙猫群优化算法的函数寻优算法
文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...
- 基于黑寡妇优化算法的函数寻优算法
文章目录 一.理论基础 1.黑寡妇优化算法 1.1 移动 1.2 信息素 2.BWOA算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.黑寡妇优化算法 黑寡妇优化算法(Black W ...
- 基于藤壶交配优化算法的函数寻优算法
文章目录 一.理论基础 1.藤壶交配优化算法 1.1 哈迪-温伯格(Hardy-Weinberg)法则 1.2 BMO 1.2.1 初始化 1.2.2 选择过程 1.2.3 繁殖 2.BMO算法伪代码 ...
- 基于阿基米德优化算法的函数寻优算法
文章目录 一.理论基础 1.算法步骤 (1)初始化 (2)更新密度和体积 (3)转移算子与密度算子 (4)勘探阶段 <1> 物体之间发生碰撞 <2> 物体之间无碰撞 <3 ...
- 基于白鲸优化算法的函数寻优算法
文章目录 一.理论基础 1.白鲸优化算法 (1)探索阶段 (2)开发阶段 (3)鲸落 2.BWO算法流程图 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.白鲸优化算法 文献[1]从白鲸的行为 ...
- 基于非洲秃鹫优化算法的函数寻优算法
文章目录 一.理论基础 1.非洲秃鹫优化算法(AVOA) 1.1 第一阶段:确定任何一组中最好的秃鹫 1.2 第二阶段:秃鹫的饥饿率 1.3 第三阶段:探索 1.4 第四阶段:开发 1.4.1 开发( ...
- 基于亨利气体溶解度优化算法的函数寻优算法
文章目录 一.理论基础 1.亨利气体溶解度优化算法 (1)步骤1:初始化过程 (2)步骤2:分簇 (3)步骤3:评价 (4)步骤4:更新亨利系数 (5)步骤5:更新溶解度 (6)步骤6:更新位置 (7 ...
最新文章
- 一位技术人员成长的烦恼及我的分析(转)
- C语言中指针定义的时候初始化的必要性
- linux中sz和rz的使用,在服务器和本地之间传输数据
- c++ map初始化_Go学习每日一问(18)-map元素查找
- Vista工具箱 v3.1
- 为什么st2 chrome无法显示api中的例子
- 吴恩达教授机器学习课程笔记【四】- 生成学习算法(2)朴素贝叶斯与拉普拉斯平滑
- 网易新闻iOS版开发使用的第三方框架和组件列表
- 几种常见的 Kafka 集群监控工具
- DBSCAN聚类算法实用案例
- 上海科技大学计算机夏令营随笔
- 独孤求败-小滴云架构大课十八式
- wex5链接mysql_【WeX5学习】 后端服务之访问数据库表
- git 找回删除的文件
- CE 开启 DBVM
- python实现手机连续点击
- 记录一次重装win10系统后,没有1920*1080分辨率的问题
- vue循环后不能下滑_Vue 循环后的数据更改无法响应。
- 费雪分离定理的证明与评价
- component组件