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

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


摘要:谷鸟搜索算法(cuckoo search ,cs),是由剑桥大学Yang等提出的一种群智能优化算法,它也是一种新型元启发式搜索算法。CS 算法主要优点是参数少、操作简单、易实现、随机搜索路径优和寻优能力强等,备受学者关注,相关的科研成果也日益倍增

1.算法原理

布谷鸟具有孵卵寄生性,本身没有孵化行为,这就促使它通过寻找质优的巢窝,依靠养父母孵化和育雏 。巢寄生殖行为主要表现在宿主的选择,繁殖期间,大布谷鸟寻找在孵化和育雏时间上基本相似、雏鸟饮食习性基本相同的、卵形状和颜色相当的宿主,通常表现为雀形目鸟类。确定寄生的宿主后,大布谷鸟要选择适当的时机,一般在宿主即将孵化之前,趁宿主外出觅食时迅速寄生产卵。春末夏初,便向北飞,它自己不会做窝,不会育雏,也不会孵化,它每次飞到一个巢窝里只产一个鸟蛋。通常情况下,大布谷鸟在产卵前,为了不被宿主察觉,会把宿主一枚或数枚卵移走,使得巢穴中的卵数量相等或相近。而一旦靠养母孵化的雏鸟孵出,它有将养母本身的雏鸟推出巢外的本性,从而独享养母抚养,这样自己成活的概率大大增加。

为了模拟布谷鸟这种寻窝寄生的习性,Yang 等在文献中将CS算法假设以下3种理想状态:

(1) 每只布谷鸟一次只产一枚卵,并且随机选择一个鸟巢存放;
(2) 在寻窝的过程中,卵最好的鸟巢将会被保留到下一代;
(3) 可用鸟巢的数量是固定的,并且设鸟巢中外来卵被发现的概率是 P P P P ∈ [ 0 , 1 ] P\in [0,1] P[0,1]。如果发现外来鸟蛋,则鸟窝主人重新建立一个鸟窝。
通过以上 3 种理想状态的假设,布谷鸟寻优搜索的位置和路径的更新公式如下:
x i t + 1 = x i t + α ⊕ L ( λ ) ,   i = 1 , 2 , . . , n (1) x_i^{t+1}= x_i^t + \alpha \oplus L(\lambda),\, i =1,2,..,n \tag{1} xit+1=xit+αL(λ),i=1,2,..,n(1)
式中: x i t x_i^t xit—第 i 个鸟窝在第 t t t 代的鸟窝位置, ⊕ \oplus —点对点乘法, α \alpha α —步长控制量,用于控制步长的搜索范围,其值服从正态分布。

在式(1)中, L ( λ ) L(\lambda) L(λ)为 Lévy随机搜索路径,随机步长为 Lévy分布
L ( s , λ ) ~ s − λ ,   ( 1 < λ ≤ 3 ) (2) L(s,\lambda) \widetilde{}s^{-\lambda},\,(1<\lambda\leq3)\tag{2} L(s,λ) sλ,(1<λ3)(2)
式中: s s s—由莱维飞行得到的随机步长。

有式 可以看出,该行走方式是一个随机漫步的过程。由于莱维飞行的随机游动特征,局部极值点附近往往会出现新解,因此莱维飞行的短步长搜索更加有利于提高解的质量。另外,距离局部最优值较远的地方也存在新解,偶尔的大步长探索,使得算法不容易陷入局部极值点。

根据布谷鸟的孵化鸟蛋的过程, CS算法的算法描述如下:

步骤1 定义目标函数 f ( X ) , X = ( x 1 , . . . , x d ) T f(X),X=(x_1,...,x_d)^T f(X),X=(x1,...,xd)T,函数初始化,并随机生成 n n n个鸟窝的初始位置 X i ( i = 1 , 2 , . . . , n ) X_i(i=1,2,...,n) Xi(i=1,2,...,n),设置种群规模、问题维数、最大发现概率 P P P和最大迭代次数等参数;

步骤2 选择适应度函数并计算每个鸟窝位置的目标函数值,得到当前的最优函数值;

步骤3 记录上一代最优函数值,利用式(1)对其他鸟窝的位置和状态进行更新;
步骤 4 现有位置函数值与上一代最优函数值进行比较,若较好,则改变当前最优值;

步骤 5 通过位置更新后,用随机数 r ∈ [ 0 , 1 ] r\in[0,1] r[0,1] P P P对比,若 r > P r>P r>P ,则对 x t + 1 x^{t+1} xt+1进行随机改变,反之则不变。最后保留最好的一组鸟窝位置 y i t + 1 y_i^{t+1} yit+1;

步骤6 若未达到最大迭代次数或最小误差要求,则返回步骤2 ,否则,继续下一步;

步骤7 输出全局最优位置。

2.算法结果

在这里插入图片描述

3.参考文献

[1]兰少峰,刘升.布谷鸟搜索算法研究综述[J].计算机工程与设计,2015,36(04):1063-1067.

4.Matlab代码

算法相关应用
布谷鸟算法

名称说明或者参考文献
布谷鸟优化的BP神经网络(预测)https://blog.csdn.net/u011835903/article/details/112149776(原理一样,只是优化算法用布谷鸟算法)
布谷鸟优化的BP神经网络(分类)https://blog.csdn.net/u011835903/article/details/112149394(原理一样,只是优化算法用布谷鸟算法)
基于布谷鸟算法优化的SVM数据分类https://blog.csdn.net/u011835903/article/details/110523352(原理一样,只是优化算法用布谷鸟算法)
布谷鸟算法优化的otsu多阈值分割https://blog.csdn.net/u011835903/article/details/108019744(原理一样,只是优化算法用布谷鸟算法)
布谷鸟优化的PID参数优化https://blog.csdn.net/u011835903/article/details/109306387(原理一样,只是优化算法用布谷鸟算法)
基于布谷鸟算法的无线传感器网(WSN)覆盖优化https://blog.csdn.net/u011835903/article/details/109262039(原理一样,只是优化算法用布谷鸟算法)
基于布谷鸟算法的3D无线传感器网(WSN)覆盖优化https://blog.csdn.net/u011835903/article/details/113834323(原理一样,只是优化算法用布谷鸟算法)

个人资料介绍

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值