【计算智能】读书笔记 第七章节 免疫算法 Part1
文章目录
- 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∑Nmjixixj−k1j=1∑Nmijxixj+j=1∑Nmjixiyj]−k2xi
抗体和抗原的动态调整规则如下:
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+optv1
其中:
optv=∣fv−fmaxfmax∣o p t_v=\left|\frac{f_v-f_{\max }}{f_{\max }}\right|optv=∣∣fmaxfv−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−pijlogκpij
其中 KKK 表示独特型串的字母表的长度, 若为二进 制数就是 2,pij2, p_{i j}2,pij 表示选择第 iii 个抗体的第 jjj 位等 位基因的概率, 很明显 ∑i=1Npij=1\sum_{i=1}^N p_{i j}=1∑i=1Npij=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)=M1i=1∑MEj(N)
3.5 记忆细胞分化
与抗原(问题)有最大亲和度的抗体(解)加入了记忆细胞,由于记忆细胞数目有限,因此新生成的抗体将会代替记忆细胞中和它有最大亲和力者
3.6 抗体促进和抑制
抗体 vvv 的期望值 eve_vev 的计算公式为:
ev=axvcve_v=\frac{a x_v}{c_v} ev=cvaxv
抗体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,w1
此时亲和度的计算公式如下:
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+tv1ayv,w=1+Hv,w1
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知
【计算智能】读书笔记 第七章节 免疫算法 Part1相关推荐
- 《趣学算法(第2版)》读书笔记 Part 4 :贪心算法基础(操作)
14天阅读挑战赛 系列笔记链接 <趣学算法(第2版)>读书笔记 Part 1 :如何高效学习算法 <趣学算法(第2版)>读书笔记 Part 2 :算法入门 <趣学算法(第 ...
- 《Android编程权威指南》-读书笔记(七) -处理旋转设备
<Android编程权威指南>-读书笔记(七) -处理旋转设备 旋转设备会改变设备配置(device configuration).设备配置是用来描述设备当前状态的一系列特征.这些特征包括 ...
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)
7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...
- Effective Java 读书笔记(七):通用程序设计
Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...
- 《第一行代码》读书笔记(七):album爬坑
<第一行代码>读书笔记(七):album爬坑 权限问题 尽管书中提到4.4系统之前需要声明访问SD卡权限,不过很遗憾,4.4系统之后仍然需要 照片不显示问题 Android10对文件访问权 ...
- 阮一峰ES6入门读书笔记(七):运算符的拓展
阮一峰ES6入门读书笔记(七):运算符的拓展 1. 指数运算符 ES6新增了一个指数运算符(**). 2 ** 2 // 4 2 ** 3 // 8 这个运算符的一个特点是右结合,而不是常见的左结合. ...
- 《代码大全2》读书笔记(七)
第二十一章 协同构建 这一章中的21.2其实上周就有看,因为上周进行了结对编程.不过读书笔记写在了一起. 21.1 概要 有一个惊人的数据,设计期间程序员平均每小时会引入1 ~ 3个缺陷,编码期间平均 ...
- 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 ...
- Java编程思想读书笔记(七)
点击蓝字 关注我们 今天是端午节,在这里祝大家端午节安康.过节的同时也不要忘记知识储备,今天我 为大家带来了Java编程思想第七节多形性读书笔记.请大家一起品鉴,如果发现里面有啥写的不对的地方,请大家 ...
最新文章
- python笔记4(矩阵和随机数 matplotlib绘图基础散点图折线图柱状图)
- Python出现SyntaxError: Non-ASCII character '\xe7' in file 错误的解决办法
- 成功解决cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion fa
- OpenCV绘图和文本输出功能的实例(附完整代码)
- 即时聊天IM之一 XMPP协议简述
- 实战|全程分析js到getshell
- 干货|219个opencv常用函数汇总
- 程序员遇到什么样的工作状态应该果断跳槽走人?
- VMware虚拟网络设置(NAT模式,桥接模式,仅主机模式设置),再也不用担心虚拟机连不上网了。
- 车险赔付率分析报告_机动车辆保险赔付率高的原因分析及对策研究
- android 复制应用程序,Android限制复制,粘贴在应用程序之间查看
- DP动态规划之01背包问题
- Jmeter怎么连接数据库
- ROS学习笔记之——PX4开发初入门
- 为所欲为表情包制作器
- 微信小程序上传图片(预览 删除 限制图片大小、张数)
- 二叉树:二叉树的最近公共祖先
- 100多个常用的Python函数!(部分函数含代码解读)
- CPU 内存 磁盘的关系
- 提高代码质量之静态代码检查