英文:Cuckoo Search via L ́ evy Flights

在本文中,我们打算制定一种新的元启发式算法,称为布谷鸟搜索(CS),用于解决优化问题。这个算法是基于一些布谷鸟物种的强制性的幼虫寄生行为与一些鸟类和果蝇的L-evy飞行行为相结合。我们针对测试函数验证了所提出的算法,然后将其性能与遗传算法和粒子群优化的性能进行比较。最后,我们讨论了这些结果的含义和对进一步研究的建议。

1. 引言

越来越多受自然启发的现代元启发式算法正在出现,并且越来越流行。例如,粒子群优化(PSO)受到鱼和鸟群智能的启发,而萤火虫算法受到热带萤火虫闪烁模式的启发[2],[3],[6],[21],[22]。这些自然启发的元启发式算法已用于广泛的优化问题,包括NP难问题,如旅行推销员问题[2]、[3]、[6]、[8]、[10]、[21]。

几乎所有现代元启发式的力量都来自于这样一个事实,即它们模仿自然界的最佳特征,特别是数百万年来由自然选择进化而来的生物系统。两个重要特征是适者选择和适应环境。从数字上讲,这些可以转化为现代元启发式的两个关键特征:强化和多样化[3]。强化旨在围绕当前最佳解决方案进行搜索,并选择最佳候选方案或解决方案,而多样化确保算法能够有效地探索搜索空间。

本文旨在制定一种新的算法,称为杜鹃搜索(CS),该算法基于有趣的繁殖行为,如某些杜鹃物种的卵寄生。我们将首先介绍杜鹃的繁殖行为以及一些鸟类和果蝇的飞行特征,然后制定新的CS,然后实施。最后,我们将把提出的搜索策略与其他流行的优化算法进行比较,并讨论我们的发现及其对各种优化问题的影响。

二、杜鹃鸟和levy飞行

A、杜鹃鸟行为

杜鹃是一种令人着迷的鸟类,不仅因为它们能发出美妙的声音,还因为它们积极的繁殖策略。一些物种,如阿尼杜鹃和吉拉杜鹃,在公共巢穴产卵,尽管它们可能会移除其他物种的卵,以增加自己卵的孵化概率[12]。相当多的物种通过在其他寄主鸟类(通常是其他物种)的巢穴中产卵来进行专性的卵寄生。有三种基本类型的卵寄生:种内卵寄生、合作繁殖和巢接管。一些寄主鸟类可以和入侵的杜鹃发生直接冲突。如果一只寄主鸟发现这些蛋不是自己的,它们要么扔掉这些外来蛋,要么干脆放弃自己的巢穴,在别处建一个新的巢穴。一些杜鹃物种,如新世界的寄生杜鹃,其进化方式使得雌性寄生杜鹃通常非常擅长模仿少数选定宿主物种的卵的颜色和图案[12]。这降低了它们的卵被遗弃的概率,从而提高了它们的繁殖能力。

此外,一些物种产卵的时间也很惊人。寄生杜鹃经常选择寄主鸟刚刚产卵的巢穴。一般来说,杜鹃鸟卵孵化的时间略早于寄主卵。一旦第一只杜鹃雏鸟孵化出来,它会采取的第一个本能行动是通过盲目地将寄主蛋推出巢穴来驱逐寄主蛋,这会增加杜鹃幼鸟在寄主鸟提供的食物中的份额。研究还表明,其也可以模仿寄主鸟的叫声,以获得更多的喂食机会。

B、levy飞行

另一方面,各种研究表明,许多动物和昆虫的飞行行为证明了Láevy飞行的典型特征[4],[15],[13],[14]。Reynolds和Frye最近的一项研究表明,果蝇或果蝇利用一系列直线飞行路径探索它们的景观,这些直线飞行路径被突然的90度转弯打断,从而形成了Láevy飞行式的间歇无尺度搜索模式。对人类行为的研究,如Ju/‘hoansi狩猎采集者觅食模式,也显示了Láevy飞行的典型特征。即使是光也可能与Láevy航班有关。随后,这种行为被应用于优化和优化搜索,初步结果显示其有前途的能力。

三、布谷鸟算法

