文章目录

  • 一、理论基础
    • 1、黑寡妇优化算法
      • 1.1 初始化种群
      • 1.2 生殖
      • 1.3 同类相食
      • 1.4 突变
      • 1.5 更新种群
      • 1.6 停止条件
    • 2、BWO算法伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、黑寡妇优化算法

黑寡妇优化算法(Black Widow Optimization Algorithm, BWO)是Hayyolalam等人于2020年受黑寡妇蜘蛛独特的交配行为启发而提出的,该算法模拟了黑寡妇蜘蛛的生命周期。
BWO的每一个解(潜在解决方案)是一只黑寡妇蜘蛛,黑寡妇蜘蛛的长度等于搜索空间的维度。BWO包括初始化种群、生殖、同类相食、突变、更新种群等5个阶段,除了初始种群阶段,其他4个阶段需迭代至满足结束条件,返回适应度最佳的黑寡妇。

1.1 初始化种群

BWO中,待求解问题的一个解是一只黑寡妇蜘蛛,可以将黑寡妇蜘蛛视为一个一维数组:Widow=[x1,x2,⋯,xNvar](1)\text{Widow}=[x_1,x_2,\cdots,x_{\text{N}_\text{var}}]\tag{1}Widow=[x1​,x2​,⋯,xNvar​​](1)其中,Nvar\text{N}_\text{var}Nvar​是优化的维度,初始化时,每个维度的值都是随机的浮点数。每只黑寡妇都有适应度,使用某个适应度函数计算黑寡妇的适应度:Fitness=f(widow)=f(x1,x2,⋯,xNvar)(2)\text{Fitness}=f(\text{widow})=f(x_1,x_2,\cdots,x_{\text{N}_\text{var}})\tag{2}Fitness=f(widow)=f(x1​,x2​,⋯,xNvar​​)(2)初始化种群时,需要生成Npop\text{N}_\text{pop}Npop​(种群规模)只黑寡妇,得到一个Npop×Nvar\text{N}_\text{pop}\times\text{N}_\text{var}Npop​×Nvar​的黑寡妇矩阵。

1.2 生殖

