1 简介

布谷鸟搜索(Cuckoo Search, CS)算法是 2009 年 Xin-She Yang 与 Susash Deb 提出的一种新型的启发算法[61]。算法灵感来源于一些布谷鸟种属(Cuckoo Species)的专性寄生哺育(BroodParasitism)行为,即这些种群不会像绝大多数鸟类一样自己筑巢哺育后代,而是通常把蛋产于宿主鸟巢内,由宿主代养,这种行为被称为巢寄生。此类布谷鸟会观察宿主鸟所产的卵并对其进行模仿,按照宿主鸟卵的颜色形状来产卵,导致宿主鸟辨别出布谷鸟卵的几率微乎其微,布谷鸟卵混在宿主鸟卵中,孵化后由宿主鸟哺育并与宿主雏鸟争夺生存资源。然而,布谷鸟卵一旦被宿主鸟识破情况便不同,宿主将完全摧毁鸟巢或是仅仅将布谷鸟卵摧毁。因此布谷鸟在繁殖季会寻找孵化周期类似、雏鸟习性类似以及卵外观类似的宿主鸟。布谷鸟通常会趁宿主外出时将卵产于巢内,有时会将宿主卵推出巢后进行产卵,使布谷雏鸟独享生存资源,以提高生存几率。此外,布谷鸟等动物的觅食过程是也是一种有启发性的随机行为过程。所在位置确定移动的下一个目标点,所选取的数学模型决定移动方向。根据当前位置与到下一个位置的转移概率,它们会飞向或是走向搜索路径。鸟类的这种飞行行为,在很多研究中被证明为莱维飞行(Levy Flight)的典型特征

GWO 的这种位置更新方式缺陷十分明显:全局搜索能力薄弱,有较高的概率陷入局部最优解,尤其是在使用高维数据集时。而 CS 算法在更新宿主鸟巢的位置时,主要是通过寄养行为与莱维飞行两种操作实现。因而算法搜索步长或长或短都有几乎相等的概率,并且移动方向的选择具有高度随机性。此外,算法更容易从当前区域跳转到其他区域,完成全局搜索。基于 CS 算法的以上优点,本章将 CS 算法与 GWO 结合以提高 GWO 算法的性能,提出经布谷鸟搜索算法改进的 GWO 算法(CS-GWO),改善了 GWO 算法存在的易于陷入局部最优的问题。CS-GWO 算法具体流程图如图 所示:

2 部分代码

clear all
clc
close all
warning offSearchAgents_no=30; % Number of search agentsFunction_name='F2'; % Name of the test function that can be from F1 to F23 Max_iteration=500; % Maximum number of iterationsRun_no = 20; for k =  1 : 1 : Run_no   % Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Function_details(Function_name);[Best_score_CS2,Best_pos_CS2,AGWOCS_cg_curve]=AGWO_CS(SearchAgents_no,Max_iteration,lb,ub,dim,fobj); % Augmented GWO- Cuckoo Search.
BestSolutions1(k) = Best_score_CS2;Average= mean(BestSolutions1);Mean=mean(BestSolutions1);StandDP=std(BestSolutions1);Med = median(BestSolutions1); [BestValueP I]   = min(BestSolutions1);[WorstValueP IM] = max(BestSolutions1);disp(['Run # ' , num2str(k), ' Best_score_AGWOCS : ' , num2str( Best_score_CS2)]);
enddisp([ 'Best=',num2str( BestValueP)]);disp([ 'Worst=',num2str(WorstValueP)]);disp([ 'Average=',num2str( Average)]);disp([ 'Mean=',num2str( Mean)]);disp([ 'Standard Deviation=',num2str( StandDP)]);disp([ 'Median=',num2str(Med)]);figure('Position',[300 190 980 490])
%figure('Position',[300 190 500 270])
%Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
%colormap parula%Draw objective space
subplot(1,2,2);
%semilogy(GWO_cg_curve,'Color','r')
hold onsemilogy(AGWOCS_cg_curve,'Color','m')title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');axis tight
grid on
box on
%legend('AGWO-CS')
legend({'AGWO-CS'},'FontSize',14,'location','best')

3 仿真结果

4 参考文献

[1]顾凯冬. 基于灰狼算法优化最小二乘支持向量机的调制信号识别研究. Diss. 南京邮电大学.

### 博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。

