• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: Matlab
  • 标签: ABC  

资源简介

人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度。为了解决多变量函数优化问题,Karaboga提出了人工蜂群算法ABC模型(artificial bee colony algorithm)。本资源为人工蜂群算法 matlab代码

资源截图

代码片段和文件信息

clear 
clc
NI=30;%试验次数
t=zeros(1NI);
for ni=1:NI
    tic;
%人工蜂群算法
%算法参数
%采蜜蜂个数 CN  引领蜂
%蜜源  MN  
%工蜂数目 GN  跟随蜂
N=10;
CN=N;
MN=N;
GN=N;
Limit=50;
%问题参数
%问题维数
D=2;
%变量范围
xmax=550*ones(1D);
xmin=50*ones(1D);
%最大迭代次数
K=1000;
limit=50;
xcn=zeros(ND);
xgn=zeros(ND);
xmn=zeros(ND);
popu=zeros(2*ND);
fpopu=zeros(12*N);

%算法初始化
for i=1:2*N
    popu(i:)=xmin+rand(1D).*(xmax-xmin);
end
%适应值计算
for i=1:2*N
    fpopu(i)=func(popu(i:));
end
[Bd]=sort(fpopu);
i=1;
while i<=N
    xmn(i:)=popu(d(i):);
     fmn(i)=B(i);
    i=i+1;
end
   
    xcn=xmn;
    fcn=fmn;
    
%迭代开始
k=1;
while k<=K
    g=k;
    %引领蜂探索
    for i=1:CN
        j=ceil(rand*D);
        d=ceil(N*rand);
        xcn(ij)=xmn(ij)+(2*rand-1)*(xmn(ij)-xmn(dj));
    end
    for i=1:CN
          fcn(i)=func(xcn(i:));
        if fcn(i)           xmn(i:)=xcn(i:);
           fmn(i)=fcn(i);
        end
    end
    %跟随蜂跟随引领蜂
    xgn=xcn;
    fgn=fcn;
    sf=sum(fgn);%目标函数的总和

评论

共有 条评论