1 花朵授粉算法
| 算法1 FPA伪代码 |
|---|
| 输入:种群大小np,全局授粉转换概率P 输出:种群最优个体 1)设置当前代数G=0; 2)随机初始化np个个体组成初始种群{ , ,…, ,…, }; 3)计算种群中每个个体的适应值; 4)根据适应值,找出种群中最优个体,记为 ; 5)while不满足终止条件then 6) for i=1 to np then 7) if rand<P then 8) 根据公式(1)产生一个子个体 ; 9) else 10) 根据公式(2)产生一个子个体 ; 11) end if 12) 计算子个体 的适应值; 13) if f( )≤f( ) then 14) 用子个体 替换个体 ; 15) end if 16) end for 17) 更新最优个体 ; 18) G=G+1; 19) end while 20) 输出最优个体 |
2 本文提出的AGFPA算法
2.1 研究动机
2.2 适应性引导机制
2.3 适应性参数控制策略
2.4 算法描述
| 算法2 AGFPA伪代码 |
|---|
| 输入:种群大小np 输出:种群最优个体 1)设置当前代数G=0; 2)随机初始化np个个体组成初始种群{ , ,…, ,…, }; 3)计算种群中每个个体的适应值; 4)根据适应值,找出种群中最优个体,记为 ; 5)while不满足终止条件then 6) for i=1 to np then 7) 根据公式(6)产生Pi; 8) if rand<Pi then 9) 根据公式(1)生成一个子个体 ; 10) else 11) 根据公式(7)产生ηi; 12) if rp<PSI then 13) 根据公式(3)生成一个子个体 ; 14) else 15) 根据公式(4)生成一个子个体 ; 16) end if 17) end if 18)计算子个体 的适应值; 19)if f( )≤f( ) then 20) 用子个体 替换个体 ; 21)end if 22)end for 23)更新最优个体 ; 24)G=G+1; 25)end while 26)输出最优个体 。 |
2.5 复杂度分析
3 数值实验及分析
3.1 实验设计与测试函数
表1 基准测试函数Tab.1 Benchmark function |
| 函数 | 函数名 | 维度 | 搜索范围 | 理论最优解 |
|---|---|---|---|---|
| f1 | Sphere | 30或50 | [-100,100]D | 0 |
| f2 | Schwefel's problem 2.22 | 30或50 | [-10,10]D | 0 |
| f3 | Schwefel's problem 1.2 | 30或50 | [-100,100]D | 0 |
| f4 | Schwefel's problem 2.21 | 30或50 | [-100,100]D | 0 |
| f5 | Rosenbrock's function | 30或50 | [-30,30]D | 0 |
| f6 | Step's function | 30或50 | [-100,100]D | 0 |
| f7 | Quartic with noise's function | 30或50 | [-1.28,1.28]D | 0 |
| f8 | Schwefel's problem 2.26 | 30或50 | [-500,500]D | -12 569.5 |
| f9 | Rastrign's function | 30或50 | [-5.12,5.12]D | 0 |
| f10 | Ackley's function | 30或50 | [-32,32]D | 0 |
| f11 | Griewank's function | 30或50 | [-600,600]D | 0 |
| f12 | Penalized function 1 | 30或50 | [-50,50]D | 0 |
| f13 | Penalized function 2 | 30或50 | [-50,50]D | 0 |
| f14 | Shifted sphere function | 30或50 | [-100,100]D | -450 |
| f15 | Shifted schwefel's problem 1.2 | 30或50 | [-100,100]D | -450 |
| f16 | Shifted rosenbrock's function | 30或50 | [-100,100]D | 390 |
| f17 | Shifted rotated ackley's function | 30或50 | [-32,32]D | -140 |
| f18 | Shifted rotated rastrigin's function | 30或50 | [-5,5]D | -330 |
3.2 策略有效性分析
表2 AGFPA与FPA、AGFPA-1和AGFPA-2比较结果Tab.2 Comparison results of AGFPA with FPA, AGFPA-1, AGFPA-2 and AGFPA-3 |
| 函数 | FPA[4] | AGFPA-1 | AGFPA-2 | AGFPA-3 |
|---|---|---|---|---|
| f1 | + | + | + | + |
| f2 | + | + | + | + |
| f3 | + | + | + | + |
| f4 | + | ≈ | ≈ | + |
| f5 | + | + | + | ≈ |
| f6 | + | ≈ | ≈ | ≈ |
| f7 | + | + | ≈ | + |
| f8 | - | - | + | - |
| f9 | - | ≈ | ≈ | ≈ |
| f10 | + | + | + | + |
| f11 | + | + | + | + |
| f12 | + | + | + | + |
| f13 | + | + | + | + |
| f14 | + | ≈ | ≈ | + |
| f15 | + | + | + | + |
| f16 | + | + | + | + |
| f17 | ≈ | ≈ | ≈ | ≈ |
| f18 | + | ≈ | ≈ | ≈ |
| 统计 | 15(+);2(-);1(≈) | 11(+);1(-);6(≈) | 11(+);0(-);7(≈) | 12(+);1(-);5(≈) |
注:“+”表示AGFPA显著优于对比算法;“-”表示对比算法显著优于AGFPA;“≈”表示AGFPA与对比算法无显著性差异,“统计”给出了AGFPA优于、差于和相当于对比算法的函数个数。 |
表3 AGFPA、FPA、AGFPA-1、AGFPA-2和AGFPA-3的最小误差Tab.3 Minimum error of AGFPA, FPA,AGFPA-1, AGFPA-2 and AGFPA-3 |
| 函数 | FPA[4](最小误差) | AGFPA-1(最小误差) | AGFPA-2(最小误差) | AGFPA-3(最小误差) | AGFPA(最小误差) |
|---|---|---|---|---|---|
| f1 | 6.84×10-3 | 9.44×10-15 | 5.64×10-30 | 9.96×10-19 | 4.01×10-37 |
| f2 | 6.75×10-2 | 5.29×10-8 | 1.28×10-12 | 1.16×10-11 | 7.23×10-18 |
| f3 | 6.49×102 | 2.89×10 | 4.93×10-2 | 3.40×10-2 | 5.13×10-4 |
| f4 | 3.53 | 1.12×10-1 | 1.48×10-1 | 5.75 | 8.85×10-2 |
| f5 | 2.57×10 | 2.06×10 | 1.95×10 | 3.68×10-1 | 7.19 |
| f6 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| f7 | 1.54×10-2 | 6.25×10-3 | 2.82×10-3 | 1.83×10-2 | 2.89×10-3 |
| f8 | 3.27×103 | 4.70×103 | 5.55×103 | 4.05×103 | 4.19×103 |
| f9 | 5.43×10 | 7.53×10 | 8.77×10 | 4.46×10 | 7.27×10 |
| f10 | 1.90 | 5.90×10-8 | 7.11×10-15 | 1.50 | 3.55×10-15 |
| f11 | 4.03×10-2 | 3.44×10-13 | 0.00 | 0.00 | 0.00 |
| f12 | 4.02×10-1 | 9.16×10-14 | 1.04×10-26 | 1.68×10-15 | 1.57×10-32 |
| f13 | 1.66×10-1 | 7.19×10-14 | 5.82×10-28 | 8.28×10-15 | 1.35×10-32 |
| f14 | 2.77×10-26 | 0.00 | 0.00 | 3.03×10-28 | 0.00 |
| f15 | 4.42×10-1 | 2.76×10-9 | 3.08×10-21 | 9.95×10-23 | 1.12×10-27 |
| f16 | 1.69×10-1 | 3.95×10-5 | 1.34×10-5 | 9.08×10-9 | 4.24×10-15 |
| f17 | 2.09×10 | 2.08×10 | 2.09×10 | 2.08×10 | 2.07×10 |
| f18 | 1.51×102 | 8.09×10 | 1.02×102 | 4.93×10 | 1.00×102 |
注:各个函数上最优的最小误差以粗体标出。 |
表4 AGFPA与FPA、AGFPA-1、AGFPA-2进行Wilcoxon检验得出的P值Tab.4 P value of Wilcoxon Rank Sum test between AGFPA and FPA, AGFPA-1, AGFPA-2, AGFPA-3 |
| FPA[4] | AGFPA-1 | AGFPA-2 | AGFPA-3 |
|---|---|---|---|
| 1.42×10-38 | 1.17×10-10 | 2.18×10-4 | 7.58×10-13 |
注:显著性水平低于0.05的P值以粗体显示。 |
3.3 与改进FPA比较
表5 D=30时AGFPA与FPA、MFPA、SFPA、GFPA和IFPA比较结果Tab.5 Comparison results of AGFPA with FPA,MFPA,SFPA,GFPA and IFPA when D=30 |
| 函数 | FPA[4] | MFPA[16] | SFPA[10] | GFPA[11] | IFPA[12] |
|---|---|---|---|---|---|
| f1 | + | + | + | + | + |
| f2 | + | + | + | ≈ | + |
| f3 | + | + | + | + | + |
| f4 | + | + | + | - | - |
| f5 | + | + | + | - | + |
| f6 | + | + | ≈ | ≈ | ≈ |
| f7 | + | + | + | + | + |
| f8 | - | - | - | - | ≈ |
| f9 | - | - | ≈ | - | + |
| f10 | + | + | + | + | + |
| f11 | + | + | - | + | ≈ |
| f12 | + | + | + | + | + |
| f13 | + | + | + | + | + |
| f14 | + | + | ≈ | ≈ | ≈ |
| f15 | + | + | + | + | + |
| f16 | + | + | + | + | + |
| f17 | ≈ | ≈ | ≈ | ≈ | ≈ |
| f18 | + | ≈ | + | ≈ | + |
| 统计 | 15(+);2(-);1(≈) | 14(+);2(-);2(≈) | 12(+);2(-);4(≈) | 9(+);4(-);5(≈) | 12(+);1(-);5(≈) |
注:“+”表示AGFPA显著优于对比算法;“-”表示对比算法显著优于AGFPA;“≈”表示AGFPA与对比算法无显著性差异,“统计”给出了AGFPA优于、差于和相当于对比算法的函数个数。 |
表6 D=30时AGFPA、FPA、MFPA、SFPA、GFPA和IFPA的最小误差Tab.6 Minimum error of AGFPA, FPA, MFPA, SFPA, GFPA and IFPA when D=30 |
| 函数 | FPA[4](最小误差) | MFPA[16](最小误差) | SFPA[10](最小误差) | GFPA[11](最小误差) | IFPA[12](最小误差) | AGFPA(最小误差) |
|---|---|---|---|---|---|---|
| f1 | 6.84×10-3 | 8.43×10-9 | 3.63×10-18 | 1.96×10-31 | 2.34×10-24 | 4.01×10-37 |
| f2 | 6.75×10-2 | 2.63×10-4 | 7.08×10-12 | 1.24×10-16 | 1.53×10-12 | 7.23×10-18 |
| f3 | 6.49×102 | 6.73×10-1 | 4.04×10 | 1.59×10-2 | 2.38×10-1 | 5.13×10-4 |
| f4 | 3.53 | 1.05×10 | 2.83×10-1 | 4.85×10-3 | 9.01×10-3 | 8.85×10-2 |
| f5 | 2.57×10 | 2.84×10-1 | 1.19 | 1.60×10-3 | 2.36×10 | 7.19 |
| f6 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| f7 | 1.54×10-2 | 4.88×10-2 | 8.67×10-3 | 4.84×10-3 | 2.72×10-3 | 2.89×10-3 |
| f8 | 3.27×103 | 2.81×103 | 3.21×103 | 1.18×103 | 5.44×103 | 4.19×103 |
| f9 | 5.43×10 | 2.69×10 | 8.10×10 | 3.18×10 | 9.85×10 | 7.27×10 |
| f10 | 1.90 | 1.85×10-3 | 1.09×10-9 | 7.11×10-15 | 1.00×10-12 | 3.55×10-15 |
| f11 | 4.03×10-2 | 1.03×10-9 | 0.00 | 0.00 | 0.00 | 0.00 |
| f12 | 4.02×10-1 | 2.51×10-10 | 4.82×10-16 | 9.85×10-30 | 1.38×10-23 | 1.57×10-32 |
| f13 | 1.66×10-1 | 2.62×10-9 | 6.73×10-16 | 4.08×10-31 | 8.89×10-24 | 1.35×10-32 |
| f14 | 2.77×10-26 | 4.65×10-9 | 0.00 | 0.00 | 0.00 | 0.00 |
| f15 | 4.42×10-1 | 1.97×10-6 | 1.63×10-4 | 1.25×10-23 | 6.04×10-20 | 1.12×10-27 |
| f16 | 1.69×10-1 | 1.38×10-1 | 8.82×10-2 | 5.67×10-26 | 3.26 | 4.24×10-15 |
| f17 | 2.09×10 | 2.05×10 | 2.08×10 | 2.00×10 | 2.08×10 | 2.07×10 |
| f18 | 1.51×102 | 5.88×10 | 1.50×102 | 7.36×10 | 1.04×102 | 1.00×102 |
注:加粗表明最优。 |
表7 D=50时AGFPA与FPA、MFPA、SFPA、GFPA和IFPA比较结果Tab.7 Comparison results of AGFPA with FPA,MFPA,SFPA,GFPA and IFPA when D=50 |
| 函数 | FPA[4] | MFPA[16] | SFPA[10] | GFPA[11] | IFPA[12] |
|---|---|---|---|---|---|
| f1 | + | + | + | - | + |
| f2 | + | + | - | - | - |
| f3 | + | + | + | + | + |
| f4 | + | + | ≈ | + | ≈ |
| f5 | + | + | + | - | + |
| f6 | + | + | ≈ | ≈ | ≈ |
| f7 | + | + | + | + | - |
| f8 | - | - | - | - | ≈ |
| f9 | - | - | - | - | ≈ |
| f10 | + | + | + | + | + |
| f11 | + | + | - | + | - |
| f12 | + | + | + | + | - |
| f13 | + | + | + | + | + |
| f14 | + | + | ≈ | + | ≈ |
| f15 | + | + | + | + | + |
| f16 | + | + | + | - | + |
| f17 | ≈ | ≈ | ≈ | ≈ | ≈ |
| f18 | + | + | + | ≈ | + |
| 统计 | 15(+);2(-);1(≈) | 15(+);2(-);1(≈) | 10(+);4(-);4(≈) | 9(+);6(-);3(≈) | 8(+);4(-);6(≈) |
注:“+”表示AGFPA显著优于对比算法;“-”表示对比算法显著优于AGFPA;“≈”表示AGFPA与对比算法无显著性差异,“统计”给出了AGFPA优于、差于和相当于对比算法的函数个数。 |
表8 D=50时AGFPA、FPA、MFPA、SFPA、GFPA和IFPA的最小误差Tab.8 Minimum error of AGFPA, FPA, MFPA, SFPA, GFPA and IFPA when D=50 |
| 函数 | FPA[4](最小误差) | MFPA[16](最小误差) | SFPA[10](最小误差) | GFPA[11](最小误差) | IFPA[12](最小误差) | AGFPA(最小误差) |
|---|---|---|---|---|---|---|
| f1 | 2.29×10-3 | 3.21×10-6 | 7.05×10-19 | 3.05×10-30 | 1.66×10-24 | 7.23×10-29 |
| f2 | 4.41×10-2 | 1.06×10-2 | 1.16×10-12 | 1.46×10-15 | 8.96×10-14 | 8.64×10-15 |
| f3 | 2.68×103 | 7.57×10 | 5.57×102 | 3.71 | 3.44×10 | 8.35×10-1 |
| f4 | 9.20 | 2.02×10 | 1.06 | 8.41 | 9.62×10-1 | 1.20 |
| f5 | 8.36×10 | 1.59×10 | 3.45×10 | 1.24 | 2.59×10 | 2.79×10 |
| f6 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| f7 | 7.05×10-2 | 9.97×10-2 | 2.69×10-2 | 1.37×10-2 | 7.86×10-3 | 8.86×10-3 |
| f8 | 5.99×103 | 5.08×103 | 8.50×103 | 5.17×103 | 9.32×103 | 1.07×104 |
| f9 | 1.02×102 | 5.01×10 | 1.55×102 | 8.16×10 | 1.91×102 | 2.09×102 |
| f10 | 2.49 | 1.65 | 3.92×10-10 | 2.13×10-14 | 5.12×10-13 | 1.21×10-13 |
| f11 | 4.42×10-3 | 7.34×10-7 | 0.00 | 0.00 | 0.00 | 2.00×10-15 |
| f12 | 6.92×10-1 | 5.52×10-8 | 3.17×10-16 | 5.21×10-24 | 1.04×10-24 | 3.41×10-28 |
| f13 | 3.01 | 2.11×10-5 | 8.02×10-17 | 3.80×10-25 | 1.69×10-23 | 2.66×10-29 |
| f14 | 1.01×10-27 | 7.31×10-7 | 0.00 | 0.00 | 0.00 | 0.00 |
| f15 | 1.00×102 | 7.71×10-4 | 2.84 | 5.36×10-13 | 2.28×10-10 | 6.77×10-17 |
| f16 | 8.11×10-3 | 1.98×10 | 4.64 | 2.47×10-25 | 1.22×10 | 1.40×10-8 |
| f17 | 2.10×10 | 2.09×10 | 2.11×10 | 2.00×10 | 2.10×10 | 2.11×10 |
| f18 | 4.05×102 | 2.05×102 | 2.84×102 | 1.53×102 | 2.27×102 | 2.03×102 |
注:加粗表明最优。 |
表9 AGFPA与FPA、MFPA、SFPA、GFPA、IFPA进行Wilcoxon检验得出的P值Tab.9 P value of Wilcoxon Rank Sum test between AGFPA and FPA, MFPA, SFPA, GFPA, IFPA |
| D值 | FPA[4] | MFPA[16] | SFPA[10] | GFPA[11] | IFPA[12] |
|---|---|---|---|---|---|
| 30 | 1.42×10-38 | 1.49×10-25 | 1.10×10-10 | 3.85×10-4 | 6.58×10-4 |
| 50 | 5.84×10-30 | 7.71×10-31 | 5.05×10-5 | 1.64×10-1 | 5.66×10-2 |
注:显著性水平低于0.05的P值以粗体显示。 |
3.4 与PSO算法比较
表10 AGFPA与PSO、MBBPSO和APSO比较结果(D=30)Tab.10 Comparison results of AGFPA with PSO, MBBPSO and CLPSO when D=30 |
| 函数 | PSO[27] | MBBPSO[29] | CLPSO[30] |
|---|---|---|---|
| f1 | + | + | + |
| f2 | + | + | + |
| f3 | + | + | + |
| f4 | + | - | + |
| f5 | + | + | + |
| f6 | ≈ | ≈ | ≈ |
| f7 | + | + | + |
| f8 | - | - | - |
| f9 | - | - | - |
| f10 | + | + | + |
| f11 | + | - | + |
| f12 | + | + | + |
| f13 | + | + | + |
| f14 | + | + | ≈ |
| f15 | + | + | + |
| f16 | + | + | + |
| f17 | ≈ | ≈ | ≈ |
| f18 | - | + | - |
| 统计 | 13(+);3(-);2(≈) | 12(+);4(-);2(≈) | 12(+);3(-);3(≈) |
注:“+”表示AGFPA显著优于对比算法;“-”表示对比算法显著优于AGFPA;“≈”表示AGFPA与对比算法无显著性差异,“统计”给出了AGFPA优于、差于和相当于对比算法的函数个数。 |
表11 AGFPA与APSO、PSOCO和RPSO比较结果(D=30)Tab.11 Comparison results of AGFPA with APSO, PSOCO and RPSO when D=30 |
| 函数 | APSO[31] | PSOCO[32] | RPSO[33] |
|---|---|---|---|
| f1 | - | + | + |
| f2 | - | + | + |
| f3 | + | + | + |
| f4 | + | + | ≈ |
| f5 | + | + | + |
| f6 | ≈ | ≈ | ≈ |
| f7 | + | + | + |
| f8 | - | + | - |
| f9 | - | - | - |
| f10 | + | + | + |
| f11 | + | + | + |
| f12 | + | + | + |
| f13 | + | + | + |
| f14 | + | ≈ | + |
| f15 | + | + | + |
| f16 | + | + | + |
| f17 | ≈ | ≈ | ≈ |
| f18 | + | + | - |
| 统计 | 12(+);4(-);2(≈) | 14(+);1(-);3(≈) | 12(+);3(-);3(≈) |
注:“+”表示AGFPA显著优于对比算法;“-”表示对比算法显著优于AGFPA;“≈”表示AGFPA与对比算法无显著性差异,“统计”给出了AGFPA优于、差于和相当于对比算法的函数个数。 |
表12 AGFPA、PSO、MBBPSO、CLPSO、APSO、PSOCO和RPSO的最小误差Tab.12 Minimum error of AGFPA, PSO, MBBPSO, CLPSO, APSO, PSOCO and RPSO |
| 函数 | PSO[27](最小误差) | MBBPSO[29](最小误差) | CLPSO[30](最小误差) | APSO[31](最小误差) | PSOCO[32](最小误差) | RPSO[33](最小误差) | AGFPA(最小误差) |
|---|---|---|---|---|---|---|---|
| f1 | 3.09×10-9 | 1.74×10-18 | 1.14×10-3 | 1.34×10-47 | 4.41×10-11 | 1.46×10-32 | 4.01×10-37 |
| f2 | 4.38×10-7 | 2.31×10-13 | 4.08×10-3 | 7.23×10-28 | 7.79×10-7 | 7.87×10-13 | 7.23×10-18 |
| f3 | 3.54×102 | 7.80×102 | 4.57×103 | 3.10×102 | 1.48×10 | 2.80×103 | 5.13×104 |
| f4 | 4.58 | 6.62×10-2 | 1.91×10 | 1.74×10-1 | 1.76×10-1 | 5.24×10-2 | 8.85×10-2 |
| f5 | 1.17×10 | 5.64 | 1.10×102 | 2.91×10-1 | 1.36×10 | 3.96×10-1 | 7.19 |
| f6 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| f7 | 1.76×10-2 | 8.90×10-3 | 1.36×10-2 | 6.66×10-3 | 5.85×10-3 | 7.71×10-3 | 2.89×10-3 |
| f8 | 2.73×103 | 1.18×102 | 5.35×10-1 | 8.22×10-3 | 4.69×103 | 4.22×103 | 4.19×103 |
| f9 | 1.59×10 | 2.98 | 1.99 | 9.95×10-1 | 1.12×10 | 2.69×10 | 7.27×10 |
| f10 | 2.13×10-5 | 4.68×10-10 | 2.15×10-2 | 7.11×10-15 | 1.21×10-6 | 7.11×10-15 | 3.55×10-15 |
| f11 | 2.64×10-8 | 0.00 | 4.45×10-3 | 0.00 | 2.73×10-10 | 0.00 | 0.00 |
| f12 | 2.99×10-8 | 9.91×10-19 | 3.53×10-5 | 1.57×10-32 | 1.76×10-13 | 1.28×10-27 | 1.57×10-32 |
| f13 | 4.54×10-7 | 1.06×10-17 | 6.29×10-4 | 3.20×10-32 | 1.19×10-11 | 1.25×10-28 | 1.35×10-32 |
| f14 | 0.00 | 0.00 | 0.00 | 5.81×10-28 | 0.00 | 0.00 | 0.00 |
| f15 | 2.86×10-1 | 1.07×10-1 | 5.32×102 | 7.46×10-18 | 2.62×10-5 | 2.75×10-22 | 1.12×10-27 |
| f16 | 4.12 | 2.14 | 6.20×10-1 | 2.58×10-3 | 2.95 | 3.84×10-7 | 4.24×10-15 |
| f17 | 2.08×10 | 2.08×10 | 2.09×10 | 2.07×10 | 2.09×10 | 2.07×10 | 2.07×10 |
| f18 | 4.39×10 | 7.73×10 | 6.89×10 | 9.55×10 | 1.64×102 | 3.18×10 | 1.00×102 |
注:加粗表明最优。 |
4 在发酵动力学参数估计中的应用
表14 AGFPA、FPA、GA和MAEA参数估计值及模型均方误差Tab.14 Parameter estimation results and model mean square error comparison of AGFPA,FPA,GA and MAEA |