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

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

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

2 布谷鸟算法

布谷鸟算法是布谷鸟育雏行为和萊维飞行结合的一种算法 。

在CS算法中,有两个路径(或者说成是两个位置的更新)备受关注:

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

Xt+1=Xt+α⨂Levy(β)Xt+1=Xt+α⨂Levy(β) , 公式(1)

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

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

Xt+1=Xt+r⨂Heaviside(Pa−ϵ)⨂(Xi−Xj)Xt+1=Xt+r⨂Heaviside(Pa−ϵ)⨂(Xi−Xj), 公式(2)

其中,r,ϵr,ϵ 是服从均匀分布的随机数,Heaviside(x)Heaviside(x) 是跳跃函数(x>0,=1;x<0,=0) , Xi,XjXi,Xj 是其他任意的连个鸟窝。

CS算法的执行过程如下:

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

从数学的发展史上说,早在1937年, P. Levy6确定了对称Levy稳定分布的积分形式为Levy(s)=1π∫+∞0exp(−β|k|λ)cos(ks)dkLevy(s)=1π∫0+∞exp(−β|k|λ)cos(ks)dk ,但是该积分并没有明确的解析,要生成一个服从该分布的随机数是难上加难的问题,不过当s≫s0>0,即s→∞s≫s0>0,即s→∞时, Levy(s)≈λβΓ(λ)sin(πλ2)π.1s1+λLevy(s)≈λβΓ(λ)sin(πλ2)π.1s1+λ,通常β=1β=1 。这个近似的分布呈现幂律行为(重尾或长尾巴),这个行为类似于二八原则[^6],或者说少部分人集中了世界大部分的财富,正如下图所示的,这个分布总是有一个长尾巴或者称之为重尾巴,有时也叫做一个翼。

萊维飞行的方差随时间呈现指数的关系,即σ2(t)~t3−β,1≤β≤3σ2(t)~t3−β,1≤β≤3,所以萊维飞行比布朗运动更加的出色。

此后,不少学者根据这个近似部分提出很多用于生成服从萊维分布的随机数的实现方法,其中就包含了Mantegna7在1994年提出的一种用正太分布求解随机数的方法,有时也叫Mantegna方法,生成服从萊维分布的随机步长的方法如下:

s=u|v|1版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/g425680992/article/details/80905019

站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

莱维飞行matlab作图,通俗易懂的布谷鸟算法与莱维飞行,(附求解函数最小值matlab源码)-Go语言中文社区...相关推荐

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

    1 从布谷鸟的育雏到布谷鸟算法 2 布谷鸟算法 3 萊维飞行与公式(1)的深层含义 4 附:CS算法求解函数最小值代码 5 源码下载 6 参考文献 1 从布谷鸟的育雏到布谷鸟算法 布谷鸟不会做窝,也不 ...

  2. 【Matlab优化预测】布谷鸟算法优化灰色模型预测【含源码 1244期】

    一.代码运行视频(哔哩哔哩) [Matlab优化预测]布谷鸟算法优化灰色模型预测[含源码 1244期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]屈迟文,傅 ...

  3. 【Matlab电力负荷预测】模拟退火算法结合狮群算法优化Elman神经网络电力负荷预测【含源码 1454期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]模拟退火算法结合狮群算法优化Elman神经网络电力负荷预测[含源码 1454期] 二.matlab版本及参考文献 1 matlab版本 201 ...

  4. 【Matlab路径规划】蚁群算法机器人大规模栅格地图最短路径规划【含源码 1860期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]蚁群算法机器人大规模栅格地图最短路径规划[含源码 1860期] 二.蚁群算法及栅格地图简介 随着机器人技术在诸多领域的应用, 如机器人协作焊接.灾 ...

  5. 【Matlab风电功率预测】麻雀算法优化BP神经网络风电功率预测【含源码 1319期】

    一.代码运行视频(哔哩哔哩) [Matlab风电功率预测]麻雀算法优化BP神经网络风电功率预测[含源码 1319期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [ ...

  6. 【Matlab风电功率预测】粒子群算法优化BP神经网络风电功率预测【含源码 347期】

    一.代码运行视频(哔哩哔哩) [Matlab风电功率预测]粒子群算法优化BP神经网络风电功率预测[含源码 347期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [ ...

  7. 【Matlab图像去噪】高通+低通+带通+方向滤波器图像滤波【含源码 1209期】

    一.代码运行视频(哔哩哔哩) [Matlab图像去噪]高通+低通+带通+方向滤波器图像滤波[含源码 1209期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  8. 【Matlab语音隐写】DCT+DWT音频数字水印嵌入提取【含GUI源码 836期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DCT+DWT音频数字水印嵌入提取[含GUI源码 836期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  9. 【Matlab行为识别】差影法三维人体姿态行为识别【含源码 277期】

    一.代码运行视频(哔哩哔哩) [Matlab行为识别]差影法三维人体姿态行为识别[含源码 277期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.M ...

最新文章

  1. python工程师月薪-在三线城市,Python工程师也能拿到月薪20K?
  2. oracle往据,指定日期查询数Oracle据库
  3. Java黑皮书课后题第8章:*8.32(几何:三角形面积)编写一个方法,使用下面的方法头,返回一个三角形的面积。编写一个程序,提示用户输入三角形的三个点,然后显示三角形的面积
  4. 【双百解法】2058. 找出临界点之间的最小和最大距离——Leecode周赛系列
  5. php 删除某个文件夹,Php删除指定文件与文件夹的方法
  6. jdbc mysql url写法_MySQL第04篇:JDBC
  7. 【动态规划】多重背包问题:P1077摆花
  8. Keras:模型评估
  9. poj 2253 Frogger floyd 长路求权值最大边,属于简单题!!!!
  10. cocos2dx lua 反编译(20170417增加补充说明)(转)
  11. SpringCloud视频教程 百度云盘
  12. AutoCAD 2007快捷键大全
  13. python的pandas库无法调用_pandas库中最重要的几个知识点
  14. 计算机word表格求和怎么操作,Word中的表格如何自动求和
  15. 【LeetCode】括号匹配问题(C语言)| 动图演示,超详细哦~
  16. matlab半小提琴图,不会编程,也可以画小提琴图啦!
  17. windows应用启动java -jar
  18. mysql重启后自动关闭_mysql服务自动关闭的解决
  19. 源码学习之LAMMPS的一个时间步是如何工作的
  20. SpringMVC响应的HTTP状态码

热门文章

  1. JAVA学习第十四课(接口:implements及其基本应用)
  2. Zend Studio 8 快捷键大集合 很有用哦
  3. ubuntu 安装 eclipse 及其CDT
  4. VS2008 Proe 5.0 and VS2010 Creo二次开发环境配置
  5. 使用迅雷下载远程FTP文件
  6. 计算机删除百度云管家,怎么删掉“我的电脑”里头显示百度云管家的图标
  7. Linux基础_李孟_新浪博客
  8. 线上问题排查思路总结
  9. 如何给小朋友解释单摆运动_单摆教案完美版
  10. 宽带连接错误,错误代码720问题