文章目录

  • 1. 什么是免疫算法
  • 2.二进制模型
    • 2.1 识别
    • 2.2 刺激
  • 3. 算法的基本模型
    • 3.1 免疫系统名词与免疫算法名词比较
    • 3.2 算法的基本流程图
    • 3.3 识别抗体&初始化
    • 3.4 计算亲和度
      • 抗体 + 抗原
      • 抗体 + 抗体
    • 3.5 记忆细胞分化
    • 3.6 抗体促进和抑制
    • 3.7 产生新的抗体
    • 3.8 结束条件
  • 4. 免疫算发解决多目标优化
  • 写在最后

1. 什么是免疫算法

免疫算法 (Immune Algorithm, A) 是指以人 免疫系统的理论为基础,在体细胞理论和网络理论的启发下,实现的类似 生物免疫系统的抗原识别、细胞分化、记忆和自我调节功能的一类算法

  • 抗原

    • 目标函数
    • 被免疫系统看做异体 引起免疫反应的分子
  • 抗体
    • 优化解
    • 每种抗体只识别特定的目标抗原
  • 抗原和抗体之间的亲和性
    • 解与目标函数的匹配程度
    • 抗体和抗原,抗体和抗体之间的相似程度
  • B细胞
    • 全称是 淋巴细胞,在骨髓分化成熟,免疫系统的本质部分
  • T细胞
    • 全称是 淋巴细胞,在胸腺分化成熟

2.二进制模型

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

2.1 识别

每个抗体可以用 (e,p)(e,p)(e,p)二进制串表示,匹配特异矩阵为:

