一、鱼鹰优化算法简介

鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovský于2023年提出,其模拟鱼鹰的捕食行为。

鱼鹰是鹰形目、鹗科、鹗属的仅有的一种中型猛禽。雌雄相似。体长51-64厘米,体重1000-1750克。头部白色,头顶具有黑褐色的纵纹,枕部的羽毛稍微呈披针形延长,形成一个短的羽冠。头的侧面有一条宽阔的黑带,从前额的基部经过眼睛到后颈部,并与后颈的黑色融为一体。上体为暗褐色,略微具有紫色的光泽。下体为白色,胸部的暗色纵纹和飞羽,以及尾羽上相间排列的横斑均极为醒目。虹膜淡黄色或橙黄色,眼周裸露皮肤铅黄绿色,嘴黑色,蜡膜铅蓝色,脚和趾黄色,爪黑色。

鱼鹰栖息于湖泊、河流、海岸或开阔地,尤其喜欢在山地森林中的河谷或有树木的水域地带活动。常见在江河、湖沼及海滨一带飞翔,一见水中有饵,就直下水面,用脚掠之而去。趾具锐爪,趾底遍生细刺,外趾复能由前向后反转,这些都很适于捕鱼。在天气晴朗之日,盘旋于水面上空,定点后俯冲而下,再将捕获的鱼带至岩石、电杆、树上等地方享用。巢常营于海岸或岛屿的岩礁上。主要以鱼为食,有时也捕食蛙、蜥蜴、小型鸟类等其他小型陆栖动物。除了南极和北极,亚洲、北美洲等各大洲均有分布。

1.1鱼鹰优化算法原理

鱼鹰优化算法包含两个阶段:第一阶段为鱼鹰识别鱼的位置并捕鱼(全局勘探), 第二阶段为将鱼带到合适的位置( 局部开采),其详细设计如下:

1.1.1 种群初始化

