(1) 每只布谷鸟一次只产一枚卵,并且随机选择一个鸟巢存放; (2) 在寻窝的过程中,卵最好的鸟巢将会被保留到下一代; (3) 可用鸟巢的数量是固定的,并且设鸟巢中外来卵被发现的概率是
P
P
P ,
P
∈
[
0
,
1
]
P\in [0,1]
P∈[0,1]。如果发现外来鸟蛋,则鸟窝主人重新建立一个鸟窝。 通过以上 3 种理想状态的假设,布谷鸟寻优搜索的位置和路径的更新公式如下:
x
i
t
+
1
=
x
i
t
+
α
⊕
L
(
λ
)
,
i
=
1
,
2
,
.
.
,
n
(1)
x_i^{t+1}= x_i^t + \alpha \oplus L(\lambda),\, i =1,2,..,n \tag{1}
xit+1=xit+α⊕L(λ),i=1,2,..,n(1) 式中:
x
i
t
x_i^t
xit—第 i 个鸟窝在第
t
t
t 代的鸟窝位置,
⊕
\oplus
⊕ —点对点乘法,
α
\alpha
α —步长控制量,用于控制步长的搜索范围,其值服从正态分布。
在式(1)中,
L
(
λ
)
L(\lambda)
L(λ)为 Lévy随机搜索路径,随机步长为 Lévy分布
L
(
s
,
λ
)
~
s
−
λ
,
(
1
<
λ
≤
3
)
(2)
L(s,\lambda) \widetilde{}s^{-\lambda},\,(1<\lambda\leq3)\tag{2}
L(s,λ)s−λ,(1<λ≤3)(2) 式中:
s
s
s—由莱维飞行得到的随机步长。
步骤1 定义目标函数
f
(
X
)
,
X
=
(
x
1
,
.
.
.
,
x
d
)
T
f(X),X=(x_1,...,x_d)^T
f(X),X=(x1,...,xd)T,函数初始化,并随机生成
n
n
n个鸟窝的初始位置
X
i
(
i
=
1
,
2
,
.
.
.
,
n
)
X_i(i=1,2,...,n)
Xi(i=1,2,...,n),设置种群规模、问题维数、最大发现概率
P
P
P和最大迭代次数等参数;
步骤 5 通过位置更新后,用随机数
r
∈
[
0
,
1
]
r\in[0,1]
r∈[0,1]与
P
P
P对比,若
r
>
P
r>P
r>P ,则对
x
t
+
1
x^{t+1}
xt+1进行随机改变,反之则不变。最后保留最好的一组鸟窝位置
y
i
t
+
1
y_i^{t+1}
yit+1;