免疫优化算法

article/2025/9/24 13:38:49

免疫优化算法

免疫算法是模仿生物免疫机制,结合基因的进化机理,人工构造出的一种新型智能优化算法。

  • 它具有一般免疫系统的特征,采用群体搜索策略,通过迭代计算,最终以较大的概率得到问题的最优解。

  • 相比较于其他算法,免疫算法利用自身产生多样性和维持机制的特点,保证了种群的多样性,克服了一般寻优过程(特别是多峰值的寻优过程)中不可避免的“早熟”问题,可以求得全局最优解。

  • 免疫算法具有自适应性、随机性、并行性、全局收敛性、种群多样性等优点。

一、免疫算法原理

img

根据上述的对应关系,模拟生物免疫应答的过程形成了用于优化计算的免疫算法。算法主要包含以下几大模块:

  • 抗原识别与初始抗体产生。根据待优化问题的特点设计合适的抗体编码规则,并在此编码规则下利用问题的先验知识产生初始抗体种群。
  • 抗体评价。对抗体的质量进行评价,评价准则主要为抗体亲和度和个体浓度,评价得出的优质抗体将进行进化免疫操作,劣质抗体将会被更新。
  • 免疫操作。利用免疫选择、克隆、变异、克隆抑制、种群刷新等算子模拟生物免疫应答中的各种免疫操作,形成基于生物免疫系统克隆选择原理的进化规则和方法,实现对各种最优化问题的寻优搜索。

二、免疫算法算子

免疫算法的算子包括:亲和度评价算子、抗体浓度评价算子、激励度计算算子、免疫选择算子、克隆算子、变异算子、克隆抑制算子和种群刷新算子等。由于算法的编码方式可能为实数编码、离散编码等,不同编码方式下的算法算子也会有所不同。

2.1 亲和度评价算子

亲和度评价表征算子免疫细胞与抗原的结合强度。
亲和度评价算子通常是一个函数aff(x): S∈R
其中 S为问题的可行解区间,R为实数域。函数的输入为一个抗体个体(可行解),输出即为亲和度评价结果。

2.2 抗体浓度评价算子

抗体浓度评价表征算子抗体种群的多样性好坏。抗体浓度过高意味着种群中非常类似的个体大量存在,不利于全局优化。
抗体浓度通常定义为

img

2.3 激励度计算算子

抗体激励度是对抗体质量的最终评价结果,需要综合考虑抗体亲和度和抗体浓度,通常亲和度大、浓度低的抗体会得到较大的激励度。

抗体激励度的计算通常可以利用抗体亲和度和抗体浓度的评价结果进行简单的数学运算得到,如

img

a、b 为计算参数,可以根据实际情况确定。

2.4 免疫选择算子

免疫选择算子根据抗体的激励度确定选择哪些抗体进入克隆选择操作

在抗体群中激励度高的抗体个体具有更好的质量,更有可能被选中进行克隆选择操作,在搜索空间中更有搜索价值。

2.5 克隆算子

克隆算子将免疫选择算子选中的抗体个体进行复制。克隆算子可以描述为:

img

clone(abi)为mi个与abi相同的克隆构成的集合,mi为抗体克隆数目,可以事先确定,也可以动态自适应计算。

2.6 变异算子

**实数编码变异算子:**实数编码算法的变异策略是在变异源个体中加入一个小扰动,使其稍偏离原来的位置,落入源个体邻域中的另一个位置,实现变异源邻域的搜索。实数编码算法变异算子可以描述:

img

**离散编码变异算子:**离散编码算法以二进制编码为主,其变异策略是从变异源抗体串中随机选取几位元,改变位元的取值(取反),使其落在离散空间变异源的邻域。

变异算子对克隆算子得到的抗体克隆结果进行变异操作,以产生亲和度突变,实现局部搜索。

变异算子是免疫算法中产生有潜力的新抗体、实现区域搜索的重要算子,它对算法的性能有很大影响。

