智能优化算法:头脑风暴优化算法

文章目录

  • 智能优化算法:头脑风暴优化算法
    • 1.算法原理
      • 1.1 聚类
      • 1.2 变异
    • 2.算法流程
    • 3.算法结果
    • 4.参考文献
    • 5.MATLAB代码

摘要:头脑风暴优化算法(Brain Storming Optimization algorithm, BSO)是Shi在2011年第2次群体智能国际会议上提出的一
种基于模拟人类创造性解决问题的过程的群体行为智能算法。,因其具有模型简单、收敛速度快、参数少等优点 ,已在工程优化 、模型识别等问题中得到较好的应用,很快得到了国内外学者的广泛关注,成为智能优化算法领域新的研究热点。

1.算法原理

头脑风暴优化算法主要由聚类和变异组成。

1.1 聚类

聚类:BSO采用K-means聚类算法,将相似的个体聚成k类,并将人为设定的适应度函数值最优的个体作为聚类的中心。当然,为了避免陷入局部最优,将有概率随机产生一个新个体替换其中
一个聚类中心。

1.2 变异

BSO变异主要有4种方式,分别是:(a)在随机一个类中心,即该类最优个体上添加随机扰动产生新的个体;(b)在随机一个类中随机选择一个个体添加随机扰动产生新的个体;©随机融合两个类中心,并添加随机扰动产生新的个体;(d)随机融合两个类中随机的两个个体,并添加随机扰动产生新的个体。

上述4种方式每个聚类中心,即类中最优个体
被选中的概率为:
pj=∣Mj∣N(1)p_j = \frac{|M_j|}{N} \tag{1} pj​=N∣Mj​∣​(1)
其中, ∣Mj∣|M_j|∣Mj​∣代表 类中个体的数量。新个体产生公式为:
xnd=xsd+ξ∗N(0,1)d(2)x_{nd}=x_{sd}+\xi *N(0,1)_d\tag{2} xnd​=xsd​+ξ∗N(0,1)d​(2)

ξ=lgsig((0.5∗T−t)/k)∗R(0,1)(3)\xi=lgsig((0.5*T-t)/k)*R(0,1)\tag{3} ξ=lgsig((0.5∗T−t)/k)∗R(0,1)(3)

其中, xndx_{nd}xnd​是新的ddd维个体, xsdx_{sd}xsd​是选中的个体, TTT和ttt分别表示设置的最大迭代次数和当前迭代次数,kkk可以调节lgsig(.)lgsig(.)lgsig(.) 函数的坡度, N(0,1)dN(0,1)_dN(0,1)d​是ddd 维标准正态分布, R(0,1)R(0,1)R(0,1)是0 - 1的随机值。

算法采用聚类思想搜索局部最优,通过局部最优的比较得到全局最优;采用变异思想增加了算法的多样性,避免算法陷入局部最优,在这聚与散相辅相承的过程中搜索最优解,思想新颖,适合于解决多峰高维函数问题。

2.算法流程

BSOBSOBSO算法步骤如下.
Step1Step1Step1:随机产生NNN个个体.
Step2Step2Step2:计算个体适应度值.
Step3Step3Step3:用K-means聚类法将NNN个个体分为CCC个聚类,记录每个聚类的聚类中心.
Step4Step4Step4:产生随机数r1∈(0,1)r_1∈(0,1)r1​∈(0,1),如果r1<P1r_1<P_1r1​<P1​ ,则随机选择一个聚类中心,并用随机生成的个体替换它.
Step5Step5Step5:更新个体.
Step5.1Step5.1Step5.1:产生随机数r2∈(0,1)r_2 ∈ (0,1)r2​∈(0,1).
Step5.2Step5.2Step5.2:如果r2<P2r_2 < P_2r2​<P2​ ,则随机选择一个概率为PiP_iPi​ 的类. 产生随机数r3∈(0,1)r_3 ∈ (0,1)r3​∈(0,1),若r3<P3r_3 < P_3r3​<P3​ ,则选择该类中心,并加上随机值,产生新个体;否则,随机选择该类中的个体,加随机值更新.
Step5.3Step5.3Step5.3:如果r2⩾P2r_2 ⩾ P_2r2​⩾P2​ ,则随机选择两个类产生新个体. 产生随机数r4∈(0,1)r_4 ∈ (0,1)r4​∈(0,1),若r4<P4r_4 < P_4r4​<P4​ ,则合并两个聚类中心,加随机值产生新个体;否则,从两个聚类中选择个体合并后,加随机值产生新个体.
Step5.4Step5.4Step5.4:新产生的个体与当前个体相比,适应度值小的作为下一次迭代的新个体.
Step6Step6Step6:如果N 个个体更新完成,则转入Step7Step7Step7,否则返回Step5Step5Step5.
Step7Step7Step7:如果达到最大迭代次数,则停止迭代,否则返回Step2Step2Step2.

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.

5.MATLAB代码

头脑风暴优化算法
算法相关应用

