头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)
头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)
- 一、算法灵感
- 二、算法介绍
- 2. 1 初始化
- 2. 2 聚类
- 2. 3 个体更新
- 2. 4 算法伪代码
- 三、实验结果
- 3. 1 F1收敛曲线
- 3. 2 F5收敛曲线
- 3. 3 F8收敛曲线
- 四、参考文献
一、算法灵感
头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)是2011年提出的一种群智能优化算法,其灵感来源于头脑风暴法。当一群人围绕一个特定的兴趣领域产生新观点的时候,这种情境就叫做头脑风暴。头脑风暴法是一种充分开发人类创造性思维解决问题的方法。
二、算法介绍
2. 1 初始化
在种群初始化过程中,聚集一组尽可能不同背景的人,可以看作是在解空间的动态范围内随机均匀分布的个体种群。整个个体种群可以是完全随机产生的,或者只随机产生一部分种群,其余的个体种群将通过从已经随机产生的个体添加随机扰动来产生。
2. 2 聚类
头脑风暴中任何不同的想法都可以作为寻找更好的解决方案的线索。头脑风暴小组每一轮需要产生足够的想法,但不需要太多,因为太多的想法容易发散,导致远离了目标。为了加快寻找足够好的想法,我们还需要让头脑风暴小组集中精力在一些具有高潜力的领域产生想法。因为每个问题所有者都有不同的专业知识,因此所选择的想法是不同的。因此BSO采用的是 k-means 聚类算法,将相同领域或者相似领域的成员分为一组。种群中所有的个体都被聚集成几个集群。每个集群的集群中心可以是该集群中性能最好的个体,也可以是集群的中间个体。
2. 3 个体更新
在BSO算法中,新个体是选取一个或几个集群中的中心或者普通个体添加随机扰动产生的,当选取一个集群产生新个体时,公式如下:
Xnew=Xold+ξ(t)∗random(t)(1){X_{new}} = {X_{old}} + \xi \left( t \right)*random\left( t \right) \tag{1}Xnew=Xold+ξ(t)∗random(t)(1)式中,XnewX_{new}Xnew 是产生的新想法,XoldX_{old}Xold 是原来的想法,ttt 为当前迭代次数,random()random()random() 是用来生成 000 到 111 之间的随机数,ξ()ξ()ξ() 是一个对随机值对新个体的贡献进行加权的系数。ξ()ξ()ξ() 的计算公式如下:
ξ(t)=logsig(T2−tk)∗random(t)(2)\xi \left( t \right) = logsig\left( {{{{T \over {\rm{2}}} - t} \over k}} \right)*random\left( t \right) \tag{2}ξ(t)=logsig(k2T−t)∗random(t)(2)其中,logsig()logsig()logsig() 是一个传递函数,TTT 为最大迭代次数,kkk 是控制 logsig()logsig()logsig() 斜率的系数。
当选取两个集群来产生新个体时,公式如下:
Xolds=w∗Xold1+(1−w)∗Xold2(3){X_{olds}} = w*{X_{old1}} + \left( {1 - w} \right)*{X_{old2}} \tag{3}Xolds=w∗Xold1+(1−w)∗Xold2(3)Xnew=Xolds+ξ(t)∗random(t)(4){X_{new}} = {X_{olds}} + \xi \left( t \right)*random\left( t \right) \tag{4}Xnew=Xolds+ξ(t)∗random(t)(4)式(3)中,XoldsX_{olds}Xolds为Xold1X_{old1}Xold1和Xold2X_{old2}Xold2的加权和,www为随机产生的0到1之间的系数,Xold1X_{old1}Xold1和Xold2X_{old2}Xold2是分别从两个集群中选取的想法。
2. 4 算法伪代码
- 初始化种群规模 NNN、维度 dimdimdim、最大迭代次数 TTT
- 初始化参数和种群 Xi(i=1,2,...,N)X_i(i=1,2,...,N)Xi(i=1,2,...,N)
- While t<Tt<Tt<T do
- 利用 k-means 聚类算法将 nnn 个个体聚类为 mmm 个聚类
- 计算每个个体的适应度值并排名,将最佳个体记录为每个聚类中的聚类中心
- If rand<0.2rand<0.2rand<0.2 then
- 随机生成一个个体来替换随机选取的一个聚类的中心
- End If
- For i=1i=1i=1 to NNN do
- If rand<0.8rand<0.8rand<0.8 then
- 选取一个聚类的中心或随机个体
- Else
- 选取两个聚类的中心或随机个体
- End If
- 通过式(1)产生新的个体,计算适应度值
- 将新生成的个体与现有个体进行比较,将保留较好的个体
- End For
- End While
- 输出最终解
三、实验结果
BSO在23个经典测试函数(设置维度 dim=30dim=30dim=30)的F1、F5、F8中的收敛曲线,测试函数公式如下:
函数 | 公式 | 理论值 |
---|---|---|
F1 | F1(x)=∑i=1nxi2{F_1}(x) = \sum\nolimits_{i = 1}^n {x_i^2} F1(x)=∑i=1nxi2 | 0.000.000.00 |
F5 | F5(x)=∑i=1n−1[100(xi+1−xi2)2+(xi−1)2]{F_5}(x) = \sum\nolimits_{i = 1}^{n - 1} {[100{{({x_{i + 1}} - x_i^2)}^2} + {{({x_i} - 1)}^2}]} F5(x)=∑i=1n−1[100(xi+1−xi2)2+(xi−1)2] | 0.000.000.00 |
F8 | F8(x)=∑i=1n−xisin(∣xi∣){F_8}(x) = \sum\nolimits_{i = 1}^n { - {x_i}\sin (\sqrt {|{x_i}|} )}F8(x)=∑i=1n−xisin(∣xi∣) | −418.9829×dim-418.9829×dim−418.9829×dim |
3. 1 F1收敛曲线
3. 2 F5收敛曲线
3. 3 F8收敛曲线
四、参考文献
[1] Shi Y. Brain storm optimization algorithm[C]//Advances in Swarm Intelligence: Second International Conference, ICSI 2011, Chongqing, China, June 12-15, 2011, Proceedings, Part I 2. Springer Berlin Heidelberg, 2011: 303-309.
头脑风暴优化算法(Brain Storming Optimization Algorithm, BSO)相关推荐
- 基于matlab的头脑风暴优化(Brain Storm Optimization Algorithm,BSO)的多目标优化仿真
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 头脑风暴优化算法(Brain Storm Optimization Algorithm,简称 BSO 算法)作为一种新型的智能 ...
- BSO:头脑风暴优化算法-综述
BSO:头脑风暴优化算法-综述 参考文献 <Brain storm optimization algorithm: a review> 一.介绍 群智能算法应具有两种能力:学习能力和开发能 ...
- BSO-OS:目标空间中的头脑风暴优化算法
BSO-OS:目标空间中的头脑风暴优化算法 参考文献 <Brain Storm Optimization Algorithm in Objective Space> 要点 在原始的BSO中 ...
- MBSO:改进的头脑风暴优化算法
MBSO:改进的头脑风暴优化算法 参考文献 <A Modified Brain Storm Optimization> 要点 BSO通常使用分组,替换和创建来产生尽可能多的想法,以逐代解决 ...
- 【优化求解】基于头脑风暴优化算法BSO求解最优目标matlab源码
1 简介 受人类创造性解决问题过程--头脑风暴会议的启发, 2011年史玉回老师 在第二次群体智能国际会议(The Second International Conference on Swarm I ...
- 群体智能优化算法之细菌觅食优化算法(Bacterial Foraging Optimization Algorithm,BFOA)
获取更多资讯,赶快关注上面的公众号吧! 文章目录 第十四章 细菌觅食优化算法 14.1 介绍 14.2 BFOA的基本原理与流程 14.2.1 趋向性操作 14.2.2 复制操作 14.2.3 迁徙操 ...
- 瞪羚优化算法(Gazelle Optimization Algorithm,GOA)
瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效. 瞪羚的身高60-11 ...
- 单目标应用:瞪羚优化算法(Gazelle Optimization Algorithm,GOA)优化BiLSTM权值和阈值(提供Matlab代码)
瞪羚优化算法(Gazelle Optimization Algorithm,GOA)由Agushaka等人于2022年提出,该算法模拟了瞪羚逃避捕食者的行为,思路新颖,性能高效. 瞪羚的身高60-11 ...
- 白骨顶鸡优化算法(Coot Optimization Algorithm,COOT)
白骨顶鸡优化算法(Coot Optimization Algorithm,COOT) 一.算法灵感 二.算法介绍 2.1 初始化 2.2 跟随者位置更新(探索阶段) 2.2.1 主动更新 2.2.1. ...
最新文章
- 实现数据“一键脱敏”,Sharding Sphere帮你搞定
- 对原生AJAX和HTTP的理解
- 第一部分:TCL基本知识
- 【实用技能】通过sh脚本动态上传项目到github
- python 100题_python3.0练习100题——001
- 事件处理之一:两种方式:监听器与回调
- 读书笔记 --- [基础知识点] 小结3
- linq 清除一条数据中的某个字段值_B端通用批量数据导入方案设计
- IntelliJ Idea 2017 免费激活方法
- 10亿+文件数压测,阿里云JindoFS轻松应对
- 重磅下载 | 核心系统100%上云,揭秘双11背后的云原生实践
- 图标选择器_【小技巧】巧用CSS属性值正则匹配选择器
- CANape a2l文件的编辑教程
- 计算机科学研究的第一手段,实验研究类论文的研究方法(11种研究方法解析)...
- 我国第一部机载脉冲火控雷达研制历程
- Amazon软件开发工程师面试题
- 土木工程计算机设计考试科目一模拟试题,科目一电脑模拟考试,原来这么简单,看完这个科一不用愁!...
- java模拟简单的qq聊天_初学java之模拟QQ聊天软件(简单实现)
- 股东转让股权的条件是什么
- 吃了老边饺子,感觉比大清花好吃,呵呵