变异算子也和算法的编码方式相关,实数编码的算法和离散编码的算法采用不同的变异算子。

2.7 克隆抑制算子

克隆抑制算子用于对经过变异后的克隆体进行再选择,抑制亲和度低的抗体,保留亲和度高的抗体进入新的抗体种群

在克隆抑制的过程中,克隆算子操作的源抗体与克隆体经变异算子作用后得到的临时抗体群共同组成一个集合,克隆抑制操作将保留此集合中亲和度最高的抗体,抑制其他抗体。

由于克隆变异算子操作的源抗体是种群中的优质抗体,而克隆抑制算子操作的临时抗体集合中又包含了父代的源抗体,因此在免疫算法的算子操作中隐含了最优个体保留机制。

2.8 种群刷新算子

种群刷新算子用于对种群中激励度较低的抗体进行刷新

从抗体种群中删除这些抗体并以随机生成的新抗体替代,有利于保持抗体的多样性,实现全局搜索,探索新的可行解空间区域。

三、算法流程

目前还没有统一的免疫算法及框图,下面介绍一种含有以上免疫算子的算法流程,分为以下几个步骤:

  1. 首先进行抗原识别,即理解待优化的问题,对问题进行可行性分析,提取先验知识,构造出合适的亲和度函数,并制定各种约束条件。

  2. 然后产生初始抗体群,通过编码把问题的可行解表示成解空间中的抗体,在解的空间内随机产生一个初始种群。

  3. 对种群中的每一个可行解进行亲和度评价。

  4. 判断是否满足算法终止条件:如果满足条件则终止算法寻优过程,输出计算结果;否则继续寻优运算。

  5. 计算抗体浓度和激励度。

  6. 进行免疫处理,包括免疫选择、克隆、变异和克隆抑制。

    免疫选择: 根据种群中抗体的亲和度和浓度计算结果选择优质抗体,使其活化;

    克隆: 对活化的抗体进行克隆复制,得到若干副本;

    变异: 对克隆得到的副本进行变异操作,使其发生亲和度突变;克隆抑制: 对变异结果进行再选择,抑制亲和度低的抗体,保留亲和度高的 变异结果。

  7. 种群刷新,以随机生成的新抗体替代种群中激励度较低的抗体,形成新一代抗体,转步骤(3)。

免疫算法流程图如下所示:

img

四、关键参数说明

img

五、算法特点

全局搜索能力。模仿免疫应答过程提出的免疫算法是一种具有全局搜索能力的优化算法
多样性保持机制。对抗体进行浓度计算,并将浓度计算的结果作为评价抗体个体优劣的一个重要标准;它使浓度高的抗体被抑制,保证抗体种群具有很好的多样性,这也是保证算法全局收敛性能的一个重要方面。
鲁棒性强。基于生物免疫机理的免疫算法不针对特定问题,而且不强调算法参数设置和初始解的质量,利用其启发式的智能搜索机制,即使起步于劣质解种群,最终也可以搜索到问题的全局最优解,对问题和初始解的依赖性不强,具有很强的适应性和鲁棒性。
并行分布式搜索机制。免疫算法不需要集中控制,可以实现并行处理。尤其适合于多模态的优化问题。

六、代码实现

import numpy as np
from scipy import spatial
import matplotlib.pyplot as pltnum_points = 50points_coordinate = np.random.rand(num_points, 2)  # generate coordinate of points
distance_matrix = spatial.distance.cdist(points_coordinate, points_coordinate, 	metric='euclidean')
def cal_total_distance(routine):'''The objective function. input routine, return total distance.cal_total_distance(np.arange(num_points))'''num_points, = routine.shapereturn sum([distance_matrix[routine[i % num_points], routine[(i + 1) % num_points]] 	for i in range(num_points)])from sko.IA import IA_TSPia_tsp = IA_TSP(func=cal_total_distance, n_dim=num_points, size_pop=500, 	max_iter=800, prob_mut=0.2,T=0.7, alpha=0.95)best_points, best_distance = ia_tsp.run()
print(best_points)
print(best_distance)
fig, ax = plt.subplots(1, 2)
best_points_ = np.concatenate([best_points, [best_points[0]]])
best_points_coordinate = points_coordinate[best_points_, :]
ax[0].plot(best_points_coordinate[:, 0], best_points_coordinate[:, 1], 'o-r')
ax[1].plot(ia_tsp.generation_best_Y)
plt.show()

