留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于自适应进化策略的人工蜂群优化算法

张强 李盼池 王梅

张强, 李盼池, 王梅. 基于自适应进化策略的人工蜂群优化算法[J]. 电子科技大学学报, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
引用本文: 张强, 李盼池, 王梅. 基于自适应进化策略的人工蜂群优化算法[J]. 电子科技大学学报, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
ZHANG Qiang, LI Pan-chi, WANG Mei. Artificial Bee Colony Optimization Algorithm Based on Adaptive Evolution Strategy[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
Citation: ZHANG Qiang, LI Pan-chi, WANG Mei. Artificial Bee Colony Optimization Algorithm Based on Adaptive Evolution Strategy[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013

基于自适应进化策略的人工蜂群优化算法

doi: 10.3969/j.issn.1001-0548.2019.04.013
基金项目: 

国家自然科学基金 61702093

黑龙江省自然科学基金 F2015020

黑龙江省自然科学基金 F2015021

详细信息
    作者简介:

    张强(1982-), 男, 副教授, 主要从事智能进化算法、神经网络方面的研究.E-mail:dqpi_zq@163.com

  • 中图分类号: TP312

Artificial Bee Colony Optimization Algorithm Based on Adaptive Evolution Strategy

  • 摘要: 提出一种自适应进化策略的人工蜂群优化算法来提高基本人工蜂群优化算法的性能。算法中每个引领蜂拥有4种进化策略,在迭代过程中通过计算每种进化策略的立即价值、未来价值和综合奖励来决定引领蜂个体的进化行为,并通过多策略进化概率变异方式来提升个体寻优速度或避免陷入局部最优解。典型高维复杂函数测试表明,该算法具有很好的收敛精度和计算速度。
  • 表  1  优化测试函数

    序号 测试函数 搜索空间 最优解
    1 ${f_1} = \sum\limits_{i = 1}^n {x_i^2} $ ${[ - 100, 100]^n}$ 0
    2 ${f_2} = \sum\limits_{i = 1}^n {|{x_i}| + \prod\limits_{i = 1}^n {|{x_i}|} } $ ${[ - 10, 10]^n}$ 0
    3 ${f_3} = \sum\limits_{i = 1}^n {\left( {\sum\limits_{j = 1}^i {{x_j}} } \right)} $ ${[ - 100, 100]^n}$ 0
    4 ${f_4} = \max ({\rm{abs}}({x_i})$ ${[ - 100, 100]^n}$ 0
    5 ${f_5} = \sum\limits_{i = 1}^n {ix_i^4} + {\rm{random}}[0, 1]$ ${[ - 1.28, 1.28]^n}$ 0
    6 ${f_6} = \sum\limits_{i = 1}^n {[x_i^2 - 10\cos (2\pi {x_i})]} + 10n$ ${[ - 5.12, 5.12]^n}$ 0
    7 ${[ - 32, 32]^n}$ 0
    8 ${f_8} = \frac{4}{{4{\rm{ }}000}}\sum\limits_{i = 1}^n {x_i^2 - \prod\limits_{i = 1}^n {\cos \left[ {\frac{{{x_i}}}{{\sqrt i }}} \right] + 1} } $ ${[ - 600, 600]^n}$ 0
    下载: 导出CSV

    表  2  函数F1不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
    100 0.00×100 0.00×100 0.00×100 0.00×100
    ABC 30 5.08×10-12 2.35×10-11 1.40×10-11 7.37×10-12
    100 5.37×101 1.14×102 8.03×101 2.21×101
    DE/rand/1 30 8.43×10-12 1.57×10-11 1.12×10-11 2.80×10-12
    100 1.01×102 1.30×102 1.13×102 1.05×101
    DE/best/1 30 1.46×10-34 2.61×10-33 7.93×10-34 1.04×10-33
    100 9.28×10-7 1.15×10-5 4.73×10-6 4.08×10-6
    BA 30 1.91×104 2.59×104 2.32×104 3.47×103
    100 1.85×105 2.01×105 1.95×105 6.66×103
    GABC 30 7.78×10-20 4.29×10-19 2.16×10-19 1.55×10-19
    100 7.28×10-2 4.22×10-1 2.56×10-1 1.40×10-1
    NABC 30 5.08×10-28 2.18×10-27 1.44×10-27 7.34×10-28
    100 5.44×10-4 1.70×10-3 1.23×10-3 4.25×10-4
    MABC 30 4.54×10-43 8.85×10-42 6.03×10-42 3.32×10-42
    100 3.31×10-7 5.84×10-7 4.65×10-7 1.18×10-7
    下载: 导出CSV

    表  3  函数F2不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 1.47×10-306 4.65×10-259 9.29×10-260 0.00×100
    100 1.03×10-300 1.68×10-245 3.36×10-246 0.00×100
    ABC 30 1.55×10-6 3.19×10-6 2.13×10-6 6.62×10-7
    100 3.30×100 5.60×100 4.37×100 8.29×10-1
    DE/rand/1 30 1.18×10-7 1.70×10-7 1.41×10-7 1.96×10-8
    100 1.41×101 1.82×101 1.64×101 1.84×100
    DE/best/1 30 1.15×10-19 8.59×10-19 3.63×10-19 2.87×10-19
    100 3.78×10-5 7.45×10-4 2.76×10-4 2.82×10-4
    BA 30 5.79×101 8.68×101 7.32×101 1.08×101
    100 3.86×102 4.16×102 4.00×102 1.06×101
    GABC 30 3.05×10-10 6.15×10-10 4.63×10-10 1.23×10-10
    100 4.03×10-1 4.67×10-1 4.31×10-1 2.39×10-2
    NABC 30 5.80×10-15 1.24×10-14 9.09×10-15 2.42×10-15
    100 1.37×10-2 1.81×10-2 1.62×10-2 1.85×10-3
    MABC 30 4.09×10-22 1.21×10-21 8.40×10-22 3.45×10-22
    100 2.47×10-4 2.73×10-4 2.60×10-4 9.79×10-6
    下载: 导出CSV

    表  4  函数F3不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
    100 0.00×100 0.00×100 0.00×100 0.00×100
    ABC 30 1.30×104 2.10×104 1.63×104 2.92×103
    100 1.88×105 2.24×105 2.06×105 1.42×104
    DE/rand/1 30 2.17×104 3.31×104 2.76×104 4.49×103
    100 5.77×105 7.19×105 6.61×105 5.99×104
    DE/best/1 30 8.75×102 4.79×103 2.89×103 1.73×103
    100 2.37×105 3.68×105 2.90×105 4.88×104
    BA 30 1.66×104 3.11×104 2.37×104 5.43×103
    100 2.82×105 4.36×105 3.61×105 6.71×104
    GABC 30 1.21×104 1.99×104 1.65×104 3.07×103
    100 1.61×105 2.47×105 2.01×105 3.26×104
    NABC 30 1.68×104 2.05×104 1.86×104 1.73×103
    100 2.08×105 2.60×105 2.34×105 2.49×104
    MABC 30 1.17×104 2.71×104 2.07×104 5.64×103
    100 2.65×105 3.40×105 2.90×105 3.42×104
    下载: 导出CSV

    表  5  函数F4不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 1.15×10-291 1.14×10-234 2.28×10-235 0.00×100
    100 6.90×10-289 8.40×10-251 1.68×10-251 0.00×100
    ABC 30 2.99×101 5.46×101 4.44×101 9.01×100
    100 8.89×101 9.09×101 9.01×101 8.58×10-1
    DE/rand/1 30 2.59×10-1 3.70×10-1 3.00×10-1 4.34×10-2
    100 7.41×101 8.69×101 8.19×101 4.77×100
    DE/best/1 30 1.15×101 2.93×101 1.77×101 7.17×100
    100 5.19×101 5.99×101 5.39×101 3.39×100
    BA 30 5.15×101 5.92×101 5.64×101 3.27×100
    100 8.32×101 8.69×101 8.47×101 1.41×100
    GABC 30 2.09×101 3.03×101 2.45×101 3.71×100
    100 8.37×101 8.95×101 8.69×101 2.38×100
    NABC 30 1.51×101 1.97×101 1.82×101 1.83×100
    100 8.58×101 9.03×101 8.74×101 1.81×100
    MABC 30 2.01×100 2.27×100 2.12×100 1.05×10-1
    100 7.69×101 8.25×101 7.99×101 2.26×100
    下载: 导出CSV

    表  6  函数F5不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 1.47×10-5 1.46×10-4 9.16×10-5 6.41×10-5
    100 8.55×10-5 2.87×10-4 1.67×10-4 7.79×10-5
    ABC 30 2.31×10-1 3.92×10-1 2.80×10-1 6.47×10-2
    100 2.22×100 3.19×100 2.98×100 4.23×10-1
    DE/rand/1 30 9.99×10-2 1.55×10-1 1.28×10-1 2.09×10-2
    100 9.47×10-1 1.23×100 1.12×100 1.29×10-1
    DE/best/1 30 2.92×10-2 3.86×10-2 3.32×10-2 3.97×10-3
    100 1.88×10-1 2.88×10-1 2.59×10-1 4.17×10-2
    BA 30 1.10×101 1.67×101 1.41×101 2.11×100
    100 8.40×102 1.08×103 9.44×102 9.13×101
    GABC 30 8.06×10-2 1.26×10-1 9.84×10-2 1.67×10-2
    100 1.38×100 1.94×100 1.72×100 2.14×10-1
    NABC 30 4.65×10-2 7.67×10-2 6.58×10-2 1.14×10-2
    100 8.65×10-1 1.32×10 1.07×100 1.78×10-1
    MABC 30 2.00×10-2 3.47×10-2 2.63×10-2 6.24×10-3
    100 4.42×10-1 5.56×10-1 5.12×10-1 4.85×10-2
    下载: 导出CSV

    表  7  函数F6不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
    100 0.00×100 0.00×100 0.00×100 0.00×100
    ABC 30 1.00×100 2.26×100 1.51×100 5.73×10-1
    100 9.37×101 1.11×102 1.00×102 7.91×100
    DE/rand/1 30 7.19×101 9.94×101 8.71×101 1.01×101
    100 7.74×102 8.56×102 8.12×102 3.02×101
    DE/best/1 30 7.96×100 1.79×101 1.27×101 3.88×100
    100 2.11×102 5.42×102 3.84×102 1.37×102
    BA 30 1.15×102 1.48×102 1.34×102 1.35×101
    100 8.62×102 9.49×102 9.13×102 3.54×101
    GABC 30 4.43×10-8 1.90×10-6 5.49×10-7 7.80×10-7
    100 5.21×101 6.18×101 5.77×101 3.95×100
    NABC 30 0.00×100 0.00×100 0.00×100 0.00×100
    100 3.69×10-1 3.46×100 1.72×100 1.50×100
    MABC 30 0.00×100 5.68×10-14 1.14×10-14 2.54×10-14
    100 1.13×10-4 1.99×100 1.39×100 8.90×10-1
    下载: 导出CSV

    表  8  函数F7不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 8.88×10-16 8.88×10-16 8.88×10-16 0.00×100
    100 8.88×10-16 8.88×10-16 8.88×10-16 0.00×100
    ABC 30 4.20×10-6 1.52×10-4 5.84×10-5 5.69×10-5
    100 3.77×100 5.19×100 4.36×100 6.02×10-1
    DE/rand/1 30 7.28×10-7 9.77×10-7 8.90×10-7 9.63×10-8
    100 3.00×100 3.77×100 3.37×100 2.91×10-1
    DE/best/1 30 7.99×10-15 1.51×10-14 1.23×10-14 3.89×10-15
    100 1.21×100 2.70×100 1.94×100 6.00×10-1
    BA 30 1.79×101 1.83×101 1.80×101 1.48×10-1
    100 1.92×101 1.93×101 1.92×101 5.35×10-2
    GABC 30 2.04×10-10 4.89×10-10 4.02×10-10 1.15×10-10
    100 7.79×10-1 9.38×10-1 8.57×10-1 7.12×10-2
    NABC 30 7.55×10-14 1.50×10-13 9.97×10-14 3.00×10-14
    100 1.36×10-2 1.91×10-2 1.67×10-2 2.26×10-3
    MABC 30 2.93×10-14 3.29×10-14 3.22×10-14 1.59×10-15
    100 7.42×10-4 1.89×10-3 1.28×10-3 4.35×10-4
    下载: 导出CSV

    表  9  函数F8不同维数测试结果

    算法 维数 最优结果 最差结果 平均结果 方差
    AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
    100 0.00×100 0.00×100 0.00×100 0.00×100
    ABC 30 1.35×10-8 6.11×10-5 1.37×10-5 2.65×10-5
    100 1.47×100 1.98×100 1.67×100 2.03×10-1
    DE/rand/1 30 2.28×10-11 8.85×10-10 3.01×10-10 3.45×10-10
    100 1.90×100 2.31×100 2.01×100 1.70×10-1
    DE/best/1 30 0.00×100 2.21×10-2 9.85×10-3 7.97×10-3
    100 1.02×10-7 3.19×10-2 6.38×10-3 1.43×10-2
    BA 30 1.49×102 2.53×102 2.05×102 4.19×101
    100 1.75×103 1.99×103 1.88×103 9.70×101
    GABC 30 3.79×10-11 2.42×10-6 4.84×10-7 1.08×10-6
    100 1.41×10-1 4.64×10-1 2.90×10-1 1.26×10-1
    NABC 30 5.55×10-16 3.97×10-3 7.94×10-4 1.77×10-3
    100 3.05×10-3 3.93×10-2 1.40×10-2 1.52×10-2
    MABC 30 2.22×10-16 3.17×10-4 6.35×10-5 1.42×10-4
    100 2.43×10-5 6.70×10-5 4.79×10-5 1.98×10-5
    下载: 导出CSV

    表  10  函数F1-F4收敛迭代次数与运行时间对比

    算法 F1 F2 F3 F4
    迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s
    AES_ABC 130 0.666 148 0.652 133 2.624 143 0.672
    ABC 300 0.761 300 0.677 300 4.884 300 0.758
    DE/rand/1 300 1.928 300 1.883 300 10.820 300 2.136
    DE/best/1 300 1.966 300 1.944 300 11.110 300 2.062
    BA 300 9.650 300 9.860 300 13.748 300 9.260
    GABC 300 0.703 300 0.671 300 5.077 300 0.783
    NABC 300 0.814 300 0.880 300 5.005 300 0.918
    MABC 300 1.020 300 0.959 300 8.235 300 1.260
    下载: 导出CSV

    表  11  函数F5-F8收敛迭代次数与运行时间对比

    算法 F5 F6 F7 F8
    迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s
    AES_ABC 300 2.522 187 0.957 131 0.970 130 0.990
    ABC 300 1.144 300 1.363 300 1.056 300 1.064
    DE/rand/1 300 3.042 300 2.528 300 2.552 300 2.788
    DE/best/1 300 3.060 300 2.432 300 2.467 300 2.664
    BA 300 10.610 300 10.130 300 10.280 300 11.940
    GABC 300 1.179 300 1.293 300 1.142 300 1.144
    NABC 300 1.221 300 1.391 300 1.226 300 1.414
    MABC 300 1.898 300 1.425 300 1.526 300 1.630
    下载: 导出CSV

    表  12  6种UCI数据集

    UCI数据 样本总数 特征维数 类别数量
    Wine 178 12 3
    Heart 270 12 2
    Kr_V_kp 3 196 36 2
    Pendigits 10 992 16 10
    Tic_tac_toc 958 9 2
    Balance 625 4 3
    下载: 导出CSV

    表  13  各类方法分类性能对比

    UCI数据 算法 训练数据识别率/% 测试数据识别率/%
    Wine ELM 64.23 61.82
    ABC_ ELM 95.12 89.09
    AES_ ABC _ ELM 100.00 98.18
    GABC_ ELM 98.37 89.09
    NABC_ ELM 95.93 89.12
    MABC_ ELM 95.12 90.91
    Heart ELM 69.31 65.14
    ABC_ ELM 74.60 66.08
    AES_ ABC _ ELM 86.24 85.19
    GABC_ ELM 77.78 66.67
    NABC_ ELM 78.84 67.90
    MABC_ ELM 79.89 68.35
    Kr_V_kp ELM 74.28 71.83
    ABC_ ELM 83.63 83.75
    AES_ ABC _ ELM 94.45 94.06
    GABC_ ELM 87.25 84.35
    NABC_ ELM 88.28 86.25
    MABC_ ELM 88.14 85.42
    Pendigits ELM 74.48 66.32
    ABC_ ELM 85.71 85.34
    AES_ ABC _ ELM 91.46 90.91
    GABC_ ELM 88.62 88.70
    NABC_ ELM 87.52 87.49
    MABC_ ELM 87.39 86.37
    Tic_tac_toc ELM 73.13 67.71
    ABC_ ELM 79.25 72.57
    AES_ ABC _ ELM 90.54 85.39
    GABC_ ELM 81.34 73.26
    NABC_ ELM 84.03 78.13
    MABC_ ELM 83.54 73.92
    Balance ELM 88.60 82.83
    ABC_ ELM 92.43 88.36
    AES_ ABC _ ELM 96.56 93.17
    GABC_ ELM 93.12 90.48
    NABC_ ELM 92.89 89.95
    MABC_ ELM 94.27 90.89
    下载: 导出CSV
  • [1] KARABOGA D. An idea based on honey bee swarm for numerical optimization[R]. Kayseri: Turkey, Erciyes University, 2005. https://pdfs.semanticscholar.org/015d/f4d97ed1f541752842c49d12e429a785460b.pdf
    [2] PERUMAL S S, VISHWANATH N, JER LANG H, et al. An effective content based medical image retrieval by using ABC based artificial neural network(ANN)[J]. Current Medical Imaging Reviews, 2017, 12(999):1. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=fd5596afdb60c96044be770a3dc08a22
    [3] SHUNMUGAPRIYA P, KANMANI S. A hybrid algorithm using ant and bee colony optimization for feature selection and classification (AC-ABC Hybrid)[J]. Swarm & Evolutionary Computation, 2017, 36:27-36. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=3ff5b88a372f79e4ca03e72e58afc849
    [4] ZHANG R, SONG S, WU C. A hybrid artificial bee colony algorithm for the job shop scheduling problem[J]. International Journal of Production Economics, 2013, 141(1):167-178. doi:  10.1016/j.ijpe.2012.03.035
    [5] LUO J, LIU Q, YANG Y, et al. An artificial bee colony algorithm for multi-objective optimisation[J]. Applied Soft Computing, 2017, 50:235-251. doi:  10.1016/j.asoc.2016.11.014
    [6] BHARTI K K, SINGH P K. Chaotic Artificial bee colony for text clustering[J]. Soft Computing, 2016, 20(3):1113-1126. doi:  10.1007/s00500-014-1571-7
    [7] 罗钧, 李研.具有混沌搜索策略的蜂群优化算法[J].控制与决策, 2010, 25(12):1913-1916. http://d.old.wanfangdata.com.cn/Periodical/kzyjc201012030

    LUO Jun, LI Yan. Artificial bee colony algorithm withchaotic-search strategy[J]. Control and Decision, 2010, 25(12):1913-1916. http://d.old.wanfangdata.com.cn/Periodical/kzyjc201012030
    [8] 暴励, 曾建潮.一种双种群差分蜂群算法[J].控制理论与应用, 2011, 28(2):266-272. http://d.old.wanfangdata.com.cn/Periodical/kzllyyy201102020

    BAO Li, ZENG Jian-chao. A bi-group differential artificial bee colony algorithm[J]. Control Theory and plications, 2011, 28(2):266-272. http://d.old.wanfangdata.com.cn/Periodical/kzllyyy201102020
    [9] AKAY B, KARABOGA D. Parameter tuning for the artificial bee colony algorithm[M]//Computational Collective Intelligence. Semantic Web, Social Networks and Multiagent Systems.[S.l.]: Springer, 2009: 608-619.
    [10] ZHU G, KWONG S. Gbest-guided artificial bee colony algorithm for numerical function optimization[J]. Applied Mathematics & Computation, 2010, 217(7):3166-3173. http://cn.bing.com/academic/profile?id=74ffd38bc7629985b464c0a6c21d2698&encoded=0&v=paper_preview&mkt=zh-cn
    [11] XU Y, FAN P, YUAN L. A simple and efficient artificial bee colony algorithm[J]. Mathematical Problems in Engineering, 2013, 1:1-9. http://d.old.wanfangdata.com.cn/OAPaper/oai_doaj-articles_9a3dbb1d50dde752db22b71b5102435a
    [12] GAO W F, LIU S Y. A modified artificial bee colony algorithm[J]. Computers & Operations Research, 2012, 39(3):687-697. http://d.old.wanfangdata.com.cn/OAPaper/oai_doaj-articles_7721a5b89f2420c1283ef5eee9cc70ba
    [13] GAO W F, HUANG L L, WANG J, et al. Enhanced artificial bee colony algorithm through differential evolution[J]. Applied Soft Computing, 2016, 48:137-150. doi:  10.1016/j.asoc.2015.10.070
    [14] XIANG W, MA S, AN M. HABCDE:A hybrid evolutionary algorithm based on artificial bee colony algorithm and differential evolution[J]. Applied Mathematics & Computation, 2014, 238(238):370-386. http://d.old.wanfangdata.com.cn/NSTLQK/NSTL_QKJJ0232788897/
    [15] LI Z, WANG W, YAN Y, et al. PS-ABC:A hybrid algorithm based on particle swarm and artificial bee colony for high-dimensional optimization problems[J]. Expert Systems with Applications, 2015, 42(22):8881-8895. doi:  10.1016/j.eswa.2015.07.043
    [16] PHAM D T, GHANBARZADEH A, KOÇ E, et al. The bees algorithm-a novel tool for complex optimisation problems[J]. Intelligent Production Machines & Systems, 2006, 1:454-459. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC0210085586
    [17] 董文永, 康岚兰, 刘宇航, 等.带自适应精英扰动及惯性权重的反向粒子群优化算法[J].通信学报, 2016, 37(12):1-10. doi:  10.11959/j.issn.1000-436x.2016224

    DONG Wen-yong, KANG Lan-lan, LIU Yu-hang, et al. An opposition-based particle swarm optimization with adaptive elite mutation and nonlinear inertia weight[J]. Journal on Communications, 2016, 37(12):1-10. doi:  10.11959/j.issn.1000-436x.2016224
    [18] AUER P, CESA-BIANCHI N, FISCHER P. Finite-time analysis of the multiarmed bandit problem[J]. Mach Learn, 2002, 47(2):235-256. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=8c42a15c46f66a8ca93d541fdcf9af81
    [19] STURTEVANT N R. An analysis of UCT in multi-player games[J]. Computers and Games, 2008, 31(4):37-49. http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=CC025278067
    [20] PRICE K, STORN R, LAMPINEN J. Differential evolution:a practical approach to global optimization[M]. Berlin, Germany:Springer-Verlag, 2005.
    [21] HUANG G B, ZHU Q Y., SIEW C K. Extreme learning machine: a new learning scheme of feedforward neural networks[C]//IEEE International Joint Conference on Neural Networks. Budapest, Hungary: IEEE, 2004: 985-990. https://ieeexplore.ieee.org/document/1380068
  • [1] 刘欣刚, 江浩杨, 苏鑫, 冯晶.  基于决策边界搜索的对抗样本生成算法 . 电子科技大学学报, 2022, 51(5): 721-727. doi: 10.12178/1001-0548.2021396
    [2] 梅文娟, 刘震, 朱静怡, 杜立.  新冠肺炎疫情极限IR实时预测模型 . 电子科技大学学报, 2020, 49(3): 362-368. doi: 10.12178/1001-0548.2020063
    [3] 孙伟, 杜宏吉, 张小瑞, 赵玉舟, 杨翠芳.  基于CNN多层特征和ELM的交通标志识别 . 电子科技大学学报, 2018, 47(3): 343-349. doi: 10.3969/j.issn.1001-0548.2018.03.004
    [4] 唐贤伦, 周家林, 张娜, 刘庆.  基于极限学习机的非线性内模控制 . 电子科技大学学报, 2016, 45(1): 96-101. doi: 10.3969/j.issn.1001-0548.2016.01.016
    [5] 唐东明, 卢显良.  用于网络编码优化的改进量子进化算法 . 电子科技大学学报, 2015, 44(2): 215-220. doi: 10.3969/j.issn.1001-0548.2015.02.010
    [6] 高军峰, 张文佳, 杨勇, 胡佳佳, 陶春毅, 官金安.  基于P300和极限学习机的脑电测谎研究 . 电子科技大学学报, 2014, 43(2): 301-306. doi: 10.3969/j.issn.1001-0548.2014.02.028
    [7] 李星毅, 李奎, 施化吉, 周双全.  背景值优化的GM(1,1)预测模型及应用 . 电子科技大学学报, 2011, 40(6): 911-914. doi: 10.3969/j.issn.1001-0548.2011.06.020
    [8] 任立勇, 雷明, 张磊.  P2P应用层数据流量优化 . 电子科技大学学报, 2011, 40(1): 111-115. doi: 10.3969/j.issn.1001-0548.2011.01.021
    [9] 覃琴, 曾志民, 张天魁, 张从青.  动态多中继协同节点选择算法 . 电子科技大学学报, 2011, 40(4): 505-508. doi: 10.3969/j.issn.1001-0548.2011.04.005
    [10] 陈其松, 陈孝威, 张欣, 吴茂念.  优化SVM在锅炉负荷预测中的应用 . 电子科技大学学报, 2010, 39(2): 316-320. doi: 10.3969/j.issn.1001-0548.2010.02.035
    [11] 殷时蓉, 陈光, 谢永乐.  应用Elman网络优化非线性模拟电路测试激励 . 电子科技大学学报, 2008, 37(4): 574-577.
    [12] 邓建华, 王秉中, 甘体国.  空间映射方法研究及其在LTCC设计中的应用 . 电子科技大学学报, 2007, 36(1): 72-74,107.
    [13] 王志红, 杜平安, 郭志龙, 梁山虎.  基于遗传算法与动态规划法的工艺过程优化 . 电子科技大学学报, 2007, 36(1): 146-149.
    [14] 秦东兴, 骆德渊, 卢凉, 董伟.  原料混匀料车间的设计优化与仿真 . 电子科技大学学报, 2005, 34(4): 548-551.
    [15] 沈艳, 郭兵, 古天祥.  粒子群优化算法及其与遗传算法的比较 . 电子科技大学学报, 2005, 34(5): 696-699.
    [16] 韩轶, 唐小我.  一种新的多指标综合评价方法的优化选择思路 . 电子科技大学学报, 1999, 28(3): 316-319.
    [17] 吕韶义, 刘智敏, 刘复岩.  多目标优化生产作业调度计划系统开发 . 电子科技大学学报, 1998, 27(3): 316-320.
    [18] 胡涛, 王守绪, 杨邦朝.  用单纯形优化法研究铝箔腐蚀工艺 . 电子科技大学学报, 1998, 27(4): 449-452.
    [19] 章小兵, 王勇, 陈光.  基于自由二元判决图转换的可测性优化方法 . 电子科技大学学报, 1997, 26(2): 171-174.
    [20] 杨朝斌, 徐继麟, 黄香馥.  SAW滤波器等效电路模型参数的精确计算法 . 电子科技大学学报, 1997, 26(1): 40-43.
  • 加载中
计量
  • 文章访问数:  4994
  • HTML全文浏览量:  1488
  • PDF下载量:  107
  • 被引次数: 0
出版历程
  • 收稿日期:  2018-03-21
  • 修回日期:  2018-09-15
  • 刊出日期:  2019-07-30

基于自适应进化策略的人工蜂群优化算法

doi: 10.3969/j.issn.1001-0548.2019.04.013
    基金项目:

    国家自然科学基金 61702093

    黑龙江省自然科学基金 F2015020

    黑龙江省自然科学基金 F2015021

    作者简介:

    张强(1982-), 男, 副教授, 主要从事智能进化算法、神经网络方面的研究.E-mail:dqpi_zq@163.com

  • 中图分类号: TP312

摘要: 提出一种自适应进化策略的人工蜂群优化算法来提高基本人工蜂群优化算法的性能。算法中每个引领蜂拥有4种进化策略,在迭代过程中通过计算每种进化策略的立即价值、未来价值和综合奖励来决定引领蜂个体的进化行为,并通过多策略进化概率变异方式来提升个体寻优速度或避免陷入局部最优解。典型高维复杂函数测试表明,该算法具有很好的收敛精度和计算速度。

English Abstract

张强, 李盼池, 王梅. 基于自适应进化策略的人工蜂群优化算法[J]. 电子科技大学学报, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
引用本文: 张强, 李盼池, 王梅. 基于自适应进化策略的人工蜂群优化算法[J]. 电子科技大学学报, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
ZHANG Qiang, LI Pan-chi, WANG Mei. Artificial Bee Colony Optimization Algorithm Based on Adaptive Evolution Strategy[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
Citation: ZHANG Qiang, LI Pan-chi, WANG Mei. Artificial Bee Colony Optimization Algorithm Based on Adaptive Evolution Strategy[J]. Journal of University of Electronic Science and Technology of China, 2019, 48(4): 560-566. doi: 10.3969/j.issn.1001-0548.2019.04.013
  • 2005年,人工蜂群算法[1] (artificial bee colony algorithm, ABC)被提出用来解决函数优化问题。其原理是模拟蜜蜂的采蜜机制,通过不同分工的蜂群相互协作完成进化搜索工作,具有操作简单、设置参数少、收敛速度快等优点。从最初的解决非线性函数优化问题,逐步发展到神经网络优化[2]、特征选择[3]、生产调度[4]、多目标优化[5]和聚类分析[6]等领域。但是ABC也存在早熟收敛、陷入局部最优解的问题。为提高其性能,许多学者提出了改进版本,主要体现在种群多样性[7]、群体拓扑结构[8]、参数选择[9]、进化策略改进[10-13]、与其他智能算法融合方面[14-15]。文献[10]受粒子群算法启发,将全局最优解引入到个体进化公式中,并通过一个随机数控制全局最优解的影响程度。文献[11]将差分进化算法的DE/best/1变异策略引入到个体进化公式中,并构建了一个历史最优解存放池,随机从池里取出一个个体作为best来产生新个体。文献[12]则通过反向学习算法和混沌理论初始化种群,先按DE/best/1变异策略产生新个体,如果新个体不如父代个体,则按照ABC原有方式进行进化,虽然这些改进算法提升了寻优效率,但整个群体的当前最优解仅是算法迭代过程中某个个体自身所能找到的最优位置,只能代表所有个体的当前最好水平,而不能代表当前的整体进化水平。特别是在求解高维复杂的优化问题时,种群当前最优解很可能是一个局部极值,仅利用这一局部极值来指导整个群体的学习,就易陷入局部最优,较难达到目标求解效果。蜜蜂算法[16] (bees algorithm, BA)通过模拟自然界中蜜蜂的觅食行为的另一种蜂群算法,该算法采用基于邻域搜索的随机探索方式,但这种算法的参数设置较多。虽然这些算法对个体进化策略的改进方式各不相同,但本质上都是通过改变个体进化的方式来提升算法性能。本文提出基于自适应进化策略的人工蜂群优化算法,将个体赋予一定的自主性,在进化的过程中自主选择进化策略,以求在每次进化过程中都能使个体适应值得到改进。

    • 人工蜂群算法将蜂群分为3类:引领蜂、跟随蜂和侦察蜂,以最小化问题为例简要阐述其寻优过程。

    • 将种群中的个体按照适应度值从小到大排序,取前$N/2$组构成引领蜂种群,后$N/2$组构成跟随蜂种群。对于当前代引领蜂种群中的个体${x_{ij}}(t)$,随机选择个体$k \in [1, 2, \cdots , N/2]$,$i \ne k$,按式(1)进行交叉搜索生成新个体${v_{ij}}(t)$:

      $${v_{ij}}(t) = {x_{ij}}(t) + {\rm{rand}}({x_{ij}}(t) - {x_{kj}}(t))$$ (1)

      式中,${\rm{rand}}$为[-1, 1]区间上的随机数;$j$为优化空间维数范围内的随机整数。按式(2)选择较优的个体更新引领蜂种群:

      $${x_i}(t + 1) = \left\{ \begin{gathered} {v_i}(t){\text{ }}f({x_i}(t)) > f({v_i}(t)) \\ {x_i}(t){\text{ }}f({x_i}(t)) \leqslant f({v_i}(t)) \\ \end{gathered} \right.$$ (2)
    • 各跟随蜂依据引领蜂适应度的大小按选择概率式(3)在引领蜂种群中选择引领蜂${x_k}(t)$,$k \in [1, 2, \cdots , $ $N/2]$,并在其邻域内按式(1)进行新位置的搜索,产生新个体${x_k}(t)$,$k \in [N/2 + 1, $ $N/2 + 2, \cdots , N]$,形成跟随蜂种群:

      $${P_i} = \frac{{{\rm{fi}}{{\rm{t}}_i}}}{{\sum\limits_{i = 1}^{N/2} {{\rm{fi}}{{\rm{t}}_i}} }}$$ (3)
    • 为了避免在迭代进化后期丧失种群的多样性,ABC将经过连续${\rm{limit}}$代进化适应度不变的个体转换成侦察蜂,并重新产生新个体。通过引领蜂种群、跟随蜂种群及侦察蜂的进化搜索,经过反复循环寻优直到算法迭代到最大迭代次数或种群的最优解达到预定误差精度时算法结束。

    • ABC主要是通过引领蜂和跟随蜂的搜索行为实现的,由算法原理可知,搜索范围是随机确定的,算法不能控制搜索范围,这将导致搜索精度不高,算法的寻优速度也可能很慢。进化论研究表明:生物对环境有巨大的适应能力,环境的变化会引起生物的变化,生物会由此改进其行为,环境的多样化是生物多化的根本原因,而ABC算法个体所要面临的环境就是其他个体传递给它的知识环境,个体参照的知识不同进化行为也有所不同,即个体的进化行为在整个寻优过程中不应该是一成不变的。通过分析可知,ABC中个体在整个进化过程中能够获得知识的来源主要分为4个部分:1)个体自身的知识;2)当前最佳个体的知识;3)所有个体的平均知识;4)其他个体的知识。本文针对这4类知识提出4种策略变异行为来完成个体差分变异。

    • 这种进化方式有利于基本人工蜂群算法原有的寻优性能,即仍按式(1)对个体进行进化。

    • 这种方式表明进化个体在决定个体寻优行为时充分考虑了自身、当前最佳个体和其他个体的影响,可以采用差分算法的DE/rand-to-best/1来表示,不同文献对于缩放因子F的选择具有一些固定的优选值,但是针对不同的优化问题,这个参数的设置对求解问题的结果具有一定的影响,本文不考虑F的影响,赋予个体较大的自主性,提出改进自适应权重进化方式:

      $${v_{ij}} = \omega {x_{ij}} + {\rm{rand}}({\rm{Gbes}}{{\rm{t}}_j} - {x_{ij}}) + {\rm{rand}}({x_{r1, j}} - {x_{r2, j}})$$ (4)

      式中,${\rm{Gbest}}$为当前群体中的最佳个体。

    • 社会中的个体通常具有趋同性,也就是说个体的行为容易受到群体共知所影响,可以用“群体位置质心”来代替群体平均知识,为简单计算采用所有个体位置的均值作为质心:

      $$\left\{ \begin{align} & {{p}_{j}}(t)={\sum\limits_{i=1}^{\text{Num}}{{{x}_{ij}}}}/{\text{Num}}\; \\ & {{v}_{ij}}(t)=\omega {{x}_{ij}}(t)+\text{rand}({{p}_{j}}(t)-{{x}_{ij}}(t)) \\ \end{align} \right.$$ (5)
    • 这种随机选取个体进行变异的方式等价于智能进化算法中的个体突变,并且这种突变方式与一些基于混沌理论进行变异方式相比较,更具有目的性和方向性。可以采用差分算法的DE/rand/1进化方式来表示:

      $${v_{ij}}(t) = {x_{r1j}}(t) + {\rm{rand}}({x_{r2j}}(t) - {x_{r3j}}(t))$$ (6)

      式中,$r1 \ne r2 \ne r3$为在群体中随机选择的3个个体。

      式(4)和(5)引入了粒子群算法中的惯性权重$\omega $,用来描述父代个体对子代个体的影响。$\omega $值较大时表示全局寻优能力强,反之则局部寻优能力强。当求解问题空间较大时,为了在搜索速度和搜索精度之间达到平衡,常用的做法是使算法在前期具有较高的全局搜索能力,而在后期具有较高的局部搜索能力以提高收敛精度,采用线性递减的方式进行赋值:

      $$\omega = {\omega _{\max }} - \frac{t}{T}({\omega _{\max }} - {\omega _{\min }})$$ (7)
    • 所谓立即价值是指采用某种策略进化行为后,所产生的适应度$f({x_i}^{{\rm{new}}}, t)$较上一次迭代计算的适应度$f({x_i}, t)$的提高程度,可以使用式(8)进行计算:

      $${\rm{valu}}{{\rm{e}}_i}(t) = \frac{{f({x_i}, t) - \min (f({x_i}, t), f({x_i}^{{\rm{new}}}, t))}}{{f({x_i}, t)}}$$ (8)

      另外,若某一策略收益计算如果为零,说明该策略没有取得很好的寻优效果,这只是瞬时效益,不能代表此种策略不好,则还需计算其未来价值。

    • 个体在没有任何先验知识的前提下,在每次确定所要采取的何种策略行为时,可通过对已获得知识的利用和对新知识的探索协调来确定,以便更快捷地做出最优决策。信心上界算法[18-19](upper confidence bound, UCB)的上限置信区间由两部分之和构成,其中一部分是当前已有回报值,另一部分和回报值在单侧置信区间的大小有关,以保证所期望的回报能以极大的可能性落在回报范围之内。该算法主要利用UCB算法根据棋盘当前局面的立即价值和可选落子点的未来价值来计算上限置信区间最大的落子点作为当前局面的落子点,因此个体的进化策略选择可以借鉴围棋的落子点决策。该算法已被应用到计算机围棋程序中并取得了很好的效果。

      令${N_i}^p(t)$为个体采用第$i$种策略在第$t$次迭代之前的成功次数,${M_i}^p(t)$为个体采用第$i$种策略在第$t$次迭代之前总的执行次数,${N_i}^g(t)$为所有个体采用第$i$种策略在第$t$次迭代之前的成功次数,${M_i}^g(t)$为所有个体采用第$i$种策略在第$t$次迭代之前总的执行次数,分两种情况按照UCB公式来计算未来价值,一种是单个个体执行某一策略的成功率,还有就是该策略在整个种群的成功率:

      $${\rm{succes}}{{\rm{s}}_i}(t) = \alpha \left( {\frac{{{N_i}^p(t)}}{{{M_i}^p(t)}} + \sqrt {\frac{{{C_0}\log (t)}}{{{N_i}^p(t)}}} } \right) + \\ (1 - \alpha )\left( {\frac{{{N_i}^g(t)}}{{{M_i}^g(t)}} + \sqrt {\frac{{{C_0}\log ({\rm{Num}} \times t)}}{{\sum\limits_{i = 1}^{{\rm{Num}}} {{N_i}^p} }}} } \right)$$ (9)

      式中,$t$是当前迭代的次数;${\rm{Num}}$是种群规模;$\alpha $和${C_0}$是一个常数,$\alpha $的作用是平衡个体未来价值与全局未来价值在策略行为预测的重要性,${C_0}$的作用是平衡个体所获得知识的利用和探索需求,${C_0}$越大就越偏向于广度搜索,${C_0}$越小就越偏向于深度搜索,文中按照UCB算法的取值${C_0} = 2$。

    • 在考察一种策略是否有效,需考虑实施该策略的立即价值、估算的未来价值,同时还要考虑之前的历史经验${P_i}(t)$,即上一次迭代采用该策略的概率,故采用式(10)来计算某一个体采用某种策略所能获得的综合奖励:

      $${\rm{scor}}{{\rm{e}}_i}(t) = {\rm{valu}}{{\rm{e}}_i}(t) + {\rm{succes}}{{\rm{s}}_i}(t) + {P_i}(t)$$ (10)

      式中,$1 \leqslant i \leqslant M$,$M$为多策略进化行为的个数。

    • 每个个体在分别计算完采用$M$种进化策略的综合奖励后,通过式(11)来更新在第$t + 1$次进化过程中采用某种进化策略的概率用以指示要采取哪种策略:

      $${P_i}(t + 1) = {P_{\min }} + \frac{{{\rm{scor}}{{\rm{e}}_i}(t)}}{{\sum\limits_{i = 1}^N {{\rm{scor}}{{\rm{e}}_i}(t)} }}(1 - M{P_{\min }})$$ (11)

      为保证某种策略都存在概率不为0的情况,需要设置一个最小概率${P_{\min }} < 1/M$。

      根据上述方法计算个体使用每个策略进化行为的立即价值、未来价值、综合奖励,并更新每种进化行为策略的选择概率,个体采用选择概率最大的进化行为来对个体进行进化,并利用贪心选择策略来更新个体,同时更新全局最优解。

    • 在算法的进化过程中会存在个体一直采取某种策略进化行为,虽然每次进化都会对个体适应值有所提升,但提升幅度不大,这有可能造成个体寻优速度缓慢或造成陷入局部最优的情况,所以需要对这种情况进行判断来降低当前所采取策略进化行为的选择概率。文中利用适应值方差来反映个体的收敛程度,方差越小说明或以陷入局部最优或以发现全局最优解,故算法采用个体适应值的方差来判断:

      $${\sigma ^2} = \frac{{\sum\limits_{i = t - {\rm{count}}}^t {{{({f_i} - \bar f)}^2}} }}{{{\rm{count}}}}$$ (12)

      式中,$t$代表当前的迭代次数;${\rm{count}}$为第$t$次迭代前的适应值个数(本文取10);${f_i}$为每次迭代的适应值;$\bar f$为${\rm{count}}$个适应值的均值。如果${\sigma ^2}$小于某一阈值,则将该策略行为的概率置为${P_{\min }}$。

    • 为验证本文所提算法的特点,选取几种与文中算法4种策略相关且具有代表性的算法进行比较。将其与ABC、差分进化算法[20](DE/rand/1、DE/best/ 1)、GABC[10]、NABC[11]、MABC[12]、BA[16]进行寻优性能对比。实验环境为:Windows 7操作系统,Intel酷睿i5处理器,主频2.5 Hz,4 G内存,开发工具为Matlab R2014a。针对8个函数极值求解问题,各算法的参数设置如下:种群个数${\rm{Num}} = 30$;各自迭代1 000次,每个算法独立运行10次;AES_ABC的$\alpha = 0.5$;DE/rand/1、DE/best/1的$F = {\rm{0}}{\rm{.5}}, {\rm{CR = }}0.3$[20];GABC、NABC、MABC和BA参数分别按照文献[10]、[11]、[12]、[16]设置,各种蜂群算法的${\rm{limit}} = 100$。测试函数如表 1所示,分别对每种算法的不同维数(10, 30, 60, 100)进行寻优,限于篇幅文中只列出30维和100维的优化结果如表 2~9所示。

      表 1  优化测试函数

      序号 测试函数 搜索空间 最优解
      1 ${f_1} = \sum\limits_{i = 1}^n {x_i^2} $ ${[ - 100, 100]^n}$ 0
      2 ${f_2} = \sum\limits_{i = 1}^n {|{x_i}| + \prod\limits_{i = 1}^n {|{x_i}|} } $ ${[ - 10, 10]^n}$ 0
      3 ${f_3} = \sum\limits_{i = 1}^n {\left( {\sum\limits_{j = 1}^i {{x_j}} } \right)} $ ${[ - 100, 100]^n}$ 0
      4 ${f_4} = \max ({\rm{abs}}({x_i})$ ${[ - 100, 100]^n}$ 0
      5 ${f_5} = \sum\limits_{i = 1}^n {ix_i^4} + {\rm{random}}[0, 1]$ ${[ - 1.28, 1.28]^n}$ 0
      6 ${f_6} = \sum\limits_{i = 1}^n {[x_i^2 - 10\cos (2\pi {x_i})]} + 10n$ ${[ - 5.12, 5.12]^n}$ 0
      7 ${[ - 32, 32]^n}$ 0
      8 ${f_8} = \frac{4}{{4{\rm{ }}000}}\sum\limits_{i = 1}^n {x_i^2 - \prod\limits_{i = 1}^n {\cos \left[ {\frac{{{x_i}}}{{\sqrt i }}} \right] + 1} } $ ${[ - 600, 600]^n}$ 0

      表 2  函数F1不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
      100 0.00×100 0.00×100 0.00×100 0.00×100
      ABC 30 5.08×10-12 2.35×10-11 1.40×10-11 7.37×10-12
      100 5.37×101 1.14×102 8.03×101 2.21×101
      DE/rand/1 30 8.43×10-12 1.57×10-11 1.12×10-11 2.80×10-12
      100 1.01×102 1.30×102 1.13×102 1.05×101
      DE/best/1 30 1.46×10-34 2.61×10-33 7.93×10-34 1.04×10-33
      100 9.28×10-7 1.15×10-5 4.73×10-6 4.08×10-6
      BA 30 1.91×104 2.59×104 2.32×104 3.47×103
      100 1.85×105 2.01×105 1.95×105 6.66×103
      GABC 30 7.78×10-20 4.29×10-19 2.16×10-19 1.55×10-19
      100 7.28×10-2 4.22×10-1 2.56×10-1 1.40×10-1
      NABC 30 5.08×10-28 2.18×10-27 1.44×10-27 7.34×10-28
      100 5.44×10-4 1.70×10-3 1.23×10-3 4.25×10-4
      MABC 30 4.54×10-43 8.85×10-42 6.03×10-42 3.32×10-42
      100 3.31×10-7 5.84×10-7 4.65×10-7 1.18×10-7

      表 3  函数F2不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 1.47×10-306 4.65×10-259 9.29×10-260 0.00×100
      100 1.03×10-300 1.68×10-245 3.36×10-246 0.00×100
      ABC 30 1.55×10-6 3.19×10-6 2.13×10-6 6.62×10-7
      100 3.30×100 5.60×100 4.37×100 8.29×10-1
      DE/rand/1 30 1.18×10-7 1.70×10-7 1.41×10-7 1.96×10-8
      100 1.41×101 1.82×101 1.64×101 1.84×100
      DE/best/1 30 1.15×10-19 8.59×10-19 3.63×10-19 2.87×10-19
      100 3.78×10-5 7.45×10-4 2.76×10-4 2.82×10-4
      BA 30 5.79×101 8.68×101 7.32×101 1.08×101
      100 3.86×102 4.16×102 4.00×102 1.06×101
      GABC 30 3.05×10-10 6.15×10-10 4.63×10-10 1.23×10-10
      100 4.03×10-1 4.67×10-1 4.31×10-1 2.39×10-2
      NABC 30 5.80×10-15 1.24×10-14 9.09×10-15 2.42×10-15
      100 1.37×10-2 1.81×10-2 1.62×10-2 1.85×10-3
      MABC 30 4.09×10-22 1.21×10-21 8.40×10-22 3.45×10-22
      100 2.47×10-4 2.73×10-4 2.60×10-4 9.79×10-6

      表 4  函数F3不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
      100 0.00×100 0.00×100 0.00×100 0.00×100
      ABC 30 1.30×104 2.10×104 1.63×104 2.92×103
      100 1.88×105 2.24×105 2.06×105 1.42×104
      DE/rand/1 30 2.17×104 3.31×104 2.76×104 4.49×103
      100 5.77×105 7.19×105 6.61×105 5.99×104
      DE/best/1 30 8.75×102 4.79×103 2.89×103 1.73×103
      100 2.37×105 3.68×105 2.90×105 4.88×104
      BA 30 1.66×104 3.11×104 2.37×104 5.43×103
      100 2.82×105 4.36×105 3.61×105 6.71×104
      GABC 30 1.21×104 1.99×104 1.65×104 3.07×103
      100 1.61×105 2.47×105 2.01×105 3.26×104
      NABC 30 1.68×104 2.05×104 1.86×104 1.73×103
      100 2.08×105 2.60×105 2.34×105 2.49×104
      MABC 30 1.17×104 2.71×104 2.07×104 5.64×103
      100 2.65×105 3.40×105 2.90×105 3.42×104

      表 5  函数F4不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 1.15×10-291 1.14×10-234 2.28×10-235 0.00×100
      100 6.90×10-289 8.40×10-251 1.68×10-251 0.00×100
      ABC 30 2.99×101 5.46×101 4.44×101 9.01×100
      100 8.89×101 9.09×101 9.01×101 8.58×10-1
      DE/rand/1 30 2.59×10-1 3.70×10-1 3.00×10-1 4.34×10-2
      100 7.41×101 8.69×101 8.19×101 4.77×100
      DE/best/1 30 1.15×101 2.93×101 1.77×101 7.17×100
      100 5.19×101 5.99×101 5.39×101 3.39×100
      BA 30 5.15×101 5.92×101 5.64×101 3.27×100
      100 8.32×101 8.69×101 8.47×101 1.41×100
      GABC 30 2.09×101 3.03×101 2.45×101 3.71×100
      100 8.37×101 8.95×101 8.69×101 2.38×100
      NABC 30 1.51×101 1.97×101 1.82×101 1.83×100
      100 8.58×101 9.03×101 8.74×101 1.81×100
      MABC 30 2.01×100 2.27×100 2.12×100 1.05×10-1
      100 7.69×101 8.25×101 7.99×101 2.26×100

      表 6  函数F5不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 1.47×10-5 1.46×10-4 9.16×10-5 6.41×10-5
      100 8.55×10-5 2.87×10-4 1.67×10-4 7.79×10-5
      ABC 30 2.31×10-1 3.92×10-1 2.80×10-1 6.47×10-2
      100 2.22×100 3.19×100 2.98×100 4.23×10-1
      DE/rand/1 30 9.99×10-2 1.55×10-1 1.28×10-1 2.09×10-2
      100 9.47×10-1 1.23×100 1.12×100 1.29×10-1
      DE/best/1 30 2.92×10-2 3.86×10-2 3.32×10-2 3.97×10-3
      100 1.88×10-1 2.88×10-1 2.59×10-1 4.17×10-2
      BA 30 1.10×101 1.67×101 1.41×101 2.11×100
      100 8.40×102 1.08×103 9.44×102 9.13×101
      GABC 30 8.06×10-2 1.26×10-1 9.84×10-2 1.67×10-2
      100 1.38×100 1.94×100 1.72×100 2.14×10-1
      NABC 30 4.65×10-2 7.67×10-2 6.58×10-2 1.14×10-2
      100 8.65×10-1 1.32×10 1.07×100 1.78×10-1
      MABC 30 2.00×10-2 3.47×10-2 2.63×10-2 6.24×10-3
      100 4.42×10-1 5.56×10-1 5.12×10-1 4.85×10-2

      表 7  函数F6不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
      100 0.00×100 0.00×100 0.00×100 0.00×100
      ABC 30 1.00×100 2.26×100 1.51×100 5.73×10-1
      100 9.37×101 1.11×102 1.00×102 7.91×100
      DE/rand/1 30 7.19×101 9.94×101 8.71×101 1.01×101
      100 7.74×102 8.56×102 8.12×102 3.02×101
      DE/best/1 30 7.96×100 1.79×101 1.27×101 3.88×100
      100 2.11×102 5.42×102 3.84×102 1.37×102
      BA 30 1.15×102 1.48×102 1.34×102 1.35×101
      100 8.62×102 9.49×102 9.13×102 3.54×101
      GABC 30 4.43×10-8 1.90×10-6 5.49×10-7 7.80×10-7
      100 5.21×101 6.18×101 5.77×101 3.95×100
      NABC 30 0.00×100 0.00×100 0.00×100 0.00×100
      100 3.69×10-1 3.46×100 1.72×100 1.50×100
      MABC 30 0.00×100 5.68×10-14 1.14×10-14 2.54×10-14
      100 1.13×10-4 1.99×100 1.39×100 8.90×10-1

      表 8  函数F7不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 8.88×10-16 8.88×10-16 8.88×10-16 0.00×100
      100 8.88×10-16 8.88×10-16 8.88×10-16 0.00×100
      ABC 30 4.20×10-6 1.52×10-4 5.84×10-5 5.69×10-5
      100 3.77×100 5.19×100 4.36×100 6.02×10-1
      DE/rand/1 30 7.28×10-7 9.77×10-7 8.90×10-7 9.63×10-8
      100 3.00×100 3.77×100 3.37×100 2.91×10-1
      DE/best/1 30 7.99×10-15 1.51×10-14 1.23×10-14 3.89×10-15
      100 1.21×100 2.70×100 1.94×100 6.00×10-1
      BA 30 1.79×101 1.83×101 1.80×101 1.48×10-1
      100 1.92×101 1.93×101 1.92×101 5.35×10-2
      GABC 30 2.04×10-10 4.89×10-10 4.02×10-10 1.15×10-10
      100 7.79×10-1 9.38×10-1 8.57×10-1 7.12×10-2
      NABC 30 7.55×10-14 1.50×10-13 9.97×10-14 3.00×10-14
      100 1.36×10-2 1.91×10-2 1.67×10-2 2.26×10-3
      MABC 30 2.93×10-14 3.29×10-14 3.22×10-14 1.59×10-15
      100 7.42×10-4 1.89×10-3 1.28×10-3 4.35×10-4

      表 9  函数F8不同维数测试结果

      算法 维数 最优结果 最差结果 平均结果 方差
      AES_ABC 30 0.00×100 0.00×100 0.00×100 0.00×100
      100 0.00×100 0.00×100 0.00×100 0.00×100
      ABC 30 1.35×10-8 6.11×10-5 1.37×10-5 2.65×10-5
      100 1.47×100 1.98×100 1.67×100 2.03×10-1
      DE/rand/1 30 2.28×10-11 8.85×10-10 3.01×10-10 3.45×10-10
      100 1.90×100 2.31×100 2.01×100 1.70×10-1
      DE/best/1 30 0.00×100 2.21×10-2 9.85×10-3 7.97×10-3
      100 1.02×10-7 3.19×10-2 6.38×10-3 1.43×10-2
      BA 30 1.49×102 2.53×102 2.05×102 4.19×101
      100 1.75×103 1.99×103 1.88×103 9.70×101
      GABC 30 3.79×10-11 2.42×10-6 4.84×10-7 1.08×10-6
      100 1.41×10-1 4.64×10-1 2.90×10-1 1.26×10-1
      NABC 30 5.55×10-16 3.97×10-3 7.94×10-4 1.77×10-3
      100 3.05×10-3 3.93×10-2 1.40×10-2 1.52×10-2
      MABC 30 2.22×10-16 3.17×10-4 6.35×10-5 1.42×10-4
      100 2.43×10-5 6.70×10-5 4.79×10-5 1.98×10-5

      设置收敛精度为1×10-10,迭代次数设置为300,每个算法独立运行10次取平均值,对比本文算法在100维函数的收敛平均迭代次数和运行时间如表 10表 11所示。

      表 10  函数F1-F4收敛迭代次数与运行时间对比

      算法 F1 F2 F3 F4
      迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s
      AES_ABC 130 0.666 148 0.652 133 2.624 143 0.672
      ABC 300 0.761 300 0.677 300 4.884 300 0.758
      DE/rand/1 300 1.928 300 1.883 300 10.820 300 2.136
      DE/best/1 300 1.966 300 1.944 300 11.110 300 2.062
      BA 300 9.650 300 9.860 300 13.748 300 9.260
      GABC 300 0.703 300 0.671 300 5.077 300 0.783
      NABC 300 0.814 300 0.880 300 5.005 300 0.918
      MABC 300 1.020 300 0.959 300 8.235 300 1.260

      表 11  函数F5-F8收敛迭代次数与运行时间对比

      算法 F5 F6 F7 F8
      迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s 迭代次数 运行时间/s
      AES_ABC 300 2.522 187 0.957 131 0.970 130 0.990
      ABC 300 1.144 300 1.363 300 1.056 300 1.064
      DE/rand/1 300 3.042 300 2.528 300 2.552 300 2.788
      DE/best/1 300 3.060 300 2.432 300 2.467 300 2.664
      BA 300 10.610 300 10.130 300 10.280 300 11.940
      GABC 300 1.179 300 1.293 300 1.142 300 1.144
      NABC 300 1.221 300 1.391 300 1.226 300 1.414
      MABC 300 1.898 300 1.425 300 1.526 300 1.630

      表 2~表 9可以看出,在增加维数的情况下寻优性能相对稳定,都可以获得较为理想的解。从表 10表 11可知,在高维函数优化中,AES_ABC可以用较少的迭代次数获取较好的寻优结果,而其他算法在指定迭代次数内都没有收敛到指定精度。这主要因为AES_ABC寻优个体在迭代过程中,可以通过计算立即价值、估算的未来价值和历史经验来判断如何从个体自身、当前最佳个体、整个群体或其他个体获取知识,并组合这些知识用来指导策略的选择。可以让算法在自身感知的情况下自主选用较优的进化行为,力争个体每次进化都能改进自身适应度。同时多策略进化概率变异算法可以避免某种选用策略造成寻优性能缓慢的情况,使个体通过不断选择进化策略来避免陷入局部最优,有利于获得全局最优解,进而解决了算法在求解某些复杂函数时收敛速度慢、容易陷入局部最优的缺点。

    • 极限学习机[21](extreme learning machine, ELM)是一种针对单隐藏层前馈神经网络的新算法,具有学习速度快且泛化性能好的优点。虽然极限学习机在大部分情况下可以获得良好的性能,但在一些实际应用中需要大量的隐层节点才能达到预期的效果,而隐层节点过多会增加网络复杂度,容易产生过拟合现象,并且造成极限学习机的泛化能力降低。传统ELM算法的输入权值及隐层偏差都是随机赋值的,因此无法保证这些参数都是最优的,并且广义逆矩阵的计算量会随着矩阵规模的变大而增加,其计算复杂度要多于本文的综合奖励计算量。为此,本文采用所提算法对输入权值及隐层偏差进行优化建立分类模型,并与4种蜂群进化算法进行对比,选择6种UCI数据集进行实验,算法运行参数设置参照3.1,迭代次数设置为300,EML的隐层节点数设置为20,每次取数据集的70%作为训练数据集,剩下的30%作为测试数据集,分别运行10次,取10次运行结果的平均值作为算法的优化结果。每个数据集及分类性能对比如表 12表 13所示。

      表 12  6种UCI数据集

      UCI数据 样本总数 特征维数 类别数量
      Wine 178 12 3
      Heart 270 12 2
      Kr_V_kp 3 196 36 2
      Pendigits 10 992 16 10
      Tic_tac_toc 958 9 2
      Balance 625 4 3

      表 13  各类方法分类性能对比

      UCI数据 算法 训练数据识别率/% 测试数据识别率/%
      Wine ELM 64.23 61.82
      ABC_ ELM 95.12 89.09
      AES_ ABC _ ELM 100.00 98.18
      GABC_ ELM 98.37 89.09
      NABC_ ELM 95.93 89.12
      MABC_ ELM 95.12 90.91
      Heart ELM 69.31 65.14
      ABC_ ELM 74.60 66.08
      AES_ ABC _ ELM 86.24 85.19
      GABC_ ELM 77.78 66.67
      NABC_ ELM 78.84 67.90
      MABC_ ELM 79.89 68.35
      Kr_V_kp ELM 74.28 71.83
      ABC_ ELM 83.63 83.75
      AES_ ABC _ ELM 94.45 94.06
      GABC_ ELM 87.25 84.35
      NABC_ ELM 88.28 86.25
      MABC_ ELM 88.14 85.42
      Pendigits ELM 74.48 66.32
      ABC_ ELM 85.71 85.34
      AES_ ABC _ ELM 91.46 90.91
      GABC_ ELM 88.62 88.70
      NABC_ ELM 87.52 87.49
      MABC_ ELM 87.39 86.37
      Tic_tac_toc ELM 73.13 67.71
      ABC_ ELM 79.25 72.57
      AES_ ABC _ ELM 90.54 85.39
      GABC_ ELM 81.34 73.26
      NABC_ ELM 84.03 78.13
      MABC_ ELM 83.54 73.92
      Balance ELM 88.60 82.83
      ABC_ ELM 92.43 88.36
      AES_ ABC _ ELM 96.56 93.17
      GABC_ ELM 93.12 90.48
      NABC_ ELM 92.89 89.95
      MABC_ ELM 94.27 90.89

      从本文算法与4种蜂群算法的分类性能对比结果可知,AES_ABC_ ELM可以使ELM获得很好的训练数据集识别率,尤其对数据样本数和特征维数较多的数据集Kr_V_kp、Pendigits、Tic_tac_toc。根据ELM建模原理,对于这3类UCI数据集需要优化的输入权值及隐含层偏差相对于其他3种Wine、Heart和Balance要多,广义逆矩阵的计算量也较大,这也说明本文算法对于高维数据寻优具有较好的效果。

    • 本文提出基于自适应进化策略的人工蜂群优化算法,使个体在进化过程中不断利用不同的知识源来更新自身位置,采用贪心算法的方式以期在每次进化都能获得更好的收益。基于高维测试函数的测试结果表明,所提算法在整体上具有较好的全局寻优能力且收敛速度较快,可以在较少的迭代次数内获得较为满意的寻优结果,适合于求解一些适应度计算复杂和耗时的优化问题。

参考文献 (21)

目录

    /

    返回文章
    返回