system: [SYSTEM]

user: 4. 数值实验 本实验是在Windows XP系统，Intel Core13(2.4GHz CPU/2G)的环境下运行的，使用Matlab 2012b软件编写的程序。本节将ABC算法、HABC算法以及IHABC算法在30个基准函数 [ 11 ] 上做了测试，比较了三个算法独立运行50次得到的基准函数最小值的平均值和标准差。 图4. IHABC主要步骤 4.1. 基准函数和参数设置 基准函数是从检验全局优化算法表现的函数库中选出的有代表性的函数，涵盖了不同的维数、不同的特点(单峰U/多峰M、可分S/不可分N)，基本信息见表1，具体的表达式详见参考文献 [ 7 ] 和 [ 11 ] 。由于多峰函数和不可分函数能较好地检测智能优化算法的优劣，我们选择了16个多峰不可分函数，10个单峰不可分函数，1个多峰可分函数，2个单峰可分函数。 为了便于比较，三个算法中ABC阶段的参数设置均取相同的值：种群数NP = 50；食物源数目 ；limit = NS × n，n指优化问题的维数；最大函数计算次数300000。HABC中参数设置见文献 [ 8 ] ，IHABC中其它参数设置如下： ， ， ， ， ， 。 4.2. 实验结果 每个算法在基准函数C01-C30上独立运行50次得到函数最小值的平均值和标准差总结在表2中，较好的实验结果用黑色粗体标出。 在单峰可分Sphere (SP)函数C27上，新算法IHABC算法在50次实验中均取得了全局最小值0，标准差也为零，求解精度和算法的稳定性都超过了ABC和HABC算法；在单峰可分离Quartic (QU)函数 Table 1 The information of benchmark function Fun Name Dim Search range Min feature C01 Beale (BE) 2 [−4.5，4.5] 0 UN C02 Goldstein and Price (GP) 2 [−2，2] 3 MN C03 Matyas(MA) 2 [−10，10] 0 UN C04 Shekel’s Foxholes (SF) 2 [−65.536，65.536] 0.998004 MN C05 Shubert (SH) 2 [−10，10] −186.7309 MN C06 Hartman 3 3 [0，1] −3.86278 MN C07 Helical valley problem (HV) 3 [−10，10] 0 UN C08 Colville (CO) 4 [−10，10] 0 UN C09 Perm (PE) 4 [−4，4] 0 MN C10 Power Sum (PS) 4 [0，4] 0 MN C11 Shekel's Problem Family 4 [0，10] −10.53641 MN C12 Fletcher-Powell (FP) 2 0 MN C13 Modified langerman (ML) 5 [0，10] −0.965 MN C14 Modified langerman (ML) 2 [0，10] −1.08094 MN C15 Hartman 6 6 [0，1] −3.32237 MN C16 Modified langerman (ML) 10 [0，10] −0.965 MN C17 Michalewicz (MI) 5 −4.687658 MS C18 Whitley (WI) 10 [−100，100] 0 MN C19 Powell (PO) 24 [−4，5] 0 UN C20 Quartic function (QU) 30 [−1.28，1.28] 0 US C21 Schwefel’s Problem 2.21 (S21) 30 [−100，100] 0 UN C22 Weierstrass (WE) 60 [−0.5，0.5] 0 MN C23 Ackley (AC) 30 [−32，32] 0 MN C24 Griewank (GR) 30 [−600，600] 0 MN C25 Rosenbrock (RO) 30 [−30，30] 0 UN C26 Schwefel’s Ridge or Schwefel’s problem 1.2 (SR) 30 [−100，100] 0 UN C27 Sphere (SP) 30 [−100，100] 0 US C28 Schwefel’s problem 2.22 (S22) 30 [−10，10] 0 UN C29 Zakharov (ZA) 30 [−5，10] 0 UN C30 Ackley (AC) 100 [−32，32] 0 MN 表1. 函数基本信息 Table 2 The results of ABC， HABC and IHABC on function C01-C3 Fun Dim ABC HABC IHABC C01 2 MeanVal StdVal 5.02262e−13 2.33684e−12 3.31089e−17 8.56149e−17 0 0 C02 2 MeanVal StdVal 3.00001 4.50637e−05 3 2.54873e−15 3 2.29381e−14 C03 2 MeanVal StdVal 1.88342e−14 9.19506e−14 1.85964e−16 9.49337e−16 0 0 C04 2 MeanVal StdVal 0.998004 0 0.998004 1.05206e−16 0.998004 1.18688e−16 C05 2 MeanVal StdVal −186.731 1.05556e−14 −186.731 1.46394e−14 −186.731 3.2482e−14 C06 3 MeanVal StdVal −3.86278 2.40284e−15 −3.86278 3.09825e−15 −3.86278 4.90882e−15 C07 3 MeanVal StdVal 0.002556 0.00243314 1.33466e−07 4.87096e−07 1.08073e−13 2.87356e−13 C08 4 MeanVal StdVal 0.169419 0.118691 1.4811e−06 3.50147e−06 0 0 C09 4 MeanVal StdVal 0.0417135 0.0395745 0.0050728 0.018772 8.2582e−06 1.26267e−05 C10 4 MeanVal StdVal 0.00565621 0.00456532 0.000670047 0.00139635 4.95624e−07 6.84974e−07 C11 4 MeanVal StdVal −10.5364 9.32393e−15 −10.5364 5.663e−15 −10.5364 1.31248e−14 C12 2 MeanVal StdVal 2.54012e−19 2.20575e−19 0 0 0 0 C13 5 MeanVal StdVal −0.964908 4.69291e−04 −0.965 3.22144e−13 −0.950218 0.0185058 C14 2 MeanVal StdVal −1.08094 1.64121e−06 −1.08094 1.56413e−15 −1.08094 1.34579e−15 C15 6 MeanVal StdVal −3.322 1.35504e−15 −3.322 2.2349e−16 −3.322 8.97196e−17 C16 10 MeanVal StdVal −0.533924 0.084979 −0.569837 0.143236 −0.6077 0.221634 C17 5 MeanVal StdVal −4.68766 2.75367e−15 −4.68766 2.75367e−15 −4.68766 2.54399e−15 C18 10 MeanVal StdVal 0.374182 1.07672 0.0394587 0.19527 0.138105 0.345766 C19 24 MeanVal StdVal 0.00096315 0.00012072 6.18214e−08 9.73955e−08 2.29692e−64 1.62417e−63 C20 30 MeanVal StdVal 0.0370203 0.00797128 0.0351516 0.00822433 1.76447e−05 1.42544e−05 C21 30 MeanVal StdVal 0.0972994 0.0398698 3.39613e−05 1.48887e−05 7.06268e−29 4.9921e−28 C22 60 MeanVal StdVal 1.42109e−14 8.3449e−15 1.33582e−14 8.80708e−15 0 0 C23 30 MeanVal StdVal 3.49942e−14 4.8119e−15 3.48166e−14 4.76106e−15 0 0 C24 30 MeanVal StdVal 1.1168e−12 6.1165e−12 0 0 0 0 C25 30 MeanVal StdVal 0.213231 0.472143 5.04318e−06 1.44344e−05 0 0 C26 30 MeanVal StdVal 2180.6 1076.14 1.85287e−08 1.31017e−07 0 0 C27 30 MeanVal StdVal 4.64308e−16 6.48251e−17 6.13319e−97 1.48311e−96 0 0 C28 30 MeanVal StdVal 1.16608e−15 1.40688e−16 1.3805e−35 9.76164e−35 0 0 C29 30 MeanVal StdVal 172.588 30.6762 1.81761e−15 4.69437e−15 0 0 C30 100 MeanVal StdVal 2.39054e−11 9.57251e−12 1.79625e−13 2.66457e−14 0 0 表2. ABC、HABC和IHABC算法在函数C01-C30上的结果 C20上，ABC和HABC的性能相当，其平均最优值为0.0370203和0.0351516，标准差为0.00797128和0.00822433，而IHABC的平均最优值为1.76447e−05，标准差为1.42544e−05，比ABC和HABC算法提高了3个数量级。多峰可分Michalewicz (MI)函数C17，取参数m = 10和维数n = 5时，它有5!个局部最优点，三种算法的平均最优值均达到全局最小值−4.68766，HABC和ABC算法的标准差均为2.75367e−15，IHABC的标准差为2.54399e−15，IHABC算法标准差最小。 对于单峰不可分Beale (BE)函数C01、Matyas (MA)函数C03、Colville (CO)函数C08、Rosenbrock (RO)函数C25、Schwefel’s Ridge (SR)函数C26、Schwefel’s problem 2.22 (S22)函数C28和Zakharov (ZA)函数C29，均无局部最小值，只有一个全局最小值，IHABC算法在50次试验中均找到了全局最小值0，标准差是0，寻优性能高于ABC和HABC算法。其中Colville函数在唯一最小值点 附近有一个鞍点，所以HABC算法的平均最优值为1.4811e−06，而ABC算法在50次试验中未能找到全局最小值，其平均最优函数值为0.169416，最好的一次寻优结果为 ，其中 ；Rosenbrock函数是单模态的高维函数，变量间相互关联，其内部是一个长而狭窄，形如抛物线的平坦山谷地带，最小值点 位于其中，ABC算法很难收敛于全局最优值 ，ABC和HABC算法的50次实验的平均最优值分别为0.213231和5.04318e−06，ABC算法的求解精度比IHABC算法低。 对于单峰不可分函数Helical valley problem (HV) C07、Powell (PO)函数C19和Schwefel’s Problem 2.21 (S 21 )函数C21，多峰不可分函数Perm (PE) C09和Power Sum (PS) C10，IHABC算法的寻优精度和稳定性要优于HABC和ABC算法，HABC算法则优于ABC算法。 对于多峰不可分函数Shekel’s Foxholes (SF)函数C04、Shubert (SH)函数C05、Hartman 3 (H 3，4 )函数C06，Shekel’s Problem Family (S 4，10 )函数C11和Hartman 6 (H 6 ，4 )函数C15，三种算法的平均最优值均能达到全局最小值，分别为0.998004、−186.731、−3.86278、−10.5364和−3.322；Goldstein and Price (GP)函数C02、Fletcher-Powell (FP)函数C12和Griewank (GR)函数C24，IHABC算法和HABC算法性能相当，平均最优值都取到了全局最小值，寻优性能和稳定性都超过了ABC算法；对于Weierstrass (WE)函数C22、Ackley (AC)函数C23 (n = 30维)和Ackley (AC)函数C30 (n = 100维)，HABC算法和ABC算法性能相当，IHABC算法优于IHABC和ABC，能够得到全局最小值0，标准差也为0，对于Ackley函数，30维和100维时IHABC算法的寻优结果一样，表明了该算法的稳健性。 对于多峰不可分函数Whitley (WI) C18，维数n = 10时，全局最小值点为 ，全局最小值为 ，ABC算法在50次实验中均找不到全局最小值；IHABC算法有43次找到全局最小值0，有7次找到局部最小值0.9865；HABC算法有47次找到全局最小值0，有2次寻优得到0.9865，还有1次找到的最优值为6.6613e−16，HABC在函数C18上寻优精度最高。 Modified Langerman函数C13，C14，C16是非对称的复杂多模态函数，其局部最优解个数未知且随机分布，随着维数的增加，搜索难度增大。当维数n = 2时，三种算法在50次实验中均取得了全局最小值−1.08094，IHABC算法的标准差最小，算法最稳定；当维数n = 5时，50次实验中ABC、HABC、IHABC算法的平均最优值分别为−0.964959，−0.963356和−0.954508，标准差分别为0.000142，0.008745和0.016397，50次实验中三种算法分别42次、48次和33次得到全局最小值−0.965，IHABC算法10次得到局部最小值−0.9398，ABC算法在n = 5时，性能最好；当维数n = 10时，ABC、HABC、IHABC算法的平均最优值分别为−0.533924、−0.569837和−0.6077，标准差分别为0.084979、0.143236和0.221634，50次实验中，ABC、HABC和IHABC算法分别有0、3和4次达到全局最小值−0.9605，分别有47、43和24次寻优得到局部最小值−0.5132，意味着该函数在多个点处取得局部极小值−0.5132，ABC算法另外三次的寻优结果为−0.8057，−0.8059和−0.9649，HABC算法还得到局部最优值−0.9080三次，−0.8060一次，IHABC算法得到局部最优值−0.2749四次，−0.4286三次，−0.4829和−0.9645各两次，−0.5164、−0.5168、−0.5170、−0.8019、−0.80306、−0.9585、−0.9614、−0.9637、−0.9640、−0.9641和−0.9644各一次。与ABC、HABC算法相比，IHABC算法的通用性和局部寻优能力更强，在得到全局最小值的同时，能搜索到更多的局部最优值。 总体来说，新算法IHABC的性能在23个函数上优于HABC算法，在5个函数上与HABC相当，在2个函数上略逊于HABC算法。实验结果证明了IHABC算法比HABC以及ABC算法在寻优精度上有了相当程度的提高。