正弦余弦指引的乌鸦搜索算法-附代码
正弦余弦指引的乌鸦搜索算法
文章目录
- 正弦余弦指引的乌鸦搜索算法
- 1.乌鸦搜索算法
- 2.正弦余弦指引的乌鸦搜索算法
- 2.1 代际信息交流机制
- 2.2正弦余弦指引机制
- 4.实验结果
- 5.参考文献
- 6.Matlab代码
- 7.python代码
摘要:乌鸦搜索算法模拟乌鸦觅食行为对个体位置进行更新与搜索,为降低基本乌鸦搜索位置更新策略本身存在 的盲目性,将正弦余弦作为局部优化算子嵌入到基本算法中,提出了正弦余弦指引的乌鸦搜索算法。该算法通过正 弦余弦操作使每一个乌鸦个体都可以充分吸收自身与最优个体的位置差信息,有效指引乌鸦个体沿最优值方向趋近 最优值,改善算法的收敛效果和寻优精度。
1.乌鸦搜索算法
基础乌鸦搜索算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108800505
2.正弦余弦指引的乌鸦搜索算法
2.1 代际信息交流机制
针对CSA位置更新策略一存在的盲目性,引入代际 信息交流机制,将原始算法中乌鸦个体iii追随位置随机 产生的乌鸦jjj的位置更新策略改为乌鸦个体iii以第iii只乌鸦的在上一次迭代时的食物藏匿点 MiTM_i^TMiT为导向的位 置追踪更新策略,即改进后的乌鸦iii位置更新公式如下:
Xi(T+1)={XiT+r1×LiT×(MiT−XiT),r2⩾APa rand position, otherwise \boldsymbol{X}_{i}^{(T+1)}=\left\{\begin{array}{l} \boldsymbol{X}_{i}^{T}+r_{1} \times \boldsymbol{L}_{i}^{T} \times\left(\boldsymbol{M}_{i}^{T}-\boldsymbol{X}_{i}^{T}\right), r_{2} \geqslant A P \\ \text { a rand position, otherwise } \end{array}\right. Xi(T+1)={XiT+r1×LiT×(MiT−XiT),r2⩾AP a rand position, otherwise
对乌鸦搜索算法进行的这种改进调整在一定程度 上避免了 r2≥APr_2 ≥ APr2≥AP 情况下的乌鸦个体位置更新的盲目 性,使得乌鸦 i 每次向着上一代个体最优位置移动,从 而提高算法收敛速度。
2.2正弦余弦指引机制
CSA 参数少、结构简单,使用时一般将APAPAP和 LiTL^T_iLiT 设置为固定值,缺乏动态参数,算法缺乏适应性。经实验本文取 AP=0.1AP = 0.1AP=0.1 、LiT=2L^T_i = 2LiT=2 ,AP=0.1AP = 0.1AP=0.1 使得算法倾向于 局部搜索,这虽然可以加快收敛速度,但也会使得种群 个体在解的空间内迅速的聚集,从而陷入局部最优。LiT=2L^T_i = 2LiT=2时,算法倾向于全局搜索,但也使得算法的收敛性降低,导致搜索效率 不高。固定的参数设置使得 CSA 的搜索能力受限,为 进一步优化 CSA算法协调全局的探索与局部开发的能 力,本文引入正弦余弦指引机制,将正弦余弦算法 (Sine Cosine Algorithm,SCA)作为局部优化算子嵌 入乌鸦搜索算法,即在迭代后期对整个乌鸦个体进行正 弦余弦的操作指引乌鸦个体更新到新的乌鸦位置,操作方式为:
Xi(T+1)={XiT+R1×sin(R2)×∣R3×MiT−XiT∣,R4⩽0.5XiT+R1×cos(R2)×∣R3×MiT−XiT∣,R4>0.5\boldsymbol{X}_{i}^{(T+1)}=\left\{\begin{array}{l} \boldsymbol{X}_{i}^{T}+R_{1} \times \sin \left(R_{2}\right) \times\left|R_{3} \times \boldsymbol{M}_{i}^{T}-\boldsymbol{X}_{i}^{T}\right|, R_{4} \leqslant 0.5 \\ \boldsymbol{X}_{i}^{T}+R_{1} \times \cos \left(R_{2}\right) \times\left|R_{3} \times \boldsymbol{M}_{i}^{T}-\boldsymbol{X}_{i}^{T}\right|, R_{4}>0.5 \end{array}\right. Xi(T+1)=⎩⎨⎧XiT+R1×sin(R2)×∣∣∣R3×MiT−XiT∣∣∣,R4⩽0.5XiT+R1×cos(R2)×∣∣∣R3×MiT−XiT∣∣∣,R4>0.5
式中存在四个参数$R_1 、R_2 、R_3 $和 R4R_4R4 ,R1R_1R1 决定下一次 迭代第iii个个体的位置更新方向,不同的 R1R_1R1 对解的搜 索范围有着不同的影响,R1=a−T×a/TmaxR_1 = a - T × a/T_{max}R1=a−T×a/Tmax ,随着迭代次 数自适应调整,缩小乌鸦个体的搜索范围,保证了算法 的收敛性,使之最终收敛于一个最优解,aaa为常数,本文中取 a=2a = 2a=2 ;R2R_2R2 是属于[0,2π]的随机数,决定下一次迭代 中个体的移动距离;R3R_3R3 为随机权重取值范围为[0,2], R3>1R_3 > 1R3>1 时,MiTM_i^TMiT 对下一次迭代中个体位置有较明显的影响,否则无明显影响效果;R4∈[0,1]R_4 ∈ [0,1]R4∈[0,1]为一个随机数,其 大小决定位置更新方式选择余弦还是正弦操作。
正弦余弦指引机制的引入,一方面可以极大地弥补 CSA算法位置更新策略存在盲目性缺点,这是由于不管 是正弦操作还是余弦操作,乌鸦个体都会与最优个体进 行信息交流,促进信息在种群中快速传播,每一个乌鸦 个体都可以充分吸收自身与最优个体的位置差信息,以 引导一般个体逐步接近最优个体,在这个过程中参数R1R_1R1 和R2R_2R2 ,也可以有效控制个体的搜索方向和距离。另 一方面,正弦余弦指引机制使得乌鸦个体进 一步在同一个空间的不同区域范围内进行全局搜索和 局部寻优,并最终收敛于同一个最优解即目标函数值。 正弦操作保证全局搜索避免错过潜在最优解以减少余 弦开发的寻优盲点,减少个体在局部最优中停滞的可能 性,而余弦操作促进局部开发弥补正弦全局搜索收敛速 度慢的缺陷,提高搜索效率,加快收敛速度。正弦余弦 相互配合,共同促进算法性能的改进。
算法流程图如下:
4.实验结果
5.参考文献
[1]肖子雅,刘升,韩斐斐,于建芳.正弦余弦指引的乌鸦搜索算法研究[J].计算机工程与应用,2019,55(21):52-59.
6.Matlab代码
7.python代码
正弦余弦指引的乌鸦搜索算法-附代码相关推荐
- 智能优化算法:闪电搜索算法-附代码
智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
- 多段扰动共享型乌鸦算法-附代码
多段扰动共享型乌鸦算法 文章目录 多段扰动共享型乌鸦算法 1.乌鸦搜索算法 2.基于多段扰动的共享型乌鸦算法 2.1 加入共享机制的位置更新方式 2.2 加入扰动策略更新最优藏食位置 4.实验结果 5 ...
- 【乌鸦算法】基于正弦余弦指引乌鸦算法求解单目标优化问题含Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 混合策略改进的麻雀搜索算法-附代码
混合策略改进的麻雀搜索算法 文章目录 混合策略改进的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 Circle 混沌初始化策略 2.2 蝴蝶优化策略 2.3 逐维变异策略 3.实验结果 ...
- 融合多策略的改进麻雀搜索算法-附代码
融合多策略的改进麻雀搜索算法 文章目录 融合多策略的改进麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 正弦搜索策略 2.2 多样性变异处理 3.实验结果 4.参考文献 5.Matlab代 ...
- 基于正交对立学习的改进麻雀搜索算法-附代码
基于正交对立学习的改进麻雀搜索算法 文章目录 基于正交对立学习的改进麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 正态变异扰动 2.2 对立学习 2.3 正交对立学习 3.实验结果 4. ...
- 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法-附代码
基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 文章目录 基于 Sobol 序列和纵横交叉策略的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 基于 Sobol 序列初始化种群位置 2 ...
最新文章
- java mapreduce编程_Hadoop实验——MapReduce编程(1)
- 赠票福利 | 2019人工智能计算大会即将开幕,与王恩东、陆永青、王海峰等专家共话AI计算技术与未来...
- mac 键盘映射优化配置
- 使用export/import导出和导入docker容器
- Laravel 开发环境搭建
- pytorch导入模型
- linux centos挂载数据盘教程
- VBA引用管理加载宏
- 免费使用中国知网/查看外文文献—浙江图书馆
- 使用R包barplot3d绘制3D条形图-2020-07-04Sat
- Linux查看当前时间
- python螺旋线-利用Python绘制一个正方形螺旋线
- 关于最近网上谣言传的很凶的 “太吾绘卷” 游戏源代码的问题。
- 升级 MDK 5.37 后的问题处理: AC6编译选项, printf, 重启失效等
- 企业中了勒索病毒该怎么办?可以解密吗?
- hp服务器通过ilo5安装系统,HPE ProLiant Gen10 通过iLO 5(v1.15) web界面多种方式更新服务器固件,包含升级系统恢复集方法...
- add_metrology_object_circle_measure (对齐测量模型)
- vs2022最新版本安装MVC4详细教程
- UT-Exynos4412开发板三星ARM四核旗舰开发平台android4.0体验-11有线网络功能调试
- postgis常用的函数