【优化求解】基于布谷鸟算法结合灰狼算法求解最优目标matlab代码相关推荐

  1. 【优化求解】基于灰狼算法GWO求解最优目标matlab代码

    1 简介 Mirjalili 等人提出了一种新的群体智能算法---灰狼优化算法(GWO),并通过多个基准测试函数进行测试,从结果上验证了该算法的可行性,通过对比,GWO 算法已被证明在算法对函数求解精 ...

  2. 【优化求解】基于秃鹰算法BES求解最优目标matlab代码

    1 简介 秃鹰搜索 (bald eagle search,BES) 优化是马来西亚学者Alsattar 于2020年提出的一种新型元启发式算法, 该算法具有较强的全局搜索能力, 能够有效地解决各类复杂 ...

  3. 【优化求解】基于世界杯算法求解最优目标matlab代码

    1 简介 世界杯算法(World Cup Optimization(WCO))是于2016年提出的,一种基于国际足联世界杯比赛的数学函数优化方法.该方法具有收敛速度快,寻优能力强等特点. This p ...

  4. 【优化求解】基于花朵授粉FPA算法求解最优目标matlab代码

    1 简介 花朵授粉算法( Flower Pollination Algorithm,FPA)是由英国剑桥大学学者Yang 于2012年提出的,其基本思想来源于对自然界花朵自花授粉.异花授粉的模拟,是一 ...

  5. 【优化求解】基于乌燕鸥算法STOA求解最优目标matlab代码

    1 简介 乌燕鸥优化算法是由 G. Dhiman 和 A.Kaur于 2019 年针对工业工程问题提出的一种新的优化算法,其灵感来源于海鸟在自然界中觅食的行为,乌燕鸥是杂食性鸟类,以蚯蚓.昆虫.鱼等食 ...

  6. 【优化求解】基于吉萨金子塔建造优化算法 GPC求解最优目标matlab代码

    1 简介 吉萨金子塔建造优化算法(Giza Pyramids Construction,GPC)是于2020年提出的一种,新型智能优化算法,其仿照金字塔建造的过程,具有寻优能力强,精度高的特点. No ...

  7. 【优化求解】基于Levy改进哈里斯鹰算法LHHO求解最优目标matlab代码

    1 简介 2 部分代码 % Leader Harris hawks optimization (LHHO) source Code Version 1.0clearvars close all clc ...

  8. 边坡沉降预测【基于布谷鸟蚁群组合算法优化SVM】Matlab

    边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 文章目录 边坡沉降预测[基于布谷鸟蚁群组合算法优化SVM]Matlab 前言 一.边坡沉降数据特性 二.布谷鸟蚁群组合算法 三.基于布谷鸟 ...

  9. 求解全局优化问题的改进灰狼算法

    文章目录 一.理论基础 1.灰狼优化算法 2.改进的灰狼优化算法 (1)指数规律收敛因子调整策略 (2)自适应位置更新策略 (3)修订的动态权重策略 (4)MGWO算法步骤 二.实验与分析 三.参考文 ...

最新文章

  1. Redux学习(2) ----- 异步和中间件
  2. 总结SQL Server窗口函数的简单使用
  3. 分布式文件系统之Tachyon是什么?
  4. centos minimal Bind 主从服务器部署
  5. pythonurllib的使用_python re和urllib的使用问题。
  6. mybatis增加数据后,获取增加数据的主键Id
  7. 搜索引擎那些你不知道的事
  8. iOS voip电话和sip软电话 --网络电话
  9. 数据结构Data Structure in C++ 胡学钢 全书梳理(备忘自用 已完结)
  10. BH1750 传感器实战教学 —— 硬件设计篇
  11. bzoj-4318 OSU! 【数学期望】
  12. jmeter性能测试步骤入门
  13. 数据还原(recover)
  14. python爬取付费直播的视频_教你用20行代码爬取直播平台弹幕(附源码)
  15. 你写一个web网页小游戏
  16. Prometheus监控(三)—— 钉钉和企业微信告警
  17. win2008 r2 配置程序office访问权限
  18. 2021年终总结:平凡的一年
  19. 【视点】从一些实例看大数据部门的权与责
  20. 华数机器人旋转编程_用户手册-华数机器人.PDF

热门文章

  1. 运维工程师需要具备哪些性格特质?
  2. Python3制作鼠标拾色器并显示十六进制数值(有单独窗口显示取色)
  3. keil将c语言转换成hex文件格式,如何用keil烧写hex文件格式
  4. 5、linux网络编程--C/S与B/S架构的区别
  5. 青椒炒黄瓜+伏特加+Bon jovi+编程
  6. 网站渗透测试服务 squid反向代理代码执行漏洞的挖掘
  7. 编译原理——自上而下的语法分析
  8. 笔记本键盘进水和键帽问题解决
  9. c语言银行利率问题答案,郑州轻工业大学oj题解(c语言)1016: 银行利率 简单函数的使用...
  10. 阿里云 linux服务器安装tomcat(图文详解)