automl-演化算法-免疫算法/免疫遗传算法

  • 遗传算法的退化问题:
    在对算法的实施过程中不难发现两个主要遗传算子都是在一定发生概率的条件下,随机地、没有指导地迭代搜索,因此它们在为群体中的个体提供了进化机会的同时,也无可避免地产生了退化的可能。在某些情况下,这种退化现象还相当明显。另外,每一个待求的实际问题都会有自身一些基本的、显而易见的特征信息或知识。然而遗传算法的交叉和变异算子却相对固定,在求解问题时,可变的灵活程度较小。这无疑对算法的通用性是有益的,但却忽视了问题的特征信息对求解问题时的辅助作用,特别是在求解一些复杂问题时,这种忽视所带来的损失往往就比较明显了。

免疫算法

免疫算法的基本步骤:

  • 抗原识别。输入目标函数和各种约束作为免疫算法的抗原。
  • 初始抗体生成。随机生成初始抗体种群。
  • 亲和力计算。计算抗体的适应值。对解群体中的各个解个体进行综合评价,包括解(抗体)与问题(抗原)的适应值(亲和力)以及解与解之间的相似度(亲和力)
  • 免疫处理。免疫处理包括免疫选择、克隆、变异和抑制。
    免疫选择:根据抗体的亲和力选出亲和度较高的抗体。
    克隆:对选出的亲和力较高的抗体进行复制。
    变异:对克隆得到的个体进行交叉、变异操作,使其亲和力发生改变。
    抑制:对变异的抗体进行选择,保留亲和度较高的抗体。
  • 群体刷新。将免疫选择的抗体和免疫抑制后的抗体组成一个集合,保留其中亲和度较高的抗体,使这些抗体进入新的种群。新的种群中不足的部分随机生成,以增加多样性。

在这里插入图片描述

免疫算法与遗传算法的区别

免疫算法与遗传算法比较 葛红
在这里插入图片描述

免疫算法是模拟免疫系统对病菌的多样性识别能力(即免疫系统几乎可以识别无穷多种类的病菌)而设计出来的多峰值搜索算法,其具体步骤如下
在这里插入图片描述
在这里插入图片描述

代码实现

代码实现编辑
step1:在GitHub上下载常用的 scikit-opt库
step2:定义目标函数,并执行免疫算法

免疫算法中的综合评价是怎么实现的,可以参见scikit-opt库的源代码

发布了180 篇原创文章 · 获赞 309 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/xys430381_1/article/details/105336003