基于白骨顶鸡优化算法的函数寻优算法

一、理论基础

1、白骨顶鸡优化算法

白骨顶鸡优化算法(Coot optimization algorithm, COOT)由Iraj Naruei等人于2021年提出的一种新型启发式算法,其灵感来源于白骨顶鸡在水面上的两种不同运动模式。
在该算法中,作者主要模拟了随机运动和同步运动,并将这两种运动模拟为算法中的三种行为,即:个体随机运动、链式运动、最优个体引导运动。

1.1 个体随机运动

为了实现这一运动,考虑在搜索空间中根据式(1)的随机位置,并将白骨顶鸡移动到这个随机位置。 Q = r a n d ( 1 , d ) . ∗ ( u b − l b ) + l b (1) Q=rand(1,d).*(ub-lb)+lb\tag{1} Q=rand(1,d).(ublb)+lb(1)这种行为探索了搜索空间的不同部分。如果算法陷入局部最优,该行为将会使得算法跳出局部最优。鸡的新位置根据式(2)计算。 C o o t P o s ( i ) = C o o t P o s ( i ) + A × R 2 × ( Q − C o o t P o s ( i ) ) (2) CootPos(i)=CootPos(i)+A\times R_2\times(Q-CootPos(i))\tag{2} CootPos(i)=CootPos(i)+A×R2×(QCootPos(i))(2)其中, R 2 R_2 R2 [ 0 , 1 ] [0,1] [0,1]区间中的随机数, a a a根据式(3)计算。 A = 1 − L × ( 1 I t e r ) (3) A=1-L\times\left(\frac{1}{Iter}\right)\tag{3} A=1L×(Iter1)(3)其中, L L L是当前迭代次数, I t e r Iter Iter是最大迭代次数。

1.2 链式运动

两个个体的平均位置可用于实现链式运动。另一种实现链式运动的方法是:首先计算两个个体之间的距离向量,然后将其中一个个体向另一个个体移动大约距离向量的一半。本文使用了第一种方法,并根据式(4)计算出个体的新位置。 C o o t P o s ( i ) = 0.5 × ( C o o t P o s ( i − 1 ) + C o o t P o s ( i ) ) (4) CootPos(i)=0.5\times(CootPos(i-1)+CootPos(i))\tag{4} CootPos(i)=0.5×(CootPos(i1)+CootPos(i))(4)其中, C o o t P o s ( i − 1 ) CootPos(i-1) CootPos(i1)是第二个个体。

1.3 最优个体引导运动

1.3.1 根据组长调整位置

通常情况下,小组由小组前面的几只个体领导,其他个体必须根据小组的领导者(即组长)调整自己的位置,并向它们移动。可以考虑领导者的平均位置,种群可以根据该平均位置更新其位置。考虑到平均位置会导致过早收敛,为了实现这一运动,使用式(5)中的机制来选择领导者。 K = 1 + ( i   M O D   N L ) (5) K=1+(i\,MOD\,NL)\tag{5} K=1+(iMODNL)(5)其中, i i i是当前个体的位置索引, N L NL NL是领导者的数量, K K K是领导者的索引。
式(6)根据选定的领导者计算个体的下一个位置。 C o o t P o s ( i ) = L e a d e r P o s ( k ) + 2 × R 1 × cos ⁡ ( 2 R π ) × ( L e a d e r P o s ( k ) − C o o t P o s ( i ) ) (6) CootPos(i)=LeaderPos(k)+2\times R_1\times\cos(2R\pi)\times(LeaderPos(k)-CootPos(i))\tag{6} CootPos(i)=LeaderPos(k)+2×R1×cos(2Rπ)×(LeaderPos(k)CootPos(i))(6)其中, C o o t P o s ( i ) CootPos(i) CootPos(i)是个体的当前位置, L e a d e r P o s ( k ) LeaderPos(k) LeaderPos(k)是选中的领导者位置, R 1 R_1 R1 [ 0 , 1 ] [0,1] [0,1]区间中的随机数, R R R [ − 1 , 1 ] [-1,1] [1,1]区间中的随机数。

1.3.2 领导者引领团队走向最佳区域(领导运动)

