微信号:weixin888
参考文献
《Brain storm optimization algorithm: a review》
一、介绍
群智能算法应具有两种能力:学习能力和开发能力。开发能力侧重于将算法的搜索移至可能存在更高搜索潜力的区域,而学习能力则侧重于从当前解中精确搜索基于单点的优化算法,并从当前种群中进行基于群体的群体智能算法的搜索。
BSO算法有两个主要的算子:收敛算子和发散算子。通过解在搜索空间中的收敛和发散,可以获得足够好的最优值。新的解是通过集群或现有解的变异生成的。开发能力是搜索过程中的适应性,是BSO算法中的另一个共同特征。
二、头脑风暴优化算法:发展史
1、基本头脑风暴优化算法
原始BSO算法概念简单、易于实现,由算法1给出,主要有三种策略:解集群、生成新个体和选择。
在BSO中,解分为几个集群,如果新生成的相同指标的解更好,则将保留总体最好的解。新个体可以基于集群中的一个或两个个体来生成。当新个体无限接近最优解时,开发能力得到提高,当新个体是随机生成的或由两个集群中的个体生成的,探索能力得到了提高。
BSO是一种搜索空间缩减算法,所有解最终都会进入几个集群,这些集群表明问题的局部最优值。一个区域的信息包含从一个集群到另一个集群传播的具有良好适应性值的解。该算法首先在决策空间中进行探索,迭代后可以将探索和开发达到一种平衡状态。
2、解集群
解集群的目的是将解收敛到较小的区域。在BSO中可以使用不同的聚类算法,原始的BSO中采用了基本的k-means聚类算法。
聚类是将相似对象分组在一起的过程,从机器学习的角度来看,聚类分析有时被称作无监督学习。给定n个点,可以通过点之间的相似度计算获得有用的模式。BSO中每个解都在搜索空间中传播。
3、新个体生成
新个体生成的过程在算法3中给出。可以基于一个或几个个体或集群来生成新个体。在原始的头脑风暴优化算法中,概率值pgeneration用于确定一个或两个“老”个体生成的新个体。从一个集群中生成一个个体可以优化搜索区域,并提高开发能力。相反,由两个或多个集群生成的个人可能离这些集群很远。在这种情况下,探索能力得到了增强。
用于确定聚类中心或另一个正常(或非聚类中心)个体的概率poneCluster和概率ptwoCluster将分别在一个聚类或两个聚类生成情况下选择。在一个集群生成的情况下,来自中心的新个体或正常个体可以控制开发区域。在几个集群的情况下,正常个体可以增加群体的种群多样性。
根据下式生成新个体。
其中,i表示维度;rand()生成[0, 1}之间的均匀分布随机数;xold由一个个体或两个个体组合形成;参数T是最大迭代次数,t是当前迭代次数,c是改变logsig()函数步长函数ξ(t)的斜率的系数,可以平衡算法的收敛速度。
BSO算法中的新个体生成,a从一个父代生成新个体,b从两个父代生成新个体
4、选择
选择策略可用于在所有个体中保持良好的解。每个新的个体生成后,选择策略都会保留更好的解,而聚类策略和新个体生成策略会将新的解添加到群体中,以保持整个种群的多样性。