青蒿素优化算法(AO)-2024年新算法-公式原理详解与性能测评 Matlab代码免费获取

本文主要是介绍青蒿素优化算法(AO)-2024年新算法-公式原理详解与性能测评 Matlab代码免费获取,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 

目录

原理简介

一、初始化阶段

二、综合淘汰阶段

三、局部清除阶段

四、后巩固阶段

算法流程图和伪代码

性能测评

参考文献

完整代码


        青蒿素优化算法(AlgorithmArtemisinin optimization, AO)是一种新型的元启发式算法(智能优化算法),灵感来源于疟疾的青蒿素药物治疗过程。这个算法的灵感还是比较独特的,脱离了动物园的范畴~作者在经典的IEEE CEC 2014和最新的IEEE CEC 2022基准函数集上对AO进行了测试,并将AO应用于乳腺癌病理图像分割取得了不错的效果。该成果由Chong Yuan等人于2024年5月发表在SCI二区期刊Displays上!

        由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!

原理简介

        灵感:在初始治疗阶段,采用高剂量的青蒿素药物来控制疟疾症状并迅速减少寄生虫数量。大量的药物通过血液迅速扩散,渗透到整个空间(人体),寻找最终的解决方案(寄生虫)。随后,治疗逐渐进入维持阶段。在此阶段,减少药物剂量,旨在坚持清除体内残留的疟疾寄生虫,直到达到最隐蔽的“解决方案”。最终目标是彻底根除和治愈疟疾。通过对整个过程的分析,并利用其复杂的细节,本研究提出了青蒿素优化(AO)。

一、初始化阶段

        患者通过口服或注射将青蒿素药物引入体内。受此启发,本文将药物微粒概念化为算法的搜索代理,这些搜索代理的整体集合构成算法的解集。最初,初始化整个种群,记为A。如式(1)所示,完整总体由N个搜索代理组成,其中D表示搜索代理内的多维组件。这种抽象反映了药物在人体内的分解和吸收,通过血液分散到全身的各个部位。

        式中,T和B表示解空间的边界,R表示一组随机数序列,其取值范围为[0,1]。AO采用元启发式算法中的常用方法,利用随机数序列生成初始解。

二、综合淘汰阶段

        在疟疾治疗的初始阶段,给病人更大剂量的药物,以迅速控制疾病的进展。青蒿素一旦被吸收,就会随着血液被输送到人体的各个部位而扩散到全身。药物在体内的分布受血流、血管通透性和药物与蛋白质的结合亲和力等因素的影响。此外,人体复杂的结构给青蒿素类药物带来了复杂的挑战。考虑到这些因素,本节引入一种独特的搜索模型来模拟药物扩散过程,如式(2)所示:

        在该策略中,搜索代理表现出大规模分散的特征,作为探索复杂解空间的向导。其中,a_(i,j)^(t+1)和a_(i,j)^t分别表示更新前后的搜索代理,best为当前最优。同时,青蒿素类药物在人体内的扩散遵循药代动力学原理。该策略考虑到药物浓度会随着时间的推移而降低这一事实。式(2)中,c表示药物在人体内浓度的衰减指数。青蒿素药物浓度的衰减可以用单室模型描述,如下所示:

        在式(3)中,变量C表示药物浓度,k表示速率常数。求解该微分方程得到式(4):C(t)表示t时刻的药物浓度。在该模型中,随着时间的推移,药物浓度C(t)呈指数衰减。因此,青蒿素药物浓度的指数c可由式(5)计算:

        在该策略中,假设初始药物浓度为1,药物衰减率为4,利用算法的评价过程来模拟模型中的时间进程。其中,f和Maxf表示算法的当前和最大迭代次数。考虑到患者病情严重程度的差异和生理因素的差异,导致不同的用药剂量和持续时间,患者在这一阶段可能花费不同的持续时间。为了概括这种内在的可变性,我们引入了一个概率系数K,如式(6)所示:

        式中,K作为概率系数,结合算法的评估进度,模拟客观场景,即患者在此阶段根据个体情况表现出不同的反应和持续时间。本节简要模拟了每个粒子的运动过程,如下图所示。最终,综合淘汰阶段策略可由式(7)表示:

        式中r_1是一个范围为[0,1]的随机数。在最初的治疗阶段之后,随着疾病得到控制,治疗过渡到维持阶段,以确保彻底治愈疟疾。

三、局部清除阶段

        维持阶段的目标是消除体内任何残留的疟疾寄生虫,防止其繁殖和疟疾症状的复发。虽然早期治疗通常会迅速缓解症状,但少量疟疾寄生虫可能在体内持续存在,特别是在严重感染的情况下。在这一阶段,患者继续接受低剂量青蒿素及其衍生物的治疗,以确保完全根除疟疾寄生虫,尽量减少在人体内发生不良反应的风险。受此启发,本文设计了一种局部清除阶段策略。在该策略中,粒子的运动过程如下图所示,通过Eq.(8)计算得出粒子的位置:

        式中,Fit_norm (i)表示归一化的适应度值,将适应度值转化为概率分布,作为个体间的相对权重。这就保证了适应度越高的个体对应的概率越大。这有助于在一定程度上保留优秀的个体,同时为表现较差的个体提供机会,调整算法对不同个体的关注。d表示系数,取[0.1,0.6]之间的随机值。这一策略模拟了少量青蒿素清除人体内潜在疟疾寄生虫的过程。维护阶段策略允许算法利用和交换本地信息。在MAs中,个体之间的信息交换发生在迭代过程中。如果一个算法的信息交换是彻底的,它的性能可能会得到显著的提高。

