资源简介
生物地理学算法的matlab代码实现,包括了基础的BBO算法以及两种改进算法,参考文献
[1]Simon D. Biogeography-based optimization[J].IEEE transactions on evolutionary computation, 2008, 12(6): 702-713.
[2]康强.生物地理学优化算法的改进及在聚类优化问题上的应用[D].河南师范大学,2018.
[1]Simon D. Biogeography-based optimization[J].IEEE transactions on evolutionary computation, 2008, 12(6): 702-713.
[2]康强.生物地理学优化算法的改进及在聚类优化问题上的应用[D].河南师范大学,2018.
代码片段和文件信息
function obj = BBO(objoptions)
%=======================================================
% 精英保留机制:精英记录
for j = 1 : options.keep
elite(j:)= obj(j).Var;
elcost(j)= obj(j).Cost;
end
for i = 1:length(obj)
s(i)= options.Size-i; % 得到种群中的各个解的物种数量
lmd(i)= 0.5*options.I*(cos(pi*s(i)/options.Size)+1); % 迁入率λ
mu(i)= 0.5*options.E*(-cos(pi*s(i)/options.Size)+1); % 迁出率μ
end
%=======================================================
% 迁移算子更新
for i = 1:options.Size
lmdscale = options.lmd_span(1)+(options.lmd_span(2)-options.lmd_span(1))...
*(lmd(i)-min(lmd))/(max(lmd)-min(lmd));
for j = 1:options.N
if rand % 轮盘赌
r = rand * sum(mu);
temp = mu(1);tempi = 1;
while (r>temp)&(tempi tempi = tempi+1;
temp = temp+mu(tempi);
end
tempVar(ij)= obj(tempi).Var(j);
else
tempVar(ij)= obj(i).Var(j);
end
end
end
%=======================================================
% 更新物种概率
for i = 1:options.Size
lmd_sminus = 0.5*options.I*(cos(pi*(s(i)-1)/options.Size)+1);
mu_splus = 0.5*options.E*(-cos(pi*(s(i)+1)/options.Size)+1);
if i == 1
Psplus = 0;
else
Psplus = options.Ps(i-1);
end
if i == options.Size
Psminus = 0;
else
Psminus = options.Ps(i+1);
end
dPs(i) = -(lmd(i)+mu(i))*options.Ps(i)...
+lmd_sminus*Psminus+mu_splus*Psplus;
end
options.Ps = options.Ps+dPs*options.dt;
options.Ps = max(options.Ps0);
options.Ps = options.Ps/sum(options.Ps);
% 变异算子更新
rmutate = options.pmutate*(1-options.Ps/max(options.Ps));
for i = (options.Size/2):options.Size
for temp = 1:options.N
if rmutate(i)>rand
tempVar(itemp) = options.span(temp1)+...
(options.span(temp2)-options.span(temp1))*rand;
end
end
end
%=======================================================
% 更新栖息地信息
for i=1:options.Size
q = cost_cal(tempVar(i:)options.method);
if q obj(i).Cost=q;
obj(i).Var = tempVar(i:);
end
end
%=======================================================
% 精英保留机制:性能最差栖息地信息用精英替换
obj = queue(obj);
for i = 1:options.keep
obj(options.Size-i+1).Var = elite(i:);
obj(options.Size-i+1).Cost = elcost(i);
end
% 清除算子
for i = 1:length(obj)
for j = i+1:length(obj)
if obj(i).Var==obj(j).Var
% temp = ceil(length(obj(j).Var)*rand);
% obj(j).Var(temp)= options.s
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3907 2019-12-23 21:16 BBO code\BBO.m
文件 1383 2019-12-23 22:41 BBO code\cost_cal.m
文件 4635 2019-12-22 08:16 BBO code\DGBBO.m
文件 10003 2019-12-23 21:43 BBO code\EMBBO.m
文件 2401 2019-12-24 01:05 BBO code\image_display.m
文件 317 2019-12-20 17:06 BBO code\init.m
文件 1894 2019-12-24 02:11 BBO code\main.m
文件 299 2019-12-23 22:12 BBO code\testloop.m
文件 238 2019-12-22 15:44 BBO code\tst_fctn_figr.m
文件 374 2020-03-07 21:26 BBO code\说明.txt
目录 0 2020-03-07 21:25 BBO code
----------- --------- ---------- ----- ----
25451 11
- 上一篇:蒙特卡洛模拟法
- 下一篇:基于MATLAB的语音识别系统的设计实现 .zip
相关资源
- 基于MATLAB的语音识别系统的设计实现
- 蒙特卡洛模拟法
- PX4 EKF MATLAB代码
- 下垂控制模型
- matlab编写DFT函数
- MATLAB logistic实现图像扩散
- 锂电池matlab模型
- 复杂网络节点度和度分布计算的MATL
- 灰色预测人口增长matlab
- MATLAB 实现转轮机加密与解密
- 单相光伏并网逆变器matlab仿真
- Mann-Kendall检验Matlab程序代码.doc
- 3机9节点潮流计算编程
- 万有引力搜索算法的函数优化-matlab
- bp模型优化预测与matlab仿真,pid参数优
- matlab经典题目
- LSD直线提取算法MATLAB.rar
- SR显著图的MATLAB代码
- HOG特征的MATLAB代码
- Itti-Matlab.rar
- 图像融合算法matlab实现.zip
- 运输问题初始解求法MATLAB实现最小元
- 0-9的数字识别,
- 基于matlab的iir滤波器和gui设计.rar
- 脉搏信号特征提取
- NSCT非下采样contoulet变换matlab代码
- DCT处理图像matlab代码
- 灰度共生矩阵在matlab中实现纹理缺陷
- 图像重建迭代算法matlab
- 偏微分方程的MATLAB解法
评论
共有 条评论