布谷鸟搜索(Cuckoo Search,CS)算法是2009年Yang等[1]提出的。类似于粒子群优化(Particle Swarm Optimization,PSO)算法[2]、遗传算法[3],是一种新颖的元启发式算法。这种算法源于布谷鸟的巢寄生繁殖机制和鸟类与果蝇的莱维飞行(Levy flight)[4]行为这两个方面。任何优化算法都必然存在优缺点,布谷鸟算法也不例外。为了克服布谷鸟算法在进化后期收敛速度慢、易陷入局部最优等不足,学者们在近几年来努力对其改进并取得了一些成果。2011年Rajabioun等[5]将布谷鸟算法与遗传算法相比较;2013年刘长平等[6]将CS算法与粒子群算法和萤火虫算法进行了测试比较;2014年,Li等[7]将正交法和布谷鸟算法结合;2016年,Uroš等[8]将CS算法与差分进化算法相比较,CS算法均表现其优良的性能。此外,这个算法参数设置少、简单且容易实现,是非常有参考价值的一种优化算法。
近几年来研究者们将布谷鸟算法应用于实际的优化问题中,从单目标优化问题到多目标优化问题,该算法都表现出了良好的寻优能力;如龙文等[9]将一种混合的布谷鸟算法应用于求解约束化工优化问题;孙强等[10]将布谷鸟算法应用于光伏并网中,Lidberg等[11]将其用于制造飞机和燃气涡轮发动机部件的多任务电池的优化等。有许多研究者们将智能优化算法应用于谐波估计中,2002年Macedo等[12]将遗传算法应用于谐波检测中,2012年DE A L Rabelo等[13]将粒子群算法应用于谐波估计中。谐波污染严重影响电力系统的正常运行以及电能的质量,因此,采用布谷鸟算法估计谐波成分具有很高的实用价值。首先,介绍布谷鸟算法的工作原理;其次,对其引入混沌理论,提出了改进的混沌布谷鸟算法;然后,将其应用于谐波估计中,并给出了操作过程;最后,通过实验验证了改进的混沌布谷鸟算法的有效性,并与粒子群算法谐波估计方法进行比较,布谷鸟算法在分析谐波成分时具有明显的优势。
1 布谷鸟搜索算法布谷鸟采用巢寄生繁殖策略,它将自己的蛋寄放在其他鸟类的巢中让其他鸟类为其孵化。当其他鸟类发现这些外来蛋时,会选择丢弃这些蛋或放弃自己的巢,在其他地方重筑新巢。基于布谷鸟的这种繁殖策略,采用莱维(Levy)飞行方式来更新鸟窝位置,该算法使用以下3个理想规则[14]:
1) 每只布谷鸟一次产一个卵,并随机选择寄生巢来孵化它。
2) 在随机选择的一组寄生巢中,最好的寄生巢将会被保留到下一代。
3) 可利用的寄生巢数量是固定的,一个寄生巢的主人能发现一个外来鸟蛋的概率为Pa。
在以上3个理想规则的基础上,布谷鸟算法采用莱维飞行随机游动来更新鸟巢位置,其更新公式为:
${{X}_{g+1,i}}={{X}_{g,i}}+\alpha \oplus Levy\left( \lambda \right)$ | (1) |
其中:α为步长大小,Levy(λ)为随即搜索路径,服从Levy概率分布。
按发现概率Pa丢弃部分解后,按随机偏好游动产生新的解:
${{X}_{g+1,i}}={{X}_{g,i}}+r({{X}_{g,i}}-{{X}_{g,k}})~$ | (2) |
其中:r是区间(0,1) 内服从均匀分布的随机数;Xg,i和Xg,k是代表第g代的两个不同的随机解。
2 混沌布谷鸟搜索算法在基本的CS算法中,采用随机初始化产生初始鸟巢位置,具有较大的盲目性,针对混沌运动的特点,将其运用在优化算法的初始过程中,可以增加种群多样性,提高算法的质量。其次,将混沌扰动算子引入算法的局部最优值中,使算法能够跳出局部最优值。将混沌理论引入布谷鸟算法中,利用混沌理论的特性弥补CS算法在迭代后期收敛速度较慢、收敛精度较低的缺点。
2.1 混沌初始化混沌状态[15]是自然界中广泛存在的一种非线性现象,具有随机性、遍历性、规律性,对初始条件的敏感性等优点。混沌运动能在一定范围内按其自身的“规律”不重复地遍历所有状态。利用混沌运动的这些特性,可以将其应用于优化搜索。Logistic映射是一种典型的混沌系统,其表达式为:
${{X}_{i+1}}=u{{X}_{i}}\left( 1-{{X}_{i}} \right);i=0,1,2,...,N,u\in \left( 2,4 \right]$ | (3) |
其中,u为控制变量,当u=4时,X0∈(0,1) ,Logistic完全处于混沌状态。
混沌初始化的具体过程如下。
步骤1 设置混沌最大迭代次数为M,控制参数u=4,种群规模为N。
步骤2 随机产生D维向量X0=(x01,x02,…,x0D),其中X0i∈(0,1) 且X0i∉{0.25,0.5,0.75}。
步骤3 通过式(3) 迭代M次产生M个混沌向量Yi=(yi1,yi2,…,yiD),i=1,2,…,M。
步骤4 由式(4) 产生初始鸟巢位置Xi=(xi1,xi2,…,xiD):
${{x}_{ij}}=x\min +{{y}_{ij}}\left( x\max -x\min \right)$ | (4) |
步骤5 计算目标函数,从M个初始群体中选出较优的N个鸟巢位置作为初始鸟巢位置。
2.2 混沌扰动算子随机产生一个D维向量X0=(x01,x02,…,x0D),向量的每个元素均是(0,1) 区间的随机数。根据式(3) ,产生混沌序列X=(x1,x2,…,xD)。
在多维复杂优化问题中,各维之间数值不同,所以各维采取不同的扰动半径。本文采用式(5) 确定扰动半径:
${{R}_{d}}=\beta \bullet \left| \frac{1}{n}\sum\limits_{k=1}^{N}{{{X}_{k,d}}-{{X}_{best,d}}} \right|$ | (5) |
其中: β为比例系数,$\frac{1}{n}\sum\limits_{k=1}^{N}{{{X}_{k,d}}}$为当前代鸟巢位置的第d维变量的平均值,Xbest,d为当前代最优鸟巢位置第d维变量值。
在偏好随机游动更新鸟巢位置后,对最优鸟巢位置添加混沌扰动算子,其方法如下式:
${{X}_{bezt,d}}={{X}_{best,d}}+{{R}_{d}}\left( 2{{x}_{d}}-1 \right)$ | (6) |
其中xd为当前代由式(3) 产生的混沌序列。
3 布谷鸟搜索算法谐波估计 3.1 谐波估计模型谐波信号可以用傅里叶级数来表示,各次谐波成分都有各自的幅值和相角,一般的谐波信号波形为:
$x(t)={{x}_{0}}{{e}^{-\lambda t}}+\sum\limits_{i=1}^{n}{{{A}_{c,i}}\cos (i{{\omega }_{0}}t+{{\theta }_{c,i}})}{{A}_{s,i}}\sin (i{{\omega }_{0}}t+{{\theta }_{s,i}})$ | (7) |
其中:x0e-λt是直流衰减成分,λ是时间常数:n表示谐波成分的个数:Ac,i、As,i、θc,i、θs,i正弦和余弦的幅值和相位角:ω0是基波频率。
谐波信号是连续的,这里需要对其采样离散化,其中离散采样个数m要远大于所需估计参数N+1:
$\begin{align} & x\left( k \right)={{x}_{0}}{{e}^{-\lambda t}}+\sum\limits_{i=1}^{n}{\left( {{A}_{c,i}}\cos \left( i{{\omega }_{0}}k{{T}_{s}}+{{\theta }_{c,i}} \right) \right)} \\ & +{{A}_{s,i}}\sin \left( i{{\omega }_{0}}k{{T}_{s}}+{{\theta }_{s,i}} \right) \\ \end{align}$ | (8) |
其中:k是采样数;Ts是采样时间间隔。
谐波估计的目标函数是均方误差函数[11]:
$EF=1/\sqrt{\sum\limits_{i=1}^{m}{e_{m}^{2}}/m+\Delta }$ | (9) |
其中:em=x(t)-xe(t),x(t)为估计信号,xe(t)是采样信号;Δ取0.00001,使得函数EF在最优点有意义。
3.2 CS算法谐波估计的步骤谐波估计的参数包括3个方面:直流衰减分量的幅值、时间常数和各次谐波的振幅。
CS算法谐波估计的算法代码如下。
Begin
混沌初始化N个鸟巢位置:Xi=(xi1,xi2,…,xiD),i=1,2,…,N;
按式(9) 计算适应度值f(Xi);
While(不满足结束条件)
采用莱维飞行更新公式(1) 产生新的解Xji;
选择候选解Xj;
计算新解的适应度值f(Xi);
If (f(Xi)>f(Xj))
用新解替代候选解;
End
按发现概率Pa丢弃部分解;
用偏好随机游动公式(2) 产生新替代丢弃的解;
比较适应度值,保留较优的解Xbest;
用式(3) 产生混沌序列;
用式(5) 确定混沌扰动区域;
对保留的最优解Xbest按式(6) 进行混沌扰动,产生新的解Xi替代任意一个当前代的解;
If (f(Xi)>f(Xbest))
Xbest=Xi;
End
End
End
4 实验结果及分析 4.1 混沌布谷鸟算法的性能对算法的性能分析采用Matlab 2010b来完成,实验中设定种群规模为30,分别在20,50维对表 1中的5个经典单目标测试函数仿真,实验结果在表 2~5和图 1中显示。最大迭代次数为2000,β设为0.5,独立运行50次。
在固定的收敛次数下,分别比较了PSO、CS和CCS算法的收敛精度的最大值、最小值、平均值、标准误差。f1是简单的单峰函数,常用于测试算法的收敛精度,由表 2的Sphere函数运行结果可知,CS算法的收敛精度远高于PSO算法,CCS算法也在一定程度上提高了收敛精度。f2~f4是复杂的多峰函数。其中: f2在搜索空间内存在多个极值点,极难优化,表 2的Geiwank函数运行结果表明CS算法相比PSO算法有更好的搜索能力,CCS算法则能够更好地跳出局部最优点,搜索到更优的解; f3函数峰形呈高低跳跃,很难寻到全局最优值,常用于验算全局寻优能力和收敛能力,由表 2的Rastrigin函数运行结果可知,CS算法比PSO算法具有更优的全局寻优能力,由于该函数的强烈震荡,CCS算法相比CS算法未能更好地跳出局部最优点; f4函数由于全局极小值被无限多个局部极小值所包围,很难跳出局部极小值。由表 2的Rosenbrock函数运行结果可知,CS算法的收敛精度比PSO高,但CCS这种改进算法仍成功提高了收敛精度。
由图 1和表 3可知,PSO、CS、CCS均能够成功收敛。在达到相同目标精度的情况下,CS所需的最大迭代次数、最小迭代次数和平均迭代次数低于PSO算法,成功率高于PSO算法,而CCS算法比标准CS算法更少,成功率更高,说明混沌CS算法的收敛速度、收敛性能明显更优。综上所述,CS算法较PSO算法具有更好的寻优能力,但仍有很大的改进空间。由实验结果可知,CCS算法这种改进算法比CS算法具有更优的寻优能力。
在这里采用文献[11]中的谐波电流信号,其数学表达式为:
I(t)=0.2491e-0.4t+0.95872 cos(ωt)+0.2841 sin(ωt)+
0.0619 cos(2ωt)+0.1054 sin(2ωt)+0.0329 cos(3ωt)+
0.0811 sin(3ωt)+0.0206 cos(4ωt)+0.0643 sin(4ωt)+
0.0146 cos(5ωt)+0.0528 sin(5ωt)+0.0116 cos(6ωt)+
0.0448 sin(6ωt)+0.0052 cos(7ωt)+0.0401 sin(7ωt)
在文献[11]中,分别使用了离散傅里叶变换方法和PSO算法进行了谐波估计,结果显示PSO算法比离散傅里叶方法的估计精度更高,但是PSO算法谐波估计没有达到最优估计。在这里,对CS算法谐波估计与PSO算法谐波估计进行了比较。CS算法的参数设置于文献[11]相同,采样个数为64,种群规模为30,最大迭代次数为15000,算法独立运行10次。
表 4是采用PSO算法与CS算法及CCS算法分析谐波电流的实验结果。实验分别比较了估计均值和标准偏差,实验结果显示CCS算法可以更加精确地估计谐波成分,特别是对直流衰减分量的时间常数λ的估计;并且在估计电流信号时,CCS算法的标准偏差比PSO算法要小5个数量级,比CS算法小两个数量级。说明CCS算法比PSO算法及CS算法更加精确,更加稳定和可靠。由于取Δ=0.00001,所以适应度函数EF的最大值为100000。固定目标精度为100000,用布谷鸟算法与混沌布谷鸟算法估计谐波成分。由表 5可知混沌布谷鸟算法在达到目标精度时所需的最大迭代次数、最小迭代次数、平均迭代次数均比标准CS算法要少。这说明混沌布谷鸟算法有更快的搜索能力,具有很好的实用性和寻优的有效性。
5 结语混沌运动具有遍历性、随机性和规律性等优点,将混沌理论引入CS算法有效提高了标准CS算法的优化性能,弥补标准CS算法后期收敛速度慢、收敛精度不高等不足。通过对4个基准函数仿真测试,实验结果证明了这种改进方法的有效性。将CCS算法应用于谐波估计后,通过仿真实验,结果表明,与基于PSO算法的谐波估计方法相比,基于CCS算法的谐波估计方法具有更高的估计精度,特别是对直流衰减分量的时间常数的估计。但是CCS算法并没有在总体变量上得到优化,如何改进算法更好地适用于谐波估计,这将是进一步的研究内容。
[1] | YANG X S, DEB S. Engineering optimization by cuckoo search[J]. International Journal of Mathematical Modelling and Numerical Optimization, 2010, 1 (4) : 330-343. doi: 10.1504/IJMMNO.2010.035430 |
[2] | 白国振, 荆鹏翔. 基于改进粒子群算法的并联机械手运动学参数辨识[J]. 信息与控制, 2015, 44 (5) : 545-551. ( BAI G Z, JIN P X. Kinematic parameter identification of parallel manipulator based on improved particle swarm algorithm[J]. Information and Control, 2015, 44 (5) : 545-551. ) |
[3] | TOLEDO C F M, OLIVEIRA L D, PEREIRA R D F, et al. A genetic algorithm/mathematical programming approach to solve a two-level soft drink production problem[J]. Computers & Operations Research, 2014, 48 (48) : 40-52. |
[4] | YAHYA M, SAKA M P. Construction site layout using multi-objective artificial bee colony algorithm with Levy flights[J]. Automation in Construction, 2014, 38 (3) : 14-29. |
[5] | RAJABIOUN R. Cuckoo optimization algorithm[J]. Applied Soft Computing, 2011, 11 (8) : 5508-5518. doi: 10.1016/j.asoc.2011.05.008 |
[6] | 刘长平, 叶春明. 求解置换流水车间调度问题的布谷鸟算法[J]. 上海理工大学学报, 2015, 35 (1) : 17-20. ( LIU C P, YE C M. Cuckoo search algorithm for solving permutation flow-shop scheduling problems[J]. Journal of University of Shanghai for Science and Technology, 2015, 35 (1) : 17-20. ) |
[7] | LI X T, WANG J N, YIN M. Enhancing the performance of cuckoo search algorithm using orthogonal learning method[J]. Neural Computing and Applications, 2014, 24 (6) : 1233-1247. doi: 10.1007/s00521-013-1354-6 |
[8] | UROŠ M I, FISTER I F. Hybrid self-adaptive cuckoo search for global optimization[J]. Swarm and Evolutionary Computation, 2016, 29 (3) : 47-72. |
[9] | 龙文, 陈乐. 求解约束化工优化问题的混合布谷鸟搜索算法[J]. 计算机应用, 2014, 34 (2) : 523-527. ( LONG W, CHEN L. Hybrid cuckoo search algorithm for solving constrained chemical engineering optimization problems[J]. Journal of Computer Applications, 2014, 34 (2) : 523-527. ) |
[10] | 孙强, 王雪, 罗凤章, 等. 基于布谷鸟算法的分布式光伏并网接纳能力计算[J]. 电力系统及其自动化学报, 2015, 27 (S1) : 1-6. ( SUN Q, WANG X, LUO F Z, et al. Capacity of distribution network on acceptance of distributed photovoltaic system based on cuckoos search algorithm[J]. Proceedings of the CSU-EPSA, 2015, 27 (S1) : 1-6. ) |
[11] | LIDBERG S. Evolving cuckoo search from single-objective to multi-objective[D]. Skovde, Sweden:University of Skovde,2011. |
[12] | MACEDO R A, DA SILVA D, COURY D V. A new technique based on genetic algorithms for tracking of power system harmonics[C]//SBRN' 02:Proceedings of the VⅡ Brazilian Symposium on Neural Networks. Washington, DC:IEEE Computer Society, 2002:7-12. |
[13] | DE A L RABELO R, DE S LEMOS M V, BARBOSA D. Power system harmonics estimation using particle swarm optimization[C]//Proceedings of the 2012 IEEE World Congress on Computational Intelligence. Piscataway, NJ:IEEE, 2012:10-15. |
[14] | DE A L RABELO R, LEMOS M V, BARBOSA D. Power system harmonics estimation using particle swarm optimization[C]//Proceedings of the 2012 World Congress on Computational Intelligence. Piscataway, NJ:IEEE, 2012:10-15. |
[15] | 胥小波,郑康锋,李丹,等.新的混沌粒子群优化算法[J].通信学报,2012,33(1):24-30. ( XU X B, ZHENG K F, LI D, et al. New chaos-particle swarm optimization algorithm [J]. Journal on Communications, 2012, 33(1): 24-30. ) |