1 简介
In this paper, a new nature-inspired human-based optimization algorithm is proposed which called Coronavirus Herd Immunity Optimizer (CHIO). The inspiration of CHIO is originated from the herd immunity concept as a way to tackle coronavirus pandemic (COVID-19). The speed of spreading coronavirus infection depends on how the infected individuals directly contact with other society members. In order to protect other members of society from the disease social distancing is suggested by health experts. Herd immunity is a state the population reach when most of the population is immune which results in the prevention of disease transmission. These concepts are modeled in terms of optimization concepts. CHIO mimics the herd immunity strategy as well as the social distancing concepts. Three types of individual cases are utilized for herd immunity: susceptible, infected, and immuned. This is to determine how the newly generated solution updates its genes with social distancing strategies. CHIO is evaluated using 23 well-known benchmark functions. Initially, the sensitivity of CHIO to its parameters is studied. Thereafter, the comparative evaluation against seven state-of-the-art methods is conducted. The comparative analysis verifies that CHIO is able to yield very competitive results compared to those obtained by other well-established methods. In conclusion, CHIO is a very powerful optimization algorithm that can be used to tackle many optimization problems across a wide variety of optimization domains.
文章图片
2 部分代码
%======================================================================= %Coronavirus herd immunity optimizer (CHIO)% All rights reserved. %=======================================================================clear all close all clcPopSize=30; %/* The number of Solutions*/MaxAge = 100; C0 = 1; % number of solutions have corona virusMax_iter=100000; %/*The number of cycles for foraging {a stopping criteria}*/SpreadingRate = 0.05; % Spreading rate parameterruns = 1; %/*Algorithm can be run many times in order to see its robustness*/ObjVal = zeros(1,PopSize); Age = zeros(1,PopSize); BestResults = zeros(runs,1); % saving the best solution at each runfor funNum=7:7% fun#1 to fun#23 if(funNum==1) Function_name='F1'; elseif(funNum==2) Function_name='F2'; elseif(funNum==3) Function_name='F3'; elseif(funNum==4) Function_name='F4'; elseif(funNum==5) Function_name='F5'; elseif(funNum==6) Function_name='F6'; elseif(funNum==7) Function_name='F7'; elseif(funNum==8) Function_name='F8'; elseif(funNum==9) Function_name='F9'; elseif(funNum==10) Function_name='F10'; elseif(funNum==11) Function_name='F11'; elseif(funNum==12) Function_name='F12'; elseif(funNum==13) Function_name='F13'; elseif(funNum==14) Function_name='F14'; elseif(funNum==15) Function_name='F15'; elseif(funNum==16) Function_name='F16'; elseif(funNum==17) Function_name='F17'; elseif(funNum==18) Function_name='F18'; elseif(funNum==19) Function_name='F19'; elseif(funNum==20) Function_name='F20'; elseif(funNum==21) Function_name='F21'; elseif(funNum==22) Function_name='F22'; elseif(funNum==23) Function_name='F23'; end% Load details of the selected benchmark function [lb,ub,dim,fobj]=Get_Functions_details(Function_name); for run = 1:runs % Initializing arrays swarm=zeros(PopSize,dim); % Initialize the population/solutions swarm=initialization(PopSize,dim,ub,lb); for i=1:PopSize, ObjVal(i)=fobj(swarm(i,:)); endFitness=calculateFitness(ObjVal); %% update the status of the swarms (normal, confirmed) %%the minmum C0 Immune rate will take 1 status which means %%infected by corona Status=zeros(1,PopSize); for i=1:C0, Status(fix(rand*(PopSize))+1)=1; end%===================== loop =================================== ticitr=1; % Loop counterwhile itr0) Status(i) = 1; Age(i)=1; end% change the solution from confirmed to recovered if ((Fitness(i) >= mean(Fitness))&& Status(i)==1) Status(i) = 2; Age(i)=0; end% killed the current soluion and regenerated from scratch if(Age(i)>=MaxAge) NewSolConst = initialization(1,dim,ub,lb); swarm(i,:) = NewSolConst(:); Status(i) = 0; end endif(mod(itr,100)==0) display(['Fun#',num2str(funNum),' Run#', num2str(run), ', Itr ', num2str(itr), ' Results ', num2str(min(ObjVal))]); y(itr)=min(ObjVal); enditr=itr+1; endtoc; % Save the best results at each iteration BestResults(run)=min(ObjVal); end % run fprintf(1, '\n\n Done \n\n'); end figure(1) plot(y) xlabel('迭代次数') ylabel('适应度值')
3 仿真结果
文章图片
4 参考文献 [1] Al-Betar, M. A. , et al. "Coronavirus herd immunity optimizer (CHIO)." (2020).
【优化求解|【优化求解】基于病毒免疫算法(CHIO)求解最优目标matlab源码】?
文章图片
推荐阅读
- opencv|Opencv简单实现对某颜色范围物体的识别
- 网络|AWS Windows Server 2019 安全策略 Firewall
- 漏洞复现|内网渗透模拟演练(使用sqlmap对内网mssql提权与反弹shell)
- 图像增强|Python imgaug库 安装与使用 (图片加模糊光雨雪雾等特效)
- Intellij|还在手动安装IDEA(快使用Toolbox管理Jetbrains全家桶吧!!!)
- 我要进大厂|0 基础 Java 自学之路(2021年最新版)
- 自学笔记|自学笔记-链式存储的基本操作(慢慢写)
- 优化求解|【优化算法】黑洞模拟算法(MVO)matlab源码
- 实战项目专题|谷粒商城-个人笔记(基础篇二)