【乌鸦算法】基于多段扰动共享型乌鸦算法求解单目标优化问题含Matlab代码

简介: 【乌鸦算法】基于多段扰动共享型乌鸦算法求解单目标优化问题含Matlab代码

✅作者简介:热爱科研的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)<fit_mem(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电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
4月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
262 0
|
4月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
232 8
|
4月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
244 8
|
4月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
447 0
|
4月前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
159 0
|
4月前
|
新能源 Java Go
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
【EI复现】参与调峰的储能系统配置方案及经济性分析(Matlab代码实现)
162 0
|
4月前
|
机器学习/深度学习 数据采集 测试技术
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
基于CEEMDAN-VMD-BiLSTM的多变量输入单步时序预测研究(Matlab代码实现)
165 8
|
4月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
256 8
|
4月前
|
编解码 运维 算法
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
247 12
|
4月前
|
人工智能 数据可视化 网络性能优化
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
【顶级SCI复现】虚拟电厂的多时间尺度调度:在考虑储能系统容量衰减的同时,整合发电与多用户负荷的灵活性研究(Matlab代码实现)
181 9

热门文章

最新文章