鲸鱼优化算法(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 ...
最新文章
- 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器
- linux 下camera调试笔记【转】
- 编写Java程序最容易犯的21种错误
- iOS开发笔记[13/50]:解决SenTestingKit/SenTestingKit.h: No such file or directory问题
- Python面向对象(一)
- 多功能嵌入式解码软件(2)
- [2021-09-09 T3] 序列/luogu P3943 星空(异或差分+bfs最短路+状压dp)
- java 内置函数_java8 四大内置核心函数式接口
- 将字符转换成数字(atoi),将数字转换成字符(itoa)
- 用python求期望_Python——EM(期望极大算法)教学(附详细代码与注解)
- 我为什么关注node.js
- Boost Log : Trivial logging with filters
- [No000014B]Office-PPT设置默认打开视图
- python12306抢票_Python3.6实现12306火车票自动抢票,并短信和邮件通知
- 诺基亚wp手机安装linux,1小时搞定 普通用户3步轻松更新WP8.1
- linux 中du和df的使用
- 八进制换算成二进制、十进制、十六进制
- Cuckoo针对恶意软件自动化分析系统
- I-deas TMG 基础培训教程 - 小例题 (7)
- 计算机物联网应用技术工资,物联网专业毕业生现状 刚毕业薪资多少
热门文章
- 有什么平价好用的蓝牙耳机?高性价比蓝牙耳机推荐
- 聚美优品生日庆,网站瘫痪遭吐槽~看看F5的解决之道
- 4.罗马数字转整数(简单)
- java 停止更新_如何关闭JAVA更新程序
- 汽车产业格局图 | 高清电子版 | 爱普搜汽车
- Java SE 学习笔记5 Java阶段复习
- 物联网中设备与服务器通信使用什么网络协议?
- ios15.4系统更新导致设备续航问题苹果官方回复,附iPhone续航提升小技巧
- 函数句柄(function handle)
- C9555E: Failed to check out a license.----关于arm DS 5出现的小问题