多策略调和的布谷鸟搜索算法

article/2025/10/5 4:50:23

文章目录

  • 一、理论基础
    • 1、布谷鸟搜索算法
    • 2、多策略调和的布谷鸟搜索算法
      • (1)自适应步长
      • (2)更新方法
      • (3)多策略调和
      • (4)MSRCS算法流程
  • 二、实验仿真与结果分析
  • 三、参考文献

一、理论基础

1、布谷鸟搜索算法

请参考这里。

2、多策略调和的布谷鸟搜索算法

(1)自适应步长

本文提出了一种新的自适应步长策略以提高CS算法的搜索效率,即自适应步长随迭代次数的增加而减小。在迭代前期,MSRCS的大步长扩大了其搜索范围,提高算法的全局搜索能力,有利于算法更快找到更优解,加快收敛速度;在迭代后期,小步长有利于算法的局部搜索。步长的规律变化对布谷鸟的搜索起引导作用,即在整体上从全局搜索逐渐过渡到局部搜索。该策略主要是由线性递减的自适应步长控制因子 α 0 \alpha_0 α0决定,公式如下: α 0 = η × cos ⁡ [ π 3 × ( 1 + t 2 G ) ] (1) \alpha_0=\eta\times\cos\left[\frac\pi3\times\left(1+\frac{t}{2G}\right)\right]\tag{1} α0=η×cos[3π×(1+2Gt)](1)其中, η \eta η是控制步长变化范围的调和因子,并决定步长的初值,本文取值为0.5。根据余弦函数在范围呈递减变化的特性,并将步长与迭代次数进行关联,使步长也随着迭代次数的增加而减小。自适应 α 0 \alpha_0 α0为近似一条直线的曲线,为整个搜索过程提供了轻微的缓冲作用。 α 0 \alpha_0 α0的范围是 [ 0 , 0.25 ] [0,0.25] [0,0.25]

(2)更新方法

本文提出了CS-current、CS-best和CS-rand三种不同的更新方法。
1)CS-current更新方法以布谷鸟自身当前位置为中心,在其邻域内搜索潜在更优解,并加入 X b e s t t X_{best}^t Xbestt控制寻优方向,防止布谷鸟在其他方向上进行无效的搜索和评价次数的浪费。公式如下: X i t + 1 = X i t + R d × [ ( X b e s t t − X i t ) + ( X j t − X k t ) ] (2) X_i^{t+1}=X_i^t+R_d\times\left[(X_{best}^t-X_i^t)+(X_j^t-X_k^t)\right]\tag{2} Xit+1=Xit+Rd×[(XbesttXit)+(XjtXkt)](2)其中, X i t X_i^t Xit是当前解, X b e s t t X_{best}^t Xbestt是当代最优解, X j t X_j^t Xjt X k t X_k^t Xkt是当前种群随机选取的两个解, R d R_d Rd是一行 d d d维且在 ( 0 , 1 ) (0,1) (0,1)之间的随机数矩阵,服从均匀分布。相于比一个单纯的随机数,它改变了简单的学习方式,使各维度的信息多样化。
2)CS-best更新方法以当前最优解为引导,使当前布谷鸟向着当前最优解的方向移动。公式如下: X i t + 1 = X b e s t t + R d × [ ( X b e s t t − X j t ) + ( X k t − X i t ) ] (3) X_i^{t+1}=X_{best}^t+R_d\times\left[(X_{best}^t-X_j^t)+(X_k^t-X_i^t)\right]\tag{3} Xit+1=Xbestt+Rd×[(XbesttXjt)+(XktXit)](3)
3)在CS-rand更新方法中,通过学习两个随机个体各维度的不同信息,生成一个新的随机个体。公式如下: X i t + 1 = V + r × R d × [ ( X j t − X i t ) + ( X k t − X i t ) ] (4) X_i^{t+1}=V+r\times R_d\times\left[(X_{j}^t-X_i^t)+(X_k^t-X_i^t)\right]\tag{4} Xit+1=V+r×Rd×[(XjtXit)+(XktXit)](4) V = r ⋅ X m t + ( 1 − r ) ⋅ X n t (5) V=r\cdot X_m^t+(1-r)\cdot X_n^t\tag{5} V=rXmt+(1r)Xnt(5)基于以上分析发现,三种新的更新方法能够从多方面寻找算法更优解,根据算法在迭代过程中的缺陷使用不同的更新方法在搜索空间中进行寻优,不仅在迭代过程中加快收敛速度,还有效克服算法收敛停滞,提高跳出局部极值的能力。

