目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
- 3.结果展示
- 4.参考文献
1.背景
2016年,Askarzadeh等人受到乌鸦觅食自然行为启发,提出了乌鸦搜索算法(Crow Search Algorithm, CSA)。
2.算法原理
2.1算法思想
CSA模拟了乌鸦进行觅食和藏匿食物的两种行为,CSA具有控制参数较少、 结构简单、 易于掌握且全局搜索能力强等优点。
2.2算法过程
在每次迭代中,每只乌鸦都会保存自己隐藏食物的位置,用m表示,这个位置代表了乌鸦当前所认为的最佳位置。当算法进行迭代时,乌鸦会在搜索空间中通过跟踪其他乌鸦来获得更好的位置。具体地,在第gen次迭代时,当乌鸦j准备去查看自己的食物时,乌鸦i决定跟踪乌鸦j以获取其隐藏食物的位置。此时,会有两种情况发生:
- 乌鸦 j 没有发现乌鸦 i 在跟踪它。那么, 乌鸦 i 就会一直跟随乌鸦 j 直到到达它隐藏食物的位置
- 乌鸦 j 发现了乌鸦 i 在跟踪它。此时, 乌鸦 j 会随机飞到一个位置, 以保护自己的食物
x
i
g
e
n
+
1
=
{
x
i
g
e
n
+
r
i
×
F
L
i
g
e
n
(
m
j
g
e
n
−
x
i
g
e
n
)
,
if
a
j
⩾
A
P
j
g
e
n
a random position
,
otherwise
(1)
x_i^{gen+1}=\begin{cases}x_i^{gen}+r_i\times FL_i^{gen}(m_j^{gen}-x_i^{gen}),&\text{if}a_j\geqslant AP_j^{gen}\\\text{a random position},&\text{otherwise}\end{cases}\tag{1}
xigen+1={xigen+ri×FLigen(mjgen−xigen),a random position,ifaj⩾APjgenotherwise(1)
CSA首先随机生成每只乌鸦的初始位置,并将这些位置设定为它们的初始记忆。在每次迭代中,每只乌鸦会随机选择一只乌鸦进行跟踪,来更新乌鸦的位置并利用适应度函数fit来评估乌鸦的新位置。如果新位置更加优秀,则将乌鸦隐藏食物的位置改变为新位置,即更新乌鸦的记忆。
m
i
g
e
n
+
1
=
{
x
i
g
e
n
+
1
,
if
f
i
t
(
x
i
g
e
n
)
is better than
f
i
t
(
m
i
g
e
n
)
m
i
g
e
n
,
otherwise
(2)
m_i^{gen+1}=\begin{cases}x_i^{gen+1},&\text{if}fit(x_i^{gen})\text{is better than }fit(m_i^{gen})\\m_i^{gen},&\text{otherwise}\end{cases}\tag{2}
migen+1={xigen+1,migen,iffit(xigen)is better than fit(migen)otherwise(2)
伪代码:
3.结果展示
4.参考文献
[1] Askarzadeh A. A novel metaheuristic method for solving constrained engineering optimization problems: crow search algorithm[J]. Computers & structures, 2016, 169: 1-12.