智能优化算法:缎蓝园丁鸟优化算法-附代码

文章目录

  • 智能优化算法:缎蓝园丁鸟优化算法-附代码
    • 1.算法原理
    • 2.算法流程
    • 3.算法结果
    • 4.参考文献
    • 5.MATLAB代码
    • 6.Python代码

摘要:缎 蓝 园 丁 鸟 优 化 算 法 ( satin bower birdoptimization algorithm,SBO) [1] 是由 Seyyed Hamid Samareh Moosavi 和 Vahid Khatibi Bardsiri 于 2017年模拟自然界成年雄性缎蓝园丁鸟的求偶行为而提出的一种新型群智能算法,并结合了自适应神经模糊推理系统(ANFIS),发现能够有效地提高软件开发工作评估的准确性。该算法融合了动态步长和变异等操作,具有良好的寻优性能。

1.算法原理

缎蓝园丁鸟又名缎蓝亭鸟,分布于澳大利亚东部和东南部一带.成熟的雄鸟则把大部分的时间都用于筑建求偶亭上,当雌鸟经过时,雄鸟发出吱吱嘶嘶的鸣声来表现自己,并以喙衔起明亮的物件吸引雌鸟,雌鸟喜欢表现积极的雄鸟,另外,年长的雌鸟的求偶亭更能吸引到雌鸟的注意力.然而并不是所有的雄鸟都能成功构建求偶亭,并很好地保卫它,存在求偶亭被破坏的情况。根据缎蓝园丁鸟的生活习惯,SBO算法分为以下几个步骤:
1).随机生成初始种群.类似于其它元启发式算法,SBO算法随机生成一个含有NBNBNB个个体的初始种群B(t)={Xit}B(t)=\{X_i^t\}B(t)={Xit​},其中Xit=[Xi1t,Xi2t,Xi2t,...,XiDt],j=1,2,...,D;i=1,2,...,NB,NBX_i^t=[X_{i1}^t,X_{i2}^t,X_{i2}^t,...,X_{iD}^t],j=1,2,...,D;i=1,2,...,NB,NBXit​=[Xi1t​,Xi2t​,Xi2t​,...,XiDt​],j=1,2,...,D;i=1,2,...,NB,NB为种群大小,DDD为待优化函数所含决策变量的个数,即维数,ttt 代表前进化代数.

2).计算每个个体的适应度值,然后计算出此适应值在群体适应值总和中所占的比例,表示该个体在选择过程中被选中的概率.求偶亭的被选中概率通过式(1)计算,fitifit_ifiti​ 代表第iii个求偶亭的适应度值,通过式(2)计算,f(xi)f(x_i)f(xi​)是第 iii个求偶亭的代价函数,代价函数为目标函数,每次迭代保证代价函数的函数值不断减小.
Probi=fiti∑n=1NBfitn(1)Prob_i=\frac{fit_i}{\sum_{n=1}^{NB}fit_n}\tag{1} Probi​=∑n=1NB​fitn​fiti​​(1)

