人工蜂群算法起源与发展现状

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

采蜜蜂分享的蜜源花蜜信息选择一个食物源。蜜源花蜜量越大,这个蜜源被观察 蜂选择的概率就越大。 因此, 携带高蜜源花蜜量信息的采蜜蜂舞蹈所招募的观察 蜂会有更高的花蜜量。在到达选择区域之后,基于蜜源位置的对比,采蜜蜂根据 视觉信息和记忆, 在先前的蜜源位置附近选择一个新的蜜源。 当蜜源的花蜜呗放 弃时,新的蜜源由侦察蜂随机决定,并且代替这个放弃的蜜源。在此模型中,在 每次循环过程中, 最多允许一只侦察蜂外出搜索新的蜜源,并且蜂群中采蜜蜂的 数目和观察蜂的数目相同。 在人工蜂群算法中, 蜂群中可以有一半的观察蜂和一半的采蜜蜂。对于每个 食物源只有一个采蜜蜂。换言之,在蜂群中采蜜蜂的数量等于食物源的数量。当 采蜜蜂的食物源被采蜜蜂和观察蜂耗尽时,才蜜蜂就会变成一个侦察蜂,随机寻 找新的蜜源。 三种蜜蜂在不同的条件下可以相互转换,如下图:
人工蜂群算法(Artificial Bee Colony Algorithm, 简称 ABC 算法)是一个由蜂 群行为启发的算法,在 2005 年由 Karaboga 小组为优化代数问题而提出。 人工蜂群算法是模仿蜜蜂行为提出的一种优化方法, 是集群智能思想的一个 具体应用, 它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣 的比较, 通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值突现出 来,有着较快的收敛速度。 作为一种新的群体智能优化算法, 人工蜂群算法理论研究和应用已成为新的 研究热点, 由于它在很多方面的优良性能,己经成为仿生智能计算领域的一种重 要优化算法。本文着重阐述蜂群算法的基本原理、方法、步骤,介绍算法的特点 并通过一个函数优化实例说明算法的有效性。同时研究了 ABC 算法的发展和改 进。最后分析了 ABC 算法今后发展重点与方向。 1、人工蜂群算法的生物机理及发展 1.1、蜜蜂采蜜原理 蜜蜂是社会化的昆虫群体, 蜂群中的个体可以担任不同的角色,能够完成构 建巢穴、觅食、生育后代、养育后代和御敌等工作,并且能够自发地在这些角色 之间进行互换。 一般蜂群有两种创建方式: 独立创建方式,即蜂群是由一个或多个母蜂创建 的,这些母蜂建造巢穴、生育后代以及哺育幼蜂,幼蜂一直被哺育到能承担种群 的工作为止,此种群的分工是蜂王专门生育后代,而工蜂则哺育后代。群创建方 式, 即蜂群是由一个或多个蜂王及一群工蜂创建的,从蜂群创建之初就有明确的
(1) 直接放弃原来开采的蜜源,成为侦察蜂,如图 1 中的 UF、S 路线。 (2) 在舞蹈区,采蜜蜂通过“摇摆舞”与观察蜂分享蜜源的相关信息,根据 蜜源的适应度吸引一定数量的观察蜂采蜜,如图 1 中的 EF1 线。 (3) 卸下蜂蜜后,采蜜蜂不招募其他蜜蜂,继续回到原来的蜜源采蜜,如图 1 中的 EF 线。 在实际的生活中, 大多数蜜蜂在一次采蜜完成之后都会选择到舞蹈区招募更 多的观察蜂去蜜源采蜜。为了使算法简单有效,这里直接选取 EF1 路线,即采 蜜蜂回到舞蹈区招募观察蜂去蜜源采蜜。 假设己经发现了蜜源 A 和 B,在一开始蜜蜂有两种选择。 (1) 一开始没有蜜源信息的情况下, 作为侦察蜂在蜂巢附近随机地寻找蜜源, 如图 1 中的 S 线路。 (2) 在看到采蜜蜂的摇摆舞后,飞到舞蹈区,被招募到蜜源去采蜜,如图 1 中 R 线路。 1.3、人工蜂群算法在多领域中的应用 目前蜂群算法的应用大量局限于连续、单目标、无约束的确定性优化问题, 应该注重蜂群算法在离散、多目标、多约束、不确定、动态等优化问题上的研究 和应用。人工蜂群算法被广泛应用于各个领域,包括通信、信号与图像处理、神 经网络、数据挖掘、控制领域、数值计算、电力系统、农业水利、NP 问题(传 感器最优部署问题,传感器节点数目最小化) 、参数优化检测、模型求解、交通 问题、多目标问题、动态问题以及其他领域。 2、人工蜂群算法实现 2.1 算法介绍 在人工蜂群算法中,每次搜寻过程包括三个步骤:采蜜蜂至食物源并测量蜜 源的花蜜量; 在分享采蜜蜂的信息和测定蜜源的花蜜量之后, 观察蜂选择食物源; 测定侦察蜂并使它们寻找可能的食物源。在初始化阶段,一系列食物源的位置被 随机地分配给蜜蜂并且测定其花蜜量。然后,这些蜜蜂回到蜂巢,并且与等待在 蜂巢内舞蹈区的蜜蜂分享蜜源信息。在第二阶段,信息共享之后,每一个采蜜蜂 都去往它们先前去过的食物源区域,这是因为它们记忆的效果。 然后根据视觉信 息在先前的那个食物源附近选择一个新的食物源。在第三阶段,每个观察蜂根据
X i j X kj
(2)
i, k 1, 2, 式中,
, N 与 j 1, 2,
, D 是从集合中随机选取的, rand 但k i ,
pi
fiti
fit
n 1
N
(1)
n
式中, fiti 是第 i 个解对应的适应度函数值, 它与第 i 个位置的蜜源花蜜量成正比;
N 为蜜源的数量,它等于采蜜蜂的数目。同个这种方式,采蜜蜂与观察蜂交换
信息。 ABC 模型采用以下公式从就的蜜源位置中产生一个新的候选蜜源位置,即:
new _ X i j X i j rand
侦查蜂 放弃食物源 放弃食物源
找到食物源
跟随பைடு நூலகம்他蜜蜂
找到食物源
采蜜蜂
放弃食物源,并跟随其他蜜蜂
观察蜂
图 2 三种蜜蜂间的转换
在人工蜂群算法中, 蜜源法位置对应优化问题的一个可能解,蜜源的花蜜量 对应着一个适应度函数值(可行解的质量)。采蜜蜂的数量或者观察蜂的数量等于 解的。第一步,算法随机产生含有 N 个侦察蜂的初始种群(可行解) , N 代表了 采蜜蜂数量(初始时刻所有蜜蜂都为侦察蜂),同时也是找到蜜源的数量。每个解
ABC 算法起源与发展
摘 要:本文从人工蜂群算法(ABC 算法)的生物机理出发,介绍了 ABC 算法的起源以及发展,重 点介绍了 ABC 算法的算法的基本原理、实现方法及算法流程,介绍 ABC 算法的特点并通过 一个函数优化实例说明其的有效性。同时研究了 ABC 算法的发展和改进。然后分析了 ABC 算法的优缺点及今后发展重点与方向。最后列出部分 ABC 算法的近期研究成果。 关键词:人工蜂群算法 小生境优化 高斯变异 混沌扰动
蜜源或非蜜源 蜜源A
S S
EF1 EF2
UF
EF1 EF2
卸蜜房A
UF R R
为A招募跳舞区
EF1
S
为B招募跳舞区
UF
蜂巢
EF1
卸蜜房B
EF2 UF EF1
EF1
蜜源B
S
蜜源或非蜜源
EF2
图 1 蜜蜂采蜜过程
蜜蜂采蜜的工作过程可以简单地描述为: 以蜜源 A 为例,采蜜蜂采集完花蜜,来到蜂巢的某个固定区域卸下花蜜后, 三种选择。
蜂交配的生物机理的启发, 建立了一种新的模型―蜜蜂繁殖优化模型(Bee Mating Optimization MBO),HBMO 模拟由一只蜂王进化为包含一只或多只蜂王的蜂群 的整个过程,并被用于解决可满足性问题。Amiri 等人基于 K-均值聚类算法将自 组织映射神经网络与 HBMO 结合用于细分网上书店市场,如今,这一模型在其 他优化问题的解决中也得到广泛应用[10][11]。2003 年,Jung 提出了蜂后进化模型 (Queen Bee Evolution) [12],等等。除 HBMO 外,基于蜜蜂繁殖行为的蜂群算法 还有蜜蜂进化型遗传算法和蜂王算法等。 基于蜜蜂繁殖行为的蜂群算法本质上是 对遗传算法( genetic algorithm,GA)的改进。 另一种是基于蜜蜂采蜜机理的蜂群算法, 也是通常大家所讨论的 ABC 算法。 蜜蜂是一种群居昆虫, 人工蜂群算法(ABC)描述如下, 首先引入蜜源(food source), 它代表解空间内的各种可能解,在多峰函数求极值中,与函数值有关,用数字量 “ 收益度 ”(profitability) ,即适应度函数值来衡量蜜源。再引入三种蜂:采蜜蜂 (employed foragers,EF),待工蜂(unemployed foragers,UF),是指观察蜂(也称为 跟随蜂,onlookers),侦察蜂(scouts)。采蜜蜂同具体的蜜源联系在一起,这些蜜 源是它们当前正在开采的蜜源, 采蜜蜂通过摇摆舞与其他蜜蜂分享信息。观察蜂 等待在舞蹈区通过分享采蜜蜂的信息对食物源作出选择, 采蜜蜂总是能记住自己 以前的最优位置, 并根据记忆在邻域搜索。 侦察蜂的作用是随机搜索一个新位置。
分工,即蜂王生育后代,工蜂哺育后代。 虽然单个昆虫的行为极其简单, 但是由简单的个体所组成的群体却能表现出 极其复杂的行为。 真实的蜜蜂种群能够在任何环境下, 以极高的效率从食物源 (花 朵) 中采集花蜜; 同时, 它们能适应环境的改变。 最早在 The Dance Language and orientation of Bees 这本书中,Frisch 深入研究了蜜蜂交流采蜜信息时使用的摇摆 舞机制,还将这一机制用其构建的语言加以描述。在自然界中,虽然各社会阶层 的蜜蜂只能完成单一的任务,但蜜蜂通过摇摆舞、气味等多种信息交流方式,使 整个蜂群总是能很自如地发现优良蜜源和花粉,实现自组织行为。按照 Frisch 的描述,蜜蜂回巢后,会在蜂巢上右一圈、左一圈地跳起“8”字形的舞。在跳 “8”字形舞蹈的阶段时,蜜蜂会不断地振动翅膀,发出嗡嗡声,同时腹部还会 左右摇摆,这部分舞蹈被称为“摇摆舞” ,它包含两部分有关食物地点的重要信 息。摇摆的方向表示采集地点的方位,其角度表示采集地点与太阳位置的角度, 而食物的距离是靠摇摆是持续时间来决定的,蜜蜂摇摆的时间越长,说明食物地 点越远。找到食物的蜜蜂通过跳摇摆舞引起其他蜜蜂的注意。 这些蜜蜂在看到摇 摆舞后, 会根据摇摆舞得到食物地点的准确信息,选择飞往蜜源去采蜜或者在附 近重新寻找新的蜜源,蜜蜂之间通过这种相互的信息交流、学习,使得整个蜂群 总能找到比较多的蜜源进行采蜜。 1.2、人工蜂群算法的提出 Seeley 于 1995 年在其著作 The Wisdom of the Hive[1]中首次提出了蜂群的自 组织模型,Tereshko 根据蜜蜂的采蜜行为也提出了简单模型[2][3],Teodorovic 提 出了蜂群优化原理并提出了蜜蜂系统和模糊蜜蜂系统, 并将其应用于解决数值优 化问题中[4][5],Yang 提出一种虚拟的简单蜂群算法,算法采用两个参数并用于解 决数值优化问题[6]。Karaboga 于 2005 年系统地提出了人工蜂群算法及其改进算 法[7],并在其后续文献中分析了蜂群算法的性能,并与差分进化算法、粒子群算 法和进化算法在多维函数优化的性能上做了比较[8]。今年来,许多研究者对蜂群 算法提出新的模型,并进行了改进和性能分析[9]。 受自然界中蜜蜂行为启发而产生的蜂群算法是一种新颖的元启发式优化算 法。根据不同的生物启发机理,有两种不同实现原理的蜂群算法。 一种是基于蜜蜂交配繁殖机理的蜂群算法。2001 年,Abbass 受到蜂后与工
量(适应度函数值)。在真实的蜂群中,新蜜源的产量是通过一个区域内蜜源多少 的比较来确定,蜜源的信息有蜜蜂所见所闻获得。在蜂群模型中,同样如此。然 而,在蜂群模型中,人工蜜蜂不应用任何比较信息。它们随机选择一个蜜源,并 且根据记忆产生一个限定区域,如式 2 如果新的蜜源花蜜量比旧的蜜源花蜜量 高,则由贪婪准则,对蜜源的位置进行记忆。在所有的采蜜蜂完成搜索后,它们 就会在跳舞区与观察蜂分享蜜源信息和蜜源花蜜量信息。 每个观察蜂估量其获得 的蜜源花蜜量信息,并且以此为一定的概率选择蜜源位置。蜜源的收益度越高, 吸引观察蜂的概率越大。至于采蜜蜂,它由记忆的原位置产生一个限定区域,检 测候选位置的花蜜量,并根据贪婪准则选取蜜源位置。 一个蜜源由观察蜂选择的概率表示为:
i 1, 2,
, N 是一个 D 维向量,这里 D 是优化问题参量的个数。每一个蜜源吸
引一个采蜜蜂, N 个蜜源吸引 N 个采蜜蜂,采蜜蜂的位置即为蜜源的位置。初 始化之后, 蜜源位置或问题的解会由三种蜜蜂重复的搜寻得出。一个采蜜蜂或者 观察蜂根据记忆信息在限定的邻域内进行搜索并产生新位置, 测试新位置的花蜜
相关文档
最新文档