智能优化算法:冠状病毒群体免疫优化算法
摘要:冠状病毒群体免疫优化算法是于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+(ubi−lbi)∗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),r≥BRrC(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={i∣Si=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={i∣Si=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=0∧is_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+(ubi−lbi)∗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):