人工蜂群算法(ABC)

Bee colony algorithms

蜂群算法的分类(基于繁殖行为的算法、蜜蜂交配优化算法、蜜蜂进化型遗传算法、蜂王算法)

基于采蜜行为的算法(人工蜂群算法(ABC)、虚拟蜜蜂算法、蜂群优化算法)

生物学机理

1、不同角色之间的交流、转换及协作来实现

2、采蜜行为包括蜜源、采蜜蜂与待采蜜蜂

蜂群算法存在的问题

1、参数设置对算法性能影响很大

2、容易陷入局部最优,早熟

3、无理论支持,数学证明

4、并行计算,分布式

5、仅应用在组合优化问题

参数:

蜜源:可能的最优解

角色(role):引领蜂(leader),侦察蜂(scouter),跟随蜂(follower)

蜜蜂行为:搜索(search)蜜源,为蜜源招募(recruit),放弃(abandon)蜜源

蜂群参数:SN(种群规模),maxcycle(迭代次数),limit(全局和局部搜索能力),n(邻域规模),cycle(迭代次数变量)

参数说明:

引领蜂,跟随蜂:加快算法收敛

侦察蜂:增强算法跳出局部最优的能力

Limit控制了算法的收敛性,对算法跳出局部最优解有这重要影响;前期比较小,增强全局搜索能力,后期较小,加快收敛速度

N邻域规模:前期比较大,增强局部搜索能力,后期较小,加快收敛

算法步骤:

l初始化

 种群规模SN包含引领蜂和观察蜂,各取种群数量的一半,初始解数量FN=SN/2。

 trail[i]第i个解的实验次数初始化为0

 

 

 

 排序:函数优劣,前50%作为引领蜂,后50%作为跟随蜂

 适应度:

 

引领蜂阶段

邻域搜索

如果新解优于原先解,则替换,否则不变;

更新trail[i],若大于limit值,则抛弃该解(可以用队列进行存储该局部最优解),同时,引领蜂角色转化侦察蜂,trail[i]=0;

跟随蜂阶段

计算蜜源Xi被选择概率P

选择蜜源后,进行邻域搜索,搜索规则:

贪婪原则,如果该解优于原引领蜂的解,则完成角色互换,跟随蜂转变为

引领蜂,否则不变。

直到所有跟随蜂被分配到蜜源

侦查蜂阶段

随机产生新的解,若优于原先的解,则替代原先局部最优解,侦察蜂转变为引领蜂, trail[i] 清零;若不优于原先解,原先解不变;

初始化生成解的方法,随机化方法

一轮算法结束后,最优解被记录,迭代次数cycle++

若cycle=maxcycle,算法结束;否则跳到引领蜂的阶段

--------------------- 本文来自 排山和倒海 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/wangqing008/article/details/11849255?utm_source=copy

  • 8
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值