改进的蝙蝠算法-ELBA


1. 简介

Lucas等人提出了一种改进的蝙蝠算法,称为增强Levy飞行蝙蝠算法-ELBA。从计算的角度来看,ELBA的主要创新在于:(1)引入了特定的数学表达式,增强了种群多样性;(2)采用基于Levy飞行的数学表达式进行有效的局部搜索;(3)选择新的参数控制方程。该算法很好的平衡了局部开发和全局探索之间的平衡。仿真结果表明,ELBA算法在有效性、鲁棒性、稳定性、收敛速度和仿真时间等方面都具有很强的竞争力。

2. 核心公式

\[x_{i}^{t+1} = x_{i}^{t} + rand(x_{b1}^{t}-x_{b2}^{t}) + rand(x_{b3}^{t}-*x_{b4}^{t}) \tag{15} \]

\[x_{i}^{t+1} = x_{i}^{t} + (x^{*} - x_{i})f_{i} \tag{16} \]

\[x_{i}^{t+1} = x_{i}^{t} + 0.01s(x^{*} - x_{i}) \tag{19} \]

\[r_{i} = (r_0 - r_{\infty})(\frac{t-t_{max}}{1-t_{max}}) + r_{\infty} \tag{20} \]

\[A_{i} = (A_0 - A_{\infty})(\frac{t-t_{max}}{1-t_{max}}) + A_{\infty} \tag{21}\\ \]

2. 算法流程图

3. 实验-matlab

% =========================================================================
% Title: ELBA
% Author: Lee WenTsao
% Time: 2022-04-16
% Reference:Parameter extraction of photovoltaic models using an enhanced
%           Levy flight bat algorithm
% =========================================================================
clc;
clear;
close all;

%% 问题参数定义
n = 50;  % 种群规模
d = 10;   % 维度

Lb = -100*ones(1, d);  % 下界
Ub =  100*ones(1, d);  % 上界

Fun = @ Sphere;  % 目标函数

%% 蝙蝠算法参数定义
A_min = 1;
A_max = 0;

r_min = 0;
r_max = 1;


Freq_min = 0;     % 蝙蝠发射频率的下界
Freq_max = 5;   % 蝙蝠发射频率的上界

t_max = 1000;     % 最大迭代次数

fmin = inf;
best = zeros(1, n);

%% 初始化
v = zeros(n, d);
Fitness = zeros(n, 1);
Sol = zeros(n, d);
for i=1:n
    Sol(i, :) = Lb + (Ub - Lb).*rand(1, d);  % 随机初始化种群
    Fitness(i) = Fun(Sol(i, :));             % 评估
    
    if Fitness(i)r 
             L = Levy(d);
             dS = L.*(Sol(i,:) - best);
             S(i,:) = Sol(i,:) + dS;
        end
        
        Fnew = Fun(S(i,:));
        if rand

3. 实验效果

4. 参考文献

[1] Deotti L M P, Pereira J L R, da Silva Júnior I C. Parameter extraction of photovoltaic models using an enhanced Lévy flight bat algorithm[J]. Energy Conversion and Management, 2020, 221: 113114.

相关