免疫算子=接种疫苗+免疫选择
需要强调的是,疫苗不是一个个体,故不能作为问题的解。它仅仅具备个体在某些基因位上的特征。
(举个栗子,对于obj=minf(x)=(x1)^2+cos(x2)+sin(x3),我们能提取的疫苗就是:x1应该在0附近,那么对于x=(4,2,6)我们对它接种疫苗,让4变小一些)
先初始化种群。如果初始化种群适应度不够高,算法开始往下执行。
将种群中所有个体(对染色体进行操作)进行交叉、变异。
接种疫苗:
就是对已经交叉、变异的种群X,种群X里面的所有个体都称为抗体。在种群X里面选取一些个体进行基因修改(利用疫苗)。这种操作就叫对种群X接种疫苗。
免疫选择:
免疫选择=免疫检测+退火选择
就是判断抗体(即种群的全部个体)是否较优,得到接种过的新种群,然后计算适应度,如果适应度满足终止条件,就得到最优解,输出即可。
抗体浓度的是表征抗体种群的多样性好坏。抗体的浓度过高意味着种群中非常类似的个体大量存在,寻优就会集中与一个可行区间的一个区域,不利于全局寻优。