当前位置:首页 » 《随便一记》 » 正文

演化算法:乌鸦搜索算法 (Crow Search Algorithm)

22 人参与  2023年04月08日 10:38  分类 : 《随便一记》  评论

点击全文阅读


前言

如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

在机器学习中,我们所要优化的问题很多时候难以求导,因此通常会采用一些演化算法(又称零阶优化 / 黑盒优化)来近似求解。

这些演化算法通常是根据一些生物的行为置顶,有如下分类:

在这里插入图片描述
本文所要介绍的乌鸦搜索算法 (CSA) 就是其中的一种,属于演化算法。


乌鸦搜索算法

乌鸦搜索算法受乌鸦的行为所启发,即在乌鸦种群中,每只乌鸦都在干三件事:

寻找藏食物的地点;想要发现其它乌鸦藏食物的地点;不想被其它乌鸦发现自己藏食物的地点。

每只乌鸦 i i i 在每一轮会选择一只乌鸦 j j j 进行跟踪,此时有两种情况:

乌鸦 j j j 未发现乌鸦 i i i,则乌鸦 i i i 向乌鸦 j j j 藏食物的地点前进;乌鸦 j j j 发现了乌鸦 i i i,决定进行误导,即乌鸦 i i i 的位置变成随机位置。

为进一步说明上述过程,定义如下符号:

向量 x i t x_i^{t} xit​ 表示第 i i i 只乌鸦第 t t t 轮的位置; m e m i t mem_i^t memit​ 表示第 i i i 只乌鸦第 t t t 轮的历史最优解; A P i t AP_i^t APit​ 表示第 i i i 只乌鸦第 t t t 轮的警觉概率; f l i t fl_i^t flit​ 表示第 i i i 只乌鸦第 t t t 轮的跟随步长; r i r_i ri​ 表示第 i i i 只乌鸦的随机概率,范围在 ( 0 , 1 ) (0,1) (0,1) 之间。

将 x i t x_i^{t} xit​ 理解为第 t t t 轮搜索到的位置, m e m i t mem_i^t memit​ 即为到第 t t t 轮时的历史最优解。具体迭代过程如下:

一共有 t M A X t_{MAX} tMAX​ 轮迭代, N N N 只乌鸦;每一轮迭代,遍历每一只乌鸦;当遍历到第 i i i 只乌鸦时,随机选择第 j j j 只乌鸦进行跟踪; 如果 r j ≥ A P j t r_j\geq AP_j^t rj​≥APjt​,即乌鸦 j j j 未发现,则乌鸦 i i i 进行如下更新:
x i t + 1 = x i t + r i ⋅ f l i t ⋅ ( m e m j t − x i t ) , x_i^{t+1}=x_i^t+r_i\cdot fl_i^t \cdot (mem_j^t-x_i^t), xit+1​=xit​+ri​⋅flit​⋅(memjt​−xit​),如果 r j < A P j t r_j<AP_j^t rj​<APjt​,则 x i t + 1 x_i^{t+1} xit+1​ 变为随机值; 每一轮迭代结束后,遍历每一只乌鸦,若 f ( x i t + 1 ) > f ( m e m i t ) f(x_i^{t+1})>f(mem_i^t) f(xit+1​)>f(memit​),则更新 m e m i t + 1 = x i t + 1 mem_i^{t+1}=x_i^{t+1} memit+1​=xit+1​,否则不更新,即 m e m i t + 1 = m e m i t mem_i^{t+1}=mem_i^{t} memit+1​=memit​。

完整算法如下:
在这里插入图片描述


参考资料

Learn Crow Search Algorithm Step-by-Step with Example[ESWA22 - Behrouz Samieiyan] Novel optimized crow search algorithm for feature selection

点击全文阅读


本文链接:http://zhangshiyu.com/post/58832.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1