智能优化算法:乌鸦搜索算法-附代码
@[toc]
摘要:乌鸦搜索算法(crow search algorithm, CSA)是2016 伊朗学者提出的,作为一种新的群智能仿生算法,它通过模仿乌鸦藏食这一行为来解决优化问题。已经被应用于多种工程寻优领域,取得不错的效果。
1.算法原理
鸦的聪明行为之一是,它们把多余的食物藏在特定的隐蔽处,并在需要时回忆食物的位置。此外,乌鸦有一个贪婪的习惯,它们会跟着其他乌鸦去寻找它们的藏食之处。如果乌鸦找到了其他乌鸦的藏食之处,便会偷走隐藏的食物。乌鸦搜索算法(CSA)通过模仿这种行为,提供了一种有效的方法来解决优化问题。
在 CSA中 ,第i只乌鸦的位置用向量表 示 。 其 中 为乌鸦的数量,是最大迭代次数, 是决策变量的维数。每只乌鸦都有记忆中最佳的藏食之处。在第 次迭代时,藏食位置为 。乌鸦试图搜索和跟踪其他乌鸦来发现比现有的更好的食物来源。
在 CSA 的每一次迭代中,为了更新乌鸦 的位置,乌鸦 随机选择另一只乌鸦(例如 )。乌鸦 试图跟随乌鸦 接近它的藏食之处,。根据感知概率(),将有如下两种情况:
1)情况 1。如果乌鸦 不知道被乌鸦跟踪,乌鸦i更新它的位置为:
式(1)中:是区间[0 1]之间均匀分布的随机数;是乌鸦 在第 次迭代中的飞行距离。飞行距离决定移动到选定隐藏位置的步长。飞行距离较小则局部搜索能力强,飞行距离较大则全局搜索能力强。
2)情况 2:如果乌鸦 知道被乌鸦 跟踪,乌鸦 会随机进入搜索空间的位置来愚弄乌鸦 。
根据情况 1与情况 2,乌鸦的位置更新为:
式(2)中:是区间[0 1]之间均匀分布的随机数;表示乌鸦 在第 次迭代后的 。较小的 值增加激烈化,较大的 值增加多样化。
算法步骤如下:
1)初始化参数。定义决策变量,设置乌鸦的数量(),最大迭代次数 () ,飞行距离(fl),和感知概率()
2)初始化乌鸦的位置和记忆。 只乌鸦随机分布在一个 $d4 维搜索空间。在首次迭代中,假设乌鸦把食物隐藏在初始位置。
3)评估适应度(目标)函数。计算每只乌鸦对应的目标函数值。
4)更新乌鸦位置。根据式(1)生成新的位置。
5)检测新位置的可行性。检测每只乌鸦的新位置的可行性。如果乌鸦的新位置是可行的,乌鸦则会更新它的位置。否则,乌鸦停留在当前位置,不会移动到新的位置。
6)评估新位置的适应度函数。计算每只乌鸦新位置的适应度函数值。
7)更新记忆。如果乌鸦的新位置的适应度函数值比记忆位置的适应度函数值更好,乌鸦就通过新的位置更新它的记忆。
8)迭代终止条件。重复步骤 4)—7)直至达到最大迭代次数。当满足终止条件时,输出最优目标函数值对应的位置。
算法流程图如下:
2.算法结果
3.参考文献
[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.
4.Matlab代码
https://mianbaoduo.com/o/bread/aJyTmZ8=
文献复现代码:
[1]赵世杰,高雷阜,于冬梅,徒君.基于变因子加权学习与邻代维度交叉策略的改进CSA算法[J].电子学报,2019,47(01):40-48.
https://mianbaoduo.com/o/bread/mbd-aZ6cmp8=
[1]肖子雅,刘升,韩斐斐,于建芳.正弦余弦指引的乌鸦搜索算法研究[J].计算机工程与应用,2019,55(21):52-59.
https://mianbaoduo.com/o/bread/YZWTk5lr
[1]辛梓芸,张达敏,陈忠云,张绘娟,闫威.多段扰动的共享型乌鸦算法[J].计算机工程与应用,2020,56(02):55-61.
https://mianbaoduo.com/o/bread/YZWTmptw