四、后巩固阶段

        对疾病的严重程度漠不关心和治疗期间的松懈是危险的有害因素。由于病情的改善,患者可能会逐渐降低对疟疾的警惕,减少用药频率和剂量,甚至停止治疗,这可能导致疾病复发。尽管已经过了攻击和维持阶段,即体内大多数疟疾寄生虫已被根除,但仍有一小部分寄生虫可能逐渐产生对青蒿素的耐药性。它们甚至可能进入一个休眠阶段,被称为“休眠形式”,这大大降低了它们的生物活性,使药物难以发挥有效的杀伤作用。如果停止治疗,疟疾寄生虫在通过休眠形式后,可能导致疾病复发。患者应严格遵守计划,以免有机会感染疟疾。

        本部分代表了后巩固阶段遇到意外情况的可能性,并模拟这一特定情况。在这种策略中,假设不活跃的寄生虫形式仍然存在于人体内。不幸的是,尽管这些休眠寄生虫持续存在,一些患者仍可能再次出现疟疾。该策略的模型用Eq.(11)表示:

        在这个方程中,best_(i,j)表示第j维当前最优解的子向量。式(11)表示由于进入休眠阶段而未被消灭的疟原虫。如上图所示,该策略增强了搜索代理逃避局部最优的能力。

算法流程图和伪代码

        用青蒿素治疗疟疾患者的整个过程是AO的灵感。本文通过对疟疾治疗过程的考察,结合元启发式算法原理,分析了不同阶段的疟疾治疗策略,从中得到启发,提出了不同的疟疾治疗策略。这些策略包括全面消除阶段策略,鼓励算法进行全局探索;局部清除阶段策略,促进局部利用,后巩固阶段策略,增强算法逃避局部最优的能力。

        总的来说,AO背后的灵感和算法的操作流程可以概括如下:

        (1)最初,从人体内疟疾寄生虫的寄生特性中获得灵感,将人体比喻为一个具有约束的“空间”。入侵的疟疾寄生虫被视为有待探索的“解决方案”,而青蒿素药物被视为算法中的搜索代理。

        (2)受在治疗初期以高剂量药物控制疾病过程的启发,引入了综合消除阶段策略。在此策略下,AO获得全局搜索能力,快速探索整个空间并发现最优解的潜在区域。

        (3)从治疗后期逐步控制病情和减少用药剂量的启示,提出局部清除期策略。该策略允许算法探索潜在的局部最优解。

        (4)最后,考虑到治疗过程中潜伏疟原虫唤醒可能导致症状复发,引入了后巩固阶段策略,增强了算法逃避局部最优的能力。

        为了使大家更好地理解,这边给出算法流程图和伪代码,非常清晰!

        如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!

性能测评

        原文作者在经典的IEEE CEC 2014和最新的IEEE CEC 2022基准函数集上对AO进行了测试,对8种成熟算法和8种高性能改进算法进行了对比分析,最后将AO应用于乳腺癌病理图像分割中。使用6个阈值水平的15幅真实医学图像,比较了AO与8种不同算法的分割性能。实验结果表明,AO在图像分割精度、特征相似度指数(FSIM)、峰值信噪比(PSNR)和结构相似度指数(SSIM)等方面优于对比算法。

        这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与2023年新出的霜冰优化算法RIME进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!

        可以看到,AO在大部分函数上都超过了2023年新出的RIME算法,表明该算法性能还是较为优越的,大家应用到各类预测、优化问题中是一个不错的选择~

参考文献

        [1]Yuan C, Zhao D, Heidari A A, et al. Artemisinin optimization based on malaria therapy: Algorithm and applications to medical image segmentation[J]. Displays, 2024: 102740.

完整代码

        如果需要免费获得图中的完整测试代码,只需后台回复关键字:

AO

        也可后台回复个人需求(比如AO-SVM)定制以下青蒿素算法优化模型(看到秒回):

        1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~

        2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM/RVM/ELM/LSTM/BiLSTM/GRU/BiGRU/Attention机制类等均可(可任意搭配非常新颖)~

        3.分解类:EMD、EEMD、VMD、REMD、FEEMD、TVFEMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~

        4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~

        5.原创改进优化算法(适合需要创新的同学):2024年的青蒿素优化算法AO以及麻雀SSA、蜣螂DBO等任意优化算法均可,保证测试函数效果!

        更多免费代码链接:更多代码链接

这篇关于青蒿素优化算法(AO)-2024年新算法-公式原理详解与性能测评 Matlab代码免费获取的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985498

相关文章

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul