计算智能题库 人工蜂群算法
第七章 人工蜂群算法 习题与答案
1. 填空题
(1)人工蜂群算法的缩写是 ,它模拟了 机制,可以解决 问题。
(2)在人工蜂群算法中,有三种蜜蜂执行不同的任务,它们分别是 、 和 。
解释:
本题考查人工蜂群算法的基础知识。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
(1)ABC,蜜蜂的采蜜,优化
(2)引领蜂、跟随蜂、侦察蜂
2. 下图能够基本反映工蜂采蜜的基本过程。理解该图,下列说法正确的是( )。
A)一个蜂群的工蜂在没有任何周围蜜源的信息时,均留在蜂巢内值“内勤”。
B)引领蜂从蜜源(A和B)处携带花蜜返回蜂巢,并将花蜜卸载到储存花蜜的位置,在卸下花蜜以后放弃蜜源。
C)引领蜂到舞蹈区跳上一只圆圈舞蹈或“8”字形舞蹈招募其他工蜂到该蜜源处采蜜,舞蹈的持续时间暗示蜜源与蜂巢之间的距离。
D)引领蜂在找到蜜源后选择继续在该蜜源采蜜而不招募任何蜜蜂,直到蜜源采集殆尽,再去开采新的蜜源。
解释:
本题考查对工蜂采蜜过程的掌握及理解。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:C
一个蜂群在没有任何周围蜜源的信息时,大多数的工蜂都首先留在蜂巢内值“内勤”,仍有少数工蜂作为“侦察员”专门搜索新的蜜源,因此A错误。侦察蜂将从蜜源A和B处分别携带花蜜返回蜂巢,并将花蜜卸载到储存花蜜的位置,在卸下花蜜以后,侦察蜂有以下三种可能:(1)到舞蹈区招募其他工蜂到该蜜源处采蜜,此时的侦察蜂称为引领蜂,被招募来的工蜂称为跟随蜂,具体过程如下:引领蜂在舞蹈区跳上一支圆圈舞蹈或“8”字形舞蹈招募蜜蜂到该蜜源处采蜜(如图中过程EF1),其中,舞蹈的持续时间暗示蜜源与蜂巢之间的距离,舞蹈的剧烈程度反映蜜源的质量,身上附着的花粉味道则反映蜜源的种类。蜜源离蜂巢越近、花蜜越多,代表蜜源越好,所招募的跟随蜂也越多;(2)放弃蜜源成为未雇佣蜂进入舞蹈区(如图中过程UF),未雇佣蜂包括跟随蜂和侦察蜂;(3)继续在该蜜源采蜜而不招募任何蜜蜂(如图中过程EF2)。在此过程中,随着采蜜的进行,已发现的蜜源会逐渐变差,少量跟随蜂不再去已经发现的蜜源采蜜,而是去开采新的蜜源,即少量转化为侦察蜂。这里需要说明的是并非所有的蜜蜂都参与采蜜。因此B、D错误,C正确。
3. 关于人工蜂群算法的特点,下列说法不正确的是( )。
A)人工蜂群算法具有系统性、分布式、自组织和反馈的特点。
B)人工蜂群算法是由蜜蜂的觅食行为抽象出来的,多只蜜蜂构成迭代种群,其优化效果好于一只蜜蜂的单独求解效果,蜂群作为一个整体可以完成单独个体不能完成的很多行为,显示了整体突现原理。
C)人工蜂群算法的种群中每个个体都在独立求解,整体的求解效果不会因为某个个体的求解效果变差而受到影响,体现出群体行为的分布式特征。
D)人工蜂群算法中,初始状态的个体类似于独立寻找最优解,但经过一段时间的算法进化,蜂群越来越趋向于寻找到接近最优解的一些解,整个的进化过程反映了算法的自组织性。
E)人工蜂群算法中随机化搜索和对部分解的舍弃会导致蜜蜂个体远离优秀蜜源,这体现了算法的正反馈特征。
解释:
本题考查对人工蜂群算法特点的掌握及理解。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:E
(1)人工蜂群算法是一种解决单目标优化问题的新型计算智能算法,主要具有系统性、分布式、自组织和反馈的特点。所以A选项正确。
(2)人工蜂群算法的系统性。自然界中的蜂群具备系统学中的典型特点,如关联性、整体性等。蜂群中的蜜蜂个体独立有序地工作,但个体之间相互影响、相互协作,这些都体现了系统的关联性;而蜂群作为一个整体可以完成单独个体不能完成的很多行为,例如觅食行为,这就显示了整体突现原理,即系统整体大于部分之和。而ABC算法是由蜜蜂的觅食行为抽象出来的,多只蜜蜂构成迭代种群,其优化效果好于一只蜜蜂的单独求解效果,也就是说如果把算法本身看作一个整体,那么它本身就具备系统的所有特点,这是所有计算智能算法最重要的特征之一。所以B选项正确。
(3)人工蜂群算法的分布式。对于自然界中的真实蜂群,在完成某种任务时,如觅食,蜂群中的大部分蜜蜂都进行相同工作,不会因为某个蜜蜂没有完成任务而使整体受到影响。作为由觅食行为抽象出来的ABC算法,也体现出群体行为的分布式特征。简言之,在处理优化问题时,在定义域中,种群中的每个个体都在独立求解,整体的求解效果不会因为某个个体的求解效果变差而受到影响。所以C选项正确。
(4)人工蜂群算法的自组织。自组织性是指在一定条件下,系统可以自发的从无序到有序,或从低级有序走向高级有序。在ABC算法中,初始状态的个体类似于独立搜索,无序地寻找最优解,但经过一段时间的算法进化,蜂群越来越趋向于寻找到接近最优解的一些解,整个的进化过程恰恰反映了算法的自组织性,可以自动的从无序到有序。所以D选项正确。
(5)人工蜂群算法的反馈。蜜蜂通过在蜂巢舞蹈区跳摇摆舞来传递信息,花蜜越多所招募的蜜蜂也越多,又会吸引更多的蜜蜂来采蜜,这是一个正反馈过程,逐步引导蜂群的进化方向。而随机化搜索和对部分解的舍弃会导致蜜蜂个体远离优秀蜜源,这体现了ABC算法的负反馈特征,解在一定程度上的退化能够维持搜索范围在一段时间内足够大、避免早熟收敛。ABC算法在正反馈和负反馈的共同作用下,逐步求得最优解。所以E选项不正确。
4. 请简述人工蜂群算法的基本流程。
解释:
本题考查人工蜂群算法的操作流程。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
人工蜂群算法的基本过程主要包括:初始化过程、引领蜂搜索、跟随蜂搜索和侦查蜂搜索。具体操作流程如下:
(1)初始化相关参数,包括种群个数NP、limit和最大迭代次数G等;
(2)在设计变量可行空间内随机产生初始种群,设置进化代数t=0;
(3)计算种群中各个体的适应度值;
(4)由适应度值较优的一半个体构成引领蜂种群,另一半个体为跟随蜂种群;
(5)引领蜂种群中个体按第7章式(7.2)搜索产生新个体,择优保留形成新的引领蜂种群;
(6)跟随蜂种群按照轮盘赌选择方式在步骤(5)的种群中选择较优个体,搜索产生新个体,形成跟随蜂种群;
(7)结合步骤(5)和步骤(6)中个体构成迭代种群;
(8)判断是否发生侦察蜂行为。如某个体连续limit代不变,则发生侦察蜂行为,并更新迭代种群;
(9)判断是否满足算法的终止条件,若满足则输出最优解,否则转至步骤(3)。
5. 下列关于人工蜂群算法中三种蜜蜂的行为,说法不正确的是( )。
A)在引领蜂搜索和跟随蜂搜索中,都需要产生新个体,两个过程中新个体的生成方法相同。
B)在引领蜂搜索时,需要比较新个体与目标个体的适应度值,择优进入引领蜂种群。在跟随蜂搜索时也需要进行同样的操作。
C)侦察蜂搜索可以改善因引领蜂和跟随蜂收敛过快而导致的种群多样性变差问题,能避免种群陷入局部最优。
D)侦察蜂行为由参数limit控制,即如果某个体连续limit代不变,相应个体直接转换成侦察蜂。
解释:
本题考查人工蜂群算法的基本原理和三种蜜蜂的行为。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:B
(1)引领蜂种群中个体和跟随蜂种群中的个体,都是根据下式进行搜索的:
其中表示两个不同的个体,逐维度进行交叉搜索,产生新的个体。所以选项A正确。
(2)引领蜂搜索中产生新个体后,需要比较该新个体与目标个体的适应度值,选择适应度值较优的个体进入引领蜂种群。但在跟随蜂搜索时,跟随蜂种群直接根据个体交叉搜索生成,并不与原跟随蜂种群进行一对一的适应度值比较。所以选项B不正确。
(3)引领蜂和跟随蜂种群的快速收敛,可能导致种群整体的多样性变差,为避免种群陷入局部最优,ABC算法特别设计了侦察蜂的搜索机制。所以选项C正确。
(4)侦察蜂搜索具体方式如下:对于经过引领蜂种群搜索和跟随蜂种群搜索以后结合形成的新种群,如果某个体连续limit代不变,相应个体直接转换成侦察蜂,按第七章式(7.1)搜索产生新个体,并与原个体按第七章式(7.3)进行一对一比较,择优保留至迭代种群。所以选项D正确。
6.利用人工蜂群算法求解函数的最小值问题,的取值范围是[-5, 5]。设种群大小为4,在种群初始化过程中产生的初始个体为试采用计算的方式说明引领蜂搜索过程,并确定迭代引领蜂种群。
解释:
本题考查人工蜂群算法中的引领蜂搜索过程。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
根据需要求解的函数可知问题的维度为5,且初始个体已经给出。因为是要求函数最小值,个体的适应度值可以选为函数值,适应度值越低表示该个体越优。引领蜂搜索过程如下:
(1)计算初始种群的适应度值。依初始种群适应度值优劣划分出引领蜂种群和跟随蜂种群
针对引领蜂个体,选择不同的引领蜂产生一个新个体,搜索公式如下:
。为讨论方便,假设用于产生新个体每个维度的随机数是,则新个体为,产生过程可用下图表示:
针对引领蜂个体,根据上述同样的方法,假设用于产生新个体每个维度的随机数,则新个体为。
(3)计算新个体的适应度值并与原个体进行比较,。因为,选择进入下一代引领蜂种群;,选择进入下一代引领蜂种群。所以新的引领蜂种群为。
7.借助第6题的部分结果,利用人工蜂群算法求解函数的最小值问题,初始条件与第6题相同。试分析跟随蜂搜索过程并说明跟随蜂搜索的作用。
解释:
本题考查人工蜂群算法中的跟随蜂搜索过程。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
根据第6题的计算结果,有新的引领蜂种群为,其中个体。跟随蜂搜索过程如下:
(1)根据引领蜂搜索得到的蜜源计算出选择概率。引领蜂个体的适应度值分别为,计算概率为,累加之后得到蜜源的选择概率为。
对于跟随蜂,首先确定其进行搜索时的基向量个体,具体方法如下:为讨论方便,假设产生一个随机数为0.3,按照轮盘赌的选择方式,选择中大于0.3的第一个引领蜂个体,即为;然后,按照引领蜂的搜索公式产生新个体,假设新生成的个体为,直接替换原跟随蜂个体。
对于跟随蜂,按照与跟随蜂搜索类似的方式,假设产生一个随机数为0.6,按照轮盘赌的选择方式选择个体,在其附近搜索,产生新的个体,直接替换原跟随蜂个体。
跟随蜂搜索过程使ABC算法可以在较优个体附近进行贪婪搜索,这种方式可保证ABC算法迅速收敛,这也是该算法区别于其他计算智能算法的关键所在。
8.在人工蜂群算法中,假设问题维度为d,种群大小为NP,参数limit一般设置为多少?该参数有什么作用?
解释:
本题考查人工蜂群算法中的侦察蜂搜索和参数limit。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
参数limit一般根据反复试验获得的经验值来设置,如无特殊要求,通常limit设置为种群参数的一半与问题维数的乘积可取得较好结果,即limit=d * NP/2。
人工蜂群算法中引领蜂和跟随蜂种群的快速收敛,可能导致种群整体的多样性变差,为避免种群陷入局部最优,ABC算法特别设计了侦察蜂的搜索机制,其中引入参数limit。具体方式如下:对于经过引领蜂种群搜索和跟随蜂种群搜索以后结合形成的新种群,如果某个个体连续limit代不变,相应个体直接转换成侦察蜂,依据搜索公式产生新个体,并与原个体依适应度值进行一对一比较,择优保留至迭代种群。所以侦察蜂行为由参数limit控制,对算法的收敛速度和全局寻优能力有较大影响。
9.对于高维复杂单目标优化问题,基本人工蜂群算法的缺陷是什么?可以采取哪些改进措施?
解释:
本题考查基本人工蜂群算法的缺陷及其改进方法。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
人工蜂群算法在求解高维复杂单目标函数优化问题时会遇到易陷入局部最优、早熟收敛、后期收敛速度慢等问题,导致其在大规模、高度非线性的实际工程应用中可行性较差。为提高人工蜂群算法在求解高维复杂单目标函数优化问题上的收敛精度和收敛速度,可以进行如下两个方面的改进。
(1)跟随蜂选择蜜源的概率模型改进。在人工蜂群算法中,跟随蜂依据轮盘赌的方式选择蜜源,这种基于贪婪策略的选择方式会使种群多样性降低,从而引起过早收敛和提前停滞的现象。所以考虑将灵敏度与信息素配合的方式代替轮盘赌方式选择较优蜜源。理论上可以选择任何区域进行搜索,这就在很大程度上避免了陷入局部最优;所搜索区域的信息素必须适应其灵敏度,这就使算法有导向作用,决定了目标函数在搜索空间中的收敛和发散。
(2)最差蜜源的替换。在人工蜂群算法迭代的过程中,引领蜂和跟随蜂都可能依赖本次迭代中的最差蜜源进行交叉操作产生新蜜源,但最差蜜源几乎不可能对最终结果做出贡献,而且一定程度上降低算法的收敛速度。因此可以考虑产生一个新蜜源替换最差蜜源。由于依靠产生候选解的相对点取代原候选解的反向学习策略是对原候选解的一种较好估计,与产生随机点代替原候选解的方式相比,通常会取得更佳的优化效果,不仅极大程度提高了收敛速度,而且在一定程度上避免了陷入局部最优。因此采用现有的一种应用效果较好的改进反向学习策略产生新蜜源取代最差蜜源。
10. 利用人工蜂群算法解决多峰优化问题,下列说法不正确的是( )。
A)多峰优化问题是指不仅要求出优化问题的最优解,还要尽可能的求出全部局部极值解备选的一类优化问题。
B)人工蜂群算法本身不具备解决多峰优化问题的能力。
C)单独改进人工蜂群算法的性能不仅能有效提高算法本身的全局收敛能力,还可以使算法在多峰优化问题上的性能得到明显改善。
D)利用人工蜂群算法处理多峰优化问题,可以结合小生境技术等多峰处理技术,改进算法的内在运行机制,增强对峰的辨识能力。
解释:
本题考查利用人工蜂群算法解决多峰优化问题的相关知识。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:C
(1)多峰优化问题是指不仅要求出优化问题的最优解,还要尽可能的求出全部局部极值解备选的一类优化问题。所以A选项正确。
(2)人工蜂群算法本身是为了解决单目标函数优化问题,最终种群会收敛至全局最优,即获得一个全局最优解,而多峰函数优化问题不仅要求出全局最优,还要给出局部最优。显然,人工蜂群算法并不具备处理多峰优化问题的能力。所以B选项正确。
(3)通过大量实验研究发现,单独改进人工蜂群算法的性能只能有效提高算法本身的全局收敛能力,即快速收敛至全局最优解的能力,并不能提升其收敛到局部最优峰的能力,所以算法在多峰优化问题上的性能没有明显改善。所以C选项不正确。
(4)利用人工蜂群优化算法解决多峰问题,必须结合一定的多峰处理技术改进算法的内在运行机制增强对峰的辨识能力,补充种群多样性,才能提高多峰优化算法的整体性能。而小生境技术是目前通常采用的多峰处理技术,主要包括拥挤模型和适应值共享模型。所以D选项正确。
11.引入小生境技术可以使人工蜂群算法能解决多峰优化问题,小生境技术可以有效维持种群的多样性,请简述依靠哪些操作维持了种群多样性。
解释:
本题考查小生境技术的基本原理及其对种群多样性的维持。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
小生境技术作为一种常用的多峰处理技术,使人工蜂群算法可以处理多峰优化问题,增强对峰的辨识能力,维持种群多样性。小生境技术主要包括拥挤模型和适应值共享模型,原理简述如下。
(1)拥挤模型。为了避免算法收敛于单个最优解导致种群多样性降低,通常选用拥挤策略来维持种群多样性,具体方法如下:对于每个子代个体,从父代中选择CF个个体,根据某种距离定义选择最近的一个个体,若优于该个体则替换,否则,维持子代个体不变。这种方法采用一对一竞争的精英保留模型,与传统优化算法的保留机制最为相近而被广泛采用,虽然其操作简单,但有利于维持种群多样性。大量实验证实,如果单独使用拥挤模型,很难搜索到两个以上的峰值点,在实际应用中,必须结合其他技术。
(2)适应值共享模型。适应值共享小生境技术,引入了分享机制使得高、低峰以平等机会被选中,可有效避免漏峰现象,并且不会全部聚集到某一个峰上,非常适合解决多峰优化问题。排挤小生境技术是一种最为简单的较好维持种群多样性的方式。但传统的排挤方式是依据个体的适应度值进行“一对一”比较确定优秀个体的,对于多峰优化问题中的不等峰问题,如果某一个体距峰值点较远但适应度值较大,而另一个体距峰值点较近但适应度值较小,按照排挤方式会选择距峰值较远、适应度值大的个体,而距峰值点较近但适应度值较小的个体就会被排挤掉,但实际上,与距峰值较远、适应度值大的个体相比,适应度值较小、距峰值点较近的个体对局部最优峰的探索、避免漏峰的贡献更大。所以将共享适应值方法加入到排挤策略中,衡量个体距峰值点的远近,评判个体的优劣。
12.为了将小生境技术与人工蜂群算法有机结合,需要针对人工蜂群算法中的引领蜂搜索,跟随蜂搜索等过程进行有针对的改进,从而保证算法可以在找到各个峰的同时,提升算法搜索各个峰的精度。请简述应用小生境技术改进人工蜂群算法的具体操作。
解释:
本题考查结合小生境技术对人工蜂群算法进行改进的具体操作。
具体内容请参考课堂视频“第7章人工蜂群算法”及其课件。
答案:
人工蜂群算法本身不具备解决多峰优化问题的能力。结合小生境技术对人工蜂群算法内在运行机制进行改进,构成小生境人工蜂群算法,保证算法可以找到各个峰的同时,提升算法搜索各个峰的精度,算法具体改进过程描述如下。
(1)引领蜂个体的确定方式的改进。在基本人工蜂群算法中,引领蜂个体以“一对一”对比适应度值的方式确定优秀个体,这对避免算法陷入局部最优起到较大作用,但只能使种群收敛到全局最优或局部最优的位置,仅适合求解单目标优化问题,而不满足多峰函数优化求出全部极值点的需求。
考虑到多峰优化问题的特殊性,在某一个峰内可以通过直接对比适应度值来评价个体优劣,而统一比较各个峰内的个体的适应度值是没有意义的。所以可以借助地理位置信息判断出个体是否属于同一峰,地理位置上相距较近的个体一般都处于同一峰内,基于这种思想对引领蜂个体确定进行改进。子代和父代个体考虑地形信息进行两两配对,比较每对个体对应的适应度值是否有所改善,若改善,则用新搜索到的子代个体替换父代个体成为迭代引领蜂。具体的配对方式为:计算新搜索到的子代个体和父代个体间的欧式距离,选取与第一个父代个体最相近的子代个体,配成一对,第二个父代个体从余下的子代个体中选择与之最为相近的个体配对,依此方式一一配对。显然,这样的方式保证个体在其左右探索更优位置,有利于个体向距离自己最近的峰靠近,而不是向全局最优的峰靠近。
(2)跟随蜂选择较优个体评价方式的改进。在基本人工蜂群算法中,为了提高算法的收敛速度,跟随蜂依据某种准则选择较优个体并在其附近搜索,在单目标函数优化中,个体适应度值可以作为标准评判个体优劣。在多峰函数优化中,不应以适应度值评判个体优劣,应建立新的评价标准。
共享适应度值方法为每个峰值点赋予同样的最大适应度值,可以突出那些靠近全局最优峰或局部最优峰的个体的作用,使跟随蜂以均等机会向各个峰值点移动,达到有效识别峰值点的目的。因此以共享适应值作为引领蜂选择较优个体的新的评价方式。
(3)每次迭代的最终种群的确定方式的改进。传统的排挤方式是依据个体的适应度值进行“一对一”比较确定优秀个体的,对于多峰优化问题中的不等峰问题,如果某一个体距峰值点较远但适应度值较大,而另一个体距峰值点较近但适应度值较小,按照排挤方式会选择距峰值较远、适应度值大的个体,而距峰值点较近但适应度值较小的个体就会被排挤掉,但实际上,与距峰值较远、适应度值大的个体相比,适应度值较小、距峰值点较近的个体对局部最优峰的探索、避免漏峰的贡献更大。鉴于共享适应值方法可以衡量个体距峰值点的远近,评判个体的优劣,为此,将共享适应值方法加入到排挤策略中,提出新的迭代种群确定方式。首先计算每个个体的共享适应度值;然后对每个跟随蜂个体,从引领蜂中选择CF个个体,根据欧式距离选择与该跟随蜂最近的一个个体,保留适应度值较优的个体进入迭代种群;循环上一步骤直至达到种群数目。
(4)设置外部种群。对于较为复杂的多峰函数,随着种群的进化,个体分布也不再像初始状态那样较为均匀的分散在整个定义域内,某些峰所在范围内的个体数目较少,很可能会造成某些已得峰值点丢失。所以需要设置一个外部种群来存储那些已经搜索到的峰值点,避免漏峰现象出现。首先,在可行域内产生大量均匀分布的点,利用小生境识别技术划分可行域为若干个小生境;然后,判断第一次迭代产生的个体属于哪几个峰,在各个峰内选取适应度值最大的个体为峰值点,存储在外部种群中;从第二次迭代开始,按照第一次迭代判断峰值点的方式,确定本次迭代的峰值点,如果本次迭代的峰值点与迭代种群中的峰值点属于同一个峰,选取峰值点较优个体更新外部种群,否则,保持外部种群中的峰值点不变。