2024年SCI一区新算法:黑翅鸢优化算法,原理详解,MATLAB代码免费获取

黑翅鸢优化算法(Black-winged kite algorithm,BKA)是一种受自然启发的群智能优化算法,其灵感来源于黑翅鸢(Black-winged kite)这种动物的生存策略。因为黑翅鸢在攻击和迁徙中表现出高度的适应性和智能行为。这激发了我们开发一种算法来更好地处理复杂问题。该算法具有进化能力强、搜索速度快、寻优能力强的特点。该成果于2024年发表在知名SCI期刊《Artificial Intelligence Review》上,在工程优化、机器学习、数据挖掘等有着极为广泛的应用。

36b7689d0065ffc0de805f097b0f6422.png

黑翅鸢优化算法(Black flying Kite Algorithm, BKA)以其独特的生物启发式特征,不仅捕捉了黑翅鸢在自然界中的飞行和捕食行为,而且深度模拟了黑翅鸢对环境变化和目标位置的高度适应性。对这种生物机制的模仿为算法提供了鲁棒的动态搜索能力,使其能够有效地应对不断变化的优化环境。

911e2a210be06d7e4f974add45e59f4c.png

1、算法原理

(1)初种群初始化

在BKA中,创建一组随机解是初始化总体的第一步。下面的矩阵可以用来表示每只黑翅鸢的位置:

其中pop是潜在解决方案的个数,dim是给定问题的维度大小,是第i个黑翅鸢的第j个维度。均匀地分配每只黑翅鸢的位置。

式中i为1 ~ pop之间的整数,其中和分别为第i个黑翅鸳在第j维的下界和上界,rand为[0,1]之间随机选取的值。

在初始化过程中,BKA选择适应度值最好的个体作为初始群体中的leader,这被认为是黑翅鸳的最优位置。下面是初始领导者的数学表示,以最小值为例。

(2)攻击行为

黑翅鸢是草原小型哺乳动物和昆虫的捕食者,在飞行过程中根据风速调整翅膀和尾巴的角度,静静地悬停观察猎物,然后迅速俯冲攻击。图a显示了黑翅鸳在空中盘旋时的攻击状态,而图b显示了黑翅鸳在空中悬停时的状态。以下是黑翅鸳攻击行为的数学模型。

ea37e974ea3e85891d11a475270742ae.png

10f233c929757e7a4c4b59b4b1831ed9.png

该策略包括不同的攻击行为,用于全局探索和搜索。下面是黑翅鸳攻击行为的数学模型:

bef0157fbfbdac893c40eb36e4947357.png

7127c32f2224b0d92bdc7146231ffc48.png

下面是方程的定义:

和分别表示第个黑翅鸢在第维和次迭代步骤中的位置。r为0~1之间的随机数,p为0.9的常数。T是迭代的总次数,T是到目前为止已经完成的迭代次数。

(3)迁移行为

鸟类迁徙是一种受气候和食物供应等环境因素影响的复杂行为。鸟类迁徙是为了适应季节变化,许多鸟类在冬季从北方向南迁徙,以获得更好的生存条件和资源。迁移通常由领导者领导,他们的导航技能对团队的成功至关重要。

9c4758a0917a884b20c6cf742b008796.png

文中提出了一个基于鸟类迁徙的假设:如果当前种群的适应度值小于随机种群的适应度值,那么领导者将放弃领导并加入迁徙种群,这表明它不适合领导种群前进。相反,如果当前种群的适应度值大于随机种群的适应度值,则会引导种群到达目的地。这种策略可以动态地选择优秀的领导者,以确保迁移的成功。以下是黑翅鸢迁徙行为的数学模型:

cb5a0351f65591541de31bd1b738ac7f.png

公式的属性定义如下:

表示到目前为止,在第t次迭代的第j维中,黑翅鸢的领先得分者。和分别表示第i个黑翅鸢在第j维的位置,在第t和(t+1)次迭代步骤中。表示任一黑翅鸢在第t次迭代中获得的第j维当前位置。表示第t次迭代中任意黑翅鸢在第j维随机位置的适应度值。

C(0,1)代表柯西变异。定义如下。

一维柯西分布是具有两个参数的连续概率分布。一维柯西分布的概率密度函数为:

当δ=1, μ = 0时,其概率密度函数成为标准形式。精确公式如下:

BKA的流程伪代码如下:

6d64b542c5e806466c42690c8c77a0f7.png

2、结果展示

2e6a7752b731186e3a78935aa7bb5cba.png 246b8fdb9db901d26d58f8589294cd55.png af03b3d95b0531ea5720c83fca5aa6d7.png 00c3ded50093086eecc07fec34d75527.png bd3dbac784fb1059b0b11f482f4dcf75.png

3、MATLAB核心代码 

%%  Black-winged Kite Algorithm
function [Best_Fitness_BKA,Best_Pos_BKA,Convergence_curve]=BKA(pop,T,lb,ub,dim,fobj)
%% ----------------Initialize the locations of Blue Sheep------------------%
p=0.9;r=rand;
XPos=initialization(pop,dim,ub,lb);% Initial population
for i =1:pop
    XFit(i)=fobj(XPos(i,:));
end
Convergence_curve=zeros(1,T);
%% -------------------Start iteration------------------------------------%
for t=1:T
    [~,sorted_indexes]=sort(XFit);
    XLeader_Pos=XPos(sorted_indexes(1),:);
    XLeader_Fit = XFit(sorted_indexes(1));
