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

        免疫算法(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)抗体与抗原的亲和度计算公式:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941422.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echarts画风向杆

1.安装echarts 2.引入echarts 4.获取数据,转换数据格式 windProfile.title.text ${moment(time.searchTime[0], ‘YYYY-MM-DD HH:mm:ss’).format( ‘YYYY-MM-DD HH:mm’ )}-${moment(time.searchTime[1], ‘YYYY-MM-DD HH:mm:ss’).format(‘YYYY-MM-DD HH:mm’)…

【落羽的落羽 C语言篇】自定义类型——结构体

文章目录 一、结构体1. 结构体类型的概念和声明2. 结构体变量的创建和初始化3. 结构体成员的访问3.1 直接访问3.2 间接访问 4. 结构体的内存对齐4.1 内存对齐的规则4.2 内存对齐的原因4.3 修改默认对齐数 5. 结构体传参6. 结构体实现位段 在C语言中,已经提供了一些基…

CSS盒子模型(溢出隐藏,块级元素和行级元素的居中对齐,元素样式重置)

overflow:值 规定了内容溢出元素框时所发生的事情 visible:内容不会被修剪,会显示在元素框之外,默认值 overflow: visible; hidden:内容会被修剪,溢出内容不可见 overflow: hidden; scroll:内…

Spark-Streaming集成Kafka

Spark Streaming集成Kafka是生产上最多的方式,其中集成Kafka 0.10是较为简单的,即:Kafka分区和Spark分区之间是1:1的对应关系,以及对偏移量和元数据的访问。与高版本的Kafka Consumer API 集成时做了一些调整,下面我们…

【Python】pandas库---数据分析

大学毕业那年,你成了社会底层群众里,受教育程度最高的一批人。 前言 这是我自己学习Python的第四篇博客总结。后期我会继续把Python学习笔记开源至博客上。 上一期笔记有关Python的NumPy数据分析,没看过的同学可以去看看:【Pyt…

数字IC后端设计实现篇之TSMC 12nm TCD cell(Dummy TCD Cell)应该怎么加?

TSMC 12nm A72项目我们需要按照foundary的要求提前在floorplan阶段加好TCD Cell。这个cell是用来做工艺校准的。这个dummy TCD Cell也可以等后续Calibre 插dummy自动插。但咱们项目要求提前在floorplan阶段就先预先规划好位置。 TSCM12nm 1P9M的metal stack结构图如下图所示。…

LiteFlow决策系统的策略模式,顺序、最坏、投票、权重

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 想必大家都有听过或做过职业和性格测试吧,尤其是现在的毕业生,在投了简历之后经…

YashanDB 23.2 YAC -单库多实例架构多活共享集群安装部署指南

一、概述 1.1 文档目标 ​ 本说明旨在指导技术人员在 CentOS 7 x86_64 操作系统上完成崖山数据库企业版 23.2 的共享集群安装与部署。通过系统架构、集群拓扑及部署需求的精确描述,帮助读者在开始安装前对崖山数据库的架构形成清晰认识。本文以高效、稳定、安全为…

某科技局国产服务器PVE虚拟化技术文档

环境介绍 硬件配置 服务器品牌:黄河 型号:Huanghe 2280 V2 Cpu型号:kunpeng-920 磁盘信息 :480SSD * 2 ,4T*4 网卡:板载四口千兆 如下表 四台服务器同等型号配置,均做单节点虚拟化,数据保护采用底层r…

Gin-vue-admin(4):项目创建前端一级页面和二级页面

目录 创建一级页面创建二级页面 创建一级页面 view目录下新建一个my&#xff0c;Index.vue <template></template><script> export default {name:My, } </script><script setup> import {ref} from vue const myNameref("name") &…

Ubuntu下的tcl/tk编程快速入门

一、Tcl/Tk 简介 接口介绍 https://www.tutorialspoint.com/tcl-tk/tcl_tk_quick_guide.htm GUI Canvas接口 https://www.tutorialspoint.com/tcl-tk/tk_canvas_widgets.htm tcl语言 https://www.tcl-lang.org/ 官方教程 https://www.tcl.tk/man/tcl8.5/tutorial/tcltutoria…

数字化审计咨询服务,企业转型数字化审计的必要条件

人工智能、云计算、大数据、物联网等新兴技术的快速发展&#xff0c;为企业的数字化转型提供了强大的技术支持。这些技术逐渐被应用到企业运营管理的方方面面&#xff0c;推动了企业内部审计工作的变革。随着数字化转型的深化和信息技术的不断发展&#xff0c;数字化审计将成为…

【QT常用技术讲解】发送POST包(两种方式:阻塞方式及非阻塞方式)

前言 http/https(应用层)协议是广泛使用的网络通信协议。在很多与第三方API对接的场景中&#xff0c;通常是通过http/https协议完成&#xff0c;比如API对接时&#xff0c;通常要通过POST包获取access_token进行鉴权&#xff0c;然后再进行数据交互&#xff08;本篇也包含有对接…

重撸设计模式--代理模式

文章目录 定义UML图代理模式主要有以下几种常见类型&#xff1a;代理模式涉及的主要角色有&#xff1a;C 代码示例 定义 代理模式&#xff08;Proxy Pattern&#xff09;属于结构型设计模式&#xff0c;它为其他对象提供一种代理以控制对这个对象的访问。 通过引入代理对象&am…

【Steel Code】 10.5 COMPOSITE COLUMNS

10.5 COMPOSITE COLUMNS 组合柱 10.5.1 General 总则 (1) This clause applies for the design of composite columns and composite compression members with fully encased H sections, partially encased H sections, and infilled rectangular and circular hollow sect…

11.vector的介绍及模拟实现

1.vector的介绍 记得之前我们用C语言实现过顺序表&#xff0c;vector本质上也是顺序表&#xff0c;一个能够动态增长的数组。 vector 的底层实现机制 - 动态数组&#xff1a;vector 的底层实现是动态数组。它在内存中连续存储元素&#xff0c;就像一个可以自动调整大小的数…

封装(2)

大家好&#xff0c;今天我们来介绍一下包的概念&#xff0c;知道包的作用可以更好的面对今后的开发&#xff0c;那么我们就来看看包是什么东西吧。 6.3封装扩展之包 6.3.1包的概念 在面向对象体系中,提出了一个软件包的概念,即:为了更好的管理类,把多个类收集在一起成为一组…

go官方日志库带色彩格式化

go默认的 log 输出的日志样式比较难看&#xff0c;所以通过以下方式进行了美化和格式化&#xff0c;而且加入了 unicode 的ascii码&#xff0c;进行色彩渲染。 package mainimport ("fmt""log""os""runtime""strings""…

0基础学前端系列 -- 深入理解 HTML 布局

在现代网页设计中&#xff0c;布局是至关重要的一环。良好的布局不仅能提升用户体验&#xff0c;还能使内容更具可读性和美观性。HTML&#xff08;超文本标记语言&#xff09;结合 CSS&#xff08;层叠样式表&#xff09;为我们提供了多种布局方式。本文将详细介绍流式布局、Fl…

Windows开启IIS后依然出现http error 503.the service is unavailable

问题背景 已启用IIS服务&#xff0c;配置步骤可以参考Windows10 IIS Web服务器安装配置 问题描述 在这一步浏览网站时&#xff0c;并没有出现默认首页&#xff0c;而是 http error 503 the service is unavailable 问题解决 参考 成功解决http error 503.the service is un…