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#23if(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 arraysswarm=zeros(PopSize,dim);% Initialize the population/solutionsswarm=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 itr<Max_iter% change the solution from normal to confirmedif ((Fitness(i) < mean(Fitness))&& Status(i)==0 && CountCornoa>0)Status(i) = 1;Age(i)=1;end% change the solution from confirmed to recoveredif ((Fitness(i) >= mean(Fitness))&& Status(i)==1)Status(i) = 2; Age(i)=0;end% killed the current soluion and regenerated from scratchif(Age(i)>=MaxAge)NewSolConst = initialization(1,dim,ub,lb);swarm(i,:) = NewSolConst(:);Status(i) = 0;endendif(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 iterationBestResults(run)=min(ObjVal);end % runfprintf(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源码相关推荐

  1. 【优化求解】基于猫群算法CSO求解最优目标matlab源码

    1 简介 猫群算法(CSO)是 2006 年由台湾学者 Chu 等人通过观察猫群在日常生活中的行为提出来的一种新型群体智能算法.猫群算法与遗传算法类似,是基于迭代的优化方法,但是没有遗传算法的交叉算子 ...

  2. 【优化求解】基于水母搜索优化器JS算法求解最优目标matlab源码

    1 简介 1.1  人工水母算法原理背景 水母生活在世界上不同深度和温度的水中.它们酷似钟状,一些水母的直径小于1cm,然有些水母直径则非常大.它们有各种各样的颜色.大小和形状.大多数水母偏好海洋环境 ...

  3. 【优化求解】基于头脑风暴优化算法BSO求解最优目标matlab源码

    1 简介 受人类创造性解决问题过程--头脑风暴会议的启发, 2011年史玉回老师 在第二次群体智能国际会议(The Second International Conference on Swarm I ...

  4. 【优化求解】基于蝠鲼觅食优化算法MRFO求解最优目标matlab源码

    1 简介 蝠鲼觅食优化 (Manta ray foraging optimization,MRFO)是由 Zhao 等,在 2019 年提出的新型智能仿生群体算法. 2 部分代码 %_________ ...

  5. 【优化求解】基于多元宇宙MVO算法求解最优目标matlab源码

    1 简介 2 部分代码 ```matlab %_____________________________________________________________________________ ...

  6. 【优化求解】基于引力搜索算法GSA求解最优目标matlab源码

    1 简介 2009,伊朗的Esmat Rashedi等人基于万有引力定律和粒子间相互作用提出了一种新型的优化算法--引力搜索算法(Gravitational Search Algorithm,GSA) ...

  7. 【路径规划】基于蚁群算法实现多式联运路径规划问题matlab源码

    2.蚁群算法基本原理 2.1 算法综述 对于VRP问题,求解算法大致可分为精确算法和人工智能算法两大类.精确性算法基于严格的数学手段,在可以求解的情况下,解的质量较好.但是由于算法严格,运算量大,特别 ...

  8. 基于病毒免疫算法的最优目标解决方法

    基于病毒免疫算法的最优目标解决方法 在实际生产和工程中,我们经常需要求解一些最优化问题.病毒免疫算法是一种新兴的智能优化算法,它仿照了细胞免疫系统中病毒感染和免疫反应的过程,通过不断寻找更优解来得到最 ...

  9. 【LSSVM分类】基于matlab灰狼算法优化LSSVM分类(多输入多分类)【含Matlab源码 1558期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[LSSVM分类]基于matlab灰狼算法优化LSSVM分类(多输入多分类)[含Matlab源码 1558期] 获取代码方式2: 付费专栏 ...

最新文章

  1. 宏基因组蚂蚁森林合种——胡杨专车
  2. gpg的一些常用操作
  3. 使用dotnet template快速开发Microsoft Teams Outgoing Web Hook
  4. .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了
  5. mysql show profile详解_SQL 性能分析利器 show profile
  6. 游戏3d建模师的待遇及发展
  7. 2019-05-22 防范ASP木马;如何防止注入攻击;
  8. Oracle RAC环境下如何定位并杀掉最终阻塞的会话
  9. PMON和SMON的功能
  10. Install SQL Server 2008 Setup failure
  11. 蓝桥杯官网练习系统入门训练(一)
  12. ffmpeg推流和拉流rtsp
  13. 洛谷-P1957 口算练习题
  14. ”骇客“不可缺少的电脑软件
  15. 魔兽争霸lostTemple地图
  16. exlc表格怎么换行_在Excel中如何换行?Excel表格换行快捷键是什么?
  17. 微信企业号开发(第一篇)
  18. Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, E
  19. PHP支付宝当面付异步回调如何实现验签
  20. 疫情控制住了,公司却倒闭了!

热门文章

  1. 易语言html转移,易语言正则表达式总结
  2. 深度技术 GHOST XP 快速装机版 V7.0
  3. Word控件Spire.Doc 【页面背景】教程(3) ;如何在 C# 中设置单词段落底纹
  4. 360数科发布1月信息安全动态:“8看”妙招防范钓鱼诈骗攻击
  5. 华为5G+C-V2X车联网解决方案
  6. billionaire双色球选号器
  7. Sqlite源码解读(十二)
  8. 手机连笔记本闪断闪连解决办法
  9. Android 图片着色 Tint 详解2—xml设置、selector
  10. Docker安装Jenkins实现自动化构建部署到Tomcat