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

article/2025/9/24 13:45:05

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

1 算法概念

免疫算法是受生物免疫系统的启发而推出的一种新型的智能搜索算法。 

2 主要特点

全局搜索能力

多样性保持机制

鲁棒性强

并行分布式搜索机制

3 算法流程

3.1 产生初始抗体种群

基于概率随机生成。

3.2 计算亲和度

依据函数值或函数值的简单处理(倒数、相反数),亲和度表示为aff。

3.3 计算抗体浓度和激励度

抗体浓度表征抗体种群的多样性好坏,浓度高代表种群相似大量存在,抗体浓度表示为den。

有3中方法计算浓度:基于欧式距离、基于海明距离、基于信息熵。

激励度是对抗体质量的最终评价结果,通常通过对抗体亲和度aff和抗体浓度den进行简单数学运算得到,激励度sim=a*aff-b*den,其中a,b为计算参数。

3.4 免疫处理

免疫选择,选择亲和度靠前的部分进行免疫处理,一般取前NP/2,使其活化。

克隆,对活化的抗体进行克隆复制。

变异,对克隆副本进行变异操作,保留被克隆抗体,主要针对亲和度。

克隆抑制,对变异结果进行筛选,保留亲和度高的变异结果。

3.5 种群刷新

随机生成部分新的抗体种群,与免疫处理的抗体合并,形成新一代抗体。

4 关键参数

4.1 抗体种群大小NP

取10-100合适,一般不超过200。

4.2 免疫选择比例

一般取NP规模的10%-50%。

4.3 抗体克隆扩增的倍数NC

倍数越大,局部搜索能力越好,但计算量增加,一般取5-10倍。

4.4 最大进化代数G

一般取100-500。

5 仿真实例

5.1 问题描述

TSP-旅行商问题,假如一个商人需要拜访31个省会城市,每个城市只能拜访1次,求拜访的最小路径。

5.2 求解代码

5.2.1 创建初始免疫种群

%%%%%初始化参数
C = [1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;4196 1044;4312 790 ;4386 570 ;3007 1970;2562 1756;2788 1491;2381 1676;1332 695 ;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908;3507 2376;3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975];
NP=200;
N=size(C,1);
G=1000;
%%%%%初始种群
f=zeros(N,NP);
for i=1:NPf(:,i)=randperm(N);
end

5.2.2 亲和度计算

len=zeros(1,NP);
%%%%%任意城市间距离
D=zeros(N);
for i=1:Nfor j=1:ND(i,j)=((C(i,1)-C(j,1))^2 + (C(i,2)-C(j,2))^2)^0.5;end
end
%%%%%计算路径长度--亲和度
for i=1:NPlen(i)=func3(D,f(:,i),N);
end
[sortlen ,index]=sort(len);
sortf=f(:,index);
NC=10;
%%%%%路径长度函数
function result = func3(D,f,N)len=D(f(1),f(N));for j=2:Nlen=D(f(j),f(j-1))+len;endresult=len;
end

5.2.3 免疫操作

gen=1;
%%%%%免疫循环
while gen<=G%%%%%选择激励度前NP/2个体进入免疫操作for i=1:NP/2a=sortf(:,i);ca=repmat(a,1,NC);for j=1:NCp1=floor(1+N*rand);p2=floor(1+N*rand);while p1==p2p1=floor(1+N*rand);p2=floor(1+N*rand);endtmp=ca(p1,j);ca(p1,j)=ca(p2,j);ca(p2,j)=tmp;endca(:,1)=a;%%%%%克隆抑制for j=1:NCcalen(j)=func3(D,ca(:,j),N);end[sortcalen,index]=sort(calen);sortca=ca(:,index);af(:,i)=sortca(:,1);alen(i)=sortcalen(1);end

5.2.4 种群刷新

 %%%%%免疫种群与新生种群合并--种群刷新for i=1:NP/2bf(:,i)=randperm(N);blen(i)=func3(D,bf(:,i),N);endf=[af bf];len=[alen blen];[sortlen, index]=sort(len);sortf=f(:,index);gen=gen+1;trace(gen)=sortlen(1);
end

5.2.5 结果输出

%%%%%输出优化结果
figure;
bestf=sortf(:,1);
bestlen=trace(end);
for i=1:N-1plot([C(bestf(i),1),C(bestf(i+1),1)],[C(bestf(i),2),C(bestf(i+1),2)],'o-');hold on;
end
plot([C(bestf(N),1),C(bestf(1),1)],[C(bestf(N),2),C(bestf(1),2)],'ro-');
title(['最短距离:',num2str(bestlen)]);
figure;
plot(trace);
xlabel('迭代次数');
ylabel('目标函数值');
title('亲和度进化曲线');

5.3 问题结果

图3 亲和度进化曲线 

图4 最短路径行程


http://chatgpt.dhexx.cn/article/1c4ZcCx0.shtml

相关文章

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

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

免疫算法(Immune Algorithm)详解

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

免疫算法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

闵可夫斯基距离

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

闵可夫斯基距离(MinkowskiDistance)

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

Linux操作系统概述

Linux操作系统概述 Linux发展历史Linux的发展要素Linux与UNIX的异同操作系统类型选择和内核版本的选择Linux的系统架构 Linux内核的主要模块Linux的文件结构 Linux发展历史 Linux操作系统于1991年诞生&#xff0c;目前已经成为主流的操作系统之 一 。其版本从开始的0.01版本到…

国产Linux操作系统

一、Kylin OS&#xff1a;由麒麟软件公司发行的Debian系Linux操作系统。 包含四个版本&#xff1a; 1、银河Kylin&#xff1a;为银河麒麟Linux操作系统收费版本。 2、Neo Kylin&#xff1a;是中标麒麟&#xff0c;为麒麟软件与中标软件合并后的发行版本。 3、Open Kylin&…