资源描述
人工蜂群算法的应用
【摘要】 人工蜂群算法(ABC)是建立在蜜蜂自组织型和群体智能基础上的一
种非数值优化计算方法。自 1995 年提出蜂群算法后,该算法引起了学者们的
极大关注,并已在组合优化、网络路由、函数优化、机器人路径规划等领域获
得了广泛应用。本文首先介绍了蜂群算法的研究背景、基本原理、要素构成、
算法流程和优缺点,然后,介绍蜂群算法在实际中的应用,并且最后用 Matlab
实现人工蜂群算法对 Griewank 函数的优化,最后,本文对蜂群算法领域存在的
问题进行了总结,并提出了未来蜂群算法的研究方向。
【关键词】 人工蜂群算法;函数优化;Matlab;研究方向
一、 研究背景
群体智能(SwarmIntelligence)是指具有简单智能的个体 通过相互协作和
组织表现出群体智能行为的特性,具有天然 的分布式和自组织特征,在没有集
中控制且不提供全局模型的前提下表现出了明显的优势。虽然目前针对群体智 能的研究还处于初级阶段,且存在许多困难,但群体智能的研究代表了计算机
研究发展的一个重要方向。 2005 年 Karaboga 成功地将蜜蜂采蜜原理应用于函
数的数值优化,并提出比较系统的人工蜂群算法
(ArtificialBeeColonyAlgorithm,简称 ABC 算法)。目前,关于 ABC 算法研究
与应用还处于初级阶段,但由于其控制参数少、易于 实现、计算简洁、鲁棒性
强等特点,已成为群体智能领域的研究热点之一,被越来越多的学者所关注。
二、 基本原理
自然界中的蜂群总是能自如发现优良蜜源(或花粉)。Von Frisch 研究揭
示蜜蜂以跳舞的方式来传达蜜源的信息。采集到花粉的蜜蜂,返回后在蜂巢上
翩然起舞;蜜蜂沿直线爬行,然后再转向左这一种舞蹈,其动线呈"8"字形,
并摇摆其腹部,舞蹈的中轴线与地心引力的夹角正好表示蜜源的方向和太阳的
夹角。这种舞被称为"摇摆舞",蜂群实现采蜜的集体智能行为包含 3 个基本
-1-
部分:蜜源、采蜜蜂 EF、待工蜂 UF。此外引入 3 种基本的行为模式:搜索蜜
源、为蜜源招募和放弃蜜源。
蜂群采蜜工作图见图 1.1。
图 1.1 蜜蜂采蜜工作图
模仿蜂群的算法原理
(1)食物源初始化
初始化时,随机生成 SN 个可行解(等于雇佣蜂的数量)并计算适应度函
数值。随机产生可行解的公式如下:
式中,xi(i=1, 2, . . . , SN)为 D 维向量,D 为优化参数的个数,j Î{1, 2, ¼ ,
D}。
(2)新蜜源的更新搜索
蜜蜂记录自己到目前为止的最优值,并在当前蜜源邻域内展开搜索,基本
ABC 在蜜源附近搜索新蜜源的公式为:
-2-
式中,jÎ{ 1, 2, ¼ , D },kÎ{ 1, 2, ¼, SN },k 为随机生成且 k¹i,为[ - 1, 1]
之间的随机数。
(3)跟随蜂选择引领蜂
跟随蜂选择引领蜂的概率公式:
式中,fit(xi)为第 i 个解的适应值对应蜜源的丰富程度。蜜源越丰富,被跟随蜂
选择的概率越大。
(4)产生侦查蜂
当某蜜源迭代 limit 次没有改进时,便放弃该蜜源, 并且将该蜜源记录在禁
忌表中,同时该蜜源对应的雇用蜂转变为侦察蜂按式(1)随机产生一个新的位置
代替原蜜源。
基本 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
-3-
展开阅读全文