• BWO白鲸优化算法


    白鲸算法

    ​ 白鲸算法(BWO)是一种新的元启发式算法,是一种基于群体的算法,其灵感来自于白鲸的行为,包括游泳,猎物和鲸落。在BWO的数学模型中构建了勘探,开发和鲸落阶段,并在开发阶段利用Levy飞行函数来提高BWO的收敛能力。

    勘探阶段

    ​ 由于BWO基于种群的机制,将白鲸作为搜索代理,每条白鲸都是一个候选解,在优化过程中不断个更新。搜索代理位置的矩阵建模为:

    n代表白鲸种群大小,d是变量的维度。对于所有的白鲸,它们的适应度如下:

    ​ BWO算法可以根据平衡因子Bf从勘探过渡到开采,其建模为:

    T代表当前迭代次数,Tmax是最大迭代次数,而B0是每一代(0,1)的随机数。当Bf>0.5时,白鲸进入勘探阶段,否则白鲸进入开发阶段。随着迭代次数的增加,Bf的波动幅度逐渐显著,从(0,1)到(0,0.5)。

    ​ BWO的勘探阶段是从白鲸游泳行为获得的灵感。白鲸可以在不同的姿势下进行社会性行为,如两只白鲸以同步或镜像的方式紧密地游在一起。因此,搜索代理的位置由白鲸的配对游动决定,白鲸的位置更新如下:

    Xi,j(T+1)是第 i 个白鲸在第 j 维度的新位置,pj是d维度的一个随机数,Xi,PjT是第i个白鲸在 pj 维度上的位置,Xi,PjT 和 Xr,P1T是第i个和第r个白鲸的当前位置,r 是随机选择的一个白鲸,r1 和 r2 分别是(0,1)的两个随机数,sin(2πr2)和cos(2πr2)表示镜像白鲸的鳍朝向水面。

    开发阶段

    ​ 开发阶段是模范白鲸捕猎行为,白鲸可以根据附近白鲸的位置合作觅食和移动。因此,白鲸可以根据彼此共享的信息进行捕猎,Levy飞行函数可以提高BWO的收敛性,建模如下:

    XbestT是白鲸当前最好最好的位置,C1 = 2r4(1 - T /Tmax)是随机跳跃强度,测试Levy飞行函数的强度,LF是Levy飞行函数,计算公式如下:

    u和v是正态分布的随机数,beta是一个默认的常数1.5。

    鲸落阶段

    ​ 一鲸落,万物生。为了在每一代中模仿鲸落,随机在种群中选择一个个体进行鲸落行为。这个数学模型为:

    8

    Xstep是鲸落的步长,建模为:

    9

    C2是步长系数,与鲸落的概率和种群大小有关,C2=2Wf * n,ub 和 lb分别是上下边界变量。

    Wf = 0.1 - 0.05T / Tmax当鲸落的概率从最初迭代的0.1下降到最后迭代的0.05,说明在优化过程中,当白鲸离食物源越近,白鲸的危险就越小。

    BWO流程

    10

    1. 初始化:初始化种群大小和最大迭代书
    2. 更新勘探和开发阶段:当Bf > 0.5 时,白鲸进入勘探阶段,反之,白鲸进入开发阶段,然后计算白鲸的新的位置适应度值并且进行排序找到优化结果。
    3. 更新鲸落阶段:根据Wf的值来选择个体
    4. 终止条件:达到最大迭代数

    BWO和WOA的区别

    1. WOA的捕猎行为是模仿座头鲸螺旋运动,而BWO是模仿白鲸,没有螺旋运动的情况下,根据自己的位置,食物解和其他白鲸更新位置。
    2. WOA没有鲸落阶段,BWO有鲸落阶段避免局部最优。
    3. WOA没有Levy飞行函数机制,而在BWO中引入了Levy飞行函数。

    BWO的伪代码如下,完整代码可联系我(免费):


    __EOF__

  • 本文作者: 手摘星星
  • 本文链接: https://www.cnblogs.com/cxj666/p/18094720
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    数据驾驶舱只是面子工程?它的真正作用你根本就不了解
    信号量优先级反转问题记录(总是遗忘)
    vue-router4之组合式API
    luogu P3842 [TJOI2007]线段
    提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
    【单目3D目标检测】项目实战-道路车辆/行人3D目标检测
    力扣 1413. 逐步求和得到正数的最小值
    【sqlite3 如何避免插入重复数据】
    第十四届蓝桥杯模拟赛第一期试题与题解Java
    java Spring Boot自定义错误页面
  • 原文地址:https://www.cnblogs.com/cxj666/p/18094720