人工蜂群算法详解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、ABC算法原理
• 在基本ABC算法中,人工蜂群包含3种个体:雇佣蜂、观察 蜂和侦查蜂。 • 每个雇佣蜂对应一个确定的食物源(解向量)并在迭代中 对蜜源的邻域进行搜索。 • 根据蜜源丰富程度(适应值的大小)采用轮盘赌的方式雇 佣观察蜂采蜜(搜索新蜜源) • 如果蜜源多次更新没有改进,则放弃该蜜源,雇佣蜂转为 侦查蜂随机搜索新蜜源。 • 蜂群采蜜行为 待求解问题
五、人工蜂群算法解TSP的实现
所有城市的任一种排列即是问题的一个解,解空 间由若干解构成,因此初始化解空间就是随机产生多 个不同的城市序列。以n个城市为例,从1到n对其进 行编号,那么完成一次旅行的路径就用1到n的一个排 列组合来表示。 在人工蜂群算法中,每一个引领蜂或者跟随蜂的 位置就对应一个路径的组合,食物源的丰富程度对应 这条路径的长度,用适应度函数值来描述食物源的丰 富程度,也就是说,适应度函数值越小的引领蜂或者 跟随蜂所在的位置,所代表的路径也最优。
(Artificial Bee Colony,ABC)
蜂群算法简介
• 人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集 群智能思想的一个具体应用。 • 主要特点是不需要了解问题的特殊信息,只需要对问题进 行优劣的比较,通过各人工蜂个体的局部寻优行为,最终 在群体中使全局最优值突现出来,有着较快的收敛速度。 • 为了解决多变量函数优化问题,Karaboga在2005年提出了 人工蜂群算法ABC模型(artificial bee colony algorithm)。
一 、蜜蜂采蜜机理
• 蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但 是由单个简单的个体所组成的群体却表现出极其复杂的行 为。真实的蜜蜂种群能够在任何环境下,以极高的效率从 食物源(花朵)中采集花蜜;同时,它们能适应环境的改 变。
一 、蜜蜂采蜜机理
• 蜂群产生群体智慧的最小搜索模型包含基本的三个组成要 素:食物源、被雇佣的蜜蜂(employed foragers)和未 被雇佣的蜜蜂(unemployed foragers);两种最为基本 的行为模型:为食物源招募(recruit)蜜蜂和放弃 (abandon)某个食物源。 • (1)食物源:食物源的价值由多方面的因素决定,如:它 离蜂巢的远近,包含花蜜的丰富程度和获得花蜜的难易程 度。使用单一的参数,食物源的“收益率” (profitability),来代表以上各个因素。 • (2)被雇用的蜜蜂:也称引领蜂(Leader),其与所采集 的食物源一一对应。引领蜂储存有某一个食物源的相关信 息(相对于蜂巢的距离、方向、食物源的丰富程度等)并 且将这些信息以一定的概率与其他蜜蜂分享。
算法实现
更新策略
下一步选择的城市可以表示为: Ak={1,2,… ,n}- Tk 其中Ak表示蜜蜂k下一步可以选择的城市,Tk表示 以记录蜜蜂k本代所走过的城市,Tk随蜜蜂不断选 择下一个城市而做动态调整.进化代数N每增加一 次,各条路径上的转移因子就要清零一次,保证转 移因子没有遗留历史信息,而仅仅是根据本代路径 信息更新.所有蜜蜂完成一次迭代循环,各路径上 转移因子根据式(1)(2)(3)作调整.然后,对所有路 径长度排序,得到引领路径矩阵LR.最后采用2级更 新策略.
算法实现
更新策略
跟随蜂根据转移因子大小按概率状态转移,保证大 部分蜜蜂依上代历史信息选择转移路径,而侦察蜂保证 始终有一部分蜜蜂随机寻径,保证解的多样性,有助于算 出跳出局部最优,引领蜂具有精英特性,保留上代最佳路 径,可以加快算法收敛,减小算法的振荡,正是三者的共 同作用才使该算法具有更强的全局搜索能力,而且收敛 速度快. Q,σ,α,β根据求解规模及其算法状态动态确定 其取值.算法停止条件可以用固定进化代数或者当解 的变化不明显时便停止计算.
算法实现
更新策略
式中对于引领蜂,完全重走上次的路径,概率等于1.对 于跟随蜂,根据转移因子大小依概率选择路径,启发式因子 ηij= 1/ dij,dij(i,j= 1,2,… ,n)为城市i和城市j之间的 欧式距离;α为表示转移因子ρij重要程度的参数;β为表 示启发式因子ηij重要程度的参数;BS,BF,BL分别为侦察蜂、 跟随蜂及引领蜂集合. 对于侦察蜂,t是允许路径集中,可以选择城市的总数, 构造累加集序列Psum,累加集序列位置代表城市标号,通过计 算机产生(0,1)之间的随机数,并由此确定在Psum的位置,最 终确定选择城市.此外,c可以随着进化代数动态调整:起初, 为了增加解的多样性,可适当增大c,随着迭代次数的增 加,为了加速并保证收敛,可适当减小c.
四、基本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
算法实现
更新策略
蜂群算法的状态转移策略 设蜂群中蜜蜂总数为gm,侦察蜜蜂数为sm,跟随蜜蜂数 fm,则有gm=sm+ fm.其中sm取总数的1/c左右,c为常数,取值 小于10,以保证算法收敛.在从城市i转移到城市j的过程 中,引领蜂完全重走上一次的路径.跟随蜂和侦察蜂依据 下式计算在第N代第k只蜜蜂节点转移的概率.状态转移公 式为
食物源位置 食物源质量 可行解 适应度
采蜜速度
食物源质量最大值(最大收益度)
收敛速度
最优解
1.蜜源初始化
• 初始化时,随机生成SN个可行解(等于雇佣蜂的数量)并 计算适应度函数值。随机产生可行解的公式如下: xij xmin, j rand(0,1)( xmax, j xmin, j ) (1) 式中,xi(i=1, 2, . . . , SN)为D维向量,D为优化参数 的个数,j ∈{1, 2, … , D}。
算法实现
更新策略
ABC算法提供了3种不同模型,分别为Bcs, Bqs, Bds, 它们的差别在于引领因子λkij的计算表达式不同.
上述三种模型中,后两者利用的是局部信息,而前者利 用的是整体信息.其中:Q为引领常数;Lk为第k只蜜蜂 在本次迭代中所走过路径的长度;dij表示第i个城市到 第j个城市的距离.
算法实现
更新策略
第2级:转移因子动态更新策略 转移因子更新,人工蜜蜂根据当前允许选择的城市及上 一代建立的引领路径矩阵,动态确定每个待选城市的转 移因子转移因子动态更新公式为
算法实现Biblioteka Baidu
更新策略
式中:ρkij为第k只蜜蜂从城市i到城市j的转移因 子;γ为除引领蜂走过的路径外,可选城市的总数;σ为转 移强度;μ为可选城市总数; 当可选路径中不含引领蜂走过的路径时,转移因子取 σ/μ,其中,当可选路径中含引领蜂走过的路径且为引领 蜂走过的路径时,转移因子等于τij,若选其它路径,则转移 因子为
2. 新蜜源的更新搜索公式
• 蜜蜂记录自己到目前为止的最优值,并在当前蜜源邻域内 展开搜索,基本ABC在蜜源附近搜索新蜜源的公式为: vij xij ij ( xij xkj ) (2) 式中,j∈{ 1, 2, … , D },k∈{ 1, 2, …, SN },k 为随机生成且k≠i,φik 为[ - 1, 1]之间的随机数。
一 、蜜蜂采蜜机理
• (3)未被雇用的蜜蜂:其主要任务是寻找和开采食物源。 有两种未被雇用的蜜蜂:侦查蜂(Scouter)和跟随蜂 (Follower)。侦察蜂搜索蜂巢附近的新食物源;跟随蜂 等在蜂巢里面并通过与引领蜂分享相关信息找到食物源。 一般情况下,侦察蜂的平均数目是蜂群的5%-20%。 • (4)舞蹈区:在群体智慧的形成过程中,蜜蜂间交换信 息是最为重要的一环。舞蹈区是蜂巢中最为重要的信息交 换地。蜜蜂的舞蹈叫做摇摆舞。食物源的信息在舞蹈区通 过摇摆舞的形式与其他蜜蜂共享,引领蜂通过摇摆舞的持 续时间等来表现食物源的收益率,故跟随蜂可以观察到大 量的舞蹈并依据收益率来选择到哪个食物源采蜜。收益率 与食物源被选择的可能性成正比。因而,蜜蜂被招募到某 一个食物源的概率与食物源的收益率成正比。
用 蜂 群 算 法 求 解 T SP 的 流 程 图
3. 观察蜂选择雇佣蜂的概率
Pi fit ( xi )
fit ( x )
n 1 n
SN
式中,fit(xi)为第i个解的适应值对应蜜源的丰富 程度。蜜源越丰富,被观察蜂选择的概率越大。
4. 侦察蜂的产生
为防止算法陷入局部最优,当某蜜源迭代limit次没 有改进时,便放弃该蜜源, 并且将该蜜源记录在禁忌 表中,同时该蜜源对应的雇用蜂转变为侦察蜂按式(1) 随机产生一个新的位置代替原蜜源。
二、蜜蜂采蜜过程
• 初始时刻,蜜蜂以侦察蜂的身份搜索。其搜索可以由系统 提供的先验知识决定,也可以完全随机。经过一轮侦查后, 若蜜蜂找到食物源,蜜蜂利用它本身的存储能力记录位置 信息并开始采蜜。此时,蜜蜂将成为“被雇用者”。蜜蜂 在食物源采蜜后回到蜂巢卸下蜂蜜然后将有如下选择: • (1)放弃食物源而成为非雇佣蜂。 • (2)跳摇摆舞为所对应的食物源招募更多的蜜蜂,然 后回到食物源采蜜。 • (3)继续在同一个食物源采蜜而不进行招募。 • 对于非雇佣蜂有如下选择: • (1)转变成为侦察蜂并搜索蜂巢附近的食物源。其搜 索可以由先验知识决定,也可以完全随机。 • (2)在观察完摇摆舞后被雇用成为跟随蜂,开始搜索 对应食物源邻域并采蜜。
算法实现
TSP问题与蜂群采蜜行为对应关系
算法实现
更新策略
实现TSP问题的算法中存在两级因子,即引领 因子及转移因子. 引领因子是指通过上一级引领路径直接确定 的城市之间引领强度的大小; 转移因子是指蜜蜂从城市i到城市j的转移强 度,与引领因子及更新策略有关,而转移因子归一 化后,又可以求出相应两个城市的转移概率
算法实现
更新策略
第1级:引领因子更新策略 引领路径的选择有3种方式:取长度最短的路 径为引领路径;取长度前δ位(或δ%为引领路径); 上代全部蜜蜂走过的路径为引领路径.
算法实现
更新策略
式中:N为进化代数;LR(N)表示第N代路径长度排序后得到 的引领路径矩阵;gm表示蜂群中蜜蜂总数;λij表示第k只 蜜蜂在第N次迭代循环中留在路径ij上的引领因子。