目录

一、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. 基于鲸鱼优化算法的函数寻优算法

    文章目录 一.理论基础 1.启发 2.包围猎物 3.狩猎行为 4.搜索猎物 二.结果显示 三.参考文献 一.理论基础 1.启发 鲸鱼优化算法 (whale optimization algorithm ...

  2. 基于人工兔优化算法的函数寻优和工程优化

    文章目录 一.理论基础 1.人工兔优化算法 (1)绕道觅食(探索) (2)随机躲藏(开发) (3)能量收缩(从探索转向开发) 2.ARO算法伪代码 二.仿真实验与结果分析 1.函数寻优 2.工程优化 ...

  3. 简单粒子群优化算法的函数寻优

    原文链接:http://blog.csdn.net/on2way/article/details/44699223 一:关于粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法 ...

  4. 基于沙猫群优化算法的函数寻优算法

    文章目录 一.理论基础 1.沙猫群优化算法 (1)初始化种群 (2)搜索猎物(探索) (3)攻击猎物(开发) (4)探索和开发 2.SCSO算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基 ...

  5. 基于黑寡妇优化算法的函数寻优算法

    文章目录 一.理论基础 1.黑寡妇优化算法 1.1 移动 1.2 信息素 2.BWOA算法伪代码 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.黑寡妇优化算法 黑寡妇优化算法(Black W ...

  6. 基于藤壶交配优化算法的函数寻优算法

    文章目录 一.理论基础 1.藤壶交配优化算法 1.1 哈迪-温伯格(Hardy-Weinberg)法则 1.2 BMO 1.2.1 初始化 1.2.2 选择过程 1.2.3 繁殖 2.BMO算法伪代码 ...

  7. 基于阿基米德优化算法的函数寻优算法

    文章目录 一.理论基础 1.算法步骤 (1)初始化 (2)更新密度和体积 (3)转移算子与密度算子 (4)勘探阶段 <1> 物体之间发生碰撞 <2> 物体之间无碰撞 <3 ...

  8. 基于白鲸优化算法的函数寻优算法

    文章目录 一.理论基础 1.白鲸优化算法 (1)探索阶段 (2)开发阶段 (3)鲸落 2.BWO算法流程图 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.白鲸优化算法 文献[1]从白鲸的行为 ...

  9. 基于非洲秃鹫优化算法的函数寻优算法

    文章目录 一.理论基础 1.非洲秃鹫优化算法(AVOA) 1.1 第一阶段:确定任何一组中最好的秃鹫 1.2 第二阶段:秃鹫的饥饿率 1.3 第三阶段:探索 1.4 第四阶段:开发 1.4.1 开发( ...

  10. 基于亨利气体溶解度优化算法的函数寻优算法

    文章目录 一.理论基础 1.亨利气体溶解度优化算法 (1)步骤1:初始化过程 (2)步骤2:分簇 (3)步骤3:评价 (4)步骤4:更新亨利系数 (5)步骤5:更新溶解度 (6)步骤6:更新位置 (7 ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器
  2. linux 下camera调试笔记【转】
  3. 编写Java程序最容易犯的21种错误
  4. iOS开发笔记[13/50]:解决SenTestingKit/SenTestingKit.h: No such file or directory问题
  5. Python面向对象(一)
  6. 多功能嵌入式解码软件(2)
  7. [2021-09-09 T3] 序列/luogu P3943 星空(异或差分+bfs最短路+状压dp)
  8. java 内置函数_java8 四大内置核心函数式接口
  9. 将字符转换成数字(atoi),将数字转换成字符(itoa)
  10. 用python求期望_Python——EM(期望极大算法)教学(附详细代码与注解)
  11. 我为什么关注node.js
  12. Boost Log : Trivial logging with filters
  13. [No000014B]Office-PPT设置默认打开视图
  14. python12306抢票_Python3.6实现12306火车票自动抢票,并短信和邮件通知
  15. 诺基亚wp手机安装linux,1小时搞定 普通用户3步轻松更新WP8.1
  16. linux 中du和df的使用
  17. 八进制换算成二进制、十进制、十六进制
  18. Cuckoo针对恶意软件自动化分析系统
  19. I-deas TMG 基础培训教程 - 小例题 (7)
  20. 计算机物联网应用技术工资,物联网专业毕业生现状 刚毕业薪资多少

热门文章

  1. 有什么平价好用的蓝牙耳机?高性价比蓝牙耳机推荐
  2. 聚美优品生日庆,网站瘫痪遭吐槽~看看F5的解决之道
  3. 4.罗马数字转整数(简单)
  4. java 停止更新_如何关闭JAVA更新程序
  5. 汽车产业格局图 | 高清电子版 | 爱普搜汽车
  6. Java SE 学习笔记5 Java阶段复习
  7. 物联网中设备与服务器通信使用什么网络协议?
  8. ios15.4系统更新导致设备续航问题苹果官方回复,附iPhone续航提升小技巧
  9. 函数句柄(function handle)
  10. C9555E: Failed to check out a license.----关于arm DS 5出现的小问题