APP下载

一种改进的鸟群优化算法

2023-01-17冯娟婷王进成顾银鲁

宁夏师范学院学报 2022年10期
关键词:测试函数鸟群生产者

冯娟婷,王进成,顾银鲁

(银川能源学院 基础部,宁夏 银川 750021)

在过去的二十年里,人们提出了大量的群智能优化算法.群智能优化算法是一种人工智能算法,其思想来源于自然界中生物群体在迁移和觅食等活动中所表现出的社会行为.该算法简单易于实现,近些年得到很大的发展,已被“国际进化计算会议(CEC)”列为讨论专题之一.到目前为止所提出的算法有粒子群优化(PSO)[1]、正余弦算法[2](SCA)、蛾火焰优化算法[3](MFO)、蚁群优化算法[3](ACO)、萤火虫算法[4](GSO)、人工蜂群算法[5](ABC)和鸡群算法[6](CSO)等.这些算法都具有较好的优化能力,已被成功应用于各个领域.

鸟群算法(Bird Swarm Algorithm,BSA)是由Meng X B等[7]于2015年提出的一种新的基于群体智能的启发式算法,通过模仿鸟类的觅食、警觉和飞行行为来寻求最优解.BSA具有运算速度快和健壮性好等优点,不仅在解决多领域最优化问题时具有明显的优势[8],而且在电网优化调度、水库优化调度和年径流量预测等方面取得了较好的应用效果[9-10].然而对于算法的改进和提高算法的性能也成为一个重要的研究领域,本文针对BSA算法求解高维复杂优化问题时容易陷入局部最优等问题,提出一种改进的鸟群优化算法(Improved Bird Swarm Optimization Algorithm,IBSA),通过改进鸟群的觅食策略和飞行策略,有效地提高了算法的搜索性能.最后,通过对测试函数进行数值试验,试验结果与PSO、CSO和BSA算法对比,结果表明,IBSA算法具有较快的收敛速度和较好的寻优精度.

1 鸟群算法

鸟群算法模仿的是鸟类的觅食、警戒和飞行行为来寻求最优解,然而这些行为中都包含着一些简单的规则[11-12].

规则1,每只鸟的选择依赖于0到1上的随机数,同时设定一个常量p,当随机数小于p时,该鸟将进行觅食,否则,继续保持警戒.

规则2,鸟群的觅食行为遵从每只鸟根据其自身和整个种群的经验来寻找食物.则觅食行为的位置更新公式为

(1)

其中,j∈[1,2,…,D],rand(0,1)为0到1之间均匀分布的随机数,C和S表示学习因子为两个正数,分别称为自我加速系数和社会加速系数,pi,j表示第i只鸟早先最优位置,gj表示种群共享的早先最优位置.

规则3,鸟群在保持警戒时,个体鸟会试图飞向群体中心,鸟群之间存在着同类的竞争,因而每一只鸟不会直接向中心移动.则警戒行为的位置更新公式为

(2)

(3)

(4)

其中,k(k≠i)是从1到N之间的随机正整数,a1,a2∈[0,2],pFiti表示第i只鸟的最佳适应度值,sumFit表示种群所有鸟最佳适应度值之和,ε是计算机用来避免分母为零的很小常数,meanj表示在第j个元素上的平均位置.A1描述为一只鸟向鸟群中心移动过程中由环境引发的间接作用,而A2描述为由某个具体冲突而引发的直接作用.

规则4和5,因天敌的威胁、觅食或其他原因.每当到达一个新的地点,鸟类将在生产者和乞讨者之间做出选择,自行觅食或者跟随生产者获取食物.则飞行行为中生产者和乞讨者的位置更新公式分别为

(5)

(6)

其中,randn(0,1)表示服从均值为0、标准差为1的高斯分布的随机数,k∈[1,2,…,N],k≠i,FL(FL∈[0,2])为乞讨者跟随生产者寻找食物的概率,FQ表示鸟群中的每只鸟飞行的时间间隔.

2 改进的鸟群优化算法

2.1 惯性权重

惯性权重ω作为BSA算法引入的一个重要参数,对平衡算法的收敛速度和全局搜索能力有着重要的作用.Eberhart R C[13]等将惯性权重引入粒子群算法中,有效地提高了算法的局部和全局寻优能力.本文对ω采用线性递减策略,为保证算法在前期具有较好的全局搜索能力和在后期有较好的局部搜索能力.即惯性权重ω的更新公式如下

(7)

其中,t为当前迭代次数,T为最大迭代次数,ωmax为惯性权重最大值,通常取0.9,ωmin为惯性权重的最小值,通常取0.4.(7)式表示惯性权重由0.9线性递减至0.4.

2.2 动态学习因子

传统鸟群算法对社会认知部分与自我认知部分都采用恒定学习常数,一定程度上限制种群全局协调能力,在算法收敛后期种群多样性丧失而导致全部个体收敛于搜索空间中的某一点,很容易出现早熟现象.因此,在初始搜索阶段,C取大,S取小,个体可以在搜索空间中自由分布,从而增加了个体位置的多样性.随着迭代次数的增加,让C线性减少,S线性增加,有利于加强算法局部搜索能力.为了在算法迭代过程中更好进行个体搜索能力,避免过早陷入局部早熟,本文采用动态调整学习因子,即更新公式如下

c(t)=cmax-cmax×(t-1)/T,

(8)

s(t)=cmin+(t-1)/T,

(9)

其中,t为当前迭代次数,T为最大迭代次数,cmax和cmin分别表示学习因子的上限和下限.为了避免无效率搜索,本文中控制学习因子上下限取2和1.

