首页 > 范文大全 > 正文

基于发现者预选择机制的自适应群搜索算法

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于发现者预选择机制的自适应群搜索算法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:

为克服群搜索(GSO)算法早熟的缺点,提高算法收敛速度,提出一种基于发现者预选机制自适应群搜索(PSAGSO)算法。首先,依据发现者追随者模型,采用预选择机制,用倒序变异算子产生新发现者,来引导追随者寻优的方向,有效地维持了群体中个体的多样性;其次,提出一种基于线性递减的动态自适应方法来调整游荡者的分布比例,以提高种群中个体的活力,有利于算法跳出局部最优。通过对12个基准函数进行测试。对于30维函数优化,PSAGSO算法的测试数据优于He等(HE S, WU Q H, SAUNDERS J R. Group search optimizer: an optimization algorithm inspired by animal searching behavior. IEEE Transactions on Evolutionary Computation, 2009, 13(5): 973-990)提供的数据;对于300维函数优化问题,PSAGSO算法的性能更佳。实验结果表明,PSAGSO克服了群搜索优化算法的不足,在一定程度上提高了算法的收敛速度和收敛精度。

关键词:

群智能算法;群搜索算法;预选择机制;倒序变异;自适应方法

0引言

在自然进化过程中,诸如蚂蚁、蜜蜂、白蚁等昆虫和鸟类、鱼类等动物集结成群,通过感知、通信、反馈等机制,完成觅食、婚配、筑巢等复杂任务。受自然界群体活动的启发,群体智能越来越受到人们的重视,从20世纪90年代人们就相继在文献[1]提出了蚁群优化(Ant Colony Optimization, ACO)算法;在文献[2]提出了人工蜂群(Artificial Bee Colony, ABC)优化算法;在文献[3]提出了微粒群优化(Partial Swarm Optimization, PSO)算法等群智能算法。这些算法已经在人工智能、通信网络和工业生产中的到了广泛应用。

群搜索(Group Search Optimizer, GSO)算法是受动物视觉扫描机制(如动物在觅食过程中对食物的搜索扫描行为)启发提出的一种新型的群智能优化算法。该算法由He等[4-5]在2006年IEEE进化计算会议上提出,2009年从GSO算法的基本原理、数学模型、参数设置、算法应用等做了进一步的研究和实验。实验证明,GSO算法为解决连续最优化问题和高维多模态优化问题提供了一种行之有效的新方法。近年来,许多研究学者从不同的方面针对GSO算法进行研究。例如,Chen等[6]提出一种带有量子行为的群搜索优化算法;Fang等[7]在发现者的探索模式中引入Metropolis准则,增强了算法的全局搜索能力;姚建[8]把二次插值法引入GSO算法中,提高了算法的收敛速度;罗磊等[9]用直角坐标系代替极坐标系来改变角度设计搜索优化策略;刘峰等[10]通过加大游荡者的数目提出了一种快速GSO算法;汪慎文等[11]引入反向学习策略来增强GSO算法的全局搜索能力;Kang等[12]提出一种基于最佳的位置和分布式产生能力的视觉扫描优化算法。GSO算法在应用方面的研究成果主要有:Zare等[13]将修正的群搜索优化算法用于求解非凸阀点效应的经济调度问题;Xie等[14]提出一种基于改进的群搜索优化算法研究桁架结构拓扑优化;Zhong等[15]将群搜索优化算法用于板结构优化;He等[16]将群搜索优化算法用于训练神经网络,并将训练好的神经网络用于乳腺癌的诊断;Zeng等[17]提出一种混合粒子群群搜索优化算法,并将其应用于结构设计中;Wang等[18]将群搜索优化算法应用到多目标优化,提出一种新颖的多目标群搜索优化算法。

本文在对GSO算法的研究中,为了提高算法的收敛性和求解精度,确定追随者和游荡者的个体分布比例,提出一种基于发现者预选择机制的自适应群搜索(producer preselection mechanism based selfadaptive group search optimizer, PSAGSO)算法。通过对已有文献的若干基准函数进行测试及对比分析,该算法在求解精度和收敛速度上均有一定的优势。

1群搜索算法

