文章目录
1. 什么是免疫算法
免疫算法 (Immune Algorithm, A) 是指以人 免疫系统的理论为基础,在体细胞理论和网络理论的启发下,实现的类似 生物免疫系统的抗原识别、细胞分化、记忆和自我调节功能的一类算法
- 抗原
- 目标函数
- 被免疫系统看做异体 引起免疫反应的分子
- 抗体
- 优化解
- 每种抗体只识别特定的目标抗原
- 抗原和抗体之间的亲和性
- 解与目标函数的匹配程度
- 抗体和抗原,抗体和抗体之间的相似程度
- B细胞
- 全称是 淋巴细胞,在骨髓分化成熟,免疫系统的本质部分
- T细胞
- 全称是 淋巴细胞,在胸腺分化成熟
2.二进制模型
二进制模型模仿了免疫系统的丁作原理, 要涉及识别和刺激两方面的内容:
2.1 识别
每个抗体可以用 ( e , p ) (e,p) (e,p)二进制串表示,匹配特异矩阵为:
m i j = ∑ k G ( ∑ n e i ( n + k ) ∧ p j ( n ) − s + 1 ) m_{i j}=\sum_k G\left(\sum_n e_i(n+k) \wedge p_j(n)-s+1\right) mij=k∑G(n∑ei(n+k)∧pj(n)−s+1)
其中,
G
(
x
)
=
{
x
,
x
>
0
0
,
x
⩽
0
G(x)= \begin{cases}x, & x>0 \\ 0, & x \leqslant 0\end{cases}
G(x)={x,0,x>0x⩽0
要根据以上公式算出
m
i
j
m_{i j}
mij 必须求出
k
k
k 的所有情况之和,但实际上大可不必, 只需求
−
2
⩽
k
⩽
2
-2 \leqslant k \leqslant 2
−2⩽k⩽2 的情况即可。下图所示的是抗体
i
i
i 的抗体决定簇和抗体
j
j
j 的抗原决定基在k = -1时候的匹配情况。
模型还指出当 淋巴细胞识别到抗原决定基时,它受到刺激并分裂,产生更多表面附着相同抗体类型的B淋巴细胞(此处简化免疫学的原理,把自由抗体和B细胞的抗体集中)
2.2 刺激
二进制串之间的匹配,其目的是为了刺激新的抗体的生成
下面建立相应的微分方程模型
[
4
]
{ }^{[4]}
[4], 设
N
N
N 种类型的抗体, 浓度为
{
x
1
,
x
2
,
⋯
,
x
n
}
,
n
\left\{x_1, x_2, \cdots, x_n\right\}, n
{x1,x2,⋯,xn},n 种类 型的抗原, 浓度为
{
y
1
,
y
2
,
⋯
,
y
n
}
\left\{y_1, y_2, \cdots, y_n\right\}
{y1,y2,⋯,yn}, 这里的浓度就是某类抗体或抗原的具体数量。那么抗体浓度的变化方程为:
x i ′ = c [ ∑ j = 1 N m j i x i x j − k 1 ∑ j = 1 N m i j x i x j + ∑ j = 1 N m j i x i y j ] − k 2 x i x_i^{\prime}=c\left[\sum_{j=1}^N m_{j i} x_i x_j-k_1 \sum_{j=1}^N m_{i j} x_i x_j+\sum_{j=1}^N m_{j i} x_i y_j\right]-k_2 x_i xi′=c[j=1∑Nmjixixj−k1j=1∑Nmijxixj+j=1∑Nmjixiyj]−k2xi
抗体和抗原的动态调整规则如下:
3. 算法的基本模型
3.1 免疫系统名词与免疫算法名词比较
免疫系统 | 免疫算法 |
---|---|
抗原 | 要求解的问题 |
抗体 | 最佳解向量 |
抗原识别 | 问题识别 |
从记忆细胞产生抗体 | 联想过去的成功解 |
淋巴细胞分化(记忆细胞分化) | 维待最优解 |
T细胞抑制 | 消除多余的候选解 |
抗体生命增加(细胞克隆) | 用遗传算子生成新的抗 |
3.2 算法的基本流程图
3.3 识别抗体&初始化
把目标函数和约束作为抗体
随机生成独特型串维数为 M 的 N 个抗体
3.4 计算亲和度
抗体 + 抗原
抗体
v
v
v和抗原的亲和度为
a
x
v
ax_v
axv:
a
x
v
=
1
1
+
o
p
t
v
a x_v=\frac{1}{1+o p t_v}
axv=1+optv1
其中:
o
p
t
v
=
∣
f
v
−
f
max
f
max
∣
o p t_v=\left|\frac{f_v-f_{\max }}{f_{\max }}\right|
optv=∣
∣fmaxfv−fmax∣
∣
f
m
a
x
f_{max}
fmax是最优解的适应值,
f
v
f_v
fv 是抗体
v
v
v的适应值
抗体 + 抗体
抗体
v
v
v 和抗体
w
w
w 的亲和度为:
a
y
v
,
w
=
1
1
+
E
(
2
)
a y_{v, w}=\frac{1}{1+E(2)}
ayv,w=1+E(2)1
免疫系统有
N
N
N 个抗体, 有
M
M
M 个基因 (或独特 型串的长度为
M
)
M)
M), 第
j
j
j 个基因的信息熵为
E
j
(
N
)
E_j(N)
Ej(N) :
E
j
(
N
)
=
∑
i
=
1
N
−
p
i
j
log
κ
p
i
j
E_j(N)=\sum_{i=1}^N-p_{i j} \log _\kappa p_{i j}
Ej(N)=i=1∑N−pijlogκpij
其中
K
K
K 表示独特型串的字母表的长度, 若为二进 制数就是
2
,
p
i
j
2, p_{i j}
2,pij 表示选择第
i
i
i 个抗体的第
j
j
j 位等 位基因的概率, 很明显
∑
i
=
1
N
p
i
j
=
1
\sum_{i=1}^N p_{i j}=1
∑i=1Npij=1, 所以代表多 样性的平均信息熵
E
(
N
)
E(N)
E(N) 为:
E
(
N
)
=
1
M
∑
i
=
1
M
E
j
(
N
)
E(N)=\frac{1}{M} \sum_{i=1}^M E_j(N)
E(N)=M1i=1∑MEj(N)
3.5 记忆细胞分化
与抗原(问题)有最大亲和度的抗体(解)加入了记忆细胞,由于记忆细胞数目有限,因此新生成的抗体将会代替记忆细胞中和它有最大亲和力者
3.6 抗体促进和抑制
抗体
v
v
v 的期望值
e
v
e_v
ev 的计算公式为:
e
v
=
a
x
v
c
v
e_v=\frac{a x_v}{c_v}
ev=cvaxv
抗体v的密度计算方法如下:
c v = − q k N c_v=-\frac{q_k}{N} cv=−Nqk
3.7 产生新的抗体
根据不同抗体和抗原亲和力的高低,使用轮盘赌的方法,选择两个抗体,然后把这两个抗体按 定变异概率做变异,之后再做交叉,得到新的抗体
3.8 结束条件
如果求出的最优解满足 定的结束条件,则结束
4. 免疫算发解决多目标优化
对于多目标优化问题,可以把抗原扩展到
L
L
L 个 (
L
L
L 和具体的目标数目相等), 并把抗 体
v
v
v 和抗原
w
w
w 的亲和度
a
x
v
,
w
a x_{v, w}
axv,w 重新定义为:
a
x
v
,
w
=
1
1
+
o
p
t
v
,
w
a x_{v, w}=\frac{1}{1+o p t_{v, w}}
axv,w=1+optv,w1
此时亲和度的计算公式如下:
a x v = 1 1 + t v a y v , w = 1 1 + H v , w \begin{aligned} &a x_v=\frac{1}{1+t_v} \\ &a y_{v, w}=\frac{1}{1+H_{v, w}} \end{aligned} axv=1+tv1ayv,w=1+Hv,w1
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知