采用下式随机初始化鱼鹰种群:
X=[X1⋮Xi⋮XN]N×m=[x1,1⋯x1,j⋯x1,m⋮⋱⋮⋱⋮xi,1⋯xi,j⋯xi,m⋮⋱⋮⋱⋮xN,1⋯xN,j⋯xN,m]N×m,xi,j=lbj+ri,j⋅(ubj−lbj),i=1,2,…,N,j=1,2,…,m,\begin{array}{c} X=\left[\begin{array}{c} X_{1} \\ \vdots \\ X_{i} \\ \vdots \\ X_{N} \end{array}\right]_{N \times m}=\left[\begin{array}{ccccc} x_{1,1} & \cdots & x_{1, j} & \cdots & x_{1, m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{i, 1} & \cdots & x_{i, j} & \cdots & x_{i, m} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{N, 1} & \cdots & x_{N, j} & \cdots & x_{N, m} \end{array}\right]_{N \times m}, \\ x_{i, j}=l b_{j}+r_{i, j} \cdot\left(u b_{j}-l b_{j}\right), i=1,2, \ldots, N, j=1,2, \ldots, m, \end{array}X=​X1​⋮Xi​⋮XN​​​N×m​=​x1,1​⋮xi,1​⋮xN,1​​⋯⋱⋯⋱⋯​x1,j​⋮xi,j​⋮xN,j​​⋯⋱⋯⋱⋯​x1,m​⋮xi,m​⋮xN,m​​​N×m​,xi,j​=lbj​+ri,j​⋅(ubj​−lbj​),i=1,2,…,N,j=1,2,…,m,​
其中,N为鱼鹰的数量,m为问题的维度,初始化位置后依据优化问题计算适应度值:
F=[F1⋮Fi⋮FN]N×1=[F(X1)⋮F(Xi)⋮F(XN)]N×1F=\left[\begin{array}{c} F_{1} \\ \vdots \\ F_{i} \\ \vdots \\ F_{N} \end{array}\right]_{N \times 1}=\left[\begin{array}{c} F\left(X_{1}\right) \\ \vdots \\ F\left(X_{i}\right) \\ \vdots \\ F\left(X_{N}\right) \end{array}\right]_{N \times 1}F=​F1​⋮Fi​⋮FN​​​N×1​=​F(X1​)⋮F(Xi​)⋮F(XN​)​​N×1​

1.1.2 全局勘探(第一阶段:位置识别和捕鱼)

鱼鹰是强大的猎人,由于其强大的视力,能够探测到水下鱼类的位置。在确定鱼的位置后,他们攻击它并通过潜入水下捕猎鱼。OOA中种群更新的第一阶段是基于对鱼鹰这种自然行为的模拟而建模的。对鱼鹰攻击鱼类进行建模会导致鱼鹰在搜索空间中的位置发生显著变化,这增加了OOA在识别最优区域和逃离局部最优方面的探索能力。在OOA设计中,对于每只鱼鹰,搜索空间中具有较好目标函数值的其他鱼鹰的位置被视为水下鱼类。每只鱼鹰的位置使用下式指定。
FPi={Xk∣k∈{1,2,…,N}∧Fk<Fi}∪{Xbest }\boldsymbol{F P _ { i }}=\left\{X_{k} \mid \boldsymbol{k} \in\{1,2, \ldots, N\} \wedge \boldsymbol{F}_{k}<\boldsymbol{F}_{i}\right\} \cup\left\{\boldsymbol{X}_{\text {best }}\right\}FPi​={Xk​∣k∈{1,2,…,N}∧Fk​<Fi​}∪{Xbest ​}
其中,FPiF P _ { i }FPi​为第i只鱼鹰的位置集合,Xbest {X}_{\text {best }}Xbest ​为最佳鱼鹰的位置。
鱼鹰随机检测其中一条鱼的位置并攻击它。基于鱼鹰向鱼的运动模拟,使用下式计算相应鱼鹰的新位置。这个新位置,如果它的目标函数的值更好,则替换鱼鹰的先前位置。
xi,jP1=xi,j+ri,j⋅(SFi,j−Ii,j⋅xi,j),xi,jP1={xi,jP1,lbj≤xi,jP1≤ubj;lbj,xi,jP1<lbj;ubj,xi,jP1>ubj.Xi={XiP1,FiP1<Fi;Xi,else ,\begin{array}{l} x_{i, j}^{P 1}=x_{i, j}+r_{i, j} \cdot\left(S F_{i, j}-I_{i, j} \cdot x_{i, j}\right), \\ x_{i, j}^{P 1}=\left\{\begin{array}{ll} x_{i, j}^{P 1}, & l b_{j} \leq x_{i, j}^{P 1} \leq u b_{j} ; \\ l b_{j}, & x_{i, j}^{P 1}<l b_{j} ; \\ u b_{j}, & x_{i, j}^{P 1}>u b_{j} . \end{array}\right. \\ X_{i}=\left\{\begin{array}{l} X_{i}^{P 1}, F_{i}^{P 1}<F_{i} ; \\ X_{i}, \text { else }, \end{array}\right. \\ \end{array}xi,jP1​=xi,j​+ri,j​⋅(SFi,j​−Ii,j​⋅xi,j​),xi,jP1​=⎩⎨⎧​xi,jP1​,lbj​,ubj​,​lbj​≤xi,jP1​≤ubj​;xi,jP1​<lbj​;xi,jP1​>ubj​.​Xi​={XiP1​,FiP1​<Fi​;Xi​, else ,​​
其中,xi,jP1x_{i, j}^{P 1}xi,jP1​为第i只鱼鹰在第一阶段时,其第j维的新位置,Fi,jP1F_{i, j}^{P 1}Fi,jP1​是其对应的适应度值。SFi,jS F_{i, j}SFi,j​为[0,1]之间的随机数,Ii,jI_{i, j}Ii,j​为集合{1,2}中的随机数。

1.1.3 局部开采(第二阶段:将鱼带到合适的位置)

捕食鱼后,鱼鹰将其带到合适(对他来说安全)的位置,并在那里吃。OOA中更新种群的第二阶段是基于鱼鹰这种自然行为的模拟建模的。将鱼带到合适位置的建模导致鱼鹰在搜索空间中的位置发生微小变化,从而导致 OOA 在本地搜索中的开发能力增加,并在发现的解决方案附近收敛到更好的解决方案。在OOA的设计中,为了模拟鱼鹰的这种自然行为,首先,针对种群的每个成员,使用下式计算一个新的随机位置作为“适合吃鱼的位置”。然后,如果目标函数的值在这个新位置得到改善,则替换相应鱼鹰的先前位置。
xi,jP2=xi,j+lbj+r⋅(ubj−lbj)t,i=1,2,…,N,j=1,2,…,m,t=1,2,…,T,xi,jP2={xi,jP2,lbj≤xi,jP2≤ubj;lbj,xi,jP2<lbjubj,xi,jP2>ubj,Xi={XiP2,FiP2<Fi;Xi,else ,\begin{array}{c} x_{i, j}^{P 2}=x_{i, j}+\frac{l b_{j}+r \cdot\left(u b_{j}-l b_{j}\right)}{t}, i=1,2, \ldots, N, j=1,2, \ldots, m, t=1,2, \ldots, T, \\ x_{i, j}^{P 2}=\left\{\begin{array}{l} x_{i, j}^{P 2}, l b_{j} \leq x_{i, j}^{P 2} \leq u b_{j} ; \\ l b_{j}, x_{i, j}^{P 2}<l b_{j} \\ u b_{j}, x_{i, j}^{P 2}>u b_{j}, \end{array}\right. \\ X_{i}=\left\{\begin{array}{l} X_{i}^{P 2}, F_{i}^{P 2}<F_{i} ; \\ X_{i}, \text { else }, \end{array}\right. \end{array}xi,jP2​=xi,j​+tlbj​+r⋅(ubj​−lbj​)​,i=1,2,…,N,j=1,2,…,m,t=1,2,…,T,xi,jP2​=⎩⎨⎧​xi,jP2​,lbj​≤xi,jP2​≤ubj​;lbj​,xi,jP2​<lbj​ubj​,xi,jP2​>ubj​,​Xi​={XiP2​,FiP2​<Fi​;Xi​, else ,​​
其中,xi,jP2x_{i, j}^{P 2}xi,jP2​为第i只鱼鹰在第二阶段时,其第j维的新位置,Fi,jP2F_{i, j}^{P 2}Fi,jP2​是其对应的适应度值。rrr为[0,1]之间的随机数,ttt和TTT分别为当前迭代次数和最大迭代次数。

1.2算法描述

1.3算法流程

1.4参考文献

Dehghani Mohammad, Trojovský Pavel.Osprey optimization algorithm: A new bio-inspired metaheuristic algorithm for solving engineering optimization problems[J].Frontiers in Mechanical Engineering,2023,8.

二、CEC2017简介

CEC2017共有30个无约束测试函数分别是:单峰函数(F1-F3)、简单多峰函数(F4-F10)、混合函数(F11-F20)和组合函数(F21-F30)。测试维度包含:10D、30D、50D、100D。CEC2017无约束测试问题随着维度的增加求解极其困难。

三、求解结果

完整代码添加博客下方博主微信:djpcNLP123

将鱼鹰优化算法OO运用于求解CEC2017中30个无约束函数,其中每个测试函数可以选择的维度分别有:10D、30D、50D、100D。增大迭代次数,OOA的求解效果更佳。本例测试函数维度均为为10D(可根据自己需求调整),最大迭代次数为5000次。

close all
clear
clc
Function_name=1; %测试函数1-30
lb=-100;%变量下界
ub=100;%变量上界
dim=10;%维度 10/30/50/100
SearchAgents_no=100; % Number of search agents
Max_iteration=100;%最大迭代次数
[Best_score,Best_pos,Curve]=OOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
% Best convergence curve
semilogy(Curve,'LineWidth',2,'Color','r');
title(strcat('CEC2017-F',num2str(Function_name)))
xlabel('迭代次数');
ylabel('适应度值');
axis tight
box on
legend('OOA')
display(['The best solution is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton is : ', num2str(Best_score)]);

F1:

F2:

F3:

F4:

四、参考代码

完整代码添加博客下方博主微信:djpcNLP123

CEC2017:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解cec2017(提供MATLAB代码)相关推荐

  1. 多旅行商问题:鹈鹕优化算法(Pelican Optimization Algorithm,POA)求解多仓库多旅行商问题(提供Matlab代码)

    一.鹈鹕优化算法 鹈鹕优化算法(Pelican Optimization Algorithm,POA)由Pavel Trojovský和Mohammad Dehghani 于2022年提出,该算法模拟 ...

  2. 两种鲸鱼优化算法 (whale optimization algorithm, WOA)及仿真实验——附代码

    目录 摘要: 算法设计: WOA总体流程图如下: 增强型WOA(E-WOA) 仿真运行效果: 完整程序: 摘要: 鲸鱼优化算法 (whale optimization algorithm,WOA)是 ...

  3. 【WOA】鲸鱼优化算法(Whale Optimization Algorithm,WOA)理论分析与matlab性能仿真,使用CEC2017测试

    一.WOA鲸鱼优化理论简介 WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行为的模拟, 通过鲸鱼群体搜索.包围.追捕和攻击猎物等过程实现优时化搜索的目的.在原始的WOA中,提供了包围 ...

  4. 多目标优化算法:多目标非洲秃鹫优化算法(Multi-objective Africans Vultures Optimization Algorithm,MOAVOA)提供MATLAB代码及参考文献

    一.多目标非洲秃鹫优化算法 多目标非洲秃鹫优化算法(Multi-objective Africans Vultures Optimization Algorithm,MOAVOA)由Nima Khod ...

  5. 多目标优化算法:非支配排序的鲸鱼优化算法(Non-Dominated Sorting Whale Optimization Algorithm,NSWOA)提供Matlab代码

    一.非支配排序的鲸鱼优化算法 非支配排序的鲸鱼优化算法(Non-Dominated Sorting Whale Optimization Algorithm,NSWOA)由Pradeep Jangir ...

  6. 单目标应用:基于北方苍鹰优化算法NGO的概率神经网络PNN数据分类(提供MATLAB代码)

    一.北方苍鹰优化算法NGO 北方苍鹰优化算法(Northern Goshawk Optimization,NGO)由MOHAMMAD DEHGHANI等人于2022年提出,该算法,该算法模拟了北方苍鹰 ...

  7. 多目标优化算法:多目标原子轨道搜索算法MOAOS(提供Matlab代码)

    一.算法简介 原子轨道搜索(Atomic orbital search, AOS)算法由Mahdi Azizi于2021年受量子原子理论所考虑的电子密度构型和原子对能量的吸收或发射的基本原理所启发而提 ...

  8. Adam优化算法(Adam optimization algorithm)

    Adam优化算法(Adam optimization algorithm) Adam优化算法基本上就是将Momentum和RMSprop结合在一起. 初始化 2.在第t次迭代中,用mini-batch ...

  9. 【深度学习笔记】优化算法( Optimization Algorithm)

    本文依旧是吴恩达<深度学习工程师>课程的笔记整理与拓展. 一.优化算法的目的与挑战 优化算法主要是用来加快神经网络的训练速度,使得目标函数快速收敛. 优化问题面临的挑战有病态解.鞍点.梯度 ...

最新文章

  1. WCF系列(四) -- 也谈序列化(上)
  2. 问题 | Matlab:Fatal Error on startup(致命错误)
  3. NOIP练习赛题目5
  4. 不会Python开发的运维终将被淘汰?
  5. 1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一
  6. 手机java jdk环境配置文件_JDK怎么安装与配置环境变量
  7. 图解Web服务器网关接口WSGI(Web Server Gateway Interface)
  8. 对于火灾和火焰检测的初步学习
  9. 高等数学-考试常用的三角函数公式
  10. jasypt加密敏感配置信息出现Encryption raised an exception
  11. ArcGIS教程:确定空间关系
  12. 深度学习神经网络画图软件汇总
  13. 2020商业风口复盘:巨变下的重构与新生
  14. android连接雷电模拟器,android studio连接雷电模拟器 【AS 模拟器】
  15. Oracle RAC 12.1.0.2 High CPU Usage
  16. Fusion 360 常见问题
  17. matlab怎么生成星座图,关于16QAM生成星座图的程序问题
  18. UPC 2020年夏混合个人训练第六十四场【ACDG】
  19. uniapp下页面布局分析三——元素垂直居中
  20. 团队管理之性能实施团队日志1

热门文章

  1. 【Bug】ubuntu下sougou输入法安装以及中文字词提示栏乱码解决
  2. 基于JAVA的闲置物品交换平台的设计与实现
  3. MLX90615驱动笔记---IIC库函数(非IIC模拟)
  4. VR一体机unity开发之性能优化
  5. 我们要坚持不懈地追求自己的目标,即使遇到挫折也不要轻易放弃。
  6. EtherCAT设备协议详解三、EtherCAT CoE
  7. android 定时发送短信实现
  8. 十个经典免费软件和五★级网站![转]
  9. 云剪辑-B端在线剪辑⼯具架构设计与演进
  10. Flink 一站式计算平台 StreamPark 2.0.0 重磅发布,首个 Apache 版本终于来了