为了简单描述我们的新杜鹃搜索,我们现在使用以下三个理想化规则:1)每只杜鹃每次产一个蛋,并将其蛋倒在随机选择的巢中;2) 最好的巢和高质量的蛋将传到下一代;3) 可用寄主巢穴的数量是固定的,杜鹃所产的蛋被寄主鸟发现的概率为Pa∈[0, 1]. 在这种情况下,寄主鸟可以扔掉蛋,也可以抛弃巢穴,建立一个全新的巢穴。为了简单起见,最后一个假设可以近似为n个巢穴中的Pa部分被新的巢穴替换(使用新的随机解)。

对于最大化问题,解的质量或适合度可以简单地与目标函数的值成比例。其他形式的适应度可以以与遗传算法中的适应度函数类似的方式定义。为了简单起见,我们可以使用以下简单的表示,即巢中的每个蛋代表一个解决方案,而布谷鸟蛋代表一个新的解决方案,目的是使用新的、可能更好的解决方案(布谷鸟蛋)来替换巢中不太好的解决方案。当然,该算法可以扩展到更复杂的情况,即每个巢都有多个代表一组解的蛋。对于目前的工作,我们将使用最简单的方法,每个巢只有一个蛋。

基于这三个规则,布谷鸟搜索(CS)的基本步骤可以概括为伪代码


开始:

目标函数 f(x)

生成的初始种群:n个宿主巢穴x i(i=1,2,…,n)

(循环) 当(t<最大迭代次数或者终止条件)

通过levy飞行随机获得一只杜鹃

计算其适应度Fi

if( Fi>Fj)

用新的解决方案替换j

一小部分(pa)更糟糕的巢穴被废弃,新的巢穴建立起来;

保持最佳解决方案(或以优质解决方案筑巢);

对解决方案进行排名并找出当前

处理结果和可视化


当生成新的解决方案x (t+1),例如,一个布谷鸟i, 进行一次Levy飞行。

其中α>0是步长,其应与兴趣问题的尺度相关。在大多数情况下,我们可以使用α=1。上述方程本质上是随机行走的随机方程。一般来说,随机游走是马尔可夫链,其下一状态/位置仅取决于当前位置(上述等式中的第一项)和转移概率(第二项)。符号⊕表示入口乘法。这一符号与PSO中使用的符号相似,但在这里,通过Levy飞行的随机漫游在探索搜索空间方面更有效,因为从长远来看,它的步长要长得多。

Levy飞行本质上提供了一个随机行走,而随机步长则从Levy分布中抽取

其具有无穷的方差和无穷的平均值。在这里,这些步骤基本上形成了一个随机行走过程,其具有带有重尾的幂律步长分布。一些新的解决方案应该由Levy生成,绕着迄今为止获得的最佳解决方案走一走,这将加快本地搜索的速度。然而,新解的很大一部分应通过远区域随机化生成,其位置应与当前最佳解相距足够远,这将确保系统不会陷入局部最优。

从快速观察来看,CS和爬山结合一些大规模随机化似乎有一些相似之处。但有一些显著的差异。首先,CS是一种基于种群的算法,类似于GA和PSO,但它使用了某种精英主义的选择,类似于和声搜索(harmony search)中使用的算法。其次,随机化更有效,因为步长是重尾的,任何大步都是可能的。第三,要调整的参数数量少于GA和PSo,因此它可能更通用,以适应更广泛的优化问题。此外,每个巢穴可以表示一组解,因此CS可以扩展到元种群算法的类型。

四、实验

A、 验证和参数研究

在实现之后,我们必须使用具有分析或已知解决方案的测试函数来验证算法。例如,我们使用的许多测试函数之一是二元Michaelwicz函数:

其中m=0,(x, y) ∈[0, 5],此函数具有全局最小值f∗ ≈− 1.8013,当(x,y)=(2.20319,1.57049)。使用Cuckoo Search可以很容易地找到这个全局最优值,结果如图3所示,图中巢穴的最终位置也用·标记。这里我们使用了n=15个巢穴,α=1和Pa=0.25。在我们的大多数模拟中,我们使用n=15到50。

从图中,我们可以看到,随着最优值的接近,大多数巢穴向全局最优值聚集。我们还注意到,在多模态函数的情况下,巢穴也分布在不同的(局部)最优点。这意味着,如果巢穴的数量远高于局部优化的数量,CS可以同时找到所有优化。当处理多模态和多目标优化问题时,这一优势可能会变得更加重要。

