布谷鸟算法的杂七杂八
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于布谷鸟算法的相关说法
又是一个不大常见的拥有一定的自带机制可以对付局部极小值点的算法,但是这个年代还是不大多见。
布谷鸟搜索(Cuckoo Search,CS)是由Xin-She Yang 和Suash Deb 于2009 年开发的自然启发式算法。
CS 基于布谷鸟的寄生性育雏(brood parasitism,又巢寄生)行为。
该算法可以通过所谓的Levy 飞行来增强,而不是简单的各向同性随机游走。
研究表明,该算法可能比遗传算法、PSO 以及其他算法更有效。
不过这也是看具体的数据集的。
1 关于鸟类的育雏行为
布谷鸟(杜鹃)是一种神奇的鸟,不仅因为它们动听的啼鸣,还因它们的积极的繁殖策略。
杜鹃科中的犀鹃(Ani Cuckoo)和圭拉鹃(Guira Cuckoo),将它们的蛋放在其他鸟的巢中,通过去除其他鸟(寄主)的蛋来增加自己蛋的孵化几率。
有相当多种类的鸟都有将自己的蛋放在其他鸟的巢中这种寄生性育雏行为。
这种方法使得一些科学家突发奇想,于是就有了现在的布谷鸟算法
寄生性育雏分为三种:种内寄生(intraspecific brood parasitism)、合作养育(cooperative breeding)和巢占据(nest takeover)。
一些寄主鸟会与入侵的布谷鸟发生直接冲突。
如果一个寄主鸟发现这些蛋不是他们自己的,那么他们要么将这些外来蛋清除掉。
这是比较温和的生物,有的物种就比较暴脾气,他们直接放弃整个巢穴,在别处建造一个新的巢。
一些布谷鸟,例如New World brood-parasitic Tapera,已经进化成这样一种方式,雌杜鹃通常非常善于模仿几种特定寄主的卵的颜色和纹理。
这减少了它们蛋被遗弃的可能性,从而增加了它们的繁殖力。
这种物种对产蛋时机的把握也非常到位。
布谷鸟通常会选择那些寄主刚刚产下自己蛋的巢。
一般来说,布谷鸟蛋的孵化时间要比寄主蛋的孵化时间要早一些。
一旦第一只布谷鸟雏鸟孵化出来,第一个本能的动作就是通过盲目地推动将其他蛋从巢中推出,从而增加寄主对布谷鸟雏鸟的食物供给。
研究还表明,杜鹃雏鸟还可以模仿寄主雏鸟的叫声,以获得更多的被喂食机会。
2 Levy飞行
Levy是征收的意思,同著名的枪战动漫《黑礁》的女主Revy要区分开。
另一方面,各种研究表明,许多动物和昆虫的飞行行为表现出了具有幂律规律的Lévy 飞行的典型特征。
Reynolds 和Frye 最近的一项研究表明,如同很多像我一样的RTS玩家的习惯一样,很多人在开始探路开视野的时候喜欢无规律的乱画路径进行探路操作,在生物圈中,有的生物也有这种奇怪的习惯,诸如果蝇(或Drosophila melanogaster)利用一系列直线飞行路径和突然的90°转弯来探索景观,从而产生Lévy飞行式的间歇无标度搜索模式。
针对人类行为的研究也表明,如Ju hoansi 狩猎采集觅食模式等也表现出了Lévy 飞行的典型特征。
即使是光线也与Lévy 飞行有联系。
另外,该行为已被应用于优化搜索,结果表明其具有潜力。
3 关于布谷鸟的搜索
CS 是由Xin-She Yang 和Suash Deb 于2009 年开发的自然启发式算法。
CS 基于布谷鸟的寄生性育雏(brood parasitism,又巢寄生)行为而诞生的算法。
为了简化描述标准CS,这里我们引入以下三条理想化的规则:
1、每只布谷鸟每次下一个蛋,并将其放入随机选择的巢中。
2、具有优质蛋的最佳巢会被带到下一代。
当然了,这里评价具体哪一个蛋的质量好也是使用的适应度函数的取值决定的。
3、可用的寄主巢数量是固定的,且寄主以概率pa∈(0,1)发现布谷鸟放的蛋。
在这种情况下,寄主可以消灭该蛋或放弃旧巢另建新巢。
进一步地,对于最后一个假设,新巢可以通过替换n 个宿主巢穴的pa ,也就就是原本巢穴的主人一怒之下决定丢弃原本的巢穴的概率的取值来近似。
对于最大化问题,解的质量或适应度可以简单地假设为与目标函数的值成比例。
其他形式的适应度可以用与遗传算法中的适应度函数类似的方式来定义。
从实现的角度来看,我们可以用下面的简单规则:每个巢中的蛋代表一个解,每个布谷鸟只能下一个蛋。
目的是使用新的适应度函数取值更高的解和可能更好的解(布谷鸟)来取代巢中不太好的解。
显然,这个算法可以扩展到更复杂的情况,也就是,每个巢有多个蛋来代表一组解。
这里,我们只考虑最简单的情况,每个巢只有一个蛋。
在这种情况下,蛋,巢或布谷鸟之间没有区别,因为每个巢对应一个鸡蛋,这也代表一只布谷鸟。
另一方面,全局随机行走使用Levy 飞行
很显然,上述的两个过程都大量涉及到了之前的状态,之前的步长或者是其他的状态会直接影响这个时候的状态,所以这个过程一定不是马尔科夫过程。
4 关于其特殊情况的说明4.1布谷鸟算法的特殊情况
4.2 关于levy飞行
4.3 关于参数的选择
在多模态函数的情况下,巢也分布在不同的(局部)最优点。
这意味着,如果巢的数量远远大于局部最优的数量,那么CS 可以同时找到所有的最优解。
当我们处理多模态和多目标优化问题时,这个优势可能变得更加重要。
5 关于布谷鸟算法的变种
虽然关于规避局部极小值的算法有为数不少,但是布谷鸟算法至少在这个年代还不算主流的算法,而且现在关于很多参数的设定的问题病没有很多的相关经验公式或者表格可以使用,但是在这种大背景之下却依然有了很多的变种算法。
在过去的几年里,CS 的许多变种已经被开发出来。
尽管该算法只有短暂的历史,但由于其简单、高效和灵活,CS 引起了大量的关注。
结果就是,相关文献显著地增长。
标准CS 非常强大和高效,但它是为连续优化而开发的。
一个有用的扩展是开发离散CS,以使它可以有效地解决调度问题和组合优化。
不过有的用的确实不多
修改的布谷鸟搜索(Modified cuckoo search,MCS)。
Walton 等人开发了修改的的布谷鸟搜
索。
已被用来优化网格生成和其他应用。
改进的布谷鸟搜索(Improved cuckoo search,ICS)。
在人工智能应用上,Valian 等人提出了用改进的CS 训练前馈神经网络。
与此同时,Vazquez也在使用CS 来训练尖峰神经模型量子布谷鸟搜索(Quantum cuckoo search,QCS)。
Layeb通过给算法增加量子行为提出了一个CS 的变体,称之为量子CS。
QCS 已被应用于解决背包问题
离散布谷鸟搜索(Discrete cuckoo search,DCS)。
对于调度和组合问题等离散应用,也有几个变种。
Ouaarab 等人开发了一个解决旅行商问题(TSPs)的离散CS。
Chandrasekaran 和S imon提出了多目标CS 方法来解决多目标调度问题
多目标布谷鸟搜索(Multi-objective cuckoo search,MOCS)。
Yang 和Deb提出了一个求解多目标工程优化问题的多目标CS 方法
离散多目标布谷鸟搜索(Discrete multi-objective cuckoo search,DMOCS)。
在多目标和调度问题的背景下,Chandrasekaran 和Simon开发了CS 的变体来解决离散多目标调度问题
当然了,这个算法也能通过与其他算法相互融合从而完成更多的成就,可以结合的算法有很多,可以是PSO,可以是SA,可以是AFSA也可以是萤火虫算法
6 优势
除了前面的分析表明,DE、PSO 和SA 是CS 的特例,最近的理论研究也表明CS 具有全局收敛性
PSO 的理论研究表明,它可以快速收敛到当前最优解,但不一定是全局最优解。
事实上,一些分析表明,PSO 更新方程不满足全局收敛条件,因此不能保证全局收敛。
另一方面,已经证明布谷鸟搜索能够满足全局收敛的要求,从而保证了全局收敛性。
这意味着对于多模态优化,PSO 可能过早地收敛到局部最优,而CS 通常可以收敛到全局最优。
此外,CS 具有两种搜索能力:局部搜索和全局搜索,由切换/发现概率控制。
正如前面提到的那样,局部搜索是非常密集的,搜索时间约为1/4(pa=0.25),而全局搜索约占总搜索时间的3/4。
这使得可以在全局范围内更高效地探索搜索空间,从而可以以更高的概率发现全局最优。
其实这里暗示可以使用第三方的算法或者是针对这个明显的特点对于搜索时的分布不均的特性加以利用,这样会进一步提高效率
CS 的另一个优势是它的全局搜索使用Lévy 飞行,而不是标准的随机行走。
由于Lévy 飞行具有无限的均值和方差,CS 可以比使用标准高斯过程的算法更有效地探索搜索空间。
这一优势,加上局部搜索能力,保证全局收敛,使CS 非常高效。
事实上,各种研究和应用已经证明CS 是非常有效的
6.1关于全局性的数学上的说明
Wang 等人为标准CS 提供了全局收敛的数学证明,他们的方法基于马尔可夫链理论
6.2具体应用
CS 已经被应用于许多优化和计算智能领域。
例如,在工程设计应用中,CS 在一系列连续优化问题(例如弹簧设计和焊接梁设计)上面比其他算法具有更好的性能
Walton 等人修改的CS 已被证明可以非常有效地解决非线性问题,如网格生成。
Yildiz利用CS 在铣削加工中选择最优的机床参数,提高了结果,Zheng 和Zhou提供了一个使用高斯过程的CS变体。
在数据融合和无线传感器网络中,CS 已被证明是非常有效的。
此外,基于量子的CS 能够有效地解决背包问题。
从算法分析的角度来看,Civicioglu 和Desdo提出的CS 与粒子群优化(PSO),差分进化(DE)和人工蜂群(ABC)的概念比较表明,CS 与差分进化算法比PSO 与ABC 提供了更健壮的结果。
Gandomi 等人为解决各种结构优化问题,提供了更为广泛的比较研究,得出的结论是,CS 与其他算法如PSO 和遗传算法(GA)相比能够获得更好的结果。
在各种应用中有一些有趣的性能提升,如Valian 等人使用CS 来训练神经网络,以及可靠性优化问题
对于复杂的相平衡应用,Bhargava 等人表明,CS 为解决热力学计算提供了一个可靠的方法。
与此同时,Bulatovi’c 等人利用CS 解决了六杆双闭锁联锁问题,Moravej 和Akhlaghi [16] 以良好收敛速度和性能解决了配电网络中的DG 分配问题。
作为进一步的扩展,Yang 和Deb针对设计工程应用提出了多目标布谷鸟搜索(MOCS)。
对于多目标调度问题,Chandrasekaran 和Simon使用CS 算法取得了很大的进展,这证明了他们提出的方法的优越性。