资源简介
生物地理学算法的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路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论