生殖阶段是全局搜索阶段。首先,根据适应度大小对种群排序,基于生殖率(procreating rate, PP)计算种群中参与生殖的黑寡妇,然后从中随机选择一对父母(雌雄黑寡妇)进行交配繁殖。在自然界中,每对黑寡妇都在自己的蜘蛛网上进行繁殖,与其他的黑寡妇是分开的,每次大约生成1000枚卵,但只有适应度较优的小蜘蛛能存活下来。在黑寡妇算法中,每对父母借助α\alphaα数组模拟生殖过程:{y1=α×x1+(1−α)×x2y2=α×x2+(1−α)×x1(3)\begin{dcases}y_1=\alpha\times x_1+(1-\alpha) \times x_2\\[2ex]y_2=\alpha\times x_2+(1-\alpha)\times x_1\end{dcases}\tag{3}⎩⎨⎧​y1​=α×x1​+(1−α)×x2​y2​=α×x2​+(1−α)×x1​​(3)其中,x1x_1x1​和x2x_2x2​为父母,y1y_1y1​和y2y_2y2​是后代。这个过程要重复Nvar/2\text{N}_{\text{var}}/2Nvar​/2次。

1.3 同类相食

同类相食指的是适应度优的蜘蛛吃掉适应度差的蜘蛛。黑寡妇蜘蛛的同类相食分为性同类相食、兄弟姐妹同类相食和子食母同类相食三种。性同类相食是指雌黑寡妇会在交配时或交配后吃掉雄黑寡妇,可以根据适应度分辨雌雄,适应度优的为雌性,适应度差的为雄性;兄弟姐妹同类相食发生在母蛛网上,幼蛛孵化后会在母蛛网上生活一周左右,期间会发生兄弟姐妹同类相食;子食母同类相食是指某些情况下会发生小蜘蛛吃掉母蛛的事件。黑寡妇算法中,模拟了性同类相食和兄弟姐妹同类相食,子食母同类相食暂未涉及。通过摧毁父亲实现性同类相食,根据同类相食率(cannibalism rate, CR)摧毁一部分孩子达到兄弟姐妹同类相食的目的。使用适应度值确定幼蛛的强弱。

1.4 突变

突变阶段是局部搜索阶段。黑寡妇算法在这一阶段根据突变率(mutation rate, PM)随机选择多个黑寡妇,每个黑寡妇随机交换数组中的两个值。

1.5 更新种群

一次迭代之后,将同类相食阶段保留下来的黑寡妇以及突变阶段得到的黑寡妇作为下一次迭代的初始种群。

1.6 停止条件

可以考虑三种停止条件:提前设置最大迭代次数;最佳黑寡妇不再发生变化;达到预设的精度水平。

2、BWO算法伪代码

BWO算法伪代码如图1所示。

图1 BWO算法伪代码

二、仿真实验与结果分析

将BWO与PSO和ABC进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以常用23个测试函数中的F1、F2(单峰函数/30维)、F10、F11(多峰函数/30维)、F18、F19(固定维度多峰函数/2维、3维)为例,结果显示如下:

函数:F1
BWO:最差值: 0.00030359,最优值:5.2836e-17,平均值:2.8869e-05,标准差:7.3847e-05,秩和检验:1
PSO:最差值: 209.5923,最优值:50.3202,平均值:129.6523,标准差:43.5,秩和检验:3.0199e-11
ABC:最差值: 281.5418,最优值:0.014307,平均值:48.1786,标准差:62.0608,秩和检验:3.0199e-11
函数:F2
BWO:最差值: 0.0007229,最优值:1.0132e-10,平均值:9.2838e-05,标准差:0.00017549,秩和检验:1
PSO:最差值: 19.0667,最优值:5.9133,平均值:11.3296,标准差:3.3324,秩和检验:3.0199e-11
ABC:最差值: 150645.9013,最优值:109.854,平均值:28880.8751,标准差:40205.5077,秩和检验:3.0199e-11
函数:F10
BWO:最差值: 0.031705,最优值:5.0997e-09,平均值:0.0015844,标准差:0.0057894,秩和检验:1
PSO:最差值: 7.7718,最优值:3.682,平均值:5.8866,标准差:0.9542,秩和检验:3.0199e-11
ABC:最差值: 9.5322,最优值:0.057288,平均值:4.5495,标准差:2.0996,秩和检验:3.0199e-11
函数:F11
BWO:最差值: 0.52167,最优值:6.1541e-09,平均值:0.1289,标准差:0.17456,秩和检验:1
PSO:最差值: 3.0966,最优值:1.4632,平均值:2.1382,标准差:0.42955,秩和检验:3.0199e-11
ABC:最差值: 2.5162,最优值:0.24441,平均值:1.3038,标准差:0.60401,秩和检验:2.6099e-10
函数:F18
BWO:最差值: 23.1364,最优值:3,平均值:4.1975,标准差:3.86,秩和检验:1
PSO:最差值: 3,最优值:3,平均值:3,标准差:2.7843e-15,秩和检验:2.5749e-06
ABC:最差值: 4.3362,最优值:3.0118,平均值:3.2193,标准差:0.2827,秩和检验:0.07243
函数:F19
BWO:最差值: -3.7643,最优值:-3.8622,平均值:-3.839,标准差:0.024764,秩和检验:1
PSO:最差值: -3.8628,最优值:-3.8628,平均值:-3.8628,标准差:2.3456e-15,秩和检验:1.0598e-11
ABC:最差值: -3.8622,最优值:-3.8628,平均值:-3.8626,标准差:0.00013392,秩和检验:3.0199e-11

实验结果表明:BWO算法在寻找全局最优解时具有很高的精度和快速收敛性。

三、参考文献

[1] Vahideh Hayyolalam, Ali Asghar Pourhaji Kazem. Black Widow Optimization Algorithm: A novel meta-heuristic approach for solving engineering optimization problems[J]. Engineering Applications of Artificial Intelligence, 2020, 87: 103249.
[2] 李郅琴, 杜建强, 聂斌, 等. 基于黑寡妇算法的特征选择方法研究[J]. 计算机工程与应用, 2022, 58(16): 147-156.

基于黑寡妇优化算法的函数优化算法相关推荐

  1. matlab基于人工蜂群算法的函数优化分析【matlab优化算法十一】

    基于人工蜂群算法的函数优化分析 自然界中的群居昆虫,它们虽然个体结构简单,但是通过个体间的合作却能够表现出极其复杂的行为能力.受这些社会性昆虫群体行为的启发,研宄者通过模拟这些群体的行为提出了群集智能 ...

  2. matlab中fic算法,粒子群算法在函数优化问题中的应用最终版(全文完整版)

    <粒子群算法在函数优化问题中的应用.doc>由会员分享,可免费在线阅读全文,更多与<粒子群算法在函数优化问题中的应用(最终版)>相关文档资源请在帮帮文库(www.woc88.c ...

  3. 递归循环一个无限极数组_理解递归、尾调用优化和蹦床函数优化

    想要理解递归,您必须先理解递归.开个玩笑罢了, 递归 是一种编程技巧,它可以让函数在不使用 for 或 while 的情况下,使用一个调用自身的函数来实现循环. 例子 1:整数总和 例如,假设我们想要 ...

  4. ABC人工蜂群算法求解函数优化实例C++(2020.11.5)

    ABC人工蜂群算法C++ 人工蜂群算法 1.原理 2.算法流程 3.函数优化实例 4.求解函数优化的ABC源代码C++ 人工蜂群算法 1.原理 最常见的基于蜜蜂采蜜行为的蜂群算法是Karaboga(2 ...

  5. 微分进化算法解决函数优化问题的matlab代码,Matlab微分进化算法及优化函数测试...

    微分进化(Difference Evolution,DE)算法是一种优化算法,据称其比GA(遗传算法)等更为优秀. 借鉴网上实现的DE算法,用Matlab实现了对若干函数优化问题的解法,代码如下: f ...

  6. 基于matlab的捕食算法,【优化求解】基于matlab细菌觅食算法的函数优化分析【含Matlab源码 217期】...

    一.简介 实际生活需求促进了最优化方法的发展.近半个多世纪以来,由于传统优化方法的不足,一些具有全局优化性能且通用性强的进化算法,因其高效的优化性能.无需问题精确描述信息等优点,受到各领域广泛的关注和 ...

  7. 数据库-优化-案例-max()函数优化

    函数Max()的优化 用途:查询最后支付时间-优化max()函数 语句: select max(payment_date) from payment; 执行计划: explain select max ...

  8. 【智能优化算法】基于自适应策略的混合鲸鱼优化算法求解单目标优化问题附matlab代码

    1 简介 针对鲸鱼优化算法在函数优化时存在收敛速度慢,易陷入局部最优等问题,提出了一种基于自适应策略的混合鲸鱼优化算法.该算法中先利用蝙蝠算法的局部搜索机制对当前鲸鱼算法最优解进行高斯扰动产生局部新解 ...

  9. MATLAB优化模型例子,MATLAB优化算法案例分析与应用(进阶篇)

    导语 余胜威编著的<MATLAB优化算法案例分析与应用(进阶篇)>基本包括了所有常见的MATLAB优化算法及应用,包括贝叶斯分类器.期望最大化算法.K最近邻密度估计.朴素贝叶斯分类器.背景 ...

最新文章

  1. 在SQL Server中调用.NET程序集
  2. 半年没活动了,来活动一下
  3. Android Jetpack - Emoji表情符号初探
  4. PHP 配置文件详解(php.ini 详解 )
  5. SAP创建Web Service以及用ABAP调用
  6. SQL Server根据访问历史日志分析提供优化
  7. 计算机科学学什么语言,在计算机科学中,什么不是正式语言? [关闭]
  8. 港中文开源基于PyTorch的多任务人脸识别框架
  9. Kafka核心源码解析 - LogManager源码解析
  10. python里进度条编程_Python实现控制台中的进度条
  11. ArcGIS重采样栅格后栅格数目居然不变(解决)
  12. 4个终于被破译的世界级密码
  13. html 和 css 代码 总结
  14. 云备份-保障你的数据安全
  15. Java-HelloWorld
  16. APICloud介绍
  17. ES的基本API操作
  18. 大部分有高学历的人比低学历的人强
  19. 2017华为软件精英挑战赛解分析
  20. 计算机搜索栏无法搜索怎么办,电脑桌面搜索框无法使用失效怎么办?

热门文章

  1. 鼻咽癌有什么症状表现?
  2. android 指纹比对方法,指纹识别功能方面对比_手机Android频道-中关村在线
  3. android 环信集成demo,集成环信即时通讯(导入demo到AndroidStudio)
  4. 高斯过程动态模型(GPDM)简析
  5. GIS空间分析 栅格数据分析2 成本距离分析
  6. 黄瓜客户端java_建造者模式
  7. matlab统计学分析函数
  8. (郭霖)Android图片加载框架最全解析(一),Glide的基本用法
  9. 开源项目——小Q聊天机器人V1.3
  10. 浙江大学 工程伦理 第十二单元测试答案