我是靠谱客的博主 爱撒娇月光,最近开发中收集的这篇文章主要介绍布谷鸟搜索算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原文

仿照布谷鸟(也叫大杜鹃)“寄生”和"levy的飞行方式"。


寄生:借别人的巢来养自己的鸟蛋;
levy飞行:莱维飞行,大多数鸟类的飞行轨迹都是是长、短不一的各种飞行距离相间的一种组合,每段飞行距离都和前一段距离相差一个很小的角度。图形如下:
布谷鸟搜索算法

整个过程原理如下:布谷鸟在一堆鸟窝 n 中做选择,选出最好的鸟巢,把自己的蛋放在里面;宿主(被寄生的鸟)以一定概率pa发现有自己的鸟巢,则把布谷鸟的鸟蛋扔出去/建造新的鸟巢。

————————

下面详细介绍算法内容:

布谷鸟算法(Cuckoo search, CS)是由英国学者 Xin-She Yang 和 Suash Deb 于2009在群体智能技术的基础上提出的一种新型基于自然元启发式算法。模拟某些种属布谷鸟(Cuckoo Species)的寄生育雏(Brood Parasitism)有效求解最优化问题的算法。 

该算法的思想是基于布谷鸟的巢寄生行为以及鸟类的 Lévy 飞行行为

为了简单的描述布谷鸟算法,利用以下3条理想化规则对其阐述。

1)每只布谷鸟每次随机选择一个巢,并产生一个卵;

2)具有最高质量卵的巢保留至下一代;

3)可寄主巢的数量n是固定的,且寄主以概率为pa属于(0,1)发现布谷鸟放的卵,在这种情况下,寄主鸟将布谷鸟的卵扔掉或者丢弃现有的巢。

 

为了简单起见,假定n个巢(寄主鸟的数量)pa部分被新的巢(新解)替代

 

在布谷鸟算法中,每个巢中的卵代表一个解,布谷鸟的卵代表新解,目标是利用新解或者潜在的优解替代巢中的劣解

————————————算法步骤——————————————

布谷鸟搜索算法
布谷鸟搜索算法

————————整体搜索原理————————————————

布谷鸟搜索算法

如何执行 Levy 飞行【全局搜索】

(2)本质上是一种随机行走的随机(stochastic)公式。事实上,随机行走是一个马尔科夫链,其下一个状态/位置仅取决于当前状态(上式的第一项)和转移概率(上式的第二项)。然而,新解的很大一部分应该由远场随机化产生,它们的位置应该离当前最佳解足够远,这将确保系统不会陷入局部最优。

实现的角度来看,用 Lévy 飞行生成随机数应包括两个步骤随机方向的选择服从 Lévy 分布的步长的生成。方向的生成应该服从均匀分布,而生成步长是相当棘手的。有几种方法可以实现,但是最有效且直接的方法就是使用所谓的 Mantegna 算法来实现对称的 Lévy 稳定分布。


 

然而,生成正确服从 Lévy 分布的伪随机步长并不简单。 在 Mantegna 算法中,步长 s 可以通过以下变换使用两个服从高斯分布的变量 U 和 V 来计算:

布谷鸟搜索算法

——————————参数取值——————

布谷鸟搜索算法
——————————结论——————

布谷鸟算法参数少,速度快,因此被广泛应用。

除此以外,它还能与其他算法无缝对接,也就是说它的通用性好。

布谷鸟搜索算法


最后

以上就是爱撒娇月光为你收集整理的布谷鸟搜索算法的全部内容,希望文章能够帮你解决布谷鸟搜索算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部