mij=∑kG(∑nei(n+k)∧pj(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>00,x⩽0G(x)= \begin{cases}x, & x>0 \\ 0, & x \leqslant 0\end{cases}G(x)={x,0,​x>0x⩽0​

要根据以上公式算出 mijm_{i j}mij​ 必须求出 kkk 的所有情况之和,但实际上大可不必, 只需求 −2⩽k⩽2-2 \leqslant k \leqslant 2−2⩽k⩽2 的情况即可。下图所示的是抗体 iii 的抗体决定簇和抗体 jjj 的抗原决定基在k = -1时候的匹配情况。

模型还指出当 淋巴细胞识别到抗原决定基时,它受到刺激并分裂,产生更多表面附着相同抗体类型的B淋巴细胞(此处简化免疫学的原理,把自由抗体和B细胞的抗体集中)

2.2 刺激

二进制串之间的匹配,其目的是为了刺激新的抗体的生成
下面建立相应的微分方程模型 [4]{ }^{[4]}[4], 设 NNN 种类型的抗体, 浓度为 {x1,x2,⋯,xn},n\left\{x_1, x_2, \cdots, x_n\right\}, n{x1​,x2​,⋯,xn​},n 种类 型的抗原, 浓度为 {y1,y2,⋯,yn}\left\{y_1, y_2, \cdots, y_n\right\}{y1​,y2​,⋯,yn​}, 这里的浓度就是某类抗体或抗原的具体数量。那么抗体浓度的变化方程为:

xi′=c[∑j=1Nmjixixj−k1∑j=1Nmijxixj+∑j=1Nmjixiyj]−k2xix_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_ixi′​=c[j=1∑N​mji​xi​xj​−k1​j=1∑N​mij​xi​xj​+j=1∑N​mji​xi​yj​]−k2​xi​

抗体和抗原的动态调整规则如下:

3. 算法的基本模型

3.1 免疫系统名词与免疫算法名词比较

免疫系统 免疫算法
抗原 要求解的问题
抗体 最佳解向量
抗原识别 问题识别
从记忆细胞产生抗体 联想过去的成功解
淋巴细胞分化(记忆细胞分化) 维待最优解
T细胞抑制 消除多余的候选解
抗体生命增加(细胞克隆) 用遗传算子生成新的抗

3.2 算法的基本流程图

3.3 识别抗体&初始化

把目标函数和约束作为抗体
随机生成独特型串维数为 M 的 N 个抗体

3.4 计算亲和度

抗体 + 抗原

抗体vvv和抗原的亲和度为axvax_vaxv​:
axv=11+optva x_v=\frac{1}{1+o p t_v}axv​=1+optv​1​

其中:
optv=∣fv−fmax⁡fmax⁡∣o p t_v=\left|\frac{f_v-f_{\max }}{f_{\max }}\right|optv​=∣∣​fmax​fv​−fmax​​∣∣​
fmaxf_{max}fmax​是最优解的适应值,fvf_vfv​ 是抗体vvv的适应值

抗体 + 抗体

抗体 vvv 和抗体 www 的亲和度为:
ayv,w=11+E(2)a y_{v, w}=\frac{1}{1+E(2)} ayv,w​=1+E(2)1​

免疫系统有 NNN 个抗体, 有 MMM 个基因 (或独特 型串的长度为 M)M)M), 第 jjj 个基因的信息熵为 Ej(N)E_j(N)Ej​(N) :
Ej(N)=∑i=1N−pijlog⁡κpijE_j(N)=\sum_{i=1}^N-p_{i j} \log _\kappa p_{i j} Ej​(N)=i=1∑N​−pij​logκ​pij​
其中 KKK 表示独特型串的字母表的长度, 若为二进 制数就是 2,pij2, p_{i j}2,pij​ 表示选择第 iii 个抗体的第 jjj 位等 位基因的概率, 很明显 ∑i=1Npij=1\sum_{i=1}^N p_{i j}=1∑i=1N​pij​=1, 所以代表多 样性的平均信息熵 E(N)E(N)E(N) 为:
E(N)=1M∑i=1MEj(N)E(N)=\frac{1}{M} \sum_{i=1}^M E_j(N) E(N)=M1​i=1∑M​Ej​(N)

3.5 记忆细胞分化

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

3.6 抗体促进和抑制

抗体 vvv 的期望值 eve_vev​ 的计算公式为:
ev=axvcve_v=\frac{a x_v}{c_v} ev​=cv​axv​​

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

cv=−qkNc_v=-\frac{q_k}{N}cv​=−Nqk​​

3.7 产生新的抗体

根据不同抗体和抗原亲和力的高低,使用轮盘赌的方法,选择两个抗体,然后把这两个抗体按 定变异概率做变异,之后再做交叉,得到新的抗体

3.8 结束条件

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

4. 免疫算发解决多目标优化

对于多目标优化问题,可以把抗原扩展到 LLL 个 ( LLL 和具体的目标数目相等), 并把抗 体 vvv 和抗原 www 的亲和度 axv,wa x_{v, w}axv,w​ 重新定义为:
axv,w=11+optv,wa x_{v, w}=\frac{1}{1+o p t_{v, w}} axv,w​=1+optv,w​1​


此时亲和度的计算公式如下:

axv=11+tvayv,w=11+Hv,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+tv​1​ayv,w​=1+Hv,w​1​​


写在最后

各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知

【计算智能】读书笔记 第七章节 免疫算法 Part1相关推荐

  1. 《趣学算法(第2版)》读书笔记 Part 4 :贪心算法基础(操作)

    14天阅读挑战赛 系列笔记链接 <趣学算法(第2版)>读书笔记 Part 1 :如何高效学习算法 <趣学算法(第2版)>读书笔记 Part 2 :算法入门 <趣学算法(第 ...

  2. 《Android编程权威指南》-读书笔记(七) -处理旋转设备

    <Android编程权威指南>-读书笔记(七) -处理旋转设备 旋转设备会改变设备配置(device configuration).设备配置是用来描述设备当前状态的一系列特征.这些特征包括 ...

  3. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)

    7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...

  4. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  5. 《第一行代码》读书笔记(七):album爬坑

    <第一行代码>读书笔记(七):album爬坑 权限问题 尽管书中提到4.4系统之前需要声明访问SD卡权限,不过很遗憾,4.4系统之后仍然需要 照片不显示问题 Android10对文件访问权 ...

  6. 阮一峰ES6入门读书笔记(七):运算符的拓展

    阮一峰ES6入门读书笔记(七):运算符的拓展 1. 指数运算符 ES6新增了一个指数运算符(**). 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合. ...

  7. 《代码大全2》读书笔记(七)

    第二十一章 协同构建 这一章中的21.2其实上周就有看,因为上周进行了结对编程.不过读书笔记写在了一起. 21.1 概要 有一个惊人的数据,设计期间程序员平均每小时会引入1 ~ 3个缺陷,编码期间平均 ...

  8. In-memory Computing with SAP HANA读书笔记 - 第七章:Business continuity and resiliency for SAP HANA

    本文为In-memory Computing with SAP HANA on Lenovo X6 Systems第七章Business continuity and resiliency for S ...

  9. Java编程思想读书笔记(七)

    点击蓝字 关注我们 今天是端午节,在这里祝大家端午节安康.过节的同时也不要忘记知识储备,今天我 为大家带来了Java编程思想第七节多形性读书笔记.请大家一起品鉴,如果发现里面有啥写的不对的地方,请大家 ...

最新文章

  1. python笔记4(矩阵和随机数 matplotlib绘图基础散点图折线图柱状图)
  2. Python出现SyntaxError: Non-ASCII character '\xe7' in file 错误的解决办法
  3. 成功解决cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion fa
  4. OpenCV绘图和文本输出功能的实例(附完整代码)
  5. 即时聊天IM之一 XMPP协议简述
  6. 实战|全程分析js到getshell
  7. 干货|219个opencv常用函数汇总
  8. 程序员遇到什么样的工作状态应该果断跳槽走人?
  9. VMware虚拟网络设置(NAT模式,桥接模式,仅主机模式设置),再也不用担心虚拟机连不上网了。
  10. 车险赔付率分析报告_机动车辆保险赔付率高的原因分析及对策研究
  11. android 复制应用程序,Android限制复制,粘贴在应用程序之间查看
  12. DP动态规划之01背包问题
  13. Jmeter怎么连接数据库
  14. ROS学习笔记之——PX4开发初入门
  15. 为所欲为表情包制作器
  16. 微信小程序上传图片(预览 删除 限制图片大小、张数)
  17. 二叉树:二叉树的最近公共祖先
  18. 100多个常用的Python函数!(部分函数含代码解读)
  19. CPU 内存 磁盘的关系
  20. 提高代码质量之静态代码检查

热门文章

  1. 三个办公室随机分配8位老师,且每个办公室不能少于2个老师
  2. [笔记分享] [Camera] 各种相机种类及区别
  3. PopupWindow实现屏幕底部弹出
  4. pfSense Hangouts 存档下载!
  5. 诗歌(9)—题西林壁
  6. 31道Android面试题,面试官6个灵魂拷问,快来收藏!
  7. python中∧是什么意思_10291 用Python忽略全部邀请
  8. 小程序的基本语法和全局配置
  9. SQL update语句加减乘除运
  10. str.charAt(i); 的作用