✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页:Matlab科研工作室
个人信条:格物致知。
更多Matlab仿真内容点击
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机
乌鸦搜索算法作为新提出的元启发式智能算法,其寻优方式模拟了乌鸦间相互跟随窃食的行为.为了提高算法的收敛精度,后期搜索能力等,基于传统乌鸦搜索算法提出一种新的混合乌鸦搜索算法,其核心思想是在算法中加入共享机制,改进原始算法中随机追踪的位置更新方式,降低搜索盲目性,提高收敛速度;在不同的迭代阶段对全局最优位置进行大小不同的扰动操作,有效提高了跳出局部最优的概率,保证算法全局搜索能力与局部搜索能力的平衡.最后通过8个基准函数对5种算法搜索性能在10,30,50维的情况下进行对比分析,结果表明该改进算法的综合表现要优于其他算法.
format long; close all; clear all; clc
ntr=50; % number of runs
for tr=1:ntr
ton=cputime;
pd=2; % problem dimension
nt=50; % flock size
AP=0.1;%awareness probability
[x l u]=init(nt,pd); % initialization function
xn=x;
ft=fitness(xn,nt,pd); % fitness function evaluation
mem=x;
fit_mem=ft;
tmax=500; % maximum number of iterations
for t=1:tmax
num=ceil(nt*rand(1,nt));
for i=1:nt
if rand>AP
xnew(i,:)= x(i,:)+2*rand*(mem(num(i),:)-x(i,:));
else
for j=1:pd
xnew(i,j)=[u(j)-(u(j)-l(j))*rand];
end
end
end
xn=xnew;
ft=fitness(xn,nt,pd); % fitness function
% update position
for i=1:nt
x1=xnew(i,1);x2=xnew(i,2);
if 2*(sqrt(2)*x1+x2)/(sqrt(2)*x1^2+2*x1*x2)-2<=0 & 2*x2/(sqrt(2)*x1^2+2*x1*x2)-2<=0 & 2/(sqrt(2)*x2+x1)-2<=0 & x1>=0 & x1<=1 & x2>=0 & x2<=1
x(i,:)=xnew(i,:);
if ft(i) mem(i,:)=xnew(i,:); fit_mem(i)=ft(i); end end end ffit(t)=min(fit_mem); min(fit_mem); end F(tr,:)=ffit; fitn(tr)= min(fit_mem) ngbest=find(fit_mem== min(fit_mem)); g_best(tr,:)=mem(ngbest(1),:); toff(tr)=cputime-ton; end ng=find(fitn==min(fitn)); gbest=g_best(ng(1),:) Best=min(fitn)% return best performance Wrst=max(fitn);% return worst performance Mean=mean(fitn); % return mean Std=std(fitn,1); % return std [1]辛梓芸, 张达敏, 陈忠云,等. 多段扰动的共享型乌鸦算法[J]. 计算机工程与应用, 2020, 56(2):7. ❤️ 关注我领取海量matlab电子书和数学建模资料 ❤️部分理论引用网络文献,若有侵权联系博主删除⛄ 运行结果
⛄ 参考文献