本文参考了很多张军老师《计算智能》的第七章知识。

本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453
免疫算法
1.1 算法简介
免疫算法(Immune Algorithm,IA):是指以在人工免疫系统的理论为基础,实现了类似于生物免疫系统的抗原识别、细胞分化、记忆和自我调节的功能的一类算法。

引用目前百度对其的定义:

有没有看到这里好奇了的小伙伴?为啥遗传算法和免疫算法扯上了关系?

但其实学完免疫算法你会发现,两者其实非常的相似。

遗传算法的思想简单讲就是父代之间通过交叉互换以及变异产生子代,不断更新适应度更高的子代,从而达到优化的效果。

而免疫算法本质上其实也是更新亲和度(这里对应上面的适应度)的过程,抽取一个抗原(问题),取一个抗体(解)去解决,并计算其亲和度,而后选择样本进行变换操作(免疫处理),借此得到得分更高的解样本,在一次一次的变换过程中逐渐接近最后解。

1.1.1 思想来源
免疫算法最先起源于1973-1976年间Jernel的三篇关于免疫网络的文章,Jernel在文中提出了一组基于免疫独特型的微分方程,这就是最早的免疫系统。

免疫算法的主要会议:
International Conference on Artificial Immune Systems,ICARIS

1.1.2 免疫算法的生物模型
先来看一下人体免疫系统大致是怎么工作的:

具体我就不多讲了好吧,大家可能懂得比我还多,毕竟我高中毕业已经很久了害。

1.1.3 二进制模型

Farmer用二进制串表示那些描述了抗体决定簇和抗原决定基性质的氨基酸序列,然后假设每个抗原和每个康提醒分别只有一个抗原决定簇(实际都有很多)。通过这些决定基之间的匹配程度不同类型抗体的复制和减少,以达到优化系统的目的。

二进制模型模仿了免疫系统的工作原理,主要涉及识别和刺激两方面的内容。





之所以直接上图是给想要完整搞懂公式的朋友看的。

那我这里简单讲下它的实现思想。

首先是识别:通过该环节得到两者之间的匹配度,为后面刺激新抗体的生成做准备。

刺激:生成更多亲和度高的抗体,抑制其他弱抗体的生成。

1.2 免疫算法的基本流程
先简单看下免疫系统和免疫算法的对比:

1.2.1 基本流程

免疫算法的七个要素

识别抗体,生成初始化的抗体,计算亲和度,记忆细胞分化,抗体促进和抑制,产生新的抗体,结束条件。

(1)识别抗体
把目标函数和约束作为抗体。

(2)生成初始化的抗体

随机生成独特型串维数为M的N个抗体。

(3)计算亲和度
这个步骤可以说是免疫算法的重点,同时也是最难点。



如果看到这遇到了问题,请放心,这些是正常情况,可以的话,大家阔以去参考一些实例问题,通过对实例的具体解决过程来读懂这些公式或许会更简单一些。

那这里我就稍微贴一下我觉得比较不错的推荐:https://www.bilibili.com/video/BV1pV411C7Sx?p=4
这里可能也需要大家有一定的matlab基础。

(4)记忆细胞分化

同人的免疫系统基本一致。

与抗原有最大亲和度的抗体加入了记忆细胞。由于记忆细胞数目有限,因此新生成的抗体将会代替记忆细胞中和它有最大亲和力者。

(5)抗体促进和抑制

最开始我介绍免疫算法其实就有提到这个。

通过计算抗体v的期望值,消除那些低期望值的抗体。

抗体v的期望值eve_vev​的计算公式为:

其中抗体v的密度的计算方法如下:

其中qkq_kqk​表示和抗体k有较大亲和力的抗体。通过这个公式能有效地抑制抗体的过分相似,避免算法的未成熟收敛。

(6)产生新的抗体

这里就对应我最开始提到的遗传算法和免疫算法相似地方了。

基于不同抗体和抗原亲和力的高低,使用轮盘赌的方法 ,选择两个抗体。然后把这两个抗体按一定变异概率做变异,之后再做交叉,得到新的抗体。重复操作(6)知道产生所有N个新抗体。可以说免疫算法产生新的抗体的过程需要遗传算子的辅助

(7)结束条件

如果求出的最优解满足一定的结束条件,则结束算法。

1.2.2 更一般的基本免疫算法
1.2.2.1.求解多目标优化问题的免疫算法

先前我们提出的基本流程其实用于解决的知识单目标的优化问题,那如果是多目标呢?

思考一下,一个目标即一个问题,一个问题对应免疫算法其实就是一个抗原。

所以求解多目标优化问题,抗原将抗原从原先的一个扩展到L个,这个L的值即等于你一共目标的值。同时,抗原v和抗原ω\omegaω的亲和度axvx_vxv​,_,,​w_ww​重新定义为:

其中optvt_vtv​,_,,​w_ww​表示抗体v和抗原ω\omegaω的结合强度,即抗体v在目标函数ω\omegaω中的解和此函数最优解的接近程度,至于算法的其他步骤,变化不大。

1.2.2.2.求解更一般问题的免疫算法




1.3 常用免疫算法

1.3.1 负选择算法

算法基本思想:需要两个字符串组成的集合R和R,通过先求一个和S不匹配的R集合,然后用R集合判断S集合是否发生了变化。

