智能优化算法:寄生-捕食算法
文章目录
摘要:寄生-捕食(Parasitism – Predation algorithm,PPA)算法是于2019年提出的,它模仿捕食者猫,布谷鸟和乌鸦之间的寄生与捕食行为,形成乌鸦-布谷鸟-猫寄生与捕食系统。该算法具有精度高,收敛速度块等特点。
1.算法原理
1.1 种群初始化
种群初始化与其他优化算法一样,在边界范围内随机初始化:
X
i
N
e
w
=
X
i
m
i
n
+
r
a
n
d
∗
(
X
i
m
a
x
−
X
i
m
i
n
)
(1)
X_i^{New}=X_i^{min}+rand*(X_i^{max}-X_i^{min})\tag{1}
XiNew=Ximin+rand∗(Ximax−Ximin)(1)
1.2 筑巢阶段(鸟窝)
初始化后,将进入筑巢期、寄生期和捕食期。一开始,乌鸦的数量会随着时间的推移而减少。嵌套阶段被评估为模拟乌鸦通过两个状态飞行。第一个状态是通过生成随机的候选乌鸦,为乌鸦
i
i
i生成一个新的位置见式(2)。
X
i
t
+
1
=
X
i
t
+
L
F
∗
(
X
r
1
−
X
i
t
)
,
i
∈
n
c
r
o
w
(2)
X_i^{t+1}=X_i^t+LF*(X_{r1}-X_i^t),i\in n_{crow}\tag{2}
Xit+1=Xit+LF∗(Xr1−Xit),i∈ncrow(2)
其中:
r
1
r1
r1为随机数,
L
F
LF
LF为莱维飞行函数,可参见布谷鸟算法。
在筑巢阶段,利用目前最优的一组鸟巢进行更新,通过Levy飞行过程发现鸟巢解决方案。许多物种都观察到了莱维飞行,这是一种随机行走。列维飞行的步长由重尾概率分布控制通常称为Lévy分布。Lévy飞行在探索搜索空间方面优于均匀随机分布,因此用它代替均匀随机运动来模拟局部最优陷入、过早收敛的回避行为,提高了整体搜索空间的探索能力。超出维度范围的种群初始化状态按照式(3)进行。
X
i
,
o
u
t
n
e
w
=
X
i
,
o
u
t
m
i
n
+
r
a
n
d
∗
(
X
i
,
o
u
t
m
a
x
−
X
i
,
o
u
t
m
i
n
)
(3)
X_{i,out}^{new}=X_{i,out}^{min}+rand*(X_{i,out}^{max}-X_{i,out}^{min})\tag{3}
Xi,outnew=Xi,outmin+rand∗(Xi,outmax−Xi,outmin)(3)
重新初始化“呈现种群的随机变化,以获得增强的探索和增加搜索空间[48]的多样性。”这一阶段被设计为一个纯粹的探索阶段,其中Levy飞行在第一个状态中使用,提供了在整个搜索空间中分散乌鸦的高能力。
1.3 寄生阶段(crow-cuckoo)
一开始,当捕食效率低时,猫会将布谷鸟赶尽杀出。捕食效率高,导致布谷鸟灭绝。布谷鸟的效率被假定为小/中等,而猫的效率则降低了。在此阶段,将部分乌鸦卵(宿主)替换为布谷鸟卵,布谷鸟卵与乌鸦卵相似,被发现的可能性较小。此外,根据适合度选择被寄生的巢,巢越好,被寄生的几率越大。构建新的解决方案/巢穴来取代一些巢穴,并以概率pa发现一小部分较差的巢穴。布谷鸟的新巢可以得到:
X
i
,
n
e
w
c
u
c
k
o
o
=
X
i
,
o
l
d
c
u
c
k
o
o
+
S
G
∗
k
(4)
X_{i,new}^{cuckoo}=X_{i,old}^{cuckoo}+S_G*k\tag{4}
Xi,newcuckoo=Xi,oldcuckoo+SG∗k(4)
S G = ( X r 2 − X r 3 ) ∗ r a n d (5) S_G=(X_{r2}-X_{r3})*rand \tag{5} SG=(Xr2−Xr3)∗rand(5)
其中
X
i
,
n
e
w
c
u
c
k
o
o
X_{i,new}^{cuckoo}
Xi,newcuckoo采用轮盘选择,选择鸟巢位置,
S
G
SG
SG服从均匀高斯分布,
k
k
k定义为二进制矩阵,计算如下:
k
=
r
a
n
d
[
0
,
1
]
>
P
a
(6)
k=rand[0,1]>Pa\tag{6}
k=rand[0,1]>Pa(6)
其中:
P
a
Pa
Pa为
t
/
2
T
t/2T
t/2T或
g
/
2
G
g/2G
g/2G给出的递增因子,其中
t
或
g
t或g
t或g为当前迭代次数,
T
T
T或
G
G
G为最大迭代次数。利用二进位矩阵
k
k
k尽可能地保留相当一部分旧布谷鸟,保持探索搜索空间。在寄生阶段开始时,矩阵
k
k
k被1填充。然后,
k
k
k逐渐增加,以保持种群多样性。
1.4 捕食阶段(crow-cat)
一开始,捕食效率高,导致猫、乌鸦数量爆发性增长,数量减少,无法为布谷鸟提供足够的生存资源,导致布谷鸟灭绝。此阶段基于猫的跟踪模式,可以是乌鸦-猫阶段。不需要执行搜索模式,因为猫知道搜索空间是空的,不需要搜索。在这个阶段,布谷鸟雏鸟发现了驱赶猫的令人厌恶的化合物。猫以低臭味分泌物追踪布谷鸟不在的巢,选择未寄生的巢,随机追踪模式。猫是根据自己的速度移动的每一个维度,一旦他们开始追踪猎物。猫的捕食效率高,导致猫的爆发性生长,乌鸦和布谷鸟的生长缓慢。这个阶段包括三个步骤:
步骤a:更新每个维度的速度如下:
v
k
,
d
=
v
k
,
d
+
r
∗
c
∗
(
x
b
e
s
t
,
d
−
x
k
,
d
)
(7)
v_{k,d}=v_{k,d}+r*c*(x_{best,d}-x_{k,d})\tag{7}
vk,d=vk,d+r∗c∗(xbest,d−xk,d)(7)
式中:
v
k
,
d
v_{k,d}
vk,d为
c
a
t
k
cat_k
catk在
d
d
d维度上的速度,
x
b
e
s
t
,
d
x_{best,d}
xbest,d为适应度值最好的猫的位置,
x
k
,
d
x_{k,d}
xk,d为
c
a
t
k
cat_k
catk的位置,
c
c
c为常数,
r
r
r为[0,1]范围内的随机数。
步骤b:检查更新速度是否超过最大速度范围。如果新的速度大于最大速度,则将其设置为等于限制(速度限制被修改为从1线性降低到0.25)。
步骤c:更新
c
a
t
k
cat_k
catk的位置:
x
k
,
d
=
v
k
,
d
+
x
k
,
d
(8)
x_{k,d}=v_{k,d}+x_{k,d} \tag{8}
xk,d=vk,d+xk,d(8)
算法流程
步骤1:初始化种群及算法参数
步骤2:评估适应度函数值及确定最优解及最优鸟巢。
步骤3:计算猫群,乌鸦群和鸟巢数量。
步骤4:进入筑巢阶段,按照公式(2)和(3)更新鸟巢位置。
步骤5:进入寄生阶段,按照公式(4)和(6)更新鸟巢位置。
步骤6:进入捕食阶段,按照步骤(a)至(c)即公式(7)和(8)更新鸟巢位置。
步骤7:重新评估适应度函数值,并更新全局最优解。
步骤8:判断是否满足迭代条件,若是满足则输出最优解,否则返回步骤2重新迭代更新计算。
2.实验结果
3.参考文献
[1] A.-A. A. Mohamed, S. A. Hassan, A. M. Hemeida et al., Parasitism–Predation algorithm (PPA): A novel approach for feature selection, Ain Shams Engineering Journal.