人工蜂群算法应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工蜂群算法的应用
【摘要】人工蜂群算法(ABC)是建立在蜜蜂自组织型和群体智能基础上的一种非数值优化计算方法。自1995年提出蜂群算法后,该算法引起了学者们的极大关注,并已在组合优化、网络路由、函数优化、机器人路径规划等领域获得了广泛应用。本文首先介绍了蜂群算法的研究背景、基本原理、要素构成、算法流程和优缺点,然后,介绍蜂群算法在实际中的应用,并且最后用Matlab 实现人工蜂群算法对Griewank函数的优化,最后,本文对蜂群算法领域存在的问题进行了总结,并提出了未来蜂群算法的研究方向。
【关键词】人工蜂群算法;函数优化;Matlab;研究方向
一、研究背景
群体智能(SwarmIntelligence)是指具有简单智能的个体通过相互协作和组织表现出群体智能行为的特性,具有天然的分布式和自组织特征,在没有集中控制且不提供全局模型的前提下表现出了明显的优势。虽然目前针对群体智能的研究还处于初级阶段,且存在许多困难,但群体智能的研究代表了计算机研究发展的一个重要方向。2005年Karaboga成功地将蜜蜂采蜜原理应用于函数的数值优化,并提出比较系统的人工蜂群算法(ArtificialBeeColonyAlgorithm,简称ABC算法)。目前,关于ABC算法研究与应用还处于初级阶段,但由于其控制参数少、易于实现、计算简洁、鲁棒性强等特点,已成为群体智能领域的研究热点之一,被越来越多的学者所关注。
二、基本原理
自然界中的蜂群总是能自如发现优良蜜源(或花粉)。Von Frisch研究揭示蜜蜂以跳舞的方式来传达蜜源的信息。采集到花粉的蜜蜂,返回后在蜂巢上翩然起舞;蜜蜂沿直线爬行,然后再转向左这一种舞蹈,其动线呈“8”字形,并摇摆其腹部,舞蹈的中轴线与地心引力的夹角正好表示蜜源的方向和太阳的夹角。这种舞被称为“摇摆舞”,蜂群实现采蜜的集体智能行为包含3个基本
部分:蜜源、采蜜蜂EF、待工蜂UF。此外引入3种基本的行为模式:搜索蜜源、为蜜源招募和放弃蜜源。
蜂群采蜜工作图见图1.1。
图1.1 蜜蜂采蜜工作图
模仿蜂群的算法原理
(1)食物源初始化
初始化时,随机生成SN个可行解(等于雇佣蜂的数量)并计算适应度函数值。随机产生可行解的公式如下:
式中,xi(i=1, 2, . . . , SN)为D维向量,D为优化参数的个数,j ∈{1, 2, … , D}。
(2)新蜜源的更新搜索
蜜蜂记录自己到目前为止的最优值,并在当前蜜源邻域内展开搜索,基本ABC在蜜源附近搜索新蜜源的公式为:
式中,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