问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

黑翅鸢优化算法(BKA)原理及实现

创作时间:
作者:
@小白创作中心

黑翅鸢优化算法(BKA)原理及实现

引用
CSDN
1.
https://blog.csdn.net/Logic_9527/article/details/139018148

黑翅鸢优化算法(Black-winged Kite Algorithm, BKA)是一种基于黑翅鸢迁徙和捕食行为启发的新型优化算法。该算法由J Wang于2024年提出,具有独特的生物启发特征,不仅捕捉了黑翅鸢在自然界中的飞行和捕食行为,还深入模拟了它们对环境变化和目标位置的高适应性。

1.背景

2024年,J Wang受到黑翅鸢迁徙和捕食行为启发,提出了黑翅鸢优化算法(Black-winged Kite Algorithm, BKA)。

2.算法原理

2.1算法思想

BKA具有独特的生物启发特征,不仅捕捉了黑翅鸢在自然界中的飞行和捕食行为,还深入模拟了它们对环境变化和目标位置的高适应性。BKA中引入了柯西变异策略,有助于算法跳出局部最优解,并增加在全局搜索空间中发现更好解的概率。同时,BKA集成了一种领导策略,模拟了风筝社区中领导者的领导作用,确保算法能够有效利用当前的最佳解并指导搜索方向。

2.2算法过程

攻击行为

黑翅鸢是草原小型哺乳动物和昆虫的捕食者,在飞行过程中根据风速调整翅膀和尾巴的角度,静静地悬停观察猎物,然后迅速俯冲攻击,该策略包括不同的攻击行为,用于全局探索和搜索。黑翅鸢攻击行为:

$$
y_{t+1}^{i,j}=\left{
\begin{array}{c}
y_t^{i,j}+n(1+\sin(r))\times y_t^{i,j} & p<r\
y_t^{i,j}+n\times(2r-1)\times y_t^{i,j} & else
\end{array}
\right.
\tag{1}
$$

其中,

$$
n=0.05\times e^{-2\times\left(\frac{t}{T}\right)^{2}}
\tag{2}
$$

迁移行为

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

$$
y_{t+1}^{i,j}=\begin{cases}
\quad y_t^{i,j}+C(0,1)\times\left(y_t^{i,j}-L_t^j\right)\quad & F_i<F_{ri}\
\quad y_t^{i,j}+C(0,1)\times\left(L_t^j-m\times y_t^{i,j}\right)\quad & else
\end{cases}
\tag{3}
$$

其中,

$$
m=2\times\sin{(r+\pi/2)}
\tag{4}
$$

Lt表示第t次迭代领先得分者,C(0,1)表示柯西变异算子,一维柯西分布的概率密度函数:

$$
f(x,\delta,\mu)=\frac{1}{\pi}\frac{\delta}{\delta^2+(x-\mu)^2},\quad-\infty<x<\infty
\tag{5}
$$

当δ = 1, μ = 0时,其概率密度函数成为标准形式:

$$
f(x,\delta,\mu)=\frac{1}{\pi}\frac{1}{x^2+1},\quad-\infty<x<\infty
\tag{6}
$$

伪代码

function BKA(N, D, Max_iter)
    % 初始化种群
    X = rand(N, D);
    % 初始化适应度值
    Fitness = zeros(N, 1);
    for i = 1:N
        Fitness(i) = ObjectiveFunction(X(i, :));
    end
    % 初始化最优解
    [Best_fitness, Best_index] = min(Fitness);
    Best_X = X(Best_index, :);
    % 迭代优化
    for t = 1:Max_iter
        % 攻击行为
        for i = 1:N
            for j = 1:D
                r = rand();
                if r < p
                    X(i, j) = X(i, j) + n * (1 + sin(r)) * X(i, j);
                else
                    X(i, j) = X(i, j) + n * (2 * r - 1) * X(i, j);
                end
            end
            % 计算适应度值
            Fitness(i) = ObjectiveFunction(X(i, :));
        end
        % 迁移行为
        for i = 1:N
            for j = 1:D
                r = rand();
                m = 2 * sin(r + pi / 2);
                if Fitness(i) < Fitness(randi(N))
                    X(i, j) = X(i, j) + C(0, 1) * (X(i, j) - Best_X(j));
                else
                    X(i, j) = X(i, j) + C(0, 1) * (Best_X(j) - m * X(i, j));
                end
            end
            % 计算适应度值
            Fitness(i) = ObjectiveFunction(X(i, :));
        end
        % 更新最优解
        [Current_best_fitness, Current_best_index] = min(Fitness);
        if Current_best_fitness < Best_fitness
            Best_fitness = Current_best_fitness;
            Best_X = X(Current_best_index, :);
        end
    end
    % 返回最优解
    return Best_X, Best_fitness;
end

3.结果展示

(此处省略具体结果展示内容)

4.参考文献

[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.

5.代码获取

(此处省略代码获取方式)

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号