团队必须朝着一个目标(最佳区域)前进,因此领导者需要更新它们对目标的位置。在跟随者向领导者靠拢的同时,领导者也要不断地向最优区域靠近。有时,领导者必须离开当前的最佳位置,才能找到更好的位置,有效提升了算法跳出局部最优值的能力。 L e a d e r P o s ( i ) = { B × R 3 × cos ⁡ ( 2 R π ) × ( g B e s t − L e a d e r P o s ( i ) ) + g B e s t R 4 < 0.5 B × R 3 × cos ⁡ ( 2 R π ) × ( g B e s t − L e a d e r P o s ( i ) ) − g B e s t R 4 ≥ 0.5 (7) LeaderPos(i)=\begin{dcases}B\times R_3\times\cos(2R\pi)\times(gBest-LeaderPos(i))+gBest\quad R_4<0.5\\[2ex]B\times R_3\times\cos(2R\pi)\times(gBest-LeaderPos(i))-gBest\quad R_4\geq0.5\end{dcases}\tag{7} LeaderPos(i)=B×R3×cos(2Rπ)×(gBestLeaderPos(i))+gBestR4<0.5B×R3×cos(2Rπ)×(gBestLeaderPos(i))gBestR40.5(7)其中, g B e s t gBest gBest是迄今为止发现的最佳位置, R 3 R_3 R3 R 4 R_4 R4 [ 0 , 1 ] [0,1] [0,1]区间中的随机数, R R R [ − 1 , 1 ] [−1,1] [1,1]区间中的随机数, B B B根据式(8)计算。 B = 2 − L × ( 1 I t e r ) (8) B=2-L\times\left(\frac{1}{Iter}\right)\tag{8} B=2L×(Iter1)(8)其中, L L L是当前迭代次数, I t e r Iter Iter是最大迭代次数。
2 × R 3 2×R_3 2×R3产生更大的随机运动,因此算法不会陷入局部最优。这意味着算法在开发阶段也在进行探索。 cos ⁡ ( 2 R π ) \cos(2R\pi) cos(2Rπ)搜索具有不同半径的最佳个体,以在该个体周围找到更好的位置。

2、COOT算法伪代码

COOT算法伪代码如图1所示。
在这里插入图片描述

图1 COOT算法伪代码

二、仿真实验与结果分析

将COOT与SSA、MVO和GWO进行对比,以文献[1]中表1和表2的F1、F3、F4(单峰函数/30维)、F9、F11、F13(多峰函数/30维)为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
SSA:最差值: 4.3517e-06,最优值:2.6046e-08,平均值:3.0027e-07,标准差:7.8379e-07,秩和检验:3.0199e-11
MVO:最差值: 1.8419,最优值:0.59588,平均值:1.1932,标准差:0.37714,秩和检验:3.0199e-11
GWO:最差值: 4.9496e-27,最优值:2.6417e-29,平均值:1.0244e-27,标准差:1.2287e-27,秩和检验:3.4971e-09
COOT:最差值: 1.2453e-25,最优值:5.921e-46,平均值:4.1784e-27,标准差:2.2731e-26,秩和检验:1
函数:F3
SSA:最差值: 6259.0882,最优值:361.6992,平均值:1836.9734,标准差:1241.9126,秩和检验:3.0199e-11
MVO:最差值: 454.1313,最优值:100.3723,平均值:234.5366,标准差:88.998,秩和检验:3.0199e-11
GWO:最差值: 6.8352e-05,最优值:4.4812e-09,平均值:7.5173e-06,标准差:1.4181e-05,秩和检验:3.0199e-11
COOT:最差值: 2.0864e-18,最优值:4.5224e-52,平均值:6.9547e-20,标准差:3.8092e-19,秩和检验:1
函数:F4
SSA:最差值: 18.1705,最优值:3.4931,平均值:10.9622,标准差:3.8599,秩和检验:3.0199e-11
MVO:最差值: 3.1682,最优值:1.0197,平均值:1.9046,标准差:0.56173,秩和检验:3.0199e-11
GWO:最差值: 5.62e-06,最优值:6.5853e-08,平均值:8.6401e-07,标准差:1.1074e-06,秩和检验:3.0199e-11
COOT:最差值: 5.7662e-11,最优值:2.6987e-23,平均值:2.3332e-12,标准差:1.0601e-11,秩和检验:1
函数:F9
SSA:最差值: 83.5763,最优值:14.9244,平均值:50.8352,标准差:20.3717,秩和检验:4.111e-12
MVO:最差值: 252.2225,最优值:46.3223,平均值:125.0884,标准差:43.268,秩和检验:4.111e-12
GWO:最差值: 76.7443,最优值:5.6843e-14,平均值:6.589,标准差:14.3414,秩和检验:1.5148e-10
COOT:最差值: 3.8654e-12,最优值:0,平均值:2.0274e-13,标准差:7.8121e-13,秩和检验:1
函数:F11
SSA:最差值: 0.049122,最优值:0.00043358,平均值:0.014355,标准差:0.012203,秩和检验:4.111e-12
MVO:最差值: 0.96905,最优值:0.70859,平均值:0.84999,标准差:0.073388,秩和检验:4.111e-12
GWO:最差值: 0.021262,最优值:0,平均值:0.0033834,标准差:0.0069694,秩和检验:0.34456
COOT:最差值: 5.5511e-15,最优值:0,平均值:3.9598e-16,标准差:1.2641e-15,秩和检验:1
函数:F13
SSA:最差值: 50.4004,最优值:0.00027893,平均值:15.1287,标准差:14.3801,秩和检验:1.0188e-05
MVO:最差值: 0.78326,最优值:0.06473,平均值:0.21457,标准差:0.17072,秩和检验:0.00069125
GWO:最差值: 1.5333,最优值:0.20309,平均值:0.62509,标准差:0.30599,秩和检验:0.00076973
COOT:最差值: 2.9726,最优值:0.058763,平均值:0.45485,标准差:0.54704,秩和检验:1

实验结果表明:COOT算法具有良好的性能和竞争力。

三、参考文献

[1] Iraj Naruei, Farshid Keynia. A new optimization method based on COOT bird natural life model[J]. Expert Systems With Applications, 2021, 183: 115352.

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 全局算法是解析法中一种求最解的算法。它通过分析整个问题的决策空间来找最解,通常使用数学模型和算法来实现。全局算法势在于能够找到全局最解,但缺点在于对于复杂的问题,其计算复杂度可能很高,时间代价也很大。常见的全局算法包括模拟退火算法、遗传算法、粒子群算法等。 ### 回答2: 全局算法是解析法中的一种常用算法。该算法的目标是找到给定问题的全局最解。 全局算法通常包括以下步骤: 1. 初始化:首先,需要给定问题的定义和目标函数。根据问题的特点,选择合适的初始解,并计算初始解对应的目标函数值。 2. 搜索操作:通过一系列操作(如变异、交叉、选择等)对当前解进行改变,以期望得到更好(更)的解。这些操作可以根据问题的特点来设计,比如对于优化问题,可以引入模拟退火、粒子群算法等。 3. 目标函数计算:对于每个新解,需要计算其对应的目标函数值,以便评估解的好坏程度。 4. 解更新:根据目标函数值来评判新解的劣,如果新解更,则更新当前解为该新解。如果新解并不更,则根据一定策略(如Metropolis准则、遗传算法等)决定是否接受新解。 5. 终止条件判断:在每次迭代中,都需要检查是否满足终止条件,比如达到最大迭代次数、目标函数值收敛等。 6. 结果输出:当满足终止条件时,算法停止迭代,并输出找到的全局最解,即目标函数值最小的解。 通过以上步骤,全局算法能够在解析法中找到给定问题的全局最解。需要注意的是,全局算法可能会陷入局部最解,因此在设计中需要合理选择操作和更新策略,以尽可能避免陷入局部最解。 ### 回答3: 在解析法中,全局是一种算法,它的目标是通过搜索整个解空间,找最解。解析法中的全局算法能够帮助我们找到最佳的可行解,而不仅仅是局部最解。 全局算法的基本思想是通过改变解的某个部分,然后评估解的质量,以确定下一步搜索的方向。这个过程会不断重复,直到找到满足特定条件的最佳解或达到停止搜索的条件。 全局算法常用的方法有遗传算法、模拟退火算法和粒子群优化算法等。这些算法在搜索解空间时采用不同的策略和操作。 例如,遗传算法通过模拟自然界进化的过程,通过随机的选择、交叉和变异操作,不断演化出更好的解。模拟退火算法则模拟了固体物质在退火过程中的行为,通过随机跳出局部最解的可能性,最终找到全局最解。粒子群优化算法则模拟了鸟群觅食时的行为,通过个体之间的信息共享和对全局最解的引导,逐渐搜索到最佳解。 全局算法在很多实际问题中得到了广泛的应用。例如,在工程优化设计中,可以使用全局算法找最佳设计方案;在机器学习中,可以使用全局算法优化模型参数,使得模型的性能最佳。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心️升明月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值