我们还尝试改变宿主巢穴的数量(或种群大小n)和概率pa。我们使用了n=5、10、15、20、50、100、150、250、500和pa=0、0.01、0.05、0.1、0.15、0.2、0.25、0.4、0.5。从我们的模拟中,我们发现n=15和pa=0.25足以解决大多数优化问题。结果和分析还表明,收敛速度在某种程度上对所使用的参数不敏感。这意味着对于任何给定的问题都不需要进行微调。因此,我们将在其余的模拟中使用固定的n=15和p a=0.25,特别是在下一篇文章中给出的比较研究中。

B、测试功能

文献[5]、[17]、[16]中有许多基准测试函数,它们被设计用于测试优化算法的性能。任何新的优化算法也应该针对这些基准函数进行验证和测试。在我们的模拟中,我们使用了以下测试函数。

De Jong的第一个函数本质上是一个球面函数

C、CS与PSO和GA的比较

最近的研究表明,PSO算法在许多优化问题上可以优于遗传算法(GA)[8]和其他传统算法。这在一定程度上可以归因于当前最佳估计的广播能力,这可能会更好更快地收敛到最佳状态。Shilane等人详细讨论了评估进化算法统计性能的一般框架。

现在我们将比较杜鹃搜索与PSO和遗传算法的各种标准测试功能。在使用Matlab实现这些算法之后,我们进行了广泛的模拟,每个算法至少运行了100次,以便进行有意义的统计分析。当函数值的变化小于给定公差时,算法停止≤ 10−5.结果汇总于下表(见表1和表2),其中达到了全局最优值。这些数字的格式为:平均求值次数(成功率),因此927±105(100%)意味着函数求值的平均次数(平均值)为927,标准偏差为105。找到该算法的全局最优值的成功率为100%。

可以看出,CS在以更高的成功率找到全局最优值方面效率更高。在现代个人计算机上,每个功能评估几乎都是即时的。例如,在3GHz桌面上进行10000次评估的计算时间约为5秒。

对于所有测试功能,CS都优于GA和PSO。主要原因有两方面:随机化和强化的良好平衡,以及较少的控制参数。对于任何元启发式算法,密集的局部搜索策略和对整个搜索空间的有效探索之间的良好平衡通常会导致更高效的算法。另一方面,该算法中只有两个参数,即种群大小n和pa。一旦n被固定,pa基本上控制了精英化以及随机化和局部搜索的平衡。很少有参数使算法不那么复杂,因此可能更通用。这些观察值得在今后的工作中进行更系统的研究和进一步的阐述。

五、 结论

在本文中,我们基于一些杜鹃物种的繁殖策略,结合Láevy飞行,制定了一种新的元启发式杜鹃搜索。该算法已经过验证,并与遗传算法和粒子群优化等其他算法进行了比较。仿真和比较表明,对于多模态目标函数,CS算法优于现有算法。这部分是由于CS中需要微调的参数比PSO和遗传算法中要少。事实上,除了种群大小n,基本上只有一个参数pa。此外,我们的模拟还表明收敛速度对参数pa不敏感。这也意味着我们不必针对特定问题微调这些参数。随后,与其他元启发式算法相比,CS对于许多优化问题更为通用和鲁棒。

这种潜在强大的优化策略可以很容易地扩展到研究具有各种约束的多目标优化应用,甚至是NP难问题。进一步的研究可以集中于灵敏度和参数研究,以及它们与算法收敛速度的可能关系。与其他流行算法(如PSO)的混合也将是潜在的成果