群搜索算法利用PS(ProducerScrounger)补充PS的英文全称。模型和动物在觅食过程中对食物的扫描机制来设计算法搜寻策略。在GSO算法中,一个群体由三部分组成:发现者(Producer)、追随者(Scrounger)和随机游荡者(Rangers)。

1.2发现者(Producer

GSO算法依据PS模型选择一个发现者,为其他群体成员共享资源信息,同时从发现者的位置出发,在最大可视角范围内随机选择三个不同角度不同位置的目标进行扫描搜索。首先根据式(2)在零度区域内搜索,然后根据式(3)在右边可视区域内搜索,再根据式(4)在左边可视区域内搜索:

1.4游荡者(Ranger

游荡者根据式(3)更新自己的搜索角,根据式(6)更新搜索距离,按照式(7)更新游荡者位置:

2发现者预选择机制

尽管GSO算法在解决连续优化问题和高维多模态问题时表现较优,但同其他群智能算法一样,算法易于早熟,在求解多峰函数时,容易使算法收敛到局部最优解。分析原因是算法的算子在搜索过程中易于陷入局部最优,使群体多样性逐渐减小,缩小了搜索范围,引起过早收敛。然而,生物在其进化过程中,都要预选择适合群体生存的特定环境。1970年,Cavicchio[19-20]提出了基于预选择机制的小生境实现方法。本文提出基于发现者预选择机制的基本过程是:用倒序变异算子产生新发现者,仅当该发现者的适应度超过当前发现者的适应度,替换当前发现者,由于替换前后发现者的结构没有改变,因此能够有效地维持群体的多样性,增强算法的局部搜索,扩大搜索范围。

首先,用badcounter来记录发现者陷入局部最优的次数,当badcounter满足式(10),则执行发现者预选择机制,造就小生境:

badcounter≥α(10)

其中:α=round(sqrt(D+1));round()表示四舍五入;D为决策变量的维数。

其次,引入倒序变异算子,在发现者[1,D]中随机选择两个整数p和q,当p

最后,如果新发现者的适应度小于当前发现者适应,则更新发现者。

3动态自适应策略

为了提高算法的收敛速度,在算法的进化过程中,将PS模型简化为在每一次搜索过程中只有一个发现者,那么追随者和游荡者占群体的99%,如何分配追随者和游荡者的比例关系,让大多数的成员能够更好地朝发现者的方向进化。He等在文献[5]中讨论了游荡者在群体中的分布关系,经过实验测试,设置追随者的比例为80%,游荡者的比例设置为20%。算法的进化过程是一个动态和适应性的过程,采用固定参数,不利于群体成员的进化选择。在算法的进化过程中,通过动态调整参数的方法,能够使算法适应现实世界的不同问题。PSAGSO算法采用一种线性递减的自适应策略,随着进化代数的增长,分配比例从0.2下降为0.1,动态调整游荡者在群体中的分布比例见式(13),在全局搜索和局部搜索之间找到平衡,维持进化群体的多样性,保护优势成员,提高算法的寻优能力,增强算法的鲁棒性:

ω=0.2-0.1t/T(13)

其中:t为当前的进化代数,T为最大代数。

4基于发现者预选择机制的自适应群搜索算法

发现者预选择机制的自适应群搜索算法的具体步骤如下:

步骤1初始化。按随机方式初始化种群个体的位置Xi和搜索角度φi,最大可视角θmax,最大巡视角αmax,最大可视距离lmax。

步骤2选择发现者。计算初始种群个体的适应度值,并选择一个最优成员作为发现者。

步骤3倒序变异。判断badcounter是否满足式(10),如果满足则进行倒序变异操作;否则转到步骤4。

步骤4执行发现者策略。根据当前发现者的位置,按式(2)~(4),在最大可视角范围内随机选择三个不同角度不同位置的目标扫描,更新发现者。

步骤5执行动态自适应策略。用线性递减的方法动态自适应调整游荡者的比例ω。

步骤6执行追随者策略。根据步骤5的分配比例选择追随者执行追随者策略。

步骤7执行游荡者策略。根据步骤5的分配比例选择游荡者执行游荡者策略。

步骤8更新成员。计算当前成员的适应度值,更新成员。

步骤9终止条件。判断是否满足算法结束条件,如满足就终止;否则转步骤3。

5数值实验

5.1实验设置

根据测试函数的种类,本文从文献[22-23]中的f1~f23这23个基准函数选取