智能优化算法:布谷鸟搜索算法

智能优化算法:布谷鸟搜索算法-附代码

@[toc]
摘要:谷鸟搜索算法(cuckoo search ,cs),是由剑桥大学Yang等提出的一种群智能优化算法,它也是一种新型元启发式搜索算法。CS 算法主要优点是参数少、操作简单、易实现、随机搜索路径优和寻优能力强等,备受学者关注,相关的科研成果也日益倍增

1.算法原理

布谷鸟具有孵卵寄生性,本身没有孵化行为,这就促使它通过寻找质优的巢窝,依靠养父母孵化和育雏 。巢寄生殖行为主要表现在宿主的选择,繁殖期间,大布谷鸟寻找在孵化和育雏时间上基本相似、雏鸟饮食习性基本相同的、卵形状和颜色相当的宿主,通常表现为雀形目鸟类。确定寄生的宿主后,大布谷鸟要选择适当的时机,一般在宿主即将孵化之前,趁宿主外出觅食时迅速寄生产卵。春末夏初,便向北飞,它自己不会做窝,不会育雏,也不会孵化,它每次飞到一个巢窝里只产一个鸟蛋。通常情况下,大布谷鸟在产卵前,为了不被宿主察觉,会把宿主一枚或数枚卵移走,使得巢穴中的卵数量相等或相近。而一旦靠养母孵化的雏鸟孵出,它有将养母本身的雏鸟推出巢外的本性,从而独享养母抚养,这样自己成活的概率大大增加。

为了模拟布谷鸟这种寻窝寄生的习性,Yang 等在文献中将CS算法假设以下3种理想状态:

(1) 每只布谷鸟一次只产一枚卵,并且随机选择一个鸟巢存放;
(2) 在寻窝的过程中,卵最好的鸟巢将会被保留到下一代;
(3) 可用鸟巢的数量是固定的,并且设鸟巢中外来卵被发现的概率是 , 。如果发现外来鸟蛋,则鸟窝主人重新建立一个鸟窝。
通过以上 3 种理想状态的假设,布谷鸟寻优搜索的位置和路径的更新公式如下:

式中: —第 i 个鸟窝在第 代的鸟窝位置, —点对点乘法, —步长控制量,用于控制步长的搜索范围,其值服从正态分布。

在式(1)中,为 Lévy随机搜索路径,随机步长为 Lévy分布

式中: —由莱维飞行得到的随机步长。

有式 可以看出,该行走方式是一个随机漫步的过程。由于莱维飞行的随机游动特征,局部极值点附近往往会出现新解,因此莱维飞行的短步长搜索更加有利于提高解的质量。另外,距离局部最优值较远的地方也存在新解,偶尔的大步长探索,使得算法不容易陷入局部极值点。

根据布谷鸟的孵化鸟蛋的过程, CS算法的算法描述如下:

步骤1 定义目标函数,函数初始化,并随机生成 个鸟窝的初始位置 ,设置种群规模、问题维数、最大发现概率 和最大迭代次数等参数;

步骤2 选择适应度函数并计算每个鸟窝位置的目标函数值,得到当前的最优函数值;

步骤3 记录上一代最优函数值,利用式(1)对其他鸟窝的位置和状态进行更新;
步骤 4 现有位置函数值与上一代最优函数值进行比较,若较好,则改变当前最优值;

步骤 5 通过位置更新后,用随机数与对比,若 ,则对进行随机改变,反之则不变。最后保留最好的一组鸟窝位置 ;

步骤6 若未达到最大迭代次数或最小误差要求,则返回步骤2 ,否则,继续下一步;

步骤7 输出全局最优位置。

2.算法结果

算法结果

3.参考文献

[1]兰少峰,刘升.布谷鸟搜索算法研究综述[J].计算机工程与设计,2015,36(04):1063-1067.

4.Matlab代码

https://mianbaoduo.com/o/bread/aJabmp0=

你可能感兴趣的:(智能优化算法:布谷鸟搜索算法)