声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
原理简介
一、初始化阶段
二、综合淘汰阶段
三、局部清除阶段
四、后巩固阶段
算法流程图和伪代码
性能测评
参考文献
完整代码
青蒿素优化算法(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等任意优化算法均可,保证测试函数效果!
更多免费代码链接:更多代码链接