人工蜂群算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
昆虫,虽然单个昆虫的行 为极其简单,但是由单个简单的个体所组 成的群体却表现出极其复杂的行为。真实 的蜜蜂种群能够在任何环境下,以极高的 效率从食物源(花朵)中采集花蜜;同时, 它们能适应环境的改变。
• 蜂群产生群体智慧的最小搜索模型包含基 本的三个组成要素:食物源、被雇佣的蜜 蜂(employed foragers)和未被雇佣的蜜 蜂(unemployed foragers);两种最为基 本的行为模型:为食物源招募(recruit)蜜 蜂和放弃(abandon)某个食物源。
三 控制参数
• 蜜源的个数(与雇佣蜂或观察蜂相 等)SN • 算法终止的最大进化数(maximum evaluation number)MEN • limit。
基本ABC算法的流程为: • 1: 根据式(1)初始化种群解xi,i =1,…,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
2. 新蜜源的更新搜索公式
• 蜜蜂记录自己到目前为止的最优值,并在 当前蜜源邻域内展开搜索,基本ABC在蜜 源附近搜索新蜜源的公式为: vij xij ij ( xij xkj ) (2) 式中,j∈{ 1, 2, … , D },k∈{ 1, 2, …, SN }, k为随机生成且k≠i,φik 为[ - 1, 1]之间的随 机数。
• 初始时刻,蜜蜂以侦察蜂的身份搜索。其搜索可以由系统提供的先验 知识决定,也可以完全随机。经过一轮侦查后,若蜜蜂找到食物源, 蜜蜂利用它本身的存储能力记录位置信息并开始采蜜。此时,蜜蜂将 成为“被雇用者”。蜜蜂在食物源采蜜后回到蜂巢卸下蜂蜜然后将有 如下选择: • (1)放弃食物源而成为非雇佣蜂。 • (2)跳摇摆舞为所对应的食物源招募更多的蜜蜂,然后回到食物源 采蜜。 • (3)继续在同一个食物源采蜜而不进行招募。 • 对于非雇佣蜂有如下选择: • (1)转变成为侦察蜂并搜索蜂巢附近的食物源。其搜索可以由先验 知识决定,也可以完全随机。 • (2)在观察完摇摆舞后被雇用成为跟随蜂,开始搜索对应食物源邻 域并采蜜。
1.蜜源初始化
• 初始化时,随机生成SN个可行解(等于雇佣蜂的 数量)并计算适应度函数值。随机产生可行解的 公式如下: xij xmin, j rand(0,1)( xmax, j xmin, j ) (1) 式中,xi(i=1, 2, . . . , SN)为D维向量,D为优化参 数的个数,j ∈{1, 2, … , D}。
• (1)食物源:食物源的价值由多方面的因素 决定,如:它离蜂巢的远近,包含花蜜的 丰富程度和获得花蜜的难易程度。使用单 一的参数,食物源的“收益率” (profitability),来代表以上各个因素。
• (2)被雇用的蜜蜂:也称引领蜂(Leader), 其与所采集的食物源一一对应。引领蜂储 存有某一个食物源的相关信息(相对于蜂 巢的距离、方向、食物源的丰富程度等) 并且将这些信息以一定的概率与其他蜜蜂 分享。
二 ABC算法原理
在基本ABC算法中,人工蜂群包含3种个体:雇佣蜂、 观察蜂和侦查蜂。 • 每个雇佣蜂对应一个确定的蜜源(解向量)并在 迭代中对蜜源的邻域进行搜索。 • 根据蜜源丰富程度(适应值的大小)采用轮盘赌 的方式雇佣观察峰采蜜(搜索新蜜源) • 如果蜜源多次更新没有改进,则放弃该蜜源,雇 佣蜂转为侦查蜂随机搜索新蜜源。
人工蜂群算法 (Artificial Bee Colony,ABC)
蜂群算法简介
• 人工蜂群算法是模仿蜜蜂行为提出的一种优化方 法,是集群智能思想的一个具体应用。 • 主要特点是不需要了解问题的特殊信息,只需要 对问题进行优劣的比较,通过各人工蜂个体的局 部寻优行为,最终在群体中使全局最优值突现出 来,有着较快的收敛速度。 • 为了解决多变量函数优化问题,Karaboga在2005 年提出了人工蜂群算法ABC模型(artificial bee colony algorithm)。
• (3)未被雇用的蜜蜂:其主要任务是寻找和 开采食物源。有两种未被雇用的蜜蜂:侦 查蜂(Scouter)和跟随蜂(Follower)。 侦察蜂搜索蜂巢附近的新食物源;跟随蜂 等在蜂巢里面并通过与引领蜂分享相关信 息找到食物源。一般情况下,侦察蜂的平 均数目是蜂群的5%-20%。

在群体智慧的形成过程中,蜜蜂间交换信息是 最为重要的一环。舞蹈区是蜂巢中最为重要的信 息交换地。蜜蜂的舞蹈叫做摇摆舞。食物源的信 息在舞蹈区通过摇摆舞的形式与其他蜜蜂共享, 引领蜂通过摇摆舞的持续时间等来表现食物源的 收益率,故跟随蜂可以观察到大量的舞蹈并依据 收益率来选择到哪个食物源采蜜。收益率与食物 源被选择的可能性成正比。因而,蜜蜂被招募到 某一个食物源的概率与食物源的收益率成正比。
3. 观察蜂选择雇佣蜂的概率
Pi fit ( xi )
SN
fit ( x )
n 1 n
(3)
式中,fit(xi)为第i个解的适应值对应蜜源的 丰富程度。蜜源越丰富,被观察蜂选择的 概率越大。
4. 侦察蜂的产生
为防止算法陷入局部最优,当某蜜源迭代 limit次没有改进时,便放弃该蜜源, 并且将 该蜜源记录在禁忌表中, 同时该蜜源对应的 雇用蜂转变为侦察蜂按式(1)随机产生一个 新的位置代替原蜜源。
4. 算法可能改进方式
1.新蜜源的搜索邻域(2)式的改进(例如其 它拓扑邻域)
2. 观察蜂选择雇佣蜂的概率(3)式的改进(比如, 动态的)
相关文档
最新文档