路径规划之启发式算法之二十三:免疫算法(Immune Algorithm,IA)

news/2024/12/28 4:19:23/

        免疫算法(Immune Algorithm,IA)是基于人工免疫系统的理论,受生物免疫系统的启发而推出的一种新型的智能搜索算法。通过模拟生物免疫系统的工作原理来解决优化问题。

一、定义与原理

        免疫算法是以人工免疫系统的理论为基础,实现了类似于生物免疫系统的抗原识别、细胞分化、记忆和自我调节的功能的一类算法。它借鉴了生物免疫系统的机制,如抗体与抗原的相互作用、免疫记忆、克隆选择等,来构建和优化搜索算法

二、发展历程

        1958年,澳大利亚学者Burnet提出了克隆选择原理,为免疫算法的发展奠定了理论基础。

        1973年,Jerne基于Burnet的克隆选择学说,提出了免疫系统的模型,并开创了独特型网络理论,给出了免疫系统的数学框架。

        1986年,Farmal等人基于免疫网络学说理论构造出了免疫系统的动态模型,展示了免疫系统与其他人工智能方法相结合的可能性。

三、关键参数

        (1)抗体种群大小(NP):抗体种群是免疫算法中的搜索空间,其大小直接影响算法的搜索能力和计算量。抗体种群保留了免疫细胞的多样性,种群越大,全局搜索能力越好,但计算量也相应增大。在大多数问题中,NP 取 10~100 较为合适,一般不超过 200。

        (2)免疫选择比例:免疫选择的抗体的数量越多,将产生更多的克隆,其搜索能力越强,但会增加每代的计算量。一般可以取抗体种群大小 NP 的 10%~50%。

        (3)抗体克隆扩增的倍数:这个参数影响克隆操作的规模,即每个被选中的抗体将被复制多少次,通常与免疫选择比例相关。

        (4)变异概率(pm):控制变异操作发生的概率,通常设置在0.1到0.9之间。

        (5)激励度系数(alfa, belta):用于计算激励度的系数,激励度是评价个体质量的一个标准,有利于保持个体多样性。

        (6)相似度阈值(detas):用于计算抗体浓度时的相似度阈值,当抗体之间的相似度低于这个阈值时,它们被认为是不同的。

        (7)种群刷新比例:种群刷新比例决定了每代更新的抗体数量。每代更新的抗体一般不超过抗体种群的50%。

        (8)最大进化代数(G):最大进化代数是免疫算法的运行结束条件。一般取100~500。

四、算法流程

        免疫算法的基本流程如下:

        (1)抗原识别:理解待优化问题,构造合适的亲和度函数及各种约束条件。

        (2)生成初始种群:随机产生一组抗体(解)作为初始种群。

        (3)亲和度评价:对种群中的每一个个体进行亲和度评价,即计算抗体与抗原的亲和度。

        (4)判断终止条件:判断算法是否满足终止条件(如达到最大迭代次数或找到满足要求的解),如果满足则算法终止并输出结果;否则继续寻优计算。

        (5)计算抗体浓度和激励度:根据抗体间的相似度计算抗体浓度,并根据亲和度和浓度计算抗体的激励度。抗体浓度表征抗体种群的多样性,高浓度代表种群相似性高。激励度是对抗体质量的最终评价结果,通常通过对抗体亲和度和抗体浓度进行数学运算得到.

        (6)免疫处理:包括免疫选择、克隆、变异和克隆抑制等操作。选择激励度较高的抗体进行克隆扩增,并对克隆体进行变异操作以增加多样性。然后抑制亲和度低的克隆体,保留亲和度高的克隆体进入新的抗体种群。

  • 免疫选择:选择亲和度靠前的部分抗体进行免疫处理。
  • 克隆:对活化的抗体进行克隆复制。
  • 变异:对克隆副本进行变异操作,主要针对亲和度。
  • 克隆抑制:对变异结果进行筛选,保留亲和度高的变异结果。

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

        (8)转至步骤3:重复进行亲和度评价、判断终止条件、计算抗体浓度和激励度以及免疫处理等步骤,直到满足终止条件为止。

        算法流程图:

图1 免疫算法流程图

五、数学公式

        (1)抗体与抗原的亲和度计算公式:

        亲和度是指抗体与抗原之间相互作


http://www.ppmy.cn/news/1557774.html

相关文章

【AI编译器】MLIR — 入门

前言 MLIR 社区充满活力。但由于它是一个新的且快速发展的项目,因此可用的教程和文档并不多。没有权威的MLIR书籍。大多数围绕事物的推理都来自民间传说和技术性很强的 RFC。而且由于 MLIR 构建在 LLVM(该缩写词以前的意思是“低级虚拟机”)…

负载均衡式在线OJ

文章目录 项目介绍所用技术与开发环境所用技术开发环境 项目框架compiler_server模块compiler编译功能comm/util.hpp 编译时的临时文件comm/log.hpp 日志comm/util.hpp 时间戳comm/util.hpp 检查文件是否存在compile_server/compiler.hpp 编译功能总体编写 runner运行功能资源设…

JavaScript文件端点提取与安全分析:两种高效实用的方法

提取JS文件中的所有端点(Endpoints) JavaScript文件中包含了大量的信息,对于安全研究人员来说,提取这些文件中的API端点是发现潜在漏洞的重要环节之一。在本篇文章中,我们将介绍两种高效提取JavaScript文件端点的方法。以下方法主要应用于渗透测试场景,尤其是针对目标域…

ISP算法之BNR降噪(Bayer域)

概述 BNR(Bayer Noise Reduction)即Bayer域降噪算法。对于噪声的分类如下表所示: 高斯噪声( Gaussian) 高斯噪声也被称为热噪声,通常是由于电路系统中自由电子的热运动,这种噪声幅度分布服从高…

springboot/ssm智能停车计费系统Java代码编写web停车场车位管理项目

springboot/ssm智能停车计费系统Java代码编写web停车场车位管理项目 基于springboot(可改ssm)vue项目 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&#x…

【数据库】大二数据库复习范围 (快速版)帮助你快速复习数据库

第一章 1. 信息=数据+语义 2:数据库管理系统(database management system, DBMS) 3. 数据库系统(database system, DBS)由数据库、数据库用户、计算机硬件系统和计算机软件系统等几部分组成 4. 数据模型按应用层次可分为概念模型、逻辑模型和物理模型。 5.每个二维表…

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略 目录 Excalidraw 简介 1、Excalidraw 的主要特点: Excalidraw 安装和使用方法 1、Excalidraw的安装 T1、使用 npm 安装: T2、使用 …

virtualbox7 使用 自带的nat网络配置 解决虚机上网问题

virtualbox7 使用 自带的nat网络配置 解决虚机上网问题 单纯在虚机上设置,不知为啥啊nat不好使, 后来看了网上一篇文章,不在虚机上设置。 一、在virtualbox 管理器的 管理 ------>工具------> 网络管理器 ------>NAT网络 -----…