CEC2014:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2014(提供MATLAB代码

一、鱼鹰优化算法简介

鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovský于2023年提出,其模拟鱼鹰的捕食行为。
在这里插入图片描述

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

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

1.1鱼鹰优化算法原理

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

1.1.1 种群初始化

采用下式随机初始化鱼鹰种群:
X = [ X 1 ⋮ X i ⋮ X N ] N × m = [ x 1 , 1 ⋯ x 1 , j ⋯ x 1 , m ⋮ ⋱ ⋮ ⋱ ⋮ x i , 1 ⋯ x i , j ⋯ x i , m ⋮ ⋱ ⋮ ⋱ ⋮ x N , 1 ⋯ x N , j ⋯ x N , m ] N × m , x i , j = l b j + r i , j ⋅ ( u b j − l b j ) , 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= X1XiXN N×m= x1,1xi,1xN,1x1,jxi,jxN,jx1,mxi,mxN,m N×m,xi,j=lbj+ri,j(ubjlbj),i=1,2,,N,j=1,2,,m,
其中,N为鱼鹰的数量,m为问题的维度,初始化位置后依据优化问题计算适应度值:
F = [ F 1 ⋮ F i ⋮ F N ] N × 1 = [ F ( X 1 ) ⋮ F ( X i ) ⋮ F ( X N ) ] N × 1 F=\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= F1FiFN N×1= F(X1)F(Xi)F(XN) N×1

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

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

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

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

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.

二、CEC2014

CEC2014测试集共有30个单目标测试函数,每个测试函数可选择维度分别为10D、30D、50D、100D。
在这里插入图片描述

三、求解结果

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

将鱼鹰优化算法OOA法用于求解CEC2014,测试函数维度为30(可根据自己需求更改),种群大小为100,最大迭代次数为50,部分实验结果如下:

close all
clear 
clc
SearchAgents_no=100; % 种群大小
Function_name=1; %测试函数1-30
Max_iteration=50; % 最大迭代次数
lb=-100;%变量下界
ub=100;%变量上界
dim=30;%维度 10/30/50/100
[fMin,bestX,curve]=OOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);  
%Draw objective space
semilogy(curve,'Color','g','linewidth',2.5)
legend('OOA')
title(['cec2014-F' num2str(Function_name)])
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
display(['The best solution obtained is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton is : ', num2str(fMin)]);


部分结果如下:

F2

在这里插入图片描述

F8

在这里插入图片描述

F16

在这里插入图片描述

F22

在这里插入图片描述

四、参考代码

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

猜你喜欢

转载自blog.csdn.net/weixin_46204734/article/details/129327295
今日推荐