img

————————————————
资料来源:CSDN博主「ybhybh666」的原创文章
原文链接:https://blog.csdn.net/abc1234564546/article/details/126228804


http://chatgpt.dhexx.cn/article/Foq2gI2b.shtml

相关文章

智能优化算法之免疫算法(IA)

这里写目录标题 1. 免疫算法思想起源2. 算法原理3. 免疫算法算子3.1 算法算子3.1.1 亲和度评价算子3.1.2 抗体浓度评价算子:3.1.3 激励度计算算子3.1.4 免疫选择算子3.1.5 克隆算子3.1.6 变异算子3.1.7 实数编码变异算子3.1.8 离散编码变异算子3.1.9 克隆抑制算子3.…

免疫算法(Immune Algorithm,IA)实例详解

免疫算法是将免疫概念及其理论应用于遗传算法,在保留原算法优良特性的前提下,利用抗体浓度评价算子和激励度计算算子来保持群体的多样性,克服了一般寻优过程中(特别是多峰值)不可避免的“早熟”问题。 1 算法概念 免…

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

本文参考了很多张军老师《计算智能》的第七章知识。 本文来源:https://blog.csdn.net/qq_44186838/article/details/109181453 免疫算法 1.1 算法简介 免疫算法(Immune Algorithm,IA):是指以在人工免疫系统的理论为基…

免疫算法(Immune Algorithm)详解