fiti={11+f(xi),f(xi)≥01+∣f(xi)∣,f(xi)<0(2)fit_i=\begin{cases}\frac{1}{1+f(x_i)},f(x_i)\geq0\\ 1+|f(x_i)|,f(x_i)<0\end{cases}\tag{2} fiti​={1+f(xi​)1​,f(xi​)≥01+∣f(xi​)∣,f(xi​)<0​(2)

3).更新种群.雄鸟根据历史经验并利用信息共享机制,会不断调整求偶亭的位置,其位置更新公式如式(3)所示 .
xikt+1=xikt+λk((xjk+xelite,k2)−xikk)(3)x_{ik}^{t+1}=x_{ik}^t+\lambda_k((\frac{x_{jk}+x_{elite,k}}{2})-x_{ik}^{k})\tag{3} xikt+1​=xikt​+λk​((2xjk​+xelite,k​​)−xikk​)(3)
式中, xiktx_{ik}^txikt​为第ttt代第 iii个个体的第kkk维分量;xjkx_{jk}xjk​为当前搜索到的最优位置的第kkk维分量,xjx_jxj​ 通过轮盘赌选择机制确定;xelite,kx_{elite,k}xelite,k​ 为整个种群当前的最优位置的第kkk维分量 .λk\lambda_kλk​是步长因子,通过式(4)计算,可有效避免算法跳过函数峰值.
λk=α1+Pj(4)\lambda_k=\frac{\alpha}{1+P_j}\tag{4} λk​=1+Pj​α​(4)
式中,α\alphaα为步长的最大阈值; PjP_jPj​是目标求偶亭的被选中概率,Pj∈[0,1]P_j∈[0,1]Pj​∈[0,1] .目标位置的被选中概率越大时,步长越小,当目标位置的被选中概率是0时,步长最大,为α\alphaα ,当目标位置的被选中概率为1时,步长最小,为 α/2\alpha/2α/2.

4).个体变异.在大多数情况下,强壮的雄鸟会从其它雄鸟那里偷材料,甚至破坏它们的求偶亭,因此,在算法循环的最后,以一定的概率随机变异,在变异过程中, xikx_{ik}xik​服从正态分布,如式(7)所示.
xikt+1∼N(xikt,σ2)(5)x_{ik}^{t+1}\sim N(x_{ik}^{t},\sigma^2)\tag{5} xikt+1​∼N(xikt​,σ2)(5)

N(xik,σ2)=xikt+(σ∗N(0,1))(6)N(x_{ik},\sigma^2)=x_{ik}^t+(\sigma*N(0,1))\tag{6} N(xik​,σ2)=xikt​+(σ∗N(0,1))(6)

在式(6)中,标准差 σ\sigmaσ的计算公式如(7)所示:
σ=z∗(varmax−varmin)(7)\sigma = z*(var_{max}-var_{min})\tag{7} σ=z∗(varmax​−varmin​)(7)
式中,zzz是缩放比例因子, varmaxvar_{max}varmax​ 和 varminvar_{min}varmin​ 分别是变量xix_ixi​的上限和下限.
5).组合旧种群和从变异中获得的种群.在每次循环的最后,对旧种群和从变异获得的群体进行组合,形成组合种群,并对组合种群中的所有个体的代价函数值从小到大进行排序,保留函数值最小的个体,其余个体被淘汰掉.此时若满足终止条件,则输出最佳位置及其对应的最优值值,反之,则继续进行迭代.

2.算法流程

随机生成初始种群
计算求偶亭个体的代价函数值
确定最佳求偶亭的位置xelitex_{elite}xelite​
while(终止准则不满足)
用式(1)和(2)计算每个求偶亭的被选中概率
For i = 1 to n
  For k = 1 to d
   使用轮盘赌选择机制确定一个求偶亭
   用式(4)计算λk\lambda_kλk​
   用式(3)和(6)更新求偶亭的位置
  End for
End for
计算所有求偶亭的被选中概率
如果存在比当前全局最优值更优的值,则更新最优解和最优值
End while
返回最优求偶亭个体

3.算法结果

4.参考文献

[1] Satin bowerbird optimizer: A new optimization algorithm to optimize ANFIS for software development effort estimation[J] . Seyyed Hamid Samareh Moosavi,Vahid Khatibi Bardsiri. Engineering Applications of Artificial Intelligen . 2017

[2]韩斐斐,刘升.基于自适应t分布变异的缎蓝园丁鸟优化算法[J].微电子学与计算机,2018,35(08):117-121.

5.MATLAB代码

缎蓝园丁鸟优化算法

改进算法matlab代码

名称 说明或者参考文献
基于自适应t分布变异的缎蓝园丁鸟优化算法 [1] 韩斐斐,刘升.基于自适应t分布变异的缎蓝园丁鸟优化算法[J].微电子学与计算机,2018,35(08):117-121
非均匀变异的互利自适应缎蓝园丁鸟优化算法 [1]王依柔,张达敏,樊英.非均匀变异的互利自适应缎蓝园丁鸟优化算法[J/OL].计算机工程与科学:1-10[2020-11-23].http://kns.cnki.net/kcms/detail/43.1258.TP.20200803.1202.004.html
基于自适应权重的缎蓝园丁鸟优化算法 [1]鲁晓艺,刘升,韩斐斐,于建芳.基于自适应权重的缎蓝园丁鸟优化算法[J].智能计算机与应用,2018,8(06):94-100

