BWO白鲸优化算法
白鲸算法
白鲸算法(BWO)是一种新的元启发式算法,是一种基于群体的算法,其灵感来自于白鲸的行为,包括游泳,猎物和鲸落。在BWO的数学模型中构建了勘探,开发和鲸落阶段,并在开发阶段利用Levy飞行函数来提高BWO的收敛能力。
勘探阶段
由于BWO基于种群的机制,将白鲸作为搜索代理,每条白鲸都是一个候选解,在优化过程中不断个更新。搜索代理位置的矩阵建模为:
n代表白鲸种群大小,d是变量的维度。对于所有的白鲸,它们的适应度如下:
BWO算法可以根据平衡因子B
f
从勘探过渡到开采,其建模为:
T代表当前迭代次数,T
max
是最大迭代次数,而B
0
是每一代(0,1)的随机数。当B
f
>0.5时,白鲸进入勘探阶段,否则白鲸进入开发阶段。随着迭代次数的增加,B
f
的波动幅度逐渐显著,从(0,1)到(0,0.5)。
BWO的勘探阶段是从白鲸游泳行为获得的灵感。白鲸可以在不同的姿势下进行社会性行为,如两只白鲸以同步或镜像的方式紧密地游在一起。因此,搜索代理的位置由白鲸的配对游动决定,白鲸的位置更新如下:
X
i,j
(T+1)
是第 i 个白鲸在第 j 维度的新位置,p
j
是d维度的一个随机数,X
i,Pj
T
是第i个白鲸在 pj 维度上的位置,X
i,Pj
T
和 X
r,P1
T
是第i个和第r个白鲸的当前位置,r 是随机选择的一个白鲸,r1 和 r2 分别是(0,1)的两个随机数,sin(2πr
2
)和cos(2πr
2
)表示镜像白鲸的鳍朝向水面。
开发阶段
开发阶段是模范白鲸捕猎行为,白鲸可以根据附近白鲸的位置合作觅食和移动。因此,白鲸可以根据彼此共享的信息进行捕猎,Levy飞行函数可以提高BWO的收敛性,建模如下:
X
best
T
是白鲸当前最好最好的位置,C1 = 2r
4
(1 - T /T
max
)是随机跳跃强度,测试Levy飞行函数的强度,L
F
是Levy飞行函数,计算公式如下:
u和v是正态分布的随机数,beta是一个默认的常数1.5。
鲸落阶段
一鲸落,万物生。为了在每一代中模仿鲸落,随机在种群中选择一个个体进行鲸落行为。这个数学模型为:
X
step
是鲸落的步长,建模为:
C
2
是步长系数,与鲸落的概率和种群大小有关,C
2
=2W
f
* n,u
b
和 l
b
分别是上下边界变量。
W
f
= 0.1 - 0.05T / T
max
当鲸落的概率从最初迭代的0.1下降到最后迭代的0.05,说明在优化过程中,当白鲸离食物源越近,白鲸的危险就越小。
BWO流程
- 初始化:初始化种群大小和最大迭代书
- 更新勘探和开发阶段:当B
f
> 0.5 时,白鲸进入勘探阶段,反之,白鲸进入开发阶段,然后计算白鲸的新的位置适应度值并且进行排序找到优化结果。 - 更新鲸落阶段:根据W
f
的值来选择个体 - 终止条件:达到最大迭代数
BWO和WOA的区别
- WOA的捕猎行为是模仿座头鲸螺旋运动,而BWO是模仿白鲸,没有螺旋运动的情况下,根据自己的位置,食物解和其他白鲸更新位置。
- WOA没有鲸落阶段,BWO有鲸落阶段避免局部最优。
- WOA没有Levy飞行函数机制,而在BWO中引入了Levy飞行函数。
BWO的伪代码如下,完整代码可联系我(免费):