1 模型
生物地理分布优化算法 (BBO)是一种新型的智能优化算法,其寻优能力优于以往的智能优化算法,但同样存在早熟收敛的缺陷.针对该问题,提出了基于混沌的生物地理分布优化算法 (CBBO).该算法首先利用分段混沌映射产生初始种群,再根据BBO算法进行全局搜索得到当前最优解,最后以该解为基础进行混沌搜索得到全局最优解. 仿真测试表明,该算法的收敛速度和寻优精度均优于BBO算法和以往智能优化算法.
2 部分代码
\```ma
clc;
clear;
close all;
%% Problem Definition
CostFunction=@(x) Sphere(x); % Cost Functio
nVar=5; % Number of Decision Variables
VarSize=[1 nVar]; % Decision Variables Matrix Size
VarMin=-10; % Decision Variables Lower Bound
VarMax= 10; % Decision Variables Upper Bound
%% BBO Parameters
MaxIt=1000; % Maximum Number of Iterations
nPop=50; % Number of Habitats (Population Size)
KeepRate=0.2; % Keep Rate
nKeep=round(KeepRate*nPop); % Number of Kept Habitats
nNew=nPop-nKeep; % Number of New Habitats
% Migration Rates
mu=linspace(1,0,nPop); % Emmigration Rates
lambda=1-mu; % Immigration Rates
alpha=0.9;
pMutation=0.1;
sigma=0.02*(VarMax-VarMin);
%% Initialization
% Empty Habitat
habitat.Position=[];
habitat.Cost=[];
% Create Habitats Array
pop=repmat(habitat,nPop,1);
% Initialize Habitats
for i=1:nPop
pop(i).Position=unifrnd(VarMin,VarMax,VarSize);
pop(i).Cost=CostFunction(pop(i).Position);
end
% Show Iteration Information
disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);
end
%% Results
figure;
%plot(BestCost,'LineWidth',2);
semilogy(BestCost,'LineWidth',2);
xlabel('Iteration');
ylabel('Best Cost');
grid on;
3 仿真结果
4 参考文献
[1]张萍, 魏平, 于鸿洋, & 费春. (2012). 基于混沌的生物地理分布优化算法. 电子科技大学学报(01), 65-69.
5 MATLAB代码与数据下载地址
见博客主页头条