改进的蝙蝠算法-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.