【智能算法】鸡群优化算法(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.mzph.cn/pingmian/466.shtml

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

相关文章

数仓建模—物理数据模型

数仓建模—物理数据模型 前面我们讲了数据模型和逻辑数据模型,你可以参考前面的文章,这一节我们介绍一下物理数据模型 数仓建模—数据模型 数仓建模—逻辑数据模型 什么是物理数据模型 物理数据模型指定如何在数据库中构建数据模型。它概述了所有表结构,包括列名、数据类…

润开鸿与蚂蚁数科达成战略合作,发布基于鸿蒙的mPaaS移动应用开发产品

4月18日,江苏润和软件股份有限公司(以下简称“润和软件”) 旗下专注鸿蒙方向的专业技术公司及终端操作系统发行版厂商江苏润开鸿数字科技有限公司(以下简称“润开鸿”)与蚂蚁数科举行战略合作签约仪式,并发…

【Java开发指南 | 第十六篇】Java数组及Arrays类

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 数组数组特点创建数组处理数组多维数组Arrays类 数组 Java中的数组是一种用来存储固定大小的相同类型元素的数据结构。 数组特点 数组具有以下特点: 1、固定大小: 一旦数组被创建,其…

系统调优助手,PyTorch Profiler TensorBoard 插件教程

0x1. 前言 使用PyTorch Profiler进行性能分析已经一段时间了,毕竟是PyTorch提供的原生profile工具,个人感觉做系统性能分析时感觉比Nsys更方便一些,并且画的图也比较直观。这里翻译一下PyTorch Profiler TensorBoard Plugin的教程并分享一些…

Sui在Basecamp 2024上重塑区块链行业

Sui主网于去年推出,世界各地的社区活动帮助开发者了解了这一开创性的区块链技术的潜力,而Sui Basecamp表明Sui时代已经到来。 来自65个国家的超过1100人参加了今年在巴黎举办的Sui全球活动,以了解Sui在游戏和DeFi领域的坚实立足点。在两天的…

什么是XXE攻击?如何进行防护

安全性很难做到正确,即使在当今具有安全意识的世界中,也存在一些严重的漏洞,例如 XML 外部实体 (XXE),它们被忽视并最终成为破坏的原因。 XML 外部实体 (XXE) 攻击是一种计算机安全漏洞,通常存在于 Web 应用程序中&…

SpringBoot 项目Docker部署三种方式

一种:直接拷贝jar到服务器部署 1.增加docker配置文件 新建Dockerfile文件,负责Docker的配置 FROM openjdk:21#ENV timezone RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \&& echo Asia/Shanghai >/etc/timezone# WORKD…

2W 3KVDC 隔离单、双输出 DC/DC 电源模块——TPH 系列

TPH系列是一款2W,单、双输出隔离电源模块,特别适合板上只有一种电压而要求有正负电源的场合,工业级温度范围–40℃到105℃,在此温度范围内都可以稳定输出2W,并且效率非常高,高达86%,温升非常低&…

JavaSE进阶篇-面向对象程序设计

一、面向对象和面向过程的关系 1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做; 2)面向对象:强调了具备功能的对象,以类/对象为最小单位,考虑谁来做。 总结…

Python进阶编程 --- 3.闭包、装饰器、设计模式、多线程、网络编程、正则表达式、递归

文章目录 第三章:3.1 闭包3.2 装饰器语法糖写法 3.3 设计模式3.3.1 单例模式3.3.2 工厂模式 3.4 多线程3.4.1 进程、线程和并行执行3.4.2 多线程编程 3.5 网络编程3.5.1 Socket3.5.2 服务端开发3.5.3 客户端开发 3.6 正则表达式3.6.1 基础匹配3.6.2 元字符匹配单字符…

fopen/fwrite/fread/open/write/read的区别

fopen和Open,read和fread,write和fwrite有什么区别,很多人都会弄混了,而这经常会带来一些问题。所以在这里理清他们的关系是很有必要的。 open/read/write是Linux提供的系统调用,用户态的程序只能通过这些接口来访问文件系统层。而fopen/fread/fwrite是C库提供的文件读写接…

IT如何与业务双向奔赴,高效并驱共“盈”企业发展

随着经济和技术的飞速发展,在当前数字化时代中,如何进行有效的数字化转型、运用新技术,特别是让AI技术融入企业的具体业务场景、快速实现应用场景的落地、确保企业不落后于时代发展,是每一位CIO都会面临的一项挑战。 IT部门在企业…

springboot 载入自定义的yml文件转DTO

改进方法,直接spring注入 import cn.hutool.json.JSONUtil; import org.springframework.beans.factory.config.YamlMapFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import …

掌握Java异常处理:编写更健壮的应用程序

Java 异常处理机制是 Java 编程语言的核心特性之一,它为开发者提供了管理和处理运行时错误的有效方式。本文将深入探讨 Java 异常的类型、处理方法以及最佳实践,帮助你编写更健壮、可维护的 Java 应用程序。 1. 异常概念 异常是程序执行过程中出现的非正…

【强化学习的数学原理-赵世钰】课程笔记(十)Actor-Critic 方法

目录 一.最简单的 actor-critic(QAC):The simplest actor-critic (QAC) 二.Advantage actor-critic (A2C) 三.Off-policy actor-critic 方法 四. Deterministic actor critic(DPG) Actor-Critic 方法把基于 value 的方法,特别…

C语言中的控制语句(分支语句 if、switch、三目运算符)

程序执行的三大流程 顺序 : 从上向下, 顺序执行代码分支 : 根据条件判断, 决定执行代码的分支循环 : 让特定代码重复的执行 分支语句 条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。 if 语句…

网络靶场实战-恶意程序自启动

简介 当恶意程序入侵目标为个人计算机时,相较于服务器,个人计算机对关机或重启操作更加频繁,关机时计算机所有的进程都会被结束,因此恶意程序需要配置自启动来使自己在每次开机时能够被运行。 本篇介绍一个恶意样本(b8090d7d12d…

Docker向harbor上传大镜像的413报错

文章目录 一、背景二、问题三、处理1.调整harbor相关大小2.正向代理的nginx参数 一、背景 最近遇到了个需求,某厂商的系统模块以容器模式部署在我们的内网环境中,厂商为我们提供了一个公网仓库,需要我们自己下载相关镜像。因此,获…

快速找到销售爆款!淘宝商品关键词搜索API接口为你开启财富之门

在如今的电商时代,淘宝作为中国最大的网络购物平台,吸引了数以亿计的用户。对于卖家而言,如何快速找到热销商品,成为其成功的关键。淘宝商品关键词搜索API接口就是为了满足这一需求而诞生的工具,联讯数据为卖家提供了全…

C# 动态加载dll

方式1 using System; using System.Reflection;class Program {static void Main(){string dllPath "path/to/your/library.dll"; // 替换为你的DLL文件路径Assembly myAssembly Assembly.LoadFile(dllPath);Type myType myAssembly.GetType("YourNamespace…