资源简介
差分进化算法结合人工蜂群形成差分蜂群算法(DE-ABC),并与粒子群、遗传、差分进化、人工蜂群进行对比,内涵5种标准测试函数
代码片段和文件信息
function [GlobalParamsGlobalMinBestGlobalMins]=abc(objfundmax_itersizepopublb)
%% 参数初始化
NP=sizepop; % 蜂群规模
FoodNumber=NP/2; % 蜜源(解)数量
limit=100; % 当有蜜源连续没被更新的次数超过limit时,该蜜源将被重新初始化
maxCycle=max_iter; % 最大迭代次数
% 待优化参数信息
D=d; % 待优化参数个数,次数为c和g两个
ub=ones(1D)*ub; % 参数取值上界
lb=ones(1D)*lb; % 参数取值下界
runtime=1; % 可用于设置多次运行(让ABC算法运行runtime次)以考察程序的稳健性
BestGlobalMins=[]; %用于存放全局最优解与平均适应度值
BestGlobalParams=zeros(runtimeD); % 用于存放ABC算法优化得到的最优参数
GlobalMin=inf;
GlobalParams=[inf inf];
%% 初始化蜜源
Range = repmat((ub-lb)[FoodNumber 1]);
Lower = repmat(lb [FoodNumber 1]);
Foods = rand(FoodNumberD) .* Range + Lower;
% 计算每个蜜源(解)得目标函数值,objfun为计算SVM预测的平均平方误差(MSE)的函数,根据自己的实际问题变异目标函数即可
ObjVal=ones(1FoodNumber);
for k = 1:FoodNumber
ObjVal(k) = objfun(Foods(k:));
end
Fitness=calculateFitness(ObjVal); % 计算适应度函数值
% 标记初始最优蜜源(解)
BestInd=find(ObjVal==min(ObjVal));
BestInd=BestInd(end);
if (ObjVal(BestInd) GlobalMin=ObjVal(BestInd);
GlobalParams=Foods(BestInd:);
end
%%
for r=1:runtime % 运行ABC算法runtime次
trial=zeros(1FoodNumber); % 用于记录第i个蜜源有连续trail(i)次没被更新过
iter=1; % 迭代开始
while ((iter <= maxCycle)) % 循环条件
%%%%%%%%%%%%%%%%%%%%%引领蜂搜索解的过程%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:(FoodNumber) % 遍历每个蜜源(解)
Param2Change=fix(rand*D)+1; % 随机选择需要变异的参数
neighbour=fix(rand*(FoodNumber))+1; % 随机选择相邻蜜源(解)以准备变异
% 需要保证选择的相邻蜜源不是当前蜜源(i)
while(neighbour==i)
neighbour=fix(rand*(FoodNumber))+1;
end
sol=Foods(i:); % 提取当前蜜源(解)对应的的参数
% 参数变异得到新的蜜源:v_{ij}=x_{ij}+\phi_{ij}*(x_{kj}-x_{ij})
sol(Param2Change)=Foods(iParam2Change)+(Foods(iParam2Change)-Foods(neighbourParam2Change))*(rand-0.5)*2;
% 确保参数取值范围不越界
ind=find(sol
sol(ind)=lb(ind);
ind=find(sol>ub);
sol(ind)=ub(ind);
% 计算变异后蜜源的目标函数值和适应度函数值
ObjValSol=objfun(sol);
FitnessSol=calculateFitness(ObjValSol);
% 更新当前蜜源的相关信息
if (FitnessSol>Fitness(i))
Foods(i:)=sol;
Fitness(i)=FitnessSol;
ObjVal(i)=ObjValSol;
trial(i)=0; % 如果当前蜜源被更新了,则对应的trial归零
else
trial(i)=trial(i)+1; % 如果当前蜜源没有被更新,则trial(i)加1
end
end
%%%%%%%%%%%%%%%%%%%%%%%% 跟随蜂搜索解的过程 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 计算解(蜜源)的概率
prob=(0.9.*Fitness./max(Fitness))+0.1;
% 循环初始化
i=1;
t=0;
while(t if(rand t=t+1; % 循环计数器加1
Param2Change=fix(rand*D)+1; % 随机确定需要变异的参数
neighbour=fix(rand*(FoodNumber))+1; % 随机选择相邻蜜源(解)
% 需要保证选择的相邻蜜源不是当前蜜源(i)
while(neighbour==i)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
.CA.... 5844 2019-05-05 20:37 差分蜂群优化算法MATLAB实现\abc.m
.CA.... 5714 2019-05-05 20:37 差分蜂群优化算法MATLAB实现\ABC1.m
.CA.... 182 2008-06-09 19:54 差分蜂群优化算法MATLAB实现\calculateFitness.m
.CA.... 322 2019-03-30 13:23 差分蜂群优化算法MATLAB实现\Code.m
.CA.... 1613 2019-03-30 13:32 差分蜂群优化算法MATLAB实现\Cross.m
.CA.... 2590 2019-05-05 19:44 差分蜂群优化算法MATLAB实现\DE.m
.CA.... 2496 2020-05-19 13:29 差分蜂群优化算法MATLAB实现\de1.m
.CA.... 1547 2019-05-05 20:29 差分蜂群优化算法MATLAB实现\DEABC.m
.CA.... 76 2019-04-29 10:54 差分蜂群优化算法MATLAB实现\f1.m
.CA.... 186 2019-04-29 10:54 差分蜂群优化算法MATLAB实现\f2.m
.CA.... 174 2019-04-29 10:51 差分蜂群优化算法MATLAB实现\f3.m
.CA.... 137 2019-04-29 10:54 差分蜂群优化算法MATLAB实现\f4.m
.CA.... 2462 2019-05-03 13:14 差分蜂群优化算法MATLAB实现\ga.m
.CA.... 1239 2020-05-19 13:24 差分蜂群优化算法MATLAB实现\MAIN.m
.CA.... 1455 2019-03-30 13:54 差分蜂群优化算法MATLAB实现\Mutation.m
.CA.... 2657 2020-05-19 13:31 差分蜂群优化算法MATLAB实现\pso.m
.CA.... 806 2019-03-30 13:25 差分蜂群优化算法MATLAB实现\select.m
.CA.... 3456266 2019-03-30 16:28 差分蜂群优化算法MATLAB实现\一种新的混合智能极限学习机_林梅金.caj
.CA.... 55 2020-05-19 13:32 差分蜂群优化算法MATLAB实现\程序说明.txt
.C.D... 0 2020-05-19 13:32 差分蜂群优化算法MATLAB实现
----------- --------- ---------- ----- ----
3485821 20
- 上一篇:数学建模的29个通用模型及matlab解法
- 下一篇:simuli
nk部分模块介绍
相关资源
- MATLAB优化算法测试函数
- MATLAB多种优化算法介绍
- 多目标优化算法
- 超完整规范的多目标遗传优化算法M
- Matlab优化算法.pdf
- Matlab优化算法PDF
- 最优化方法及其Matlab程序设计 马昌凤
- MATLAB优化算法案例分析与应用-配书代
- Matlab编写多目标优化算法NSGA-Ⅱ的详解
- Matlab智能算法285081
- 智能优化算法及其MATLAB-(第2版)
- 两个经典的多目标优化算法代码:N
- MATLAB优化算法案例分析与应用 源代码
- 智能优化算法及其MATLAB[包子阳余继周
- [高清文字版]MATLAB优化算法案例分析与
- MATLAB优化算法案例分析与应用第1版电
- MATLAB优化算法案例分析与应用案例及
- 鲸鱼优化算法 WOA matlab源代码详细注释
- matlab下的MVO飞蛾优化算法
- MATLAB优化算法案例分析与应用进阶篇
- MATLAB优化算法案例分析与应用_进阶篇
- 《MATLAB优化算法案例分析与应用》p
- MATLAB优化算法案例分析与应用(基础
- 遗传粒子群优化算法-GAPSO.rar
- MATLAB智能优化算法PDF及程序
- 入侵杂草优化算法matlab仿真程序
- MATLAB优化算法案例分析与应用(进阶
- 基于 基于遗传算法的BP神经网络优化
- 粒子群优化算法matlab编写,共十三种
- 用于优化和非线性规划问题的遗传算
评论
共有 条评论