Artificial bee colony (ABC) algorithm

Artificial bee colony (ABC) algorithm

蜂群行为

ABC模型三要素:蜜源,雇佣蜂,非雇佣蜂。

蜜源(食物源): 蜜蜂根据食物源的相关特性,例如,离蜂巢的距离,所蕴含的能量,蜜源味道及提取能量的难易程度等,选择一个食物源。
雇佣蜂: 蜜蜂搜索到食物源后,被雇佣,称为雇佣蜂(与食物源一一对应,也是引领蜂或采蜜蜂)。它携带当前食物源信息,在蜂巢等待并将信息分享给其他蜜蜂。它携带的当前食物源信息包括:距离,方向和食物源收益。
非雇佣蜂: 寻找食物源的觅食蜂称为非雇佣蜂。非雇佣蜂有两类:一种是侦察蜂(scout),在环境中随机搜索食物源;另一种是观察蜂(onlooker),它利用雇佣蜂所分享的信息尝试寻找食物源。

采蜜机制

信息交换是蜂群形成群体智能行为的重要环节。与之相关的重要场所就是舞蹈区(dancing area),蜂群中与食物源有关的通信过程就发生在跳舞区。采蜜蜂通过跳摇摆舞将其食物源相关信息分享给其他蜂。观察蜂通过围观摇摆舞获取蜜源信息,选择在获利最大食物源处雇佣自己。观察蜂要以最小的资源耗费来选择到哪个食物源采蜜。因此,蜜蜂被招募到某个食物源的概率与食物源的收益率成正比。
在这里插入图片描述
假设有两个已经发现的食物源:A和B。
初始时刻,潜在的采蜜蜂从非雇佣蜂开始。蜜蜂的搜索不受先验知识影响,完全是随机的。此时蜜蜂有两种选择:
1)成为侦察蜂,根据内在动机或可能的外部线索在蜂巢附近自发搜索食物(S on Fig.1)。
2)是成为观察蜂,看完摇摆舞之后,开始招募食物源(R on Fig. 1)。

找到食物源之后,它利用自己本身的能力存储当前位置,并立刻开始开采食物源。此时,它就变成了雇佣蜂。蜜蜂从食物源开采到花蜜,然后返回蜂巢并卸下花蜜。卸下花蜜之后,有以下选择:

  1. 放弃食物源成为非雇佣蜂(UF)。
  2. 跳摇摆舞招募更多蜜蜂,然后返回相同的食物源采蜜(EF1)。
  3. 继续在同一食物源采蜜但不招募蜜蜂(EF2)。

蜜蜂在采蜜时所表现出来的这种自组织性和合理分配性主要由其自身的基本性质所决定的,它们所特有的基本性质如下:

正反馈性:食物源的花蜜量与食物源被选择的可能性成正比;
负反馈性:蜜蜂停止对较差食物源的开采过程;
波动性:在某个食物源被放弃时,随机搜索一个食物源替代原食物源;
互动性:蜜蜂在舞蹈区与其他蜜蜂共同分享食物源的相关信息。

Artificial bee colony (ABC) algorithm

用食物源的位置来表示优化问题的可能解;食物源的花蜜量对应于相关解的适应度。雇佣蜂和观察蜂的数量等于解的数量。
Step1: ABC生成一个随机分布初始种群 P ( C = 0 ) P(C=0) P(C=0)具有 S N SN SN个解,其中 S N SN SN表示雇佣蜂或旁观蜂的大小。每个解都是一个D维向量 x i ( i = 1 , 2 , . . . , S N ) x_i(i=1,2,...,SN) xi(i=1,2,...,SN),D是需要优化的参数个数。初始化之后,进入循环过程。
Step2: 雇佣蜂根据局部信息(视觉信息)对记忆中的位置(解)进行修改,并评估新食物源(新解)的花蜜量(适应度值)。如果新的花蜜量比前一个花蜜量高,雇佣蜂就会记住新的位置,忘记旧的位置。否则,她会在记忆中保持前一个的位置。
step3: 在所有被雇佣蜂完成搜索过程后,他们将食物源的花蜜信息和位置信息分享给观察蜂。观察蜂评估从所有雇佣蜂得到的花蜜信息,并根据其花蜜量概率选择食物源(花蜜量越大被选中的概率越大)。就像雇佣蜂一样,她对记忆中的位置进行了修改,并检查了候选食物源的花蜜量。如果花蜜比之前的花蜜高,蜜蜂就会记住新的位置,忘记旧的位置。
The main steps of the algorithm are as below:
1: Initialize Population
2: repeat
3: Place the employed bees on their food sources
4: Place the onlooker bees on the food sources depending on their nectar amounts
5: Send the scouts to the search area for discovering new food sources
6: Memorize the best food source found so far
7: until requirements are met

