智能优化算法:冠状病毒群体免疫优化算法 -附代码

2024-06-18 07:19

本文主要是介绍智能优化算法:冠状病毒群体免疫优化算法 -附代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能优化算法:冠状病毒群体免疫优化算法

文章目录

  • 智能优化算法:冠状病毒群体免疫优化算法
    • 1.算法原理
    • 2.算法结果
    • 3.参考文献
    • 4.Matlab

摘要:冠状病毒群体免疫优化算法是于2020年提出的一种新型智能优化算法。

1.算法原理

冠状病毒群免疫优化算法(CHIO)灵感来源于应对冠状病毒大流行(2019冠状病毒疾病)的群体免疫概念。传播冠状病毒的速度取决于感染者如何与其他社会成员直接接触。为了保护社会其他成员免受这种疾病的侵害,健康专家建议社会疏远。群体免疫是当大多数群体具有免疫力时,群体达到的一种状态,这种状态可以防止疾病的传播。这些概念是根据优化概念建模的。既模仿群体免疫策略,又模仿社会距离概念。利用三种类型的个体病例进行群体免疫: 易感者、感染者和免疫者。

提出的优化算法对群体免疫策略进行了建模。

第一步初始化 CHIO和最佳化问题的参数在这一步中,最佳化问题是在目标函数的背景下建立的:
m i n f ( x ) , x ∈ [ l b , u b ] (1) minf(x),x\in[lb,ub]\tag{1} minf(x),x[lb,ub](1)
其中: l b lb lb u b ub ub​分别为搜索的上下限。

第二步:首先产生群体免疫群体 H I P HIP HIP,然后随机(或启发式)产生一组病例(个体) H I S HIS HIS。生成的病例以二维矩阵 n × H I S n×HIS n×HIS​形式存储,如下所示:
H I P = [ x 1 1 , x 2 1 , . . . , x n 1 x 1 2 , x 2 2 , . . . , x n 2 . . . , . . . , . . . , . . . x 1 H I S , x 2 H I S , . . . , x n H I S ] (2) HIP=\left[\begin{matrix}x_1^1,x_2^1,...,x_n^1\\ x_1^2,x_2^2,...,x_n^2\\ ...,...,...,...\\ x_1^{HIS},x_2^{HIS},...,x_n^{HIS} \end{matrix}\right]\tag{2} HIP=x11,x21,...,xn1x12,x22,...,xn2...,...,...,...x1HIS,x2HIS,...,xnHIS(2)
其中: x i j = l b i + ( u b i − l b i ) ∗ r a n d , i = 1 , 2 , . . , n x_i^j=lb_i+(ub_i-lb_i)*rand,i=1,2,..,n xij=lbi+(ubilbi)rand,i=1,2,..,n, H I S HIS HIS为人口数量, n n n为问题的维数。利用方程(1)计算每种情况的目标函数(或免疫率)。