关于免疫算法(IA),其功能与遗传算法、模拟退火等算法实现的功能是相同的,都是用来求最优解。例如求函数最值、旅行商问题等。从本质上说,免疫算法更像是遗传算法的一种延申。IA虽然其中借鉴了生物学(免疫学…

免疫算法

免疫算法是受生物免疫系统的启发而推出的一种新型的智能搜索算法,是一种确定性和随机性选择相结合并具有"勘探"与"开采"能力的启发式随机搜索算法。 算法主要的步骤: (1)抗原识别与初始抗体产生。 (2)抗体评价 (3)免疫操作 免疫算法的特点: (1)…

闵可夫斯基距离—大白话篇幅[有错误的话请指教]

包括:曼哈顿距离,欧氏距离,切比雪夫距离; 举例子:两个点:A(1,9),B(5,8) 1,曼哈顿距离: 就是取和:|(1-5)||(9-8)|5;曼哈顿…

闵可夫斯基距离(LP距离)、曼哈顿距离、欧式距离、切比雪夫距离、马哈拉诺比斯距离、相关系数、夹角余弦

标题闵可夫斯基距离(LP距离)、曼哈顿距离、欧式距离、切比雪夫距离、马哈拉诺比斯距离、相关系数、夹角余弦 在聚类中,可以将样本集合看作是向量空间中的点的集合,以该空间的距离表示样本之间相似度。常用的距离有闵可夫斯基距离,闵可夫斯基…

【Python经典题目】闵可夫斯基距问题

题目 定义一个高维空间样本点集类HDPoints,须包含以下数据属性与方法属性: (a)数据属性self.points:类型为列表,由多个子列表构成,每个子列表表示高维空间中的一个数据点,且数据维度可以任意,…

欧氏距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离

转载自:https://baijiahao.baidu.com/s?id1577090844304882120&wfrspider&forpc 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 欧氏距离 二…

数值属性的相异性:闵可夫斯基距离

本文介绍数值属性刻画的对象之间的相异性度量,首先,应该把数据进行规范化,使之落入更小的值域,例[0,1],[0.0,1.0] 1:最流行的距离度量:欧几里得距离 2:曼哈顿距离 3&…

各种距离 欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准欧氏距离、马氏距离、余弦距离、汉明距离、杰拉德距离、相关距离、信息熵...

1. 欧氏距离(Euclidean Distance) 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接触到的两个点在空间中的距离一般都是指欧氏距离。 二维平面上点a(x1,y1)与b(x2,y2)间的欧氏距离: 三维空间点a(x1,y1,z1)与b(x2,y2,z2)间的欧氏距离: n维空间点a(x1…

常用的相似度计算方法----欧式距离、曼哈顿距离、马氏距离、余弦、汉明距离、切比雪夫距离、闵可夫斯基距离、马氏距离

在深度学习以及图像搜索中,经常要对特征值进行比对,得到特征的相似度,常见的特征值比对方法有汉明距离、余弦距离、欧式距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、马氏距离等,下面对各种比对方法分别进行介绍。 目录 1汉…

机器学习部分:距离的度量(欧氏距离,曼哈顿距离,夹角余弦距离,切比雪夫距离,汉明距离,闵可夫斯基距离,马氏距离)

目录 距离计算方法 1.欧式距离EuclideanDistance 2. 曼哈顿距离(ManhattanDistance) 3. 夹角余弦 4.切比雪夫距离(Chebyshevdistance) 5. 汉明距离(Hamming Distance) 6. 闵可夫斯基距离(Minkowski Distance) 7. 马氏距离(Mahalanobis Distance)…

【大数据】曼哈顿距离 欧几里得距离 与 闵可夫斯基距离Minkowski Manhattan Euclidean

这里写目录标题 闵可夫斯基距离曼哈顿距离欧几里得距离 e . g . e.g. e.g. 曼哈顿距离与欧几里得距离 三种距离计算算法 闵可夫斯基距离 闵可夫斯基距离(Minkowski Dis) ,是 曼哈顿距离(Manhattan Dis) 与 欧几里得距离(Euclidean Dis) 的一般形式。一般不常直接使…

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离)

样本相似性度量(欧几里得距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离) 在分类过程中,常常需要估算不同样本直接的 Similarity Measurement (相似性度量)。 此时常用的方法就是计算两个样本直接…

机器学习聚类算法中的闵可夫斯基距离

最近闲着没事了解一下聚类算法,闵可夫斯基距离真有趣,搞得我有点一头雾水,废话不多,上定义: 本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一…

距离度量:欧式距离/曼哈顿距离/切比雪夫距离/闵可夫斯基距离/标准化欧氏距离/余弦距离/汉明距离/杰卡德距离/马氏距离

日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2 常见的距离公式 2.1 欧式距离(Euclidean Distance): 欧氏距离是最容易直观理解的距离度量方法,我们小学、初中和高中接…

欧式距离余弦相似度matlab,相似度计算——欧氏距离,曼哈顿距离,闵可夫斯基距离,汉明距离,夹角余弦...

在机器学习领域,被俗称为距离,却不满足三条距离公理的不仅仅有余弦距离(满足正定性和对称性,但是不满足三角不等式),还有KL距离( Kulback- Leibler Divergence),也叫作相对熵(不满足对称性和三角不等式),它常用于计算两个分布之间的差异 欧氏距离 欧氏距离: 切比雪夫距离…

闵可夫斯基距离

本文从公式上表述了欧几里得距离、曼哈顿距离、切比雪夫距离记忆闵可夫斯基距离之间的关系。 一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) 0 // 到自己的距离为0 2) d(x,y) > 0 // 距离非负 3) d(x,y) d(y,x) // 对称…

闵可夫斯基距离(MinkowskiDistance)

闵可夫斯基距离(MinkowskiDistance) 闵氏距离不是一种距离,而是一组距离的定义。 (1)闵氏距离的定义 两个n维变量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的闵可夫斯基距离定义为: 其中p是一个变参数。 当p1时,就是曼哈顿距离 当p2时&#xf…