人工蜂群算法ABC(学习笔记_08)

1. 原理

  • 受到蜜蜂群体的有组织的觅食过程的启发,Karaboga提出了模拟蜜蜂群体觅食过程的人工蜂群(Artificial Bee Colony) 算法用于解决多维度多峰谷的优化问题。该算法创始之初被用来寻找SphereRosenbrockRastrigin函数的最小值。

  • 人工蜂群中的三种蜜蜂:

    • 雇佣蜂:

      • 利用已有的蜜源信息进行搜寻,与观察蜂分享信息

      • 维持优良解

    • 观察蜂:

      • 在蜂房等待,依据雇佣蜂分享的信息寻找新的蜜源

      • 提高收敛速度

    • 侦察蜂:

      • 寻找蜜源,在蜂房附近随机搜索

      • 增强摆脱局部最优的能力

  • 搜索蜜源步骤:

    • 雇佣蜂发现蜜源,通过8字舞方式共享蜜源

    • 观察蜂根据雇佣蜂提供的信息,外出采蜜

    • 雇佣蜂多次搜索找到的蜜源质量无明显改善,放弃现有的蜜源

    • 侦察蜂在蜂群附近寻找新的蜜源,搜索到高质量蜜源后,雇佣蜂出动

2. 参数:

  • nPop :引领蜂个数

  • nOnlooker:跟随蜂个数

  • L :蜜源试验次数上限,如果达到此上限,舍弃该蜜源。

3. 算法流程

  1. 初始化种群

  2. for it = 1:MaxIt

    1. 引领(雇佣)蜂阶段

    2. 跟随(观察)蜂阶段

    3. 侦察蜂阶段

  3. end

  4. 输出结果

  • 流程图如下:

4. 详细流程

1. 初始化阶段

  • 初始化各类参数

  • 产生初始种群

2. 引领蜂阶段

  • 引领蜂产生一个新解(新食物源)

    • k = 1,2,...,NP, k ≠ i ; ϕij : [-1,1] 之间的随机数

  • 贪婪选择

    • 计算新解的适应度值并评价它,若新解的适应度值优于旧解,则引领蜂更新旧解为新解。反之,保留旧解。

    • 函数值转适应度值: fiti是第 i个解的适应值,fi是第i个体对于优化问题的目标函数。

3. 跟随蜂阶段

  • 根据轮盘赌计算每个解的选择概率

  • 根据概率判断是否更新为新解

    • 随机产生一个[0,1]的随机数r

    • 若r>p,则产生一个新解,并检验新解的适应度值,若由于旧解,则更新旧解为新解

    • 若r<=p,则保留旧解

4. 侦察蜂阶段

  • 判断是否在探索极限L次数内都更新

    • 无更新:陷入局部最优,抛弃该解,该解对应的引领蜂变为侦察蜂,产生一个新解替代原引领蜂

    • 替代公式如下:

    • i=1,2,⋯,NP; j=1,2,⋯,D; Xij是第 i个解的第 j个维度;

    • X j max 和 X j min分别是问题第 j 个维度的上限和下限; rij 是 [0,1] 之间的随机数

4. 适应度函数曲线图

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值