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

本文介绍了布谷鸟算法的起源,该算法是受布谷鸟育雏行为启发,结合莱维飞行的优化算法。文章详细讲解了莱维飞行的数学背景,以及如何在算法中应用莱维飞行进行鸟窝位置更新。同时,提供了MATLAB代码实例,用于求解函数最小值。
摘要由CSDN通过智能技术生成


1 从布谷鸟的育雏到布谷鸟算法

这里写图片描述
布谷鸟不会做窝,也不会育雏,在春末夏初,向北飞,趁别的鸟(宿主鸟)外出觅食时,将卵蛋产在宿主鸟窝里,让宿主鸟抚养自己孩子 。当然,布谷鸟在产卵前,为了不被宿主鸟发现鸟窝的异常,会把宿主的卵移走。而一旦靠养母孵化的雏鸟,也有将宿主鸟本身的雏鸟推出巢穴的本性,并且会模仿其他鸟的行为来增大不被宿主鸟发现的概率1

2009年,Xin-She Yang2 与Suash Deb在《Cuckoo Search via Levy Flights》一文中提出了布谷鸟算法(简称CS)。假设每只布谷鸟一次只产一枚卵 ,并且宿主鸟发现外来鸟蛋后,就舍弃该鸟窝,另寻他地建造新的鸟窝 ,那么可以认为 :鸟窝=卵蛋=解,卵蛋是否能够成功被宿主鸟孵化并茁长成长是衡量解好坏的唯一标准 。布谷鸟寻找鸟窝下蛋的过程就是在D维空间中寻找解的过程 ,而鸟窝的好坏象征着解的好坏。

2 布谷鸟算法

布谷鸟算法是布谷鸟育雏行为和萊维飞行结合的一种算法 。
这里写图片描述
在CS算法中,有两个路径(或者说成是两个位置的更新)备受关注:

  • 一个是布谷鸟寻找鸟窝下蛋的寻找路径是采用早已就有的萊维飞行3,如上图所示,无敌的走位是一种长步长与短步长相间的走位,这其实就是萊维飞行的主要特点,学者们也证实了自然界中很多鸟类的飞行也遵从萊维飞行,这也是最有效寻找目标的方法之一 。所以采用萊维飞行更新鸟窝位置的公式被定义如下:

    Xt+1=Xt+αLevy(β) X t + 1 = X t + α ⨂ L e v y ( β ) , 公式(1)

    其中 , α α 是步长缩放因子, Levy(β) L e v y ( β ) 是萊维随机路径, 就是 . . ∗ 运算

  • 另一个是宿主鸟以一定概率Pa发现外来鸟后重新建窝的位置路径,这个路径可以用萊维飞行或者随机方式4,(本文采用随机) , 除此之外,这个位置普遍采用偏好随机游动的方式,即利用了其他鸟窝的相似性5。所以新建的鸟窝的位置的公式被定义如下:

    Xt+1=Xt+rHeaviside(Paϵ)(XiXj) X t + 1 = X t + r ⨂ H e a v i s i d e ( P a − ϵ ) ⨂ ( X i − X j ) , 公式(2)

    其中, r,ϵ r , ϵ 是服从均匀分布的随机数, Heaviside(x) H e a v i s i d e ( x ) 是跳跃函数(x>0,=1;x<0,=0) , Xi,Xj X i , X j 是其他任意的连个鸟窝。

CS算法的执行过程如下:
这里写图片描述

3 萊维飞行与公式(1)的深层含义

从数学的发展史上说,早在1937年, P. Levy6确定了对称Levy稳定分布的积分形式为 Levy(s)=1π

  • 96
    点赞
  • 603
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 40
    评论
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孤旅青山迷情人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值