第三步:冠状病毒群体免疫进化这是主要的改进循环。 x i j x_i^j xij病例的基因 x j x^j xj​​要么保持不变,要么受到社会距离的影响,其影响根据基本繁殖率 B R r BRr BRr
x i j ( t + 1 ) = { x i j ( t ) , r ≥ B R r C ( x i j ( t ) ) , r < 1 / 3 B R r N ( x i j ( t ) ) , r < 2 / 3 B R r R ( x i j ( t ) ) , r < B R r (3) x_i^j(t+1)=\begin{cases} x_i^j(t),r\geq BRr\\ C(x_i^j(t)),r<1/3BRr\\ N(x_i^j(t)),r<2/3BRr\\ R(x_i^j(t)),r<BRr \end{cases}\tag{3} xij(t+1)=xij(t),rBRrC(xij(t)),r<1/3BRrN(xij(t)),r<2/3BRrR(xij(t)),r<BRr(3)
其中: r r r为在0和1之间的随机数。 x i j ( t + 1 ) x_i^j(t+1) xij(t+1)为新基因值, x i j ( t ) x_i^j(t) xij(t)为更新前的基因值。
C ( x i j ( t ) ) = x i j ( t ) + r ∗ ( x I j ( t ) − x i c ( t ) ) (4) C(x_i^j(t))=x_i^j(t)+r*(x_I^j(t)-x_i^c(t))\tag{4} C(xij(t))=xij(t)+r(xIj(t)xic(t))(4)
其中: x i c ( t ) x_i^c(t) xic(t)为根据从感染病例随机选择的状态向量 c = { i ∣ S i = 1 } c=\{i|S_i=1\} c={iSi=1}
N ( x i j ( t ) ) = x i j ( t ) + r ( x i j ( t ) − x i m ( t ) ) (5) N(x_i^j(t))=x_i^j(t)+r(x_i^j(t)-x_i^m(t))\tag{5} N(xij(t))=xij(t)+r(xij(t)xim(t))(5)
其中: x i m ( t ) x_i^m(t) xim(t)为根据从感染病例随机选择的状态向量 m = { i ∣ S i = 0 } m=\{i|S_i=0\} m={iSi=0}
R ( x i j ( t ) ) = x i j ( t ) + r ( x i j ( t ) − x i V ( t ) ) (6) R(x_i^j(t))=x_i^j(t)+r(x_i^j(t)-x_i^V(t))\tag{6} R(xij(t))=xij(t)+r(xij(t)xiV(t))(6)
其中: x i V x_i^V xiV​​为最好的免疫病例。

第四步:更新群体免疫群体,由 x j ( t + 1 ) x^j(t+1) xj(t+1)生成的每个免疫率生成的 f ( x j ( t + 1 ) ) f(x^j(t+1)) f(xj(t+1)),若 f ( x j ( t + 1 ) ) < f ( x j ( t ) ) f(x^j(t+1))<f(x^j(t)) f(xj(t+1))<f(xj(t)),当前的 x j ( t ) x^j(t) xj(t) x j ( t + 1 ) x^j(t+1) xj(t+1)代替。年龄矢量 A j A_j Aj随着状态向量 S j = 1 S_j=1 Sj=1增加。状态向量 S j = 1 S_j=1 Sj=1可见式(7)
S j = { 1 , f ( x j ( t + 1 ) ) < f ( x ) j ( t + 1 ) Δ f ( x ) ∧ S j = 0 ∧ i s _ C o r o n a ( x j ( t + 1 ) ) 2 , f ( x j ( t + 1 ) ) > f ( x ) j ( t + 1 ) Δ f ( x ) ∧ S j = 1 (7) S_j=\begin{cases} 1,f(x^j(t+1))<\frac{f(x)^j(t+1)}{\Delta f(x)}\wedge S_j=0\wedge is\_Corona(x^j(t+1))\\ 2,f(x^j(t+1))>\frac{f(x)^j(t+1)}{\Delta f(x)}\wedge S_j=1 \end{cases}\tag{7} Sj={1,f(xj(t+1))<Δf(x)f(x)j(t+1)Sj=0is_Corona(xj(t+1))2,f(xj(t+1))>Δf(x)f(x)j(t+1)Sj=1(7)
其中: i s _ C o r o n a ( x j ( t + 1 ) ) is\_Corona(x^j(t+1)) is_Corona(xj(t+1))是当新的 x j ( t + 1 ) x^j(t+1) xj(t+1)继承了任何感染病例的值时,它是二进制值1, Δ f ( x ) \Delta f(x) Δf(x)​​为种群免疫率的平均值。注意,如果新产生的个人免疫率高于人口的平均免疫率,则人口中的个人免疫率将根据以前计算的社会距离改变。这意味着我们的人口免疫力开始提高。如果新产生的种群足够强壮,可以对流行病免疫,那么我们就达到了群体免疫阈值。

第五步:死亡病例

若免疫率 f ( x j ( t + 1 ) ) f(x^j(t+1)) f(xj(t+1)),在当前 S j = 1 S_j=1 Sj=1的迭代次数 M a x a g e Max_{age} Maxage被感染的情况不能改善下,那么这个病例就会死亡。在那之后,它被重新生成由式 x i j = l b i + ( u b i − l b i ) ∗ r a n d x_i^j=lb_i+(ub_i-lb_i)*rand xij=lbi+(ubilbi)rand​。进一步设置 S j = A j = 0 S_j=A_j=0 Sj=Aj=0​.这可能有助于使目前的人口多样化,从而避免局部最优。

第六步:停止准则 CHIO重复步骤3到步骤6直到终止准则,这通常取决于是否达到最大迭代次数。在这种情况下,易感和免疫的病例总数占主导地位。感染的病例也消失了。

算法流程:

具体可见算法原理步骤1至6。伪代码见下图:

请添加图片描述

2.算法结果

请添加图片描述

3.参考文献

[1] Al Betar Mohammed Azmi,Alyasseri Zaid Abdi Alkareem,Awadallah Mohammed A,Abu Doush Iyad. Coronavirus herd immunity optimizer (CHIO).[J]. Neural computing & applications,2020,33(prepublish):

4.Matlab

这篇关于智能优化算法:冠状病毒群体免疫优化算法 -附代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071641

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S