名称 说明或者参考文献
头脑风暴优化的BP神经网络(预测) https://blog.csdn.net/u011835903/article/details/112149776(原理一样,只是优化算法是头脑风暴算法)
头脑风暴优化的BP神经网络(分类) https://blog.csdn.net/u011835903/article/details/112149394(原理一样,只是优化算法是头脑风暴算法)
基于头脑风暴算法优化的最大熵多阈值分割 https://blog.csdn.net/u011835903/article/details/108203775(原理一样,只是优化算法是头脑风暴算法)
头脑风暴算法优化的otsu多阈值分割 https://blog.csdn.net/u011835903/article/details/108019744(原理一样,只是优化算法是头脑风暴算法)
头脑风暴优化的PID参数优化 https://blog.csdn.net/u011835903/article/details/109306387(原理一样,只是优化算法是头脑风暴算法)

智能优化算法:头脑风暴优化算法-附代码相关推荐

  1. 【优化求解】基于头脑风暴优化算法BSO求解最优目标matlab源码

    1 简介 受人类创造性解决问题过程--头脑风暴会议的启发, 2011年史玉回老师 在第二次群体智能国际会议(The Second International Conference on Swarm I ...

  2. dijkstra算法matlab代码_头脑风暴优化(BSO)算法(附MATLAB代码)

    BSO讲解https://www.zhihu.com/video/1252605855767736320 B站搜索:随心390,同步观看视频 各位小伙伴可在闲鱼搜索 优化算法交流地,即可搜索到官方闲鱼 ...

  3. MATLAB实战系列(二十九)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)-交叉算子

    前言 代码明细可参见 MATLAB实战系列(八)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)(附MATLAB代码) 交叉算子的实现机制 我们还是以求解TSP问题为例,8个城市的坐标如下所示. ...

  4. BSO:头脑风暴优化算法-综述

    BSO:头脑风暴优化算法-综述 参考文献 <Brain storm optimization algorithm: a review> 一.介绍 群智能算法应具有两种能力:学习能力和开发能 ...

  5. 头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)

    头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO) 一.算法灵感 二.算法介绍 2. 1 初始化 2. 2 聚类 2. 3 个体更新 2. 4 算 ...

  6. BSO-OS:目标空间中的头脑风暴优化算法

    BSO-OS:目标空间中的头脑风暴优化算法 参考文献 <Brain Storm Optimization Algorithm in Objective Space> 要点 在原始的BSO中 ...

  7. MBSO:改进的头脑风暴优化算法

    MBSO:改进的头脑风暴优化算法 参考文献 <A Modified Brain Storm Optimization> 要点 BSO通常使用分组,替换和创建来产生尽可能多的想法,以逐代解决 ...

  8. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码

    基于头脑风暴优化的BP神经网络(预测应用) - 附代码 文章目录 基于头脑风暴优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSO优化BP神经网络 3.1 BP神经网络参数设置 3.2 ...

  9. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  10. 基于布谷鸟算法优化的Elman神经网络数据预测-附代码

    基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于布谷鸟算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

最新文章

  1. CVPR 2021 | 视觉目标检测大模型GAIA:面向行业的视觉物体检测一站式解决方案
  2. SQL SERVER与C#中数据类型的对应关系
  3. Repeater控件
  4. 常用个人密码管理软件
  5. 在 Windows 上测试 Redis Cluster的集群填坑笔记
  6. java并发,同步synchronize和lock锁的使用方法和注意,死锁案例分析
  7. oracle 数据泵 详解
  8. PHP 5.6 中 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future
  9. Cowboy 源码分析(二十六)
  10. qt 分辨率问题 安卓_Qt for Android dp转换
  11. Ubuntu20.04安装ros教程(实测有用)
  12. 圆的内接正n边形的周长
  13. python 三国演义人物出场词频统计
  14. python实现免费同声传译 (离线语音识别+免费翻译接口+系统声音录制)
  15. Linux_加密和安全详细介绍
  16. Excel如何给单元格添加下拉选项?实用小技巧!怎样给单元格加入下拉列表?
  17. 为什么美团股价大跌:疫情影响、阿里竞争与模式弊病
  18. 打补丁是什么意思?如何快速对云主机批量打补丁?用什么软件?
  19. 10分钟看完,一文教你Docker 从入门到精通(值得收藏的教程)
  20. 国际浏览器市场分析报告

热门文章

  1. 根据经纬度计算两点间的距离_全班学生被此奥数题难倒,理解两点间距离公式的几何意义是关键...
  2. python哈姆雷特英文词频统计_MOOC《Python语言程序设计》第6周练习题
  3. android studio继承关系,Android Studio中查看类的继承关系
  4. php课后答案 唐四薪_php课后习题及答案
  5. spark算子大全glom_Spark 算子- Value Transformation
  6. java 反射集合_Java反射的理解(六)-- 通过反射了解集合泛型的本质
  7. C#:获取Web.config中数据库连接地址
  8. 可变车道怎么走不违章_可变车道怕走错扣分罚款,学学老司机的办法,新手司机学会不吃亏...
  9. Java基础学习(3)-泛型
  10. 2019年最流行的50款开源软件