人工蜂群算法Artificial Bee Colony(ABC算法)

为了解决多变量函数优化问题Karaboga在2005年提出了人工蜂群算法ABC模型。

1、 蜜蜂采蜜机理

蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简单的个体所组成的群体却表现出极其复杂的行为。真实的蜜蜂种群能够在任何环境下,以极高的效率从食物源(花朵)中采集花蜜;同时,它们能适应环境的改变。

蚁群产生群体智慧的最小搜索模型包含基本的三个组成要素:食物源、被雇佣的蜜蜂和未被雇佣的蜜蜂。两种最基本的行为模型:为食物源招募蜜蜂和放弃某个食物源。

(1)   食物源

食物源的价值由多方面因素决定,如:离蜂巢的远近、包含花蜜的丰富程度和获得花蜜的难易程度。使用单一的参数,食物源的“收益率”来代表以上各个因素。

(2)   被雇佣的蜜蜂

也称引领蜂,其与所采集的食物源一一对应。引领蜂储存有食物源的相关信息(相对与蜂巢的距离、方向和食物源的丰富程度等)并把这些信息以一定的概率与其他蜜蜂分享。

(3)   未被雇佣的蜜蜂

其主要任务是寻找和开采食物源。有两种未被雇佣的蜜蜂:侦查蜂和跟随蜂。侦查蜂搜索附近的新食物源;跟随蜂等在蜂巢里面并通过与引领蜂分享相关信息找到食物源。一般情况下,侦查蜂的数量是蜂群的5%--20%

在群体智慧形成过程中,蜜蜂间交换信息是最重要的一环。舞蹈区是蜂巢中最为重要的信息交换地。蜜蜂的舞蹈也叫摇摆舞。食物源的信息在舞蹈区通过摇摆舞的形式与其他蜜蜂共享,引领蜂通过摇摆舞的持续时间等来表现食物源的收益率,故跟随蜂可以观察到大量的舞蹈并依据收益率来选择到哪个食物源采蜜。收益率与食物源被选择的可能性成正比。因而,蜜蜂被招募到一个食物源的概率与食物源的收益率成正比。

扫描二维码关注公众号,回复: 4335571 查看本文章

初始时刻,蜜蜂以侦查蜂的方式搜索。其搜索可以由系统的先验知识决定,也可以完全随机。经过一轮侦查后,若蜜蜂找到食物源,蜜蜂利用它本身的存储能力记录位置信息并开始采蜜。此时,蜜蜂将称为“被雇佣者”。蜜蜂在食物源采蜜后回到蜂巢卸下蜂蜜,然后将有如下选择:

(1)   放弃食物源而成为非雇佣蜂;

(2)   跳摇摆舞为所对应的食物源招募更多的蜜蜂,然后回到食物源采蜜;

(3)   继续在食物源采蜜而不进行招募。

对于非雇佣蜂有如下选择:

(1)   转变为侦查蜂并搜索蜂巢附近的食物源,其搜索可以由先验知识决定也可以完全随机;

(2)   在观察完摇摆舞以后,被雇佣成为跟随蜂,开始搜索对应食物源领域并采蜜。

2、 ABC算法原理

在基本ABC算法中,人工蜂群包含三种个体:雇佣蜂、观察蜂和侦查蜂

每个雇佣蜂对应一个确定的蜜源(解向量),并在迭代中对蜜源的领域进行搜索。

根据蜜源的丰富程度(适应值的大小)采用轮盘赌的方式雇佣观察蜂采蜜(搜索新蜜源)

如果蜜源多次更新没有改进,则放弃该蜜源,雇佣蜂转为侦查蜂随机搜索新蜜源。

(1)   随机初始化

(2)   新蜜源的更新搜索公式

(3)   观察蜂选择雇佣蜂的概率

(4)   侦查蜂的产生

为了防止算法陷入局部最优,当蜜源迭代limit次没有改进时,便放弃该蜜源,并且将该蜜源记录在禁忌表中,同时该蜜源对应的雇佣蜂转变为侦查蜂按式(1)随机产生一个新的位置代替原蜜源。

3、 控制参数

(1)   蜜源的个数(与雇佣蜂或观察蜂相等)SN

(2)   算法终止的最大进化数(maximum evaluation number)MEN

(3)   Limit

基本ABC算法的流程为

(1)   根据式(1)初始化种群解xi,i=1,2,…,SN;

(2)   计算种群中各蜜蜂的适应值

(3)   cycle=1

(4)   repeat

(5)   雇佣蜂根据(2)产生新的解vi并计算适应值

(6)   雇佣蜂根据贪心策略选择蜜源

(7)   根据(3)式计算选择蜜源xi的概率pi

(8)   观察蜂根据概率pi选择蜜源xi,根据(2)式在该蜜源附近产生新的蜜源vi,并计算新蜜源vi的适应值

(9)   观察蜂根据贪心算法选择蜜源

(10)   决定是否存在需要放弃的蜜源,如果存在,根据(1)式随机产生一个蜜源代替它

(11)   记录最优解

(12)   cycle = cycle + 1

(13)   until cycle=MCN

4、 算法可能的改进方式

(1)   新蜜源的搜索领域(2)式的改进(如:其他拓扑邻域)

(2)   观察蜂选择雇佣蜂的概率(3)式的改进(如:动态的)

参考:

https://wenku.baidu.com/view/8536032b8e9951e79b8927a7.html

http://blog.csdn.net/google19890102/article/details/26164653

猜你喜欢

转载自blog.csdn.net/qq_30142403/article/details/82621202
Bee