通过以上分析,改进的BSA算法中鸟群觅食行为的更新公式如下

(10)

2.3 飞行行为中生产者的改进

为了克服鸟群算法中生产者因选择前期步长可能带来的寻优误差,本文通过对原步长加权取均值来取代生产者前期步长的选择,避免直接选取当前个体作为下一步迭代步长而导致算法陷入局部最优.即对鸟群算法中生产者的位置公式(5)做如下改进

(11)

2.4 IBSA算法步骤

Step1 随机初始化每只鸟,设定种群规模、最大迭代次数、飞行行为频率及其他相关参数;

Step2 计算初始解,寻找当前最优个体;

Step3 根据公式(7)、(8)和(9)计算惯性权重和学习因子;

Step4 判断鸟群的飞行状态,若鸟群在不飞行的觅食状态下,则用公式(10)更新鸟的位置;若鸟群在不飞行的警戒状态下,则根据公式(2)来更新鸟的位置.否则,用公式(11)和公式(6)更新所有鸟的位置;

Step5 更新相应的适应度值,若新个体对应的适应值比先前的好,则取代先前的个体.并寻找当前最优适应值对应的个体;

Step6 判断算法迭代终止条件是否满足,若满足则结束循环并输出最优解,否则返回步骤step2.

3 实验结果与分析

为评估IBSA算法的优化性能,选取十二个标准测试函数进行仿真测试(见表2),其中,F1~F7均为高维单峰函数,而F8~F12均为高维多峰函数.将IBSA算法与PSO、CSO和BSA算法的仿真测试结果进行对比(见表3),四种算法分别在8个测试函数上独立运行30次,设置算法相关参数见表1.试验都是在win7系统MATLAB 2012a中完成的,电脑配置为-Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz.

表1 参数设置

表2 测试函数

序号函数名测试函数定义域最优解F8Generalizedpenalizedfunctionfx()=0.1∑D-1i=1(xi-1)2[1+10sin2(3,πxi+1]+10sin2(3πx1)+(xn-1)2{)+ ∑Di=1uxi,10,100,4()[-50,50]0

从表示3可以看出,对于单峰函数,PSO、CSO所得的结果远远大于BSA、IBSA,CSO、PSO都可能陷入了局部最优,而IBSA在BSA的基础上进一步提高了解的质量,搜索结果更加准确;对于多峰函数,PSO、CSO算法可能在迭代初期已经陷入了局部极值,BSA、IBSA的寻优精度相差不大,而IBSA相比其他三种算法有更好的寻优精度.根据表3的统计结果显示,IBSA在8个测试函数上的寻优精度都显著优于其他三种算法.

表3 PSO、CSO、BSA和IBSA数值结果

函数算法最差解最佳解平均值方差F6PSO7.3410×1022.9343×1031.6640×1033.6181×105CSO-2.5483×102-1.8293×102-2.1583×1023.3879×102BSA-2.4449×102-6.6773×101-1.2825×1022.1827×102IBSA-2.9502×102-2.9502×102-2.9502×1026.7945×10-7F7PSO1.8635×1027.1945×1067.5013×1052.3608×1012CSO1.09515.8565×1052.0282×1021.1413×106BSA2.87332.99962.99114.9792×10-4IBSA3.2505×10-79.0806×10-51.6160×10-52.7848×10-10F8PSO2.8617×1031.3489×1071.4974×1068.1313×1012CSO1.7411×10-12.1080×1011.85021.7379×101BSA4.0961×10-11.09648.3391×10-13.1923×10-2IBSA2.3624×10-85.2382×10-67.4299×10-78.6108×10-13

图1~图8给出了四种算法的收敛曲线图,从图1~6图可以看出,对单峰函数,CSO和PSO收敛速度较为缓慢,而BSA和IBSA都具有较好的收敛趋势,但IBSA较BSA收敛速度更快;从图7~图8可以看出,对多峰函数,CSO、PSO和BSA的收敛速度都低于IBSA,不仅前期收敛速度较慢而且后期不稳定,而IBSA具有较好的收敛速度和稳定性.综上所述,本文所提出的IBSA收敛稳定性和收敛速度都明显优于CSO、PSO和BSA.

图1 四种算法对F1的收敛图 图2 四种算法对F2的收敛图

图3 四种算法对F3的收敛图 图4 四种算法对F4的收敛图

图5 四种算法对F5的收敛图 图6 四种算法对F6的收敛图

图7 四种算法对F7的收敛图 图8 四种算法对F8的收敛图

4 结论

针对鸟群算法存在的缺点,本文提出了一种基于改进的鸟群优化算法.通过对鸟群算法的觅食行为和飞行行为的改进,增强了个体的全局寻优能力,有效地平衡了种群局部和全局搜索能力.通过对八个标准测试函数进行测试以及与PSO、CSO和BSA算法相比,无论是单峰函数还是多峰函数,IBSA在收敛速度和寻优精度方面都明显优于其他三种算法.

猜你喜欢

测试函数鸟群生产者
在你灵魂里沉睡的鸟群
解信赖域子问题的多折线算法
1月巴西生产者价格指数上涨3.92%
一种基于精英选择和反向学习的分布估计算法
基于自适应调整权重和搜索策略的鲸鱼优化算法
为什么鸟要成群飞翔?
为什么鸟群飞行时不会彼此冲撞?
2019德国IF设计大奖
具有收缩因子的自适应鸽群算法用于函数优化问题
鸟群优雅