布谷鸟搜索算法

原文

仿照布谷鸟(也叫大杜鹃)“寄生”和"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 来计算:

布谷鸟搜索算法

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

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

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

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

布谷鸟搜索算法


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值