通过L-evy飞行进行布谷鸟搜索相关推荐

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

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 第六章 布谷鸟搜索[1] 6.1 介绍 6.2 人工布谷鸟搜索 6.2.1 随机变量 6.2.2 随机游走 6.2.2.1 幂律 6.2.3 赫维赛德 ...

  2. 【灰狼算法】基于布谷鸟搜索混合灰狼优化算法求解单目标优化问题(AGWOCS)含Matlab源码

    1 简介 灰狼优化器 (GWO)模仿领导层级的元启发式方法​以及一群灰狼(狼群)的合作捕猎行为. GWO 的增强,命名为 Augmented GWO(AGWO),最近提出了具有更大的探索能力.然而,在 ...

  3. 混合灰狼和布谷鸟搜索优化算法(Matlab完整代码实现)

    目录 0 先看看运行结果 1 灰狼优化算法 1.1 灰狼优化算法基本思想

  4. 基于布谷鸟搜索混合灰狼优化算法求解单目标优化问题(AGWOCS)

  5. CS(布谷鸟搜索)算法MATLAB源码逐行中文注解

    以优化SVM算法的参数c和g为例,对CS算法MATLAB源码进行了逐行中文注解. 完整程序和示例文件地址:http://download.csdn.net/detail/u013337691/9622 ...

  6. 《Nature-Inspired Metaheuristic Algorithms》—— Random Walk

    1 什么是随机游走random walk? 随机游走是由一系列随机步骤组成的随机过程. 随机游走SN=每个连续随机步骤Xi的和. 也就是说在N次游走时的位置SN是由第一次.第二次-第N-1次游走之后再 ...

  7. 基于莱维飞行扰动策略的麻雀搜索算法-附代码

    基于莱维飞行扰动策略的麻雀搜索算法 文章目录 基于莱维飞行扰动策略的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 莱维飞行搜索机制 2.2 莱维飞行扰动策略 2.3 初始化混沌搜索机制 ...

  8. 【优化求解】基于布谷鸟算法结合灰狼算法求解最优目标matlab代码

    1 简介 布谷鸟搜索(Cuckoo Search, CS)算法是 2009 年 Xin-She Yang 与 Susash Deb 提出的一种新型的启发算法[61].算法灵感来源于一些布谷鸟种属(Cu ...

  9. 智能优化 | MATLAB实现CS-ANN布谷鸟优化人工神经网络算法

    智能优化 | MATLAB实现CS-ANN布谷鸟优化人工神经网络算法 目录 智能优化 | MATLAB实现CS-ANN布谷鸟优化人工神经网络算法 效果一览 基本介绍 算法步骤 程序设计 参考资料 效果 ...

  10. 5-1布谷鸟算法(CS)原理

    查看完整原理请看http://www.daimapi.com/algorithm5_1/ 1CS原理 布谷鸟搜索(Cuckoo Search,CS)是由Xin-She Yang 和SuashDeb于2 ...

最新文章

  1. springboot 定时任务schedule
  2. 多种时间格式字符串转换为Date对象
  3. 12306能删候补订单记录_12306候补购票功能在哪里怎么用 火车票候补购票使用攻略...
  4. eclipselink mysql_Eclipselink更新现有表
  5. 智能运维 devops_Coffee Shop DevOps:如何使用反馈循环变得更智能
  6. 新高考改革选计算机专业要学什么,2020高考改革后考生如何选科与选专业?
  7. Mysql中给数据库,表,字段设置字符编码
  8. 【优化算法】Tent混沌映射的粒子群算法【含Matlab源码 940期】
  9. python与施耐德plc通讯_施耐德PLC两种编程通讯控制实例分享
  10. python基础:os模块
  11. 三相PWM整流器滞环电流控制仿真
  12. Java虚拟机之堆空间
  13. 初学者必读VRay 2.0材质设置(2)——反射材质的表现
  14. 计算机无法检测更新失败怎么办,Windows更新错误解决方案
  15. 平面设计分析之图形创意解析
  16. 2015款Mac笔记本安装Windows10系统到外置移动硬盘教程
  17. 51单片机期末课程作业之蓝牙、操控、测速、里程小车
  18. 高级文本编辑器UltraEdit 18 Mac中文版
  19. web服务器—nginx
  20. TrinityCore 采集量增加及可叠加物品叠加量增加SQL语句

热门文章

  1. 基于Halcon的螺栓螺丝部分划痕、腐蚀缺陷检测
  2. 怎么停止skywalking_SkyWalking 告警设置
  3. 计算机术语中的cpu是指什么意思是,什么叫cpu_cpu是什么意思_电脑cpu意思介绍 - 系统家园...
  4. HTK安装实录(Ubuntu18.04)
  5. Arduino介绍_硬件
  6. 阿里云商标注册查询入口(支持图形检索/45分类注册风险)
  7. 自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(上)
  8. 7-59 二元一次方程的解
  9. Excel使用VBA自动调整列宽
  10. 微信小程序报错 RangeError: WebAssembly.Memory(): could not allocate memory