6.Python代码

缎蓝园丁鸟优化算法

个人资料介绍

智能优化算法:缎蓝园丁鸟优化算法-附代码相关推荐

  1. 基于自适应权重的缎蓝园丁鸟优化算法-附代码

    基于自适应权重的缎蓝园丁鸟优化算法 文章目录 基于自适应权重的缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.改进的缎蓝园丁鸟优化算法 2.1 自适应权重 2.2 改进原高斯变异形式 3.实验结果 5 ...

  2. 【优化求解】基于缎蓝园丁鸟优化算法 (SBO)求解单目标问题附matlab代码

    1 简介 ​ 2 部分代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  3. 非均匀变异的互利自适应缎蓝园丁鸟优化算法-附代码

    非均匀变异的互利自适应缎蓝园丁鸟优化算法 文章目录 非均匀变异的互利自适应缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.非均匀变异的互利自适应缎蓝园 2.1 非均匀变异 2.2 互利因子 2.3自适 ...

  4. 基于缎蓝园丁鸟优化算法的无线传感器网络覆盖优化

    文章目录 一.理论基础 1.节点覆盖模型 2.缎蓝园丁鸟优化算法 3.SBO算法伪代码 二.仿真实验与分析 三.参考文献 一.理论基础 1.节点覆盖模型 本文采取0/1覆盖模型,具体描述请参考这里. ...

  5. 【优化求解】基于缎蓝园丁鸟优化 (SBO)求解单目标问题matlab源码

    1 简介 2 部分代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

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

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

  7. 基于布谷鸟优化的BP神经网络(预测应用) - 附代码

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

  8. 基于鸟群优化的BP神经网络(预测应用) - 附代码

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

  9. 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码

    基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...

  10. 基于蜜蜂优化算法优化的卷积神经网络(CNN)图像分类——附代码

    目录 摘要: 1.蜜蜂优化算法: 2. 卷积神经网络(CNN) 输入层 隐含层 输出层 ​3. 本文Matlab代码:​ 摘要: 本文通过蜜蜂优化算法,优化了卷积神经网络(CNN)中的超参数,主要是网 ...

最新文章

  1. PCL:点云配准1、基础知识:平面3自由度、旋转矩阵精讲
  2. 关于利用python进行验证码识别的一些想法
  3. Ollydbg 编写脚本的一些语法及例子(OD脚本)
  4. jackson.ObjectMapper里enableDefaultTyping方法过期
  5. 关于strlwr,strupr等函数在此作用域中尚未声明的问题
  6. 整合看点: DellEMC的HCI市场如何来看?
  7. 《D3.js数据可视化实战手册》—— 1.1 简介
  8. UIActionSheet与UIAlertView
  9. pcie总线连接两台电脑_基于PCIE总线多主互连系统的设计与实现
  10. JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
  11. 自助式BI分析有哪些优势
  12. 获取联通光猫PT952G的管理员密码
  13. 雷达原理(第五版)常见公式
  14. 短视频剪辑APP开发快速开发
  15. 灰度图转热力图_热力图下看区域城市密集度,密集度较高的主要在沿海和省会周边...
  16. OutputFormat类——Hadoop
  17. NOI WC 2019 小结
  18. blender建模常用建模快捷键
  19. StringUtils用法
  20. mac 在连接wifi时出现“无互联网连接”的警告,叹号

热门文章

  1. 2021-1-29Linux学习纪要
  2. python求最大值最小值求和_python3.2求和与最值
  3. python竞赛之路_Python机器学习及实践:从零开始通往Kaggle竞赛之路 PDF高清完整版...
  4. python中的counter函数_Python的 counter内置函数,统计文本中的单词数量
  5. oracle 字符串等于,ORACLE in (字符串,字符串,字符串)
  6. 计算机做无线AP共享文件,Win7开启AP无线一键共享网络(包括闪讯)给wifi设备使用!...
  7. SLAM_2019-ICCV_GSLAM:通用 SLAM 框架和基准
  8. kitti数据集坐标转换
  9. 线性代数【八】二次型
  10. LeetCode之 x 的平方根