ABC算法中,每次循环包含三步:送雇佣蜂进入食物源并评估它们的花蜜量;在分享食物源的花蜜信息后,由观察蜂选择食物源区域,并评估食物源的花蜜量(观察蜂做选择);确定侦察蜂,然后将它们随机送到可能的新食物源上(随机选择新的食物源)。
初始化阶段 ,蜜蜂随机选择食物源,并确定蜜量。
循环第一步,这些蜜蜂进入蜂巢与等待在舞蹈区的蜜蜂分享食物源的蜜源信息。等待在舞蹈区做出决策选择食物源的蜜蜂就是观察蜂,在此之前前独自拜访食物源的蜜蜂就是雇佣蜂。与观察蜂分享完信息之后,每只被雇佣的蜜蜂都去到上一个循环中自己去过的食物源区域,因为这个食物源在她的记忆中,然后通过视觉信息在她记忆中的食物源附近选择一个新的食物源,并评估它的花蜜量。
ABC使用以下表达式,从记忆中的旧位置生成候选食物位置:
v i j = x i j + ϕ i j ( x i j − x k j ) ( 1 ) v_{ij}=x_{ij}+\phi_{ij}\left(x_{ij}-x_{kj}\right) (1) vij=xij+ϕij(xijxkj)1
其中 k k k j j j 分别从 k ϵ 1 , 2 , . . . , S N k\epsilon{1,2,...,SN} kϵ1,2,...,SN, j ϵ 1 , 2 , . . . , D j\epsilon{1,2,...,D} jϵ1,2,...,D 是随机选择(k不等于i), ϕ i j \phi_{ij} ϕij是[-1,1]之间的随机数,它控制着 x i j x_{ij} xij 周围邻近食物源的生产。
第二步,一个观察蜂会根据雇佣蜂在舞蹈区域分发的花蜜信息,选择一个食物源区域。当一种食物源的花蜜量增加时,选择这种食物源的概率也会增加。在到达选定的区域后,她会根据视觉信息在记忆中那个区域附近选择一个新的食物源,就像在受雇蜜蜂的情况下一样。蜜蜂根据视觉上食物源位置的比较过程来确定新的食物源。
人工观察蜂根据与食物来源相关的概率值选择食物源:
p i = f i t i ∑ n = 1 S N f i t n ( 2 ) p_i=\frac{{fit}_i}{\sum_{n=1}^{SN}{fit}_n} (2) pi=n=1SNfitnfiti2
其中 f i t i fit_i fiti是解 i i i的适应值。
第三步, 当一个食物源的花蜜被蜜蜂抛弃时,侦察蜂随机确定一个新的食物源,替换被抛弃的食物源(在每此循环中最多有一只侦察蜂外出寻找新的食物来源)。在ABC中,通过随机生成一个位置并将其替换为废弃的位置。如果一个食物源不能再预定的循环次数内进一步改善,则该食物源被放弃。预定循环数的值是ABC算法的一个重要控制参数,称为放弃的“极限”。假设被抛弃的食物源为 x i x_i xi j ϵ 1 , 2 , . . . , D j\epsilon{1,2,...,D} jϵ1,2,...,D ,侦察蜂则发现一个新的食物源来替代 x i x_i xi:
x i j = x min ⁡ j + r a n d [ 0 , 1 ] ( x max ⁡ j − x m i n j ) ( 3 ) x_i^j=x_{\min}^j+rand[0,1](x_{\max}^j-xminj)(3) xij=xminj+rand[0,1](xmaxjxminj)(3)
伪代码:
1、初始化 x i x_i xi, i = 1 , . . . , S N i=1,...,SN i=1,...,SN
2、评估种群
3、cycle = 1
4、repeat
5、 使用(1)为雇佣蜂生成一个新解 v i v_i vi,并计算适应值评估
6、 为雇佣蜂采用贪婪选择机制
7、 使用(2)计算 x i x_i xi的概率值 p i p_i pi
8、 由 x i x_i xi根据 p i p_i pi 选取的解生成新的解 v i v_i vi 给观察蜂,并对其进行评价
9、 对观察蜂应用贪婪选择过程
10、 如果存在废弃解,确定侦察蜂,利用(3)随机生成一个解 x i x_i xi 替代它
11、记住目前所找到的最优解
12、 cycle = cycle + 1
13、 until cycle = MCN

算法用到了四种概率选择机制:(1)全局概率选择过程: p i p_i pi, 观察蜂用来发现有希望的区域;(2)局部概率选择过程:雇佣蜂和观察蜂根据花(食物源)的颜色、形状和香味等直观信息在一个区域内进行的局部概率选择过程,用来选择被记忆的食物源周围新的蜜源 v i j v_{ij} vij;(3)贪婪选择过程:用于观察蜂和雇佣蜂,如果候选食物源的花蜜量比当前食物源的花蜜量好,蜜蜂就会忘记当前食物源源,并记住 v i j v_{ij} vij 产生的候选蜜源,否则蜜蜂将当前蜜源保留在记忆中。(4)随机选择过程,用于侦察蜂。

标准版本的ABC有三个控制参数:食物源的数量等于雇佣蜂和观察蜂的数量( S N SN SN), 极限值,最大循环次数( M C N MCN MCN)。

蜂群的生存和发展取决于对最佳食物资源的快速发现和有效利用。在ABC算法中,当观察蜂和雇佣蜂在搜索空间中进行exploitation过程时,侦察蜂控制exploration过程。ABC擅长exploration,但是exploitation较差

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值