资源简介
matlab实现蝙蝠算法(BA)代码,可用于智能算法的优化
代码片段和文件信息
% Bat-inspired algorithm for continuous optimization %
% ------------------------------------------------------%
function [bestfminN_iter]=bat(para) % [y1...yN] = myfun(x1...xM)
% 默认参数
if nargin<1 %nargin(fx)返回函数fx的定义语句中出现的输入参数的数量。
para=[10 0.25 0.5];
end
n=para(1); % 群体大小 通常为【10,25】
A=para(2); % 音量 (不变或者减小)
r=para(3); % 脉冲率 (不变或增加)
% 频率范围
Qmin=0; % 最低频率
Qmax=2; % 最高频率
% 迭代参数
tol=10^(-5); % 停止精度
N_iter=0; % 评价函数的总数 迭代次数
% 搜索变量的维数
d=4;
% 初始矩阵
Q=zeros(n1); % 频率 n行1列矩阵
v=zeros(nd); % 速度 n行d列矩阵
% 初始化群体/解
for i=1:n
Sol(i:)=randn(1d);
Fitness(i)=Fun(Sol(i:));
end
% 寻找当前最优解
[fminI]=min(Fitness);
best=Sol(I:);
% 开始迭代
while (fmin>tol)
%遍历所有蝙蝠或者解决方案
for i=1:n
Q(i)=Qmin+(Qmin-Qmax)*rand;
评论
共有 条评论