算法分成两部分,第一步是初始化R,第二步监视保护数据S。

初始化监测器R


监视保护数据S

1.3.2 克隆选择算法
克隆选择原理图

克隆选择流程图



具体理解希望大家能结合代码实现具体应用问题来理解。

1.3.3 免疫算法与智能计算
免疫遗传算法




1.4 免疫算法的应用
识别与分类问题
优化问题
机器人学习与控制
数据挖掘等

一文搞懂什么是免疫算法Immune Algorithm【详细介绍】相关推荐

  1. 一文搞懂戴克斯特拉算法-dijkstra

    大学学习数据结构那会,当时记得终于把 dijkstra 算法搞明白了,但是今天碰到的时候,大脑又是一片空白,于是我就又学习了下,把自己的理解写下来,希望你也可以通过本文搞懂 dijkstra 算法. ...

  2. 一文搞懂什么是模拟退火算法SImulated Annealing【附应用举例】

    本文参考了很多张军老师<计算智能>的第十章知识. 本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453 模拟退火 ...

  3. 【数字IC基础】一文搞懂AMBA、AHB、APB(详细版)

    文章目录 一.AMBA(Advanced Microcontroller Bus Architecture 先进微处理器总线结构) 1.1AMBA发展史 1.2 典型的AMBA系统 二.AHB(Adv ...

  4. 1分钟搞懂MIL体系架构及功能模块详细介绍

    目录 MIL体系架构 MIL核心功能模块 MIL功能模块详细描述 点对点运算 统计学运算 滤波处理 形态学运算 几何变换 快速傅里叶变换 图像分割 粒子(BLOB)分析 特征计算 图像测量 校正 JP ...

  5. 一文搞懂k近邻(k-NN)算法(一)

    原文链接 一文搞懂k近邻(k-NN)算法(一) 前几天和德川一起在学习会上讲解了k-NN算法,这里进行总结一下,力争用最 通俗的语言讲解以便更多同学的理解. 本文目录如下: 1.k近邻算法的基本概念, ...

  6. 一文搞懂 Raft 算法

    一文搞懂Raft算法 正文 raft是工程上使用较为广泛的强一致性.去中心化.高可用的分布式协议.在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos.但Paxos是:少数真正理 ...

  7. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

    ***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...

  8. 《一文搞懂NMS发展历程》Soft-NMS、Weighted NMS、IoU-Net、Softer-NMS、Adaptive NMS、DIoU-NMS

    <一文搞懂NMS发展历程>Soft-NMS.Weighted NMS.IoU-Net.Softer-NMS.Adaptive NMS.DIoU-NMS 文章目录 <一文搞懂NMS发展 ...

  9. 一文搞懂UART通信协议

    目录 1.UART简介 2.UART特性 3.UART协议帧 3.1.起始位 3.2.数据位 3.3.奇偶校验位 3.4.停止位 4.UART通信步骤 1.UART简介 UART(Universal ...

  10. 一文搞懂:FT、DTFT、DFT、IDFT

    一文搞懂:FT.DTFT.DFT.IDFT 写在前面 一切为了计算机的处理 推导步骤 总结 写在前面 近期重温了一下可爱的数字信号处理,又回想起当初被 FT.DTFT.DFT.IDFT 这几兄弟折腾的 ...

最新文章

  1. 深入理解JVM——(三)为什么JVM新生代需要两个Survivor区
  2. Serverless 实战——使用 Rendertron 搭建 Headless Chrome 渲染解决方案
  3. 汉诺塔III HDU - 2064
  4. 如何在不亏本的情况下构建道德数据科学系统?
  5. 小程序搜索框_微信小程序搜索及优化相关知识科普
  6. ODBC / OLEDB___DAO / RDO / ADO
  7. oppo9s刷机教程_OPPO R9s刷机教程_OPPO R9s卡刷升级更新官方系统包
  8. 你所知道好玩有趣的 iOS URL schemes 有哪些?
  9. 视频网站盈利模式与营销策划
  10. c语言实践输出某个区间中不是3的倍数的偶数
  11. 正点原子STM32F407+AD7606+RT-Thread Studio 调试记录
  12. 泰科MDO3034示波器波形FFT分析及数据导出
  13. C语言system()函数
  14. 51NOD 1024 矩阵中不重复的元素
  15. python file does not exist什么意思_Python的冷知识和坑
  16. 网络协议中的MTU和MSS
  17. springboot和spring cloud版本兼容问题
  18. 郑州大学官宣:博士招生全面实行“申请-考核”制 ​
  19. 123720服务器网站,123720a.com
  20. android读写位图,android - 从矢量绘图获取位图

热门文章

  1. 数据恢复软件TOP 1—easyrecovery
  2. 10部程序员必看的纪录片
  3. 《Linux杂记》Window读取 Ext3/Ext4文件系统数据
  4. QT出现“d:\Program Files (x86)\SogouInput\Components\”问题初步想法
  5. 浅谈5000万:外挂,代理与卡盟的故事。
  6. 对软件开发人员的几个阶段思考和总结
  7. python百度文库免券下载
  8. 使用Cisco Packet Tracer进行网络模拟
  9. 战斗部毁伤效能评估软件系统
  10. 单片机c语言三角波采样点,单片机课程设计---信号发生器.doc