APP下载

拟牛顿布谷鸟混合算法∗

2019-03-26宋庆庆贺兴时

计算机与数字工程 2019年3期
关键词:测试函数鸟窝布谷鸟

宋庆庆 贺兴时 郭 旭

(西安工程大学理学院 西安 710048)

1 引言

布谷鸟算法是2009年YANG模拟布谷鸟的寻窝产卵行为,提出了一种新的智能优化算法,该算法依赖于布谷鸟的巢寄生性和莱维飞行(Lévy flight)搜索原理[1]。布谷鸟算法(CS)有很好的全局搜索能力,但由于它的随机性强造成CS的局部搜索能力相对较弱,在后期优化效率地,因此需要进一步完善[2~4]。拟牛顿法是一种解决优化问题的有效方法,局部寻优能力强,但是拟牛顿算法对初值依赖性大,如果初始选的不合理,很可能造成算法不收敛[5]。目前拟牛顿法已经很好地与粒子群算法[6~7]、蝙蝠算法[8]遗传算法[9~10]、蚁群算法[11]结合。本文结合两算法的优点,在布谷鸟搜索后期可以加入拟牛顿法来优化布谷鸟算法的搜索性能,同时两算法又能相互克服缺陷。

2 拟牛顿布谷鸟算法

2.1 布谷鸟算法

在布谷鸟算法中的三点理想化条件:1)每只布谷鸟一次只产一个蛋,并且随机选择一个鸟窝来存放它;2)最好的鸟窝(解)将会被保留到下一代;3)可用鸟窝的数量n是固定的,鸟窝主人发现外来鸟蛋的概率是 Pα,其中 Pα∈[0,1]。在这种情况下,鸟窝主人可以将该鸟蛋丢弃,或者干脆放弃这个鸟窝,在新的地方重新建立一个鸟窝。在上边三个理想化条件下,布谷鸟根据Levy飞行进行搜索,步长更新公式为

式(1)中⊕表示点对点乘法;式(2)s0表示初始步长。CS的具体操作步骤详见文献[2]。

2.2 拟牛顿法的步骤[12-13]

已知目标函数 f(X)及梯度g(X),终止准则ε。

2)计算搜索方向 dk。做直线搜索 f(X(k)+αkdk)=minf(X(k)+αkdk),求出步长因子 αk,并令xk+1=xk+αkdk。

3)判断是否满足终止条件,若满足则停止,否则转5)。

4)修正Bk产生Bk+1,使得拟牛顿条件成立。5)k=k+1,转至2)。

2.3 拟牛顿布谷鸟算法步骤

2)保留上一代最好鸟窝位置 fmin,利用式(1)、(2)对其他鸟窝进行位置更新,然后得到一组新的鸟窝位置Pt对这组鸟窝位置进行测试,与上一代鸟窝位置Pt-1=比较,让测试值较好的鸟窝位置替代测试值较差的鸟窝位置,从而得到一组较优的鸟窝位置

3)产生服从均匀分布的随机数 r∈(0,1),与布谷鸟的鸟蛋被鸟窝主人发现的概率Pα对比,保留P中发现概率较小的鸟窝位置,对概率较大的鸟窝位置进行随机改变,从而得到一组新的鸟窝位置。将这组鸟窝位置进行测试,与P=的每个鸟窝位置的测试值进行比较,用测试值较好的鸟窝位置替代测试值较差的鸟窝位置,从而得到当代全局最优鸟窝位置

4)以P′为初始位置,采用拟牛顿算法精确搜索目标位置,若达到终止条件,算法结束,并输出最优个体所在的位置,否则返回第2)步。

3 数值模拟

本文比较NQCS和CS对测试函数库中的8个测试函数[14~15]的优化性能。除了 Sphere是单峰函数以外,其他都为多峰函数,测试函数的最优值都为0,如表1所示。种群规模n=25,Pα=0.25,参数β=1.5 ,控制步长α取1,其他参数根据具体情况设定。

表1 测试函数

表2是NQCS和CS的测试结果表,表中的数据是在不同维度下计算函数的平均最优值、标准差、最大值、最小值。首先对与Cube函数、Himmelblau函数、Sphere函数来说NQCS的平均最优值远远小于CS并且计算精度上至少高出2个数量级,Zakharov函数和Zakharov函数甚至高出20个数量级,对于其他三个函数虽然不是很明显但也可看出NQCS的平均最优值结果优于CS的。其次在标准差方面,对于8个函数来说NQCS的标准差也都低于CS可以得出NQCS是比CS稳定的。接着是最大值最小值,发现仍然对于Cube函数、Himmelblau函数、Zakharov函数、Sphere函数、Schwefel 2.4函数NQCS的最值明显小于CS的最值,Cosine Mixture函数、Quintic函数、Ackley函数的最值也是NQCS较小。因此可以初步得出在计算精度上NQCS是优于CS的。

表2 两种算法的测试结果

两个算法在8个测试函数上均独立运行20次,因而在每个测试函数上,每种算法都有20个样本。采用T检验比较分析NQCS和CS的性能。本实验的T检验的自由度为38,显著水平为0.05。P值代表显著性水平,当P小于0.05时,表示NQCS显著优于CS,反之则不显著。

表3 两算法的T检验结果

从表3中NQCS和CS的T检验结果可以看出Cube函数、Zakharov函数、Sphere函数、Quintic函数、Ackley函数、Schwefel 2.4函数P值小于0.01,表明NQCS非常显著的优于CS。Himmelblau函数的P值大于0.01小于0.05,表明NQCS显著优于CS。Cosine Mixture函数的P值大于0.05表明在统计学角度上NQCS是不显著优于CS的。

因此综上所述,NQCS在大部分测试函数上显著优于CS。

4 结语

本文拟牛顿算法和布谷鸟算法相结合,建立了一种混合算法NQCS。先采用CS为BFGS提供一个较好的初始点,然后再用BFGS更进一步搜寻局部精确解。这样既可以避免CS局部精细搜索能力差,又能弥补拟牛顿算法对初值敏感的不足。通过8个基准函数测试其性能,实验结果表明NQCS明显比CS具有更高的收敛精度和更好的全局最优值。

猜你喜欢

测试函数鸟窝布谷鸟
解信赖域子问题的多折线算法
布谷鸟读信
一种基于精英选择和反向学习的分布估计算法
基于自适应选择的多策略粒子群算法
宝宝头上有鸟窝
具有收缩因子的自适应鸽群算法用于函数优化问题
布谷鸟叫醒的清晨
Mini漫画
鸟窝