(3)多策略调和

为适应算法在不同阶段的需求,使策略的选择更加有效,提出了一种多策略调和,对自适应步长和三种改进更新方法组成的调和策略进行选择,以调和算法的勘探与开采。
调和策略一将自适应步长和CS-current结合,并设置调和因子 p 1 = 0.8 p_1=0.8 p1=0.8来调节选择概率。 调和策略一流程如下:

If r<p1 使用自适应Lévy飞行更新个体 
Else 使用CS-current方法更新个体

在迭代前期,算法的最优解不明显,且解较为分散,适度使用CS-current有利于算法更快地找到自身邻域内的潜在最优解,在迭代前期对算法的勘探与开采起调和作用。
调和策略二将自适应步长和CS-best、CS-rand结合。自适应步长和更新方法的概率调和因子 p 2 = 0.5 p_2=0.5 p2=0.5,对两种更新方法的概率调和因子为 p 1 p_1 p1。调和策略二流程如下:

If r<p2 使用自适应Lé vy飞行更新个体 
Else If r<p1 使用CS-best方法更新个体 Else 使用CS-rand方法更新个体 End 
End 

在迭代中后期,自适应步长逐渐减小,全局搜索逐渐过渡至局部搜索,解向当前最优解逐步收敛。若目标函数值与全局最优解近似,自适应的小步长或者CS-best则有利于向最优解收敛。若目标函数值与全局最优解相差较大,或陷入局部极值,基于随机思想,算法有小概率使用CS-rand尝试寻找更优解或尝试跳出局部极值。且适当增大选择CS-best和CS-rand的概率,在迭代后期使算法的收敛性,多样性和
解的精度得以提升。
另一方面,调和策略的选择建立在线性递减概率规则的框架下,根据迭代次数动态更新选择概率,达到调和策略之间从前期向后期的自适应过渡,以及调和算法的勘探和开采能力。

(4)MSRCS算法流程

MSRCS算法的流程如下:

初始化个体Xi(i = 1,2,...,n),计算其适应度值 
While t<tmaxIf r<(1-t/G)使用调和策略一更新个体XiElse 使用调和策略二更新个体Xi End if 计算新解Xi(t+1)的适应度值,若新解优于旧解则替换 根据抛弃概率pa和随机游走的公式来更新个体计算新解Xi(t+1)的适应度值,若新解优于旧解则替换
End While 

二、实验仿真与结果分析

