2. 辽宁工程技术大学电气与控制工程学院, 辽宁葫芦岛 125105
2. College of electrical and control engineering, Liaoning University of engineering and Technology, Huludao 125105, China
人工蜂群算法(artificial bee colony algorithm,ABCA)是一种模拟自然界中蜜蜂按照不同分工而共同寻找优质蜜源的智能方法。1995年Seeley首次阐述了有关蜜蜂群体行为的自组织模型。2005年D.Karaboga建立了具有完整协同动作的人工蜂群算法模型,而且通过非线性的函数优化实验验证了人工蜂群算法比一般启发式优化算法具有更强的稳定性和可靠性。2006年D.Karaboga等又将ABC理论应用到限制性数值优化问题、神经网络训练、数字滤波器设计等,并取得了较好的测试效果。在文献[1, 2]中,Dervis Karaboga等通过对多种智能优化算法的定量对比验证,得出在迭代误差曲线对比中,人工蜂群算法要比其他智能优化算法在曲线大部分阶段上具有更好的优化性能,至少有着相似的性能。人工蜂群算法和其他智能优化算法类似,算法本身也存在自身的优化缺陷,从全局搜索能力表现出的搜索速度缓慢或搜索暂时性的停滞现象,在局部搜索能力存在易陷入局部极小值问题,特别是对于人工蜂群算法,存在一个对于该算法优化性能特别重要的影响因素,即蜂群的多样性。多样性降低,会使蜜蜂行为中漏掉一定的搜索区域,直接导致算法陷入局部最优,进而会影响全局搜索能力,收敛速度会受到极大影响。同时,蜂群群体的具体行为也会存在一些问题,比如:蜂群的不同选择方式和进化策略都会使得算法在处理一些具体优化问题时存在易陷入早熟收敛或收敛速度慢等问题。文献[6]结合了Markov的性质和随机搜索算法的收敛准则,证明了ABC算法具备全局收敛的性质,并提出一种搜索效率更高的局部搜索代替原来的随机解的设想;文献[7]分别从蜂群初始化、邻域搜索及跟随蜂行为这3个角度对人工蜂群算法进行了改进优化,有效地平衡了全局搜索和局部搜索,算法的性能也得到了提高;文献[8]充分考虑以粒子群算法为代表的智能优化算法普遍存在的算法局限性的问题,针对不同的缺陷提出改进策略,通过将多种改进策略进行融合,通过自适应学习机制选出恰当的策略来解决不同形态的复杂问题。
人工蜂群算法是依赖位置信息最终搜索到最优蜜源,所以邻域搜索就显得格外重要。目前人工蜂群算法的改进方法大多是从收敛速度的角度出发,从全局搜索角度来看,极有可能漏掉一部分的邻域搜索范围,而这种邻域搜索的局限性会直接导致蜂群多样性降低,容易陷入局部极值,针对特殊优化问题时,有可能得不出全局最优解。所以,提出一种基于混沌搜索策略的改进人工蜂群算法,引入混沌搜索的思想,通过载波方式将混沌变量的值映射到优化变量的取值范围内,产生局部最优解的新增邻域点[5, 9],从而增强种群的多样性,提高全局搜索能力,使其免于陷人局部最优而获得全局最优解。
1 人工蜂群算法人工蜂群算法搜索蜜源过程中,蜜蜂按照不同的分工可分为采蜜蜂、观察蜂和侦查蜂3种,采蜜蜂通过不断探索,保持最优质蜜源,观察蜂及时补充优质蜜源对应蜜蜂的数目,侦察蜂在蜂群邻域寻找新蜜源。整个蜂群搜索过程并不是单一地各司其职地进行,而是3种蜂种在密切的相互联系及转化中完成的,并且各个蜂种之间通过蜜蜂独特的交流方式,即找到蜜源的蜂种依靠在指定区域跳摇摆舞向别的蜂种发送自己携带蜜源的信息,同时,通过所携带蜜源量的多少决定该蜂种跳摇摆舞的时间长短,蜜源花蜜量的多少可以看成是适应度的大小,所以观察蜂看到别的蜂种所跳摇摆舞的时间越长,说明该蜂种的适应度值越大,所带蜜源花蜜量就越多,反之亦然。当观察蜂被招募后转化为采蜜蜂,便开始执行采蜜蜂的行为,当采蜜蜂放弃原来蜜源而转化为侦查蜂后,便开始在蜂群邻域寻找新蜜源。不断地估算比较适应值的大小而进行不同蜂种之间的转化合作,蜂群才能在邻域范围不断地刷新蜂蜜含量较高的新蜜源,即找到最优解。
为了更好地展示蜜蜂觅食的行为特征,用图 1来展示整个算法搜索过程[1, 2],其中观察蜂行为(UF),被招募为采蜜蜂采蜜行为(EF1),原采蜜蜂采蜜行为(EF2),S线为侦察蜂寻找蜂巢附近的蜜源行为,R线为被招募的观察蜂寻找蜜源行为。
图 1完整地描述了3种蜂种协同合作、共同寻找最优蜜源的原理,人工蜂群算法的基本步骤如下[3, 4]:
1)初始化参数。设置蜂群规模NP,采蜜蜂Ne,观察蜂Nu,蜜源个数NP/2,蜜源维数D,邻域搜索空间S,迭代次数K,蜜蜂停留阈值Limit,采蜜蜂种群记为X=[X1 X2 … XNe],其中Xi∈S(i≤Ne)是Ne个个体,X(0)代表初始采蜜蜂种群,X(n)代表第n代采蜜蜂种群。
2)对于n=0时刻,随机生成Ns个可行解(X1,X2,…,XNe),具体随机产生的可行解Xi 为
式中:j取值于{1,2,…,D},为D维解向量的某个分量。分别计算各向量的适应度值,并将排名前一半的作为初始的采蜜蜂种群X(0),初始标志向量trail(i)=0,记录采蜜蜂停留同一蜜源的搜索次数。3) 设置初始迭代次数iter=0,对于第n步的采蜜蜂Xi(n),在当前位置向量附近邻域进行搜索新的位置,搜索公式为
式中:j取值于{1,2,…,D},k取值于{1,2,…,Ne},且k≠i。k,j均为[-1,1]的随机数。4)根据最优适应度选择原则,既要保留最优位置蜜源,又要使蜂群搜索方向向着蜜源含量高升的方向迭代。故当采蜜蜂在蜂巢邻域范围第2次找到新蜜源时,记此时位置向量为new_Xi,而上一次所找到的蜜源位置向量为Xi,则记2次蜜源搜索中,适应度值较大的位置蜜源为Ts,其概率分布为
5)当许多个采蜜蜂将所采蜜源信息带到舞蹈区共享给观察蜂时,观察蜂将会做出2个动作行为:首先,观察蜂根据概率式(4)选择符合自身条件的采蜜蜂,转化为采蜜蜂;其次,通过式(4)中适应度值公式在蜂群邻域进行初次蜜源的搜索。不同观察蜂被招募为对应采蜜蜂的概率为
式中:Ts1表示随机映射。6)对比多次搜索到的新蜜源位置,生成最优蜜源位置向量集(x1,x2,…,xd),d为现有采蜜蜂个数,同时得出,到目前为止更新的最优适应度Best_Fitness。
7)在蜜源搜索中,不断地用标志向量trail(i)记录着同一采蜜蜂对同一蜜源位置的搜索次数,当trail(i)>Limit且不满足式(3)时,即说明该邻域范围位置蜜源含蜜量整体偏低,若再在此地搜索蜜源,会严重影响蜜源质量及搜索速度,故须将此类采蜜蜂重新规定初始蜜源位置。即
8)如果满足停止准则,则停止计算并输出最优适应度值Best_Fitness,迭代次数iter=iter+1,相应的参数(x1,x2,…,xD),否则转向第3)步。
2 基于混沌搜索策略的改进人工蜂群算法针对人工蜂群算法(ABC)寻优过程中缺乏多样性,收敛速度较慢,易陷入局部最优等缺陷,引入混沌搜索策略的改进人工蜂群算法(improved artificial bee colony algorithm of chaos searching strategy,CSABCA),采用混沌搜索策略细化人工蜂群算法中采蜜蜂和观察蜂的搜索空间,在迭代进化中产生局部最优解的新增邻域点,从而加速了侦查蜂的搜索,使得蜂群以最快速度找到最优蜜源。
混沌搜索的基本思想[5]是根据式(6)
产生混沌序列,然后通过载波方式将混沌变量的值映射到优化变量的取值范围。式(6)中,n∈[1,Nmax],d∈[1,D],μ是混沌状态的控制参数,当μ=4时,Logistic方程为完全混沌状态。它的数学描述过程为:当有采蜜蜂转变为侦查蜂时,产生一个D维随机向量y0=[y0,1 y0,2 …],y0∈[0, 1],y0为迭代初始值,通过Logistic方程开始迭代,得到序列yn,d。同时,根据式(6)产生的局部最优解的新增邻域点,按照载波方式将混沌变量放大后应用在待进行蜜源搜索的单个变量fi,d上,可得新个体 将混沌变量yn,d映射到了决策变量y′n,d,其中y′n,d是以转化为侦查蜂的采蜜蜂所在蜜源fi,d为中心,以Ri,d为半径的区域内。最后,计算蜜源收益度Fitness(y′n,d),同时计算在混沌迭代过程中的最优收益度Best_Fitness(y′n,d),若优于Fitness(y′n,d),替换原蜜源。对于目标函数minf(x),目标变量为X=[x1 x2 … xd]T,完整的基于混沌搜索策略的人工蜂群算法(CSABC)实现步骤如下:
1)按照操作1)进行,记最大混沌迭代次数为Cmax。
2)利用混沌序列初始蜂群生成数值都在(0,1)的NP个互异D维向量y0,通过式(7)的载波方式将y0映射到原解空间邻域范围内,产生决策变量。
3)将混沌变量y′n,d和yn,d线性组合得到新的决策变量y″n,d[19]:
式中:η为动态调整系数,η的表达式为η=1- ,σ由目标函数而定。4)按照操作2)~6)进行。
5)通过计算适应度函数值Fitness(y′n,d),取适应度值大的前NP/2个向量作为蜜源位置,对应NP/2个采蜜蜂。通过式(2) 更新蜂群位置,NP/2个采蜜蜂在邻域附近按照式(7)寻找新解y″n,d,再次计算适应度值Best_Fitness(y′n,d),若Best_Fitness(y″n,d)Fitness(y′n,d),y′n,d=y″n,d,trail(i)=0;否则y′n,d不变,trail(i)=trail(i)+1,并计算观察蜂转化为采蜜蜂的个数。
6)若trail(i)>Limit时,进行7),然后第i个采蜜蜂舍弃蜜源转变为侦查蜂,侦查蜂在混沌区域范围内搜索邻域蜜源y″n,d。
7)记录到目前为止的所有蜜蜂寻找的最优蜜源,更新iter=iter+1,判断是否达到最大混沌迭代次数,如果是,结束混沌搜索,找到最优解,否则,返回到 2)。CSABC算法的基本流程图[14]如图 2。
为验证基于混沌搜索策略的人工蜂群算法的性能,选用6 个标准测试函数Sphere、Rosenbrock、Rastrigrin、Griewank、Ackley 和Schwefel进行性能测试[15, 16, 17]。Sphere是一个基本单峰优化函数,只有全局极值,用于测试算法寻优精度和收敛速度;Rosenbrock是非凸、病态单峰函数,有局部极小值,用于测试算法的收敛速度和执行效率;Rastrigrin、Griewank、Ackley 和 Schwefel都是复杂的非线性多峰函数,有许多局部极值点,用于测试算法的全局搜索能力、跳出局部极值并避免早熟的能力[5, 10, 20]。6个标准测试函数的表达式、搜索空间及最优解见表 1。
函数 | 测试函数表达式 | 搜索范围 | 最优值 |
f 1 | [-100,100] | f 1(0,0,…,0)=0 | |
f 2 | [-30,30] | f 2(1,1,…,1)=0 | |
f 3 | [-5.12,5.12] | f 3(0,0,…,0)=0 | |
f 4 | [-600,600] | f 4(0,0,…,0)=0 | |
f 5 | [-32,32] | f 5(0,0,…,0)=0 | |
f 6 | [-500,500] | f 6(420.9687,…)=418.9829 |
采用CSABC与ABC 2种算法的对比仿真实验进行性能测试。在ABC算法中,设定初始参数:蜂群规模NP=100,蜜源个数为50,D=100,Ne=20,Nu=10,Ns=40,搜索次数极限Limit=100,最大迭代次数为2000;在CSABC算法中,混沌状态的控制参数μ=4,为混沌映射半径Ri,d为函数自变量定义域的3/10,调节系数σ=0.25,其余参数均与ABC相同。图 3~图 8是为标准人工蜂群算法(ABC)与本文提出的基于混沌搜索策略的改进人工蜂群算法(CSABCA)对6个标准测试函数的优化过程中,蜂群寻优对比曲线。
通过图 3~图 8测试验证,可以看出,在取维数为100,蜂群规模为100的情况下,CSABC算法无论在收敛速度方面、收敛精度还是寻找全局最优值方面,都明显要优于ABC算法,它可以有效地避免陷入局部极值而加速收敛。测试结果参数见表 2。
函数 | 算法 | 均值 | 标准差 | 最优值 |
Sphere | ABC | 5.34516×10 -11 | 3.55671×10 -12 | 4.85461×10 -12 |
CSABC | 1.23503×10 -16 | 6.12312×10 -17 | 1.92924×10 -16 | |
Rosenbrock | ABC | 25.697894 | 13.10012 | 23.28459 |
CSABC | 0.541187 | 0.556073 | 0.330645 | |
Rastrigrin | ABC | 9.05027×10 -9 | 1.59532×10 -8 | 6.25471×10 -7 |
CSABC | 6.20541×10 -13 | 1.07481×10 -12 | 0 | |
Griewank | ABC | 3.71686×10 -6 | 4.70565×10 -6 | 9.04417×10 -7 |
CSABC | 2.22828×10 -10 | 3.82682×10 -10 | 6.64705×10 -10 | |
Ackley | ABC | 1.5099×10 -8 | 0.78904×10 -8 | 1.80593×10 -8 |
CSABC | 1.74675×10 -14 | 4.10232×10 -15 | 2.22045×10 -14 | |
Schwefel | ABC | -19.6952 | 0.958708 | -16.1453 |
CSABC | -34.8402 | 0.671552 | -34.4944 |
由表 2可以看出,6个测试函数中,CSABC算法的最优值,均值及标准差均优于ABC算法。将本文CSABC算法与根据文献[11]中的改进算法IABC,文献[12]中的算法SFABC,文献[13]中的算法LRABC,再次进行寻优测试进而验证本文算法的有效性,取最大混沌搜索次数Cmax=40,取标准测试函数Rosenbrock 和Griewank分别测试运行40次,设算法精度为10-25,进行对比验证,见表 3。
函数 | 算法 | 均值 | 标准差 | 平均时间 |
Rosen-brock | IABC | 4.95867×10 -1 | 7.66847×10 -1 | 25.1755 |
SFABC | 6.471200 | 3.852700 | 26.6514 | |
LRABC | 1.35918×10 -1 | 8.74717×10 -2 | 24.1843 | |
CSABC | 5.2657×10 -2 | 6.38326×10 -3 | 17.5548 | |
Grie-wank | IABC | 0 | 0 | 31.0128 |
SFABC | 2.5457×10 -15 | 7.78426×10 -16 | 22.8748 | |
LRABC | 0 | 0 | 27.8934 | |
CSABC | 0 | 0 | 18.2354 |
由表 3中多种改进人工蜂群算法的对比测试可得到,对测试函数Griewank、IABC、SFABC和CSABC算法均达到最优值,而对Rosenbrock测试函数中,CSABC算法在均值、标准差及平均运行时间上均优于IABC、SFABC和LRABC算法,从而进一步验证了CSABC算法的优越性。
5 结束语本文主要针对人工蜂群算法,蜂群搜索速度慢甚至停滞,多样性降低,容易陷入局部极值等诸多不足,提出了一种基于混沌搜索策略的改进人工蜂群算法。该算法引入了混沌搜索策略,通过载波方式将混沌变量的值映射到优化变量的取值范围内,产生局部最优解的新增邻域点,从而加快了全局搜索能力和局部搜索能力,增强了蜂群多样性,跳出了局部极值,提高了算法收敛速度。通过6个标准测试函数的对比寻优验证,CSABC算法具有收敛速度快,收敛精度高和较强的全局搜索能力。同时,对比了多种改进人工蜂群算法,充分验证本文算法的有效性和优越性。
[1] | KARABOGA D, AKAY B. A comparative study of artificial bee colony algorithm[J]. Applied Mathematics and Computation, 2009, 214(1):108-132. |
[2] | KARABOGA D, OZTURK C. A novel clustering approach:artificial bee colony(ABC) algorithm[J]. Applied Soft Computing, 2011, 11(1):652-657. |
[3] | ZHU Guopu, KWONG S. Gbest-guided artificial bee colony algorithm for numerical function optimization[J]. Applied Mathematics and Computation, 2010, 217(7):3166-3173. |
[4] | SZETO W Y, WU Yongzhong, HO S C. An artificial bee colony algorithm for the capacitated vehicle routing problem[J]. European Journal of Operational Research, 2011, 215(1):126-135. |
[5] | 罗钧, 李研. 具有混沌搜索策略的蜂群优化算法[J]. 控制与决策, 2010, 25(12):1913-1916. LUO Jun, LI Yan. Artificial bee colony algorithm with chaotic-search strategy[J]. Control and Decision, 2010, 25(12):1913-1916. |
[6] | 宁爱平, 张雪英. 人工蜂群算法的收敛性分析[J]. 控制与决策, 2013, 28(10):1554-1558. NING Aiping, ZHANG Xueying. Convergence analysis of artificial bee colony algorithm[J]. Control and Decision, 2013, 28(10):1554-1558. |
[7] | 王冰. 基于局部最优解的改进人工蜂群算法[J]. 计算机应用研究, 2014, 31(4):1024-1026. WANG Bing. Improved artificial bee colony algorithm based on local best solution[J]. Application Research of Computers, 2014, 31(4):1024-1026. |
[8] | 伍大清, 郑建国. 基于混合策略自适应学习的并行粒子群优化算法[J]. 控制与决策, 2013, 28(7):1087-1093. WU Daqing, ZHENG Jianguo. Improved parallel particle swarm optimization algorithm with hybrid strategy and self-adaptive learning[J]. Control and Decision, 2013, 28(7):1087-1093. |
[9] | 胥小波, 郑康锋, 李丹, 等. 新的混沌粒子群优化算法[J]. 通信学报, 2012, 33(1):24-30, 37. XU Xiaobo, ZHENG Kangfeng, LI Dan, et al. New chaos-particle swarm optimization algorithm[J]. Journal on Communications, 2012, 33(1):24-30, 37. |
[10] | 匡芳君, 徐蔚鸿, 金忠. 自适应Tent混沌搜索的人工蜂群算法[J]. 控制理论与应用, 2014, 31(11):1502-1509. KUANG Fangjun, XU Weihong, JIN Zhong. Artificial bee colony algorithm based on self-adaptive tent chaos search[J]. Control Theory & Applications, 2014, 31(11):1502-1509. |
[11] | 王辉. 改进的蜂群算法[J]. 计算机工程与设计, 2011, 32(11):3869-3872. WANG Hui. Improved artificial bee colony algorithm[J]. Computer Engineering and Design, 2011, 32(11):3869-3872. |
[12] | 王辉. 一种带共享因子的人工蜂群算法[J]. 计算机工程, 2011, 37(22):139-142. WANG Hui. Artificial bee colony algorithm with sharing factor[J]. Computer Engineering, 2011, 37(22):139-142. |
[13] | 刘三阳, 张平, 朱明敏. 基于局部搜索的人工蜂群算法[J]. 控制与决策, 2014, 29(1):123-128. LIU Sanyang, ZHANG Ping, ZHU Mingmin. Artificial bee colony algorithm based on local search[J]. Control and Decision, 2014, 29(1):123-128. |
[14] | 彭泓, 丁玉成. 基于遗传交叉因子的蝙蝠算法的改进[J]. 激光杂志, 2015, 36(2):23-26. PENG Hong, DING Yucheng. Improved bats algorithm optimization based on genetic hybrid genes[J]. Laser Journal, 2015, 36(2):23-26. |
[15] | GAO Weifeng, LIU Sanyang. A modified artificial bee colony algorithm[J]. Computers & Operations Research, 2012, 39(3):687-697. |
[16] | OMKAR S N, SENTHILNATH J, RAHUL K, et al. Artificial bee colony(ABC) for multi-objective design optimization of composite structures[J]. Applied Soft Computing, 2011, 11(1):489-499. |
[17] | KARABOGA D, AKAY B. Artificial bee colony(ABC) algorithm on training artificial neural networks[C]//Proceedings of IEEE 15th Signal Processing and Communications Applications. Eskisehir:IEEE, 2007:1-4. |
[18] | KARABOGA N. A new design method based on artificial bee colony algorithm for digital IIR filters[J]. Journal of the Franklin Institute, 2009, 346(4):328-348. |
[19] | 王瑞琪, 李珂, 张承慧. 基于混沌多目标遗传算法的微网系统容量优化[J]. 电力系统保护与控制, 2011, 39(22):16-22. WANG Ruiqi, LI Ke, ZHANG Chenghui. Optimization allocation of microgrid capacity based on chaotic multi-objective genetic algorithm[J]. Power System Protection and Control, 2011, 39(22):16-22. |
[20] | 暴励, 曾建潮. 一种双种群差分蜂群算法[J]. 控制理论与应用, 2011, 28(2):266-272. BAO Li, ZENG Jianchao. A bi-group differential artificial bee colony algorithm[J]. Control Theory & Applications, 2011, 28(2):266-272. |