智能优化算法:头脑风暴优化算法-附代码
智能优化算法:头脑风暴优化算法
摘要:头脑风暴优化算法(Brain Storming Optimization algorithm, BSO)是Shi在2011年第2次群体智能国际会议上提出的一
种基于模拟人类创造性解决问题的过程的群体行为智能算法。,因其具有模型简单、收敛速度快、参数少等优点 ,已在工程优化 、模型识别等问题中得到较好的应用,很快得到了国内外学者的广泛关注,成为智能优化算法领域新的研究热点。
1.算法原理
头脑风暴优化算法主要由聚类和变异组成。
1.1 聚类
聚类:BSO采用K-means聚类算法,将相似的个体聚成k类,并将人为设定的适应度函数值最优的个体作为聚类的中心。当然,为了避免陷入局部最优,将有概率随机产生一个新个体替换其中
一个聚类中心。
1.2 变异
BSO变异主要有4种方式,分别是:(a)在随机一个类中心,即该类最优个体上添加随机扰动产生新的个体;(b)在随机一个类中随机选择一个个体添加随机扰动产生新的个体;©随机融合两个类中心,并添加随机扰动产生新的个体;(d)随机融合两个类中随机的两个个体,并添加随机扰动产生新的个体。
上述4种方式每个聚类中心,即类中最优个体
被选中的概率为:
其中, 代表 类中个体的数量。新个体产生公式为:
其中, 是新的维个体, 是选中的个体, 和分别表示设置的最大迭代次数和当前迭代次数,可以调节 函数的坡度, 是 维标准正态分布, 是0 - 1的随机值。
算法采用聚类思想搜索局部最优,通过局部最优的比较得到全局最优;采用变异思想增加了算法的多样性,避免算法陷入局部最优,在这聚与散相辅相承的过程中搜索最优解,思想新颖,适合于解决多峰高维函数问题。
2.算法流程
算法步骤如下.
:随机产生个个体.
:计算个体适应度值.
:用K-means聚类法将个个体分为个聚类,记录每个聚类的聚类中心.
:产生随机数,如果 ,则随机选择一个聚类中心,并用随机生成的个体替换它.
:更新个体.
:产生随机数.
:如果 ,则随机选择一个概率为 的类. 产生随机数,若 ,则选择该类中心,并加上随机值,产生新个体;否则,随机选择该类中的个体,加随机值更新.
:如果 ,则随机选择两个类产生新个体. 产生随机数,若 ,则合并两个聚类中心,加随机值产生新个体;否则,从两个聚类中选择个体合并后,加随机值产生新个体.
:新产生的个体与当前个体相比,适应度值小的作为下一次迭代的新个体.
:如果N 个个体更新完成,则转入,否则返回.
:如果达到最大迭代次数,则停止迭代,否则返回.
3.算法结果
4.参考文献
[1]SHI Yuhui. Brain Storm Optimization Algorithm[M].Advances in Swarm Intelligence. Berlin Heidelberg:Springer, 2011: 303–309. doi: 10.1007/978-3-642-21515-5_36.
[2]梁晓萍,郭振军,朱昌洪.基于头脑风暴优化算法的BP神经网络模糊图像复原[J].电子与信息学报,2019,41(12):2980-2986.