为了验证MSRCS的性能,将其与DE、ABC、FA、CS进行对比,以文献[2]中的F1、F2(单峰函数/30维)、F11、F12(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,种群规模设置为20,最大迭代次数设置为25000。结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
DE:最优值:0
ABC:最优值:1.9439e-164
CS:最优值:3.7268e-161
MSRCS:最优值:0
函数:F2
DE:最优值:1.1336e-246
ABC:最优值:2.992e-137
CS:最优值:3.8874e-89
MSRCS:最优值:9.1237e-263
函数:F11
DE:最优值:0
ABC:最优值:0
CS:最优值:0
MSRCS:最优值:0
函数:F12
DE:最优值:1.5705e-32
ABC:最优值:0.4861
CS:最优值:1.5705e-32
MSRCS:最优值:1.5705e-32
函数:F18
DE:最优值:3
ABC:最优值:3
CS:最优值:3
MSRCS:最优值:3
函数:F19
DE:最优值:-3.8628
ABC:最优值:-3.8628
CS:最优值:-3.8628
MSRCS:最优值:-3.8628

实验结果验证了MSRCS的有效性和优异的收敛性。

三、参考文献

[1] 彭虎, 李源汉, 邓长寿, 等. 多策略调和的布谷鸟搜索算法[J]. 计算机工程, 2022, 48(8): 85-97.
[2] Weiguo Zhao, Zhenxing Zhang, Liying Wang. Manta ray foraging optimization: An effective bio-inspired optimizer for engineering applications[J]. Engineering Applications of Artificial Intelligence, 2020, 87: 103300.


http://chatgpt.dhexx.cn/article/c3f7xyyZ.shtml

相关文章

一个例子“入坑“布谷鸟算法(附完整py代码)

转载自&#xff1a;https://blog.csdn.net/sj2050/article/details/98496868 一个例子"入坑"布谷鸟算法(附完整py代码) SJ2050 2019-08-06 11:29:51 9089 收藏 103 分类专栏&#xff1a; Algorithms Python 文章标签&#xff1a; cuckoo_search optimization python…

路径规划算法:基于布谷鸟优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于布谷鸟优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于布谷鸟优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法…

群体智能优化算法之布谷鸟搜索(CS)

获取更多资讯&#xff0c;赶快关注上面的公众号吧&#xff01; 文章目录 第六章 布谷鸟搜索[1]6.1 介绍6.2 人工布谷鸟搜索6.2.1 随机变量6.2.2 随机游走6.2.2.1 幂律 6.2.3 赫维赛德函数&#xff08;阶跃函数&#xff09;6.2.4 Lvy&#xff08;莱维&#xff09;分布6.2.4.1 Lv…

【群体智能】布谷鸟搜索算法

目录 一、预备知识 1. 分布 2. 随机游走 二、设计思想 1. 设计思想概括 2. 布谷鸟行为分析 三、理想化规则 四、实现过程/基本流程 五、Matlab实现 1. 代码 2. 输出 一、预备知识 1. 分布 &#xff08;1&#xff09;Thin-detailed Distribution&#xff1a;以指数…

[算法学习]模拟退火算法(SA)、遗传算法(GA)、布谷鸟算法(CS)、人工蜂群算法(ABC)学习笔记---附MATLAB注释代码

目录 1.模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;1.1 本质&#xff1a;1.2 算法思想1.3 SA流程图1.4 模拟退火过程1.5 SA解决TSP问题1.6 SA改进方向1.7 SA算法的特点1.8 模拟退火算法经典案例MATLAB源码详细解析1.8 MATLAB经典SA算法代码下载 2.…

用于旅行商问题的离散布谷鸟算法

英文&#xff1a;Discrete Cuckoo Search for Traveling Salesm Problem 摘要 杜鹃搜索&#xff08;CS&#xff09;属于一类新颖的自然启发算法&#xff0c;其灵感来源于一些杜鹃物种的专性卵寄生&#xff0c;将它们的卵放在其他寄主鸟类&#xff08;其他物种&#xff09;的巢…

布谷鸟hash算法的并行化实现(一)

由于本人最近在写一个项目&#xff0c;为了实现数据查找以及数据修改部分的快速操作&#xff0c;所以采用hash对数据进行存储&#xff0c;而在此过程中接触到了布谷鸟hash&#xff0c;觉得这个hash算法还是很有意思并且高效&#xff0c;所以想着进行一些记录&#xff0c;本系列…

【算法学习】布谷鸟搜索算法【CuckooSearch(CS)】

原文链接&#xff1a;布谷鸟搜索算法 布谷鸟搜索&#xff08;Cuckoo Search&#xff0c;CS&#xff09;是由 Xin-She Yang 和 Suash Deb 于 2009 年开发的自然启发式算法。CS 基于布谷鸟的寄生性育雏&#xff08;brood parasitism&#xff0c;又巢寄生&#xff09;行为。该算法…

【LSTM回归预测】基于matlab布谷鸟算法优化LSTM回归预测【含Matlab源码 2037期】

⛄一、布谷鸟算法优化LSTM预测 1 布谷鸟搜索算法 布谷鸟算法是一种新型的群智能搜索算法&#xff0c;布谷鸟算法具有参数数目少、鲁棒性强、通用性好和全局寻优能力突出等多方面综合优势。布谷鸟算法以寻得全局最优鸟窝为目标&#xff0c;采用如式(3)所示的方法进行鸟窝位置更…

智能优化算法:布谷鸟搜索算法-附代码

智能优化算法&#xff1a;布谷鸟搜索算法-附代码 文章目录 智能优化算法&#xff1a;布谷鸟搜索算法-附代码1.算法原理2.算法结果3.参考文献4.Matlab代码 摘要&#xff1a;谷鸟搜索算法(cuckoo search ,cs)&#xff0c;是由剑桥大学Yang等提出的一种群智能优化算法&#xff0c;…

python---布谷鸟搜索算法

布谷鸟搜索算法&#xff08;Cuckoo Search&#xff0c;CS&#xff09; 布谷鸟算法的启发当然来自于布谷鸟&#xff0c;因为布谷鸟这种鸟很有意思&#xff0c;生出来的孩子自己不养&#xff0c;直接被扔到其他鸟的鸟巢中去了&#xff0c;但有时候&#xff0c;这些布谷鸟蛋会被被…

通俗易懂的布谷鸟算法与莱维飞行,(附求解函数最小值matlab源码)

1 从布谷鸟的育雏到布谷鸟算法2 布谷鸟算法3 萊维飞行与公式(1)的深层含义4 附&#xff1a;CS算法求解函数最小值代码5 源码下载6 参考文献 1 从布谷鸟的育雏到布谷鸟算法 布谷鸟不会做窝&#xff0c;也不会育雏&#xff0c;在春末夏初&#xff0c;向北飞&#xff0c;趁别的鸟(…

布谷鸟算法(C++实现)

算法思想 布谷鸟鸟群最终只有最健康的蛋才能孵化出来。 布谷鸟群每只鸟都在拼命寻找好巢穴以达到下最健康的蛋的母的。 算法步骤 步骤一 初始化 初始化布谷鸟种群数量&#xff08;鸟窝个数&#xff09;&#xff0c;计算各个鸟窝&#xff08;解&#xff09;的函数适应值&…

Python优化算法07——布谷鸟搜索算法

和前面的系列不同&#xff0c;布谷鸟这里没有现成的Python的包&#xff0c;使用我们需要自己写各种源码模块进行组合&#xff0c;达到布谷鸟搜索算法&#xff08;CS&#xff09;的功能。 这里的CS算法是面向过程的编程&#xff0c;都是自定义函数&#xff0c;不涉及类与对象。…

一个例子入坑布谷鸟算法(附完整py代码)

布谷鸟是比较新的启发式最优化算法,但其与传统的遗传算法,退火算法等相比,被证明收敛速度更快,计算效率更高! 文章目录 本文诞生的缘由布谷鸟算法思想简介更新位置的方式莱维飞行局部随机行走 抛出个栗子一些参数的建议完整的python实现运行结果参考文献 本文诞生的缘由 由于布…

基于布谷鸟搜索算法的函数寻优算法

文章目录 一、理论基础1、算法原理2、算法流程图 二、Matlab代码三、参考文献 一、理论基础 1、算法原理 布谷鸟采用一种特殊的寄生宿主巢穴的方式孕育繁殖,它将孵育的蛋置入寄生宿主的巢穴&#xff0c;让寄生宿主孵化布谷鸟蛋。由于布谷鸟幼雏能发出比寄生宿主幼雏更闪亮的叫…

布谷鸟算法(Cuckoo Search,CS)MATLAB案例详细解析

目录 一、布谷鸟算法理论二、CS算法应用于函数优化1.流程图3.代码解析3.1 主函数 Csmain.m3.2 Levy飞行 func_levy.m3.3 与上一代比较&#xff0c;返回较优的鸟巢 func_bestNestPop.m3.4 根据发现概率&#xff0c;舍弃一个鸟巢并建立一个新鸟巢 func_newBuildNest.m3.5 目标函数…

智能优化算法——布谷鸟搜索算法原理(附代码)

目录 基本概念 算法具体流程 算法流程图 测试函数 优化结果 visual studio2017C代码 基本概念 布谷鸟搜索算法&#xff08;Cuckoo Search&#xff0c;缩写 CS&#xff09;是由剑桥大学杨新社教授和S.戴布于2009年提出的一种新兴启发算法。根据昆虫学家的长期观察研究发现&#…

布谷鸟算法

布谷鸟算法是将布谷鸟育雏行为与Levy飞行算法相结合的一种算法。 在布谷鸟算法中&#xff0c;有两个算法或者说两个位置更新是关键&#xff1a; 第一个是布谷鸟寻找最优解时的算法&#xff1a; 一个是布谷鸟寻找鸟窝下蛋的寻找路径是采用早已就有的萊维飞行3&#xff0c;如上…

布谷鸟算法浅谈与简单应用

简介 布谷鸟算法是由剑桥大学Xin-She Yang教授和S.Deb于2009年提出的一种新兴的启发算法&#xff0c;是一种通过模拟自然界当中布谷鸟&#xff08;也就是杜鹃&#xff0c;故该算法也称为杜鹃算法&#xff09;在繁育后代的行为而提出的一种搜索算法。 本文章将以在工程实践当中…