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

news2024/12/24 13:10:30

        免疫算法(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.coloradmin.cn/o/2264735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.5.1 文件管理基本概念

文章目录 文件文件系统文件分类 文件 文件:具有符号名,逻辑上有完整意义的一组相关信息的集合。 文件包含文件体、文件说明两部分。文件体存储文件的真实内容,文件说明存放操作系统管理文件所用的信息。 文件说明包含文件名、内部标识、类型、…

C#调用WebService的方法

一、前言 在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中如何调用WebService。 1.创建WebService (1)新建项目——模板选择ASP.NET Web 应用程序 &a…

(免费源码)基于springboot的电影院订票系统设计与实现 计算机毕业设计 P10089

项目说明 本号所发布的项目均由我部署运行验证,可保证项目系统正常运行,以及提供完整源码。 如需要远程部署/定制/讲解系统,可以联系我。定制项目未经同意不会上传! 项目源码获取方式放在文章末尾处 注:项目仅供学…

python 定时任务管理封装

主逻辑代码 # -*- coding: utf-8 -*- # import apscheduler import pandas as pd from datetime import datetime # 导入调度器,此处使用BackgroundScheduler阻塞调度器 from apscheduler.schedulers.background import BackgroundScheduler # 导入触发器&#xf…

国标GB28181协议平台Liveweb:搭建建筑工地无线视频联网监控系统方案

随着科技高速发展,视频信号经过数字压缩,通过互联网宽带或者移动4G网络传递,可实现远程视频监控功能。将这一功能运用于施工现场安全管理,势必会大大提高管理效率,提升监管层次。而这些,通过Liveweb监控系统…

C++----------函数的调用机制

栈帧的创建与销毁 栈帧创建过程 当一个函数被调用时,系统会在程序的栈空间中为该函数创建一个栈帧。首先,会将函数的返回地址(即调用该函数的下一条指令的地址)压入栈中,这确保函数执行完后能回到正确的位置继续执行后…

【Leetcode】855. 考场就座

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 在考场里,有 n n n 个座位排成一行,编号为 0 0 0 到 n − 1 n - 1 n−1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个…

Unity引擎学习总结------动画控件

左侧窗格可以在参数视图和图层视图之间切换。参数视图允许您创建、查看和编辑动画控制器参数。这些是您定义的变量,用作状态机的输入。要添加参数,请单击加号图标并从弹出菜单中选择参数类型。要删除参数,请在列表中选择该参数并按删除键&…

UE4_用户控件_1_滑块控制图像颜色的变化

祝愿大美兰陵越来越好,祝愿祖国繁荣昌盛,祝愿人民幸福安康! 一、样式展示: 效果,当角色靠近物体(只有一个胶囊碰撞体)时显示用户控件,调整控件中的滑块值,可以改变UE4lo…

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章:网络编程 01:计算机网络概述,网络的作用,网络通信的要素,以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址,包括 IP 地址的作用、分类&#xff…

【pycharm】远程服务器之后如何打开终端

【pycharm】远程服务器之后如何打开终端 在pycharm中,我们通过远程连接服务器,此时如果我们需要在终端运行的话,并不能直接在本地终端运行,而是需要连接到服务器终端才能运行命令 设置如下: 输入服务器的ip、端口、…

C#+OpenCv深度学习开发(常用模型汇总)

在使用 OpenCvSharp 结合深度学习进行机器视觉开发时,有许多现成的模型可以使用。以下是一些常用的深度学习模型,适用于不同的机器视觉任务,包括物体检测、图像分类和分割等。 使用示例 在 OpenCvSharp 中加载和使用这些模型的基本示例&…

dolphinscheduler服务注册中心源码解析(三)RPC提供者服务整合注册中心注册服务实现源码

RPC提供者服务整合注册中心注册服务实现源码 1.概述2.源码解读思路3.实现2.1.应用服务的RPC服务接口定义2.1.1.MasterServer应用中提供的RPC接口服务2.1.2.WorkerServer应用中提供的RPC接口服务2.2.应用服务的RPC服务接口实现2.2.1.MasterServer应用中提供的RPC接口服务实现类2…

重生之我在异世界学编程之C语言:数据在内存中的存储篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 引言正文一、数据类型介绍1.内置类型2.自定义…

线程的概念及基本应用

目录 线程的概念 Java中多线程应用 继承Thread类 实现Runnable接口 实现Callable接口 线程的生命周期 线程的基本操作及原理 Thread.join的使用及原理 Thread.sleep的作用 问题 Thread.sleep的工作流程 wait和notify的使用 wait notify 例子 生产者消费者模式 Th…

联通软研院:基于OceanBase落地检索增强生成 (RAG) 的应用实践

本文作者:邱永刚,联通软件研究院OceanBase研发负责人,主要负责中国联通自研关系型数据库分布式CUDB研发、支撑、运维工作。 近年来,生成式人工智能技术取得了飞速进步,很多大模型在自然语言处理及对话系统领域的运用吸…

【更新】LLM Interview

课程链接:BV1o217YeELo 文章目录 LLM基础相关1. LLMs概述2. 大语言模型尺寸3. LLMs的优势与劣势4. 常见的大模型分类5. 目前主流的LLMs开源模型体系有哪些(Prefix Decoder,Causal Decoder,Encoder-Decoder的区别是什么&#xff09…

模型 课题分离

系列文章 分享 模型,了解更多👉 模型_思维模型目录。明确自我与他人责任。 1 课题分离的应用 1.1课题分离在心理治疗中的应用案例:李晓的故事 李晓,一位28岁的软件工程师,在北京打拼。他面临着工作、家庭和感情的多重…

sqlite 自定以脚本解释器

应用程序使用 libfdt 解析设备树,获取兼容性配置 内核源码支持libfdt 标准设备树语法,不用自己再创造 非常的爽,因为设备树支持预编译 一些可以跑类 BSD 系统的设备也可以使用这样的方法,不仅仅是在linux 系统上跑 有pylibfdt 支持解析设备树,校验设备树是否是正确的…

某医院vsan部署技术手册

环境配置 服务器4900G5五台 配置信息:cpu 8368*2颗 ,内存256GB ,双口万兆网卡两个,四口千兆,RAID卡LSI9361-8i12G SAS RAID ,两块固态盘480SSD ,2*1.92TB NVME盘,5*8T盘。 万兆交换机两台H3C…