【智能算法】鸡群优化算法(CSO)原理及实现

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2014年,X Meng等人受到鸡群社会行为启发,提出了鸡群优化算法(Chicken Swarm Optimization, CSO)。

2.算法原理

2.1算法思想

CSO算法的思想是基于对鸡群的模拟行为,其中鸡的身份(公鸡、母鸡和小鸡)取决于其适应度值。适应度值最好的鸡被选为公鸡,适应度值最差的鸡被认为是小鸡,其余鸡被视为母鸡。鸡群中的等级秩序、优势关系和母子关系定期更新。公鸡带领同伴寻找食物,但也会阻止其他鸡吃掉它们的食物。

2.2算法过程

适合度值高的公鸡比适合度值低的公鸡优先获得食物,适合度值越高的攻击搜索范围越大:
x i , j t + 1 = x i , j t ∗ ( 1 + R a n d n ( 0 , σ 2 ) ) . σ 2 = { 1 , i f f i ≤ f k , exp ⁡ ( ( f k − f i ) ∣ f i ∣ + ε ) , o t h e r w i s e , k ∈ [ 1 , N ] , k ≠ i . (1) x_{i,j}^{t+1}=x_{i,j}^{t}*(1+Randn(0,\sigma^{2})) .\\\sigma^{2}=\begin{cases}1 ,if f_i\leq f_k ,\\\exp (\frac{(f_k-f_i)}{|f_i|+\varepsilon}), otherwise,\end{cases}k\in[1,N],k\neq i .\tag{1} xi,jt+1=xi,jt(1+Randn(0,σ2)).σ2={1,iffifk,exp(fi+ε(fkfi)),otherwise,k[1,N],k=i.(1)
母鸡跟随公鸡一起寻找食物,也会随机偷取其他鸡找到的好食物,尽管受到其他鸡的抑制。在食物争夺中,强势的母鸡比温顺的母鸡更具优势:
x i , j t + 1 = x i , j t + S 1 ∗ R a n d ∗ ( x r 1 , j t − x i , j t ) + S 2 ∗ R a n d ∗ ( x r 2 , j t − x i , j t ) S 1 = exp ⁡ ( ( f i − f r 1 ) / ( a b s ( f i ) + ε ) ) S 2 = exp ⁡ ( ( f r 2 − f i ) ) (2) x_{i,j}^{t+1}=x_{i,j}^t+S1*Rand*\left(x_{r1,j}^t-x_{i,j}^t\right)+S2*Rand*\left(x_{r2,j}^t-x_{i,j}^t\right)\\S1=\exp( (f_i-f_{r1}) /(abs(f_i)+\varepsilon) )\\S2=\exp((f_{r2}-f_i)) \tag{2} xi,jt+1=xi,jt+S1Rand(xr1,jtxi,jt)+S2Rand(xr2,jtxi,jt)S1=exp((fifr1)/(abs(fi)+ε))S2=exp((fr2fi))(2)
母鸡的适应度值越小,S1越接近1,与公鸡的位置差距越小,统治力更强的母鸡更有可能吃到食物,小鸡在母亲周围寻找食物:
x i , j t + 1 = x i , j t + F L ∗ ( x m , j t − x i , j t ) (3) x_{i,j}^{t+1}=x_{i,j}^{t}+FL*(x_{m,j}^{t}-x_{i,j}^{t})\tag{3} xi,jt+1=xi,jt+FL(xm,jtxi,jt)(3)

伪代码

在这里插入图片描述

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Meng X, Liu Y, Gao X, et al. A new bio-inspired algorithm: chicken swarm optimization[C]//Advances in Swarm Intelligence: 5th International Conference, ICSI 2014, Hefei, China, October 17-20, 2014, Proceedings, Part I 5. Springer International Publishing, 2014: 86-94.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/631142.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海亚商投顾:沪指冲高回落 低空经济概念继续走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落,3100点得而复失。低空经济概念继续走强,金盾股份、安达维尔、永悦科…

iOS ------ Block的总结

前面看了Block的基本知识,和一些源码。但对于block怎么用的还不了解,代码中出现block会看不懂,现在来具体看一下Block的用法并做个总结。 1.Block是什么 block对象是一个C语言结构体,可以并入C和OC的代码中,Block本质…

HZNUCTF第五届校赛实践赛初赛 Web方向 WriteUp

ezssti 很简单的ssti 源码给了,调用Eval即可执行命令 package mainimport ("fmt""net/http""os/exec""strings""text/template" )type User struct {Id intName stringPasswd string }func (u User) Ev…

团体程序设计天梯赛 往年关键真题 详细分析完整AC代码】L2-014 列车调度 STL L2-015 互评成绩 排序

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】(L2-001 - L2-024)搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

BIM数据管理快速指南

在我的日常工作中,作为数字协作协调员,我花费大量时间收集、检查和管理各种 BIM 数据。 很多次收到一组数据后我就无奈地举手——质量远远达不到我可以使用的程度。 然后我会开始一个普通的数据清理过程。 我无数次咒骂过这种情况——大多数建设项目的人…

脚本开发与自动化运维----shell脚本开发及其在DevOps中的应用

一.正则表达式 正则表达式(Regular Expression、regex 或 regexp, 缩写为RE), 又称规则表达式,是计算机科学中的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如, a 到 z 之间的字母)和特殊字符(称为“…

Python发送邮件告警通知(附代码全)

颜色块 rootbogon:~ 2024-04-18 16:16:40# cat DefaultColor.py ######################################################################### # File Name: DefaultColor.py # Author: eight # Mail: 18847097110163.com # Created Time: Thu 11 Apr 2024 10:…

高档次定制线缆知名智造品牌-精工电联:高效响应与持续改进的服务典范

在当今科技互联的时代,定制集成化线缆的需求日益增长。作为业界领先的定制线缆供应商,精工电联以高效响应和持续改进的服务,正逐渐成为行业内的服务典范。 精工电联的定制线缆具有高精度、高性能、高可靠性的特点,确保您的设备连接…

Matlab对多个输入信号进行数值排序提取特定值

1、将多个信号转为一个数组信号输出,在这里需要注意,数据类型是否统一; 2、使用Sort模块,进行排序(可设置排序方向),得到排序后的新数组以及对应的索引号; 3、设置想要的索引号&…

Python:可迭代对象与迭代器

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 根据Python官方文档,可迭代对象(iterable)是“一种能够逐个返回其成员项的对象”。具体来说,这种对象要么定义了一个返回迭代器(iterator)的魔术…

C++ | Leetcode C++题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; class Solution { public:int searchInsert(vector<int>& nums, int target) {int n nums.size();int left 0, right n - 1, ans n;while (left < right) {int mid ((right - left) >> 1) left;if (target < n…

GitHub登录收不到邮箱验证码

由于长时间没有登录GitHub&#xff0c;浏览器可能清除了相应的cookie信息&#xff0c;所以需要对应绑定邮箱进行验证&#xff0c;但因为邮箱长时间没有收到验证码&#xff0c;所以给到以下一种可能解决的方法&#xff1a; 需要输入验证码进行验证 我们可以打开QQ邮箱&#xff0…