%% -------------------Attacking behavior-------------------%
    for i=1:pop
        n=0.05*exp(-2*(t/T)^2);
        if p<r
            XPosNew(i,:)=XPos(i,:)+n.*(1+sin(r))*XPos(i,:);
        else
            XPosNew(i,:)= XPos(i,:).*(n*(2*rand(1,dim)-1)+1);
        end
        XPosNew(i,:) = max(XPosNew(i,:),lb);XPosNew(i,:) = min(XPosNew(i,:),ub);%%Boundary checking
%% ------------ Select the optimal fitness value--------------%
        XFit_New(i)=fobj(XPosNew(i,:));
        if(XFit_New(i)<XFit(i))
            XPos(i,:) = XPosNew(i,:);
            XFit(i) = XFit_New(i);
        end
%% -------------------Migration behavior-------------------%
         m=2*sin(r+pi/2);
        s = randi([1,30],1);
        r_XFitness=XFit(s);
        ori_value = rand(1,dim);cauchy_value = tan((ori_value-0.5)*pi);
        if XFit(i)< r_XFitness
            XPosNew(i,:)=XPos(i,:)+cauchy_value(:,dim).* (XPos(i,:)-XLeader_Pos);
        else
            XPosNew(i,:)=XPos(i,:)+cauchy_value(:,dim).* (XLeader_Pos-m.*XPos(i,:));
        end
        XPosNew(i,:) = max(XPosNew(i,:),lb);XPosNew(i,:) = min(XPosNew(i,:),ub); %%Boundary checking
%% --------------  Select the optimal fitness value---------%
        XFit_New(i)=fobj(XPosNew(i,:));
        if(XFit_New(i)<XFit(i))
            XPos(i,:) = XPosNew(i,:);
            XFit(i) = XFit_New(i);
        end
    end
    %% -------Update the optimal Black-winged Kite----------%
    if(XFit<XLeader_Fit)
        Best_Fitness_BKA=XFit(i);
        Best_Pos_BKA=XPos(i,:);
    else
        Best_Fitness_BKA=XLeader_Fit;
        Best_Pos_BKA=XLeader_Pos;
    end
    Convergence_curve(t)=Best_Fitness_BKA;
end
end

参考文献

[1]Wang J, Wang W, Hu X, et al. Black-winged kite algorithm: a nature-inspired meta-heuristic for solving benchmark functions and engineering problems[J]. Artificial Intelligence Review, 2024, 57(4): 1-53.

完整代码获取

后台回复关键词:

TGDM877

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python智能优化算法PDF是一本介绍Python编程语言与智能优化算法结合的专业书籍。该书通过梳理算法原理和实现过程,向读者传递算法的核心思想和应用方法。 首先,本书详细介绍了智能优化算法的基本概念和分类。智能优化算法是一种通过模拟生物演化、社会行为等自然现象来搜索最优解的方法。它主要包括遗传算法、粒子群算法、模拟退火算法、蚁群算法等。本书通过理论和实例的结合,对这些算法原理和特点进行了详细解析。 其次,本书深入介绍了Python编程语言的基础知识,并结合智能优化算法的实现示例进行讲解。Python是一门简洁而强大的编程语言,拥有丰富的库和工具,非常适合实现智能优化算法。本书通过实例代码和实践案例,指导读者如何使用Python编程语言在优化问题中应用智能算法。 此外,本书还详细介绍了如何利用Python编程语言进行算法效果评估和参数调优。在使用智能优化算法解决实际问题时,如何评估算法的性能和调整算法参数非常重要。本书通过案例讲解和实践指导,向读者传授了评估算法效果的方法和技巧,以及参数调优的实践经验。 总之,Python智能优化算法PDF是一本面向学习智能优化算法和Python编程语言的读者的专业书籍。通过理论介绍、代码示例和实践案例,本书将帮助读者全面了解智能优化算法原理和实现方法,并掌握利用Python编程语言进行算法应用和效果评估的技巧。 ### 回答2: Python智能优化算法PDF 是一本介绍Python智能优化算法的PDF电子书。Python智能优化算法是一种通过模仿自然界中的优化机制,以寻找最优解或接近最优解的算法。这本PDF书籍将帮助读者了解Python智能优化算法的基本原理和应用。 书籍的内容包括以下几个方面: 1.智能优化算法的基本概念:介绍了智能优化算法的起源和发展,包括遗传算法、粒子群优化算法、蚁群算法等常见算法。同时,也对这些算法的特点和适用范围进行了详细的介绍。 2.Python编程基础:对Python编程语言的基本语法和常用函数进行了介绍,以帮助读者理解和实现智能优化算法。 3.智能优化算法的实现:介绍了如何使用Python编写智能优化算法代码,包括如何定义适应度函数、如何设置算法的参数等。 4.实际应用案例:通过实际的案例,展示了智能优化算法在不同领域的应用,比如在工程设计、金融风险管理等方面。 该PDF书籍的特点是语言简洁明了,配有大量的代码示例和图表,便于读者理解和实践。读者不仅可以通过学习这本书来了解智能优化算法的基本原理,还可以通过实践案例来应用到实际问题中。 总之,Python智能优化算法PDF 是一本对Python智能优化算法进行全面介绍的书籍,适合对智能优化算法感兴趣的读者阅读和学习。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

今天吃饺子

不想刀我的可以选择爱我

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

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

打赏作者

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

抵扣说明:

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

余额充值