赞
踩
鸦的聪明行为之一是,它们把多余的食物藏在特定的隐蔽处,并在需要时回忆食物的位置。此外,乌鸦有一个贪婪的习惯,它们会跟着其他乌鸦去寻找它们的藏食之处。如果乌鸦找到了其他乌鸦的藏食之处,便会偷走隐藏的食物。乌鸦搜索算法(CSA)通过模仿这种行为,提供了一种有效的方法来解决优化问题。
在 CSA中 ,第i只乌鸦的位置用向量 x i , i t e r ( i = 1 , 2 , . . . N ; i t e r = 1 , 2 , . . . , i t e r m a x ) x^{i,iter}(i=1,2,...N;iter=1,2,...,iter_{max}) xi,iter(i=1,2,...N;iter=1,2,...,itermax)表 示 。 其 中 x i , i t e r = x 1 i , i t e r , x 2 i , i t e r , . . . , x d i , i t e r x^{i,iter} = {x_1^{i,iter},x_2^{i,iter},...,x_d^{i,iter}} xi,iter=x1i,iter,x2i,iter,...,xdi,iter 为乌鸦的数量, i t e r m a x iter_{max} itermax是最大迭代次数, d d d 是决策变量的维数。每只乌鸦都有记忆中最佳的藏食之处。在第 i t e r iter iter 次迭代时,藏食位置为 m i , i t e r m_{i,iter} mi,iter。乌鸦试图搜索和跟踪其他乌鸦来发现比现有的更好的食物来源。
在 CSA 的每一次迭代中,为了更新乌鸦 i i i 的位置,乌鸦 i i i 随机选择另一只乌鸦(例如 j j j)。乌鸦 i i i 试图跟随乌鸦 j j j 接近它的藏食之处, m i , i t e r m_{i,iter} mi,iter。根据感知概率( A P AP AP),将有如下两种情况:
1)情况 1。如果乌鸦
j
j
j不知道被乌鸦
i
i
i跟踪,乌鸦i更新它的位置为:
x
i
,
i
t
e
r
+
1
=
x
i
,
i
t
e
r
+
r
i
∗
f
l
i
,
i
t
e
r
∗
(
m
j
,
i
t
e
r
−
x
i
,
i
t
e
r
)
(1)
x^{i,iter+1}=x^{i,iter}+r_i*fl^{i,iter}*(m^{j,iter}-x^{i,iter})\tag{1}
xi,iter+1=xi,iter+ri∗fli,iter∗(mj,iter−xi,iter)(1)
式(1)中:
r
i
r_i
ri是区间[0 1]之间均匀分布的随机数;
f
l
i
,
i
t
e
r
fl^{i,iter}
fli,iter是乌鸦
i
i
i在第
i
t
e
r
iter
iter次迭代中的飞行距离。飞行距离决定移动到选定隐藏位置的步长。飞行距离较小则局部搜索能力强,飞行距离较大则全局搜索能力强。
2)情况 2:如果乌鸦 j j j知道被乌鸦 i i i跟踪,乌鸦 j j j会随机进入搜索空间的位置来愚弄乌鸦 i i i。
根据情况 1与情况 2,乌鸦的位置更新为:
x
i
,
i
t
e
r
+
1
=
{
x
i
,
i
t
e
r
+
r
i
∗
f
l
i
,
i
t
e
r
∗
(
m
j
,
i
t
e
r
−
x
i
,
i
t
e
r
)
,
r
j
≥
A
P
j
,
i
t
e
r
a
r
a
n
d
o
m
p
o
t
i
o
n
o
t
h
e
r
w
i
s
e
(2)
x^{i,iter+1}=
式(2)中:
r
j
r_j
rj是区间[0 1]之间均匀分布的随机数;
A
P
j
,
i
t
e
r
AP^{j,iter}
APj,iter表示乌鸦
j
j
j在第
i
t
e
r
iter
iter 次迭代后的
A
P
AP
AP。较小的
A
P
AP
AP值增加激烈化,较大的
A
P
AP
AP值增加多样化。
算法步骤如下:
1)初始化参数。定义决策变量,设置乌鸦的数量(
N
N
N),最大迭代次数 (
i
t
e
r
m
a
x
iter_{max}
itermax) ,飞行距离(fl),和感知概率(
A
P
AP
AP)
2)初始化乌鸦的位置和记忆。
N
N
N 只乌鸦随机分布在一个 $d4 维搜索空间。在首次迭代中,假设乌鸦把食物隐藏在初始位置。
3)评估适应度(目标)函数。计算每只乌鸦对应的目标函数值。
4)更新乌鸦位置。根据式(1)生成新的位置。
5)检测新位置的可行性。检测每只乌鸦的新位置的可行性。如果乌鸦的新位置是可行的,乌鸦则会更新它的位置。否则,乌鸦停留在当前位置,不会移动到新的位置。
6)评估新位置的适应度函数。计算每只乌鸦新位置的适应度函数值。
7)更新记忆。如果乌鸦的新位置的适应度函数值比记忆位置的适应度函数值更好,乌鸦就通过新的位置更新它的记忆。
8)迭代终止条件。重复步骤 4)—7)直至达到最大迭代次数。当满足终止条件时,输出最优目标函数值对应的位置。
算法流程图如下:
[1] ALIREZA A. A novel metaheuristic method for solving con⁃strained engineering optimization problems: Crow search algorithm[J]. Computers & Structures,2016,169(21):1⁃12.
[2] 黄景光,陈波,林湘宁,吴巍,于楠,叶元.基于乌鸦搜索算法的孤岛微网多目标优化调度[J].高压电器,2020,56(01):162-168.
[3] 徐达,焦庆龙.基于乌鸦搜索算法的装备并行拆卸任务规划[J].火力与指挥控制,2020,45(01):100-104.
乌鸦搜索算法
改进算法matlab代码
名称 | 说明或者参考文献 |
---|---|
基于变因子加权学习与邻代维度交叉策略的改进CSA算法 | [1]赵世杰,高雷阜,于冬梅,徒君.基于变因子加权学习与邻代维度交叉策略的改进CSA算法[J].电子学报,2019,47(01):40-48. |
多段扰动的共享型乌鸦算法 | [1]辛梓芸,张达敏,陈忠云,张绘娟,闫威.多段扰动的共享型乌鸦算法[J].计算机工程与应用,2020,56(02):55-61 |
正弦余弦指引的乌鸦搜索算法研究 | [1]肖子雅,刘升,韩斐斐,于建芳.正弦余弦指引的乌鸦搜索算法研究[J].计算机工程与应用,2019,55(21):52-59. |
个人资料介绍
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。