智能优化算法:鱼鹰优化算法-附代码

智能优化算法:鱼鹰优化算法


摘要:鱼鹰优化算法(Osprey Optimization Algorithm (OOA)),是于2023年提出的一种基于鱼鹰行为的优化算法,该算法通过模拟鱼鹰猎食行为来进行寻优,具有寻优能力强,收敛速度快等特点

1. 鱼鹰优化算法

1.1 初始化

与其他优化算法类似,在寻优空间里随机初始化种群:
x i , j = l b j + r ⋅ ( u b j − l b j ) (2) x_{i, j}=l b_j+r \cdot\left(u b_j-l b_j\right) \tag{2} xi,j=lbj+r(ubjlbj)(2)
其中 x i , j x_{i,j} xi,j为个体, l b j lb_j lbj为寻优下边界, u b j ub_j ubj为寻优上边界, r r r为[0,1]之间的随机数。

1.2 阶段一:定位和捕鱼(探索阶段)

鱼鹰是一种强大的猎人,由于其强大的视力,能够探测水下鱼类的位置。在确定了鱼的位置后,他们攻击它,并在水下捕食。OOA中种群更新的第一阶段是基于对鱼鹰这种自然行为的模拟而建模的。对鱼鹰攻击鱼类的建模会导致鱼鹰在搜索空间中的位置发生显著变化,这增加了OOA在识别最佳区域和逃离局部最优方面的探索能力。

在OOA设计中,对于每只鱼鹰,搜索空间中具有更好目标函数值的其他鱼鹰的位置被视为水下鱼类。每个鱼鹰的鱼组是用(4)指定的。
F P i = { X k ∣ k ∈ { 1 , 2 , … , N } ∧ F k < F i } ∪ { X best  } (4) F P_i=\left\{X_k \mid k \in\{1,2, \ldots, N\} \wedge F_k<F_i\right\} \cup\left\{X_{\text {best }}\right\}\tag{4} FPi={Xkk{1,2,,N}Fk<Fi}{Xbest }(4)
其中 F P i FP_i FPi是第 i i i只鱼鹰的鱼集合, X b e s t X_{best} Xbest是最佳鱼鹰的位置。

鱼鹰随机检测到其中一条鱼的位置并攻击它。在模拟鱼鹰向鱼移动的基础上,使用(5)计算相应鱼鹰的新位置。如果该新位置更优,则根据(6)替换鱼鹰的先前位置。
x i , j P 1 = x i , j + r i , j ⋅ ( S F i , j − I i , j ⋅ x i , j ) , (5-a) 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),\tag{5-a} xi,jP1=xi,j+ri,j(SFi,jIi,jxi,j),(5-a)

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 (5-b) x_{i, j}^{P 1}=\left\{\begin{array}{l} 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.\tag{5-b} xi,jP1= xi,jP1,lbjxi,jP1ubjlbj,xi,jP1<lbjubj,xi,jP1>ubj(5-b)

X i = { X i P 1 , F i P 1 < F i X i ,  else  (6) X_i=\left\{\begin{array}{l} X_i^{P 1}, F_i^{P 1}<F_i \\ X_i, \text { else } \end{array}\right.\tag{6} Xi={XiP1,FiP1<FiXi, else (6)

其中 S F SF SF为鱼鹰选中的鱼, r r r为[0,1]之间的随机数, I I I的值为{1,2}中的一个。

1.3 阶段二:把鱼带到合适的位置(开发阶段)

鱼鹰在猎杀一条鱼后,会把它带到一个合适的(对他来说安全的)位置,在那里吃。OOA中种群更新的第二阶段是基于对鱼鹰这种自然行为的模拟进行建模的。将鱼带到合适位置的建模导致鱼鹰在搜索空间中的位置发生微小变化,这导致OOA在局部搜索中的利用能力增加,并在发现的解决方案附近收敛到更好的解决方案。

在OOA的设计中,为了模拟鱼鹰的这种自然行为,首先,对于种群中的每个成员,使用(7)计算一个新的随机位置作为“适合吃鱼的位置”。然后,如果目标函数的值在这个新位置上得到改善,则它根据(8)替换相应鱼鹰的先前位置。
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 , (7-a) 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, \tag{7-a} xi,jP2=xi,j+tlbj+r(ubjlbj),i=1,2,,N,j=1,2,,m,t=1,2,,T,(7-a)

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 , (7-b) 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.\tag{7-b} xi,jP2= xi,jP2,lbjxi,jP2ubjlbj,xi,jP2<lbjubj,xi,jP2>ubj,(7-b)

X i = { X i P 2 , F i P 2 < F i X i ,  else  (8) X_i=\left\{\begin{array}{l} X_i^{P 2}, F_i^{P 2}<F_i \\ X_i, \text { else } \end{array}\right.\tag{8} Xi={XiP2,FiP2<FiXi, else (8)

其中 t t t为迭代次数, T T T为最大迭代次数。

算法流程图如下:
在这里插入图片描述

2.实验结果

在这里插入图片描述

3.参考文献

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

4.Matlab

5.python

  • 3
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
鱼鹰算法优化支持向量机(OOA-SVR)是一种基于鱼鹰算法的支持向量机优化方法。支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,用于分类和回归问题。 鱼鹰算法是一种基于自然界中鱼鹰捕食行为的优化算法。它模拟了鱼鹰在捕食过程中的搜索和追踪策略,通过不断调整搜索空间中的候选解来寻找最优解。 OOA-SVR方法将鱼鹰算法应用于支持向量机的优化过程中,以提高支持向量机的性能和精度。其原理如下: 1. 初始化种群:根据问题的特点和要求,初始化一定数量的鱼鹰个体作为初始种群。 2. 评估适应度:根据支持向量机的目标函数,计算每个个体的适应度值,评估其性能。 3. 更新位置:根据鱼鹰算法的搜索策略,通过调整个体的位置来更新种群。这里的位置表示支持向量机模型中的参数,如权重和偏置。 4. 更新速度:根据个体之间的位置差异和适应度值,更新个体的速度。速度的更新可以帮助个体更好地搜索最优解。 5. 选择操作:根据适应度值,选择一部分个体作为下一代的父代,用于产生新的个体。 6. 交叉和变异:通过交叉和变异操作,生成新的个体,并加入到下一代种群中。 7. 终止条件:根据预设的终止条件,判断是否满足停止迭代的条件。如果满足,则输出最优解;否则,返回第3步继续迭代。 通过以上步骤,OOA-SVR方法能够通过鱼鹰算法的优化策略,不断调整支持向量机模型的参数,以找到更优的分类或回归模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值