2024年最新算法:青蒿素优化算法(Artemisinin Optimization Algorithm, AOA)原理介绍

news2024/11/25 10:51:09

青蒿素优化算法(Artemisinin Optimization Algorithm, AOA)是2024年提出的一种受青蒿素抗疟疾特性启发的元启发式优化算法。青蒿素是一种从中草药青蒿中提取的化合物,因其在治疗疟疾方面的显著效果而闻名。AOA算法的设计者将青蒿素的这一特性抽象为优化策略,用于解决工程和科学中的优化问题。

1.算法原理

青蒿素优化算法的核心思想是模拟青蒿素在体内的分布和作用机制,通过模仿其在对抗疟疾时的搜索和攻击策略来寻找问题的最优解。算法中的每个解被视为一个“青蒿素分子”,而搜索空间则相当于疟疾病原体所在的环境。

2.算法描述:

  • 搜索代理(Search Agents):在AO算法中,每个搜索代理代表了一个潜在的解决方案,它们在解空间中搜索最优解。
  • 适应度评估(Fitness Evaluation):根据问题的具体目标,评估每个搜索代理的性能。
  • 全面消除策略(Comprehensive Elimination Strategy):通过模拟药物扩散,引导搜索代理进行全局探索,以快速识别解空间中的潜在区域。
    在这里插入图片描述

在这里插入图片描述

  • 局部清除策略(Local Clearance Strategy):在全面消除后,算法转向局部搜索,以精细化搜索过程并提高解的质量。
    在这里插入图片描述

  • 后期巩固策略(Post-Consolidation Strategy):为了应对可能的复发,通过特定的机制增强算法的多样性,避免过早收敛。
    在这里插入图片描述

  • 概率系数(Probabilistic Coefficient):引入概率系数来模拟患者对药物的不同反应,增加算法的适应性和灵活性。

  • 信息交叉(Information Crossover):在后期巩固阶段,通过信息交叉机制,增强搜索代理的探索能力,以逃离局部最优。

3.算法流程:

在这里插入图片描述

在这里插入图片描述

  1. 初始化阶段(Initialization Phase)

    • 随机初始化一组搜索代理(agents),这些代理构成了算法的解空间。
    • 评估每个代理的适应度(fitness),并找出当前最优解。
  2. 全面消除阶段(Comprehensive Elimination Phase)

    • 模拟青蒿素在治疗初期的高剂量给药,以快速减少疟原虫数量。
    • 更新搜索代理的位置,模拟药物在人体内的扩散,调整搜索步长。
  3. 局部清除阶段(Local Clearance Phase)

    • 模拟治疗中后期降低药物剂量,以清除剩余的疟原虫。
    • 通过更新策略,使算法在已知区域内进行精确解的搜索,增强局部开发能力。
  4. 后期巩固阶段(Post-Consolidation Phase)

    • 考虑到疾病复发的可能性,引入策略以增强算法逃离局部最优的能力。
    • 通过信息交叉(information crossover)等机制,防止算法陷入局部最优。
  5. 迭代更新(Iteration Update)

    • 在每次迭代中,根据上述三个阶段的策略更新搜索代理的位置。
    • 评估新的适应度值,并更新最优解。
  6. 终止条件(Termination Condition)

    • 当达到最大迭代次数或其他预设的终止条件时,算法停止。
    • 返回找到的最优解。

4.算法特点

  • 自适应性:AOA算法能够根据搜索进程动态调整搜索策略,以适应不同阶段的优化需求。
  • 鲁棒性:由于其模仿的青蒿素作用机制,AOA算法在面对复杂和多变的优化问题时表现出较好的鲁棒性。
  • 简单性:算法的实现相对简单,易于编码和调整,适用于各种优化问题。

5.核心代码


%--------------------------------------------------------------------------
% 🌿🦟 Artemisinin Optimization (AO) 🦟🌿
% Artemisinin Optimization based on Malaria Therapy: Algorithm and Applications to Medical Image Segmentation

% 📚 Reference:
% Chong Yuan, Dong Zhao, Ali Asghar Heidari, Lei Liu, Yi Chen, Zongda Wu, Huiling Chen,
% "Artemisinin Optimization based on Malaria Therapy: Algorithm and Applications to Medical Image Segmentation",
% Displays, Elsevier, 2024.
function [Leader_pos,bestfitness,Convergence_curve]=AO(fobj,lb,ub,dim,N,MaxFEs)
% Initialization parameters
FEs=0;
it=1;
%% Initialization of the solution set
pop=initialization(N,dim,ub,lb);
%Calculate the fitness value of the initial solution set
for i=1:N
    Fitness(i)=fobj(pop(i,:));
    FEs=FEs+1;
end
[fmin,x]=min(Fitness);
%Container
New_pop=zeros(N,dim);
Fitnorm=zeros(1,N);
Convergence_curve=[];
%Record the current optimal solution
best=pop(x,:);
bestfitness=fmin;
%% Main loop
while FEs<=MaxFEs
    
    K= 1-((FEs)^(1/6)/(MaxFEs)^(1/6));
    E =1*exp(-4*(FEs/MaxFEs));
    %
    for i=1: N
        Fitnorm(i)= (Fitness(i)-min(Fitness))/(max(Fitness)-min(Fitness));
        for j=1:dim
            if rand<K
                if rand<0.5
                    New_pop(i,j) = pop(i,j)+E.*pop(i,j)*(-1)^FEs;
                else
                    New_pop(i,j) = pop(i,j)+E.*best(j)*(-1)^FEs;
                end
            else
                New_pop(i,j)=pop(i,j);
            end
            if rand<Fitnorm(i)
                A=randperm(N);
                beta=(rand/2)+0.1;
                New_pop(i,j)=pop(A(3),j)+beta.*(pop(A(1),j)-pop(A(2),j)); 
            end
        end
        
        New_pop(i,:)=Mutation(New_pop(i,:),pop(i,:),best,dim);
        New_pop(i,:)=Transborder_reset(New_pop(i,:),ub,lb,dim,best);
        
        tFitness=fobj(New_pop(i,:));
        FEs=FEs+1;
        if tFitness<Fitness(i)
            pop(i,:)= New_pop(i,:);
            Fitness(i)=tFitness;
        end
    end
    
    [fmin,x]=min(Fitness);
    if fmin<bestfitness
        best=pop(x,:);
        bestfitness=fmin;
    end
    
    Convergence_curve(it)=bestfitness;
    Leader_pos=best;
    it=it+1;
end
end

6.参考文献

[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, 84.DOI:10.1016/j.displa.2024.102740.

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

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

相关文章

【机器学习】深入浅出讲解贝叶斯分类算法

0. 前言 1.贝叶斯分类器介绍 贝叶斯分类是一类分类算法的总称&#xff0c;这类算法均以贝叶斯定理为基础&#xff0c;故统称为贝叶斯分类。而朴素贝叶斯&#xff08;Naive Bayes&#xff09;分类是贝叶斯分类中最简单&#xff0c;也是常见的一种分类方法。 一些很常见的分类…

动态规划最大子段和讲解和【题解】——最大子段和

动态规划最大子段和讲解和【题解】——最大子段和 1.详细讲解最大子段和题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示样例 1 解释数据规模与约定 1.1.思路解析1.2.AC代码 2.优化3.别言 1.详细讲解 最大子段和 题目描述 给出一个长度为 n n n 的序列 a a a&am…

cursor: mutex X 等待事件分析

背景&#xff1a; v$session中同一个sql语句bhaku1zp2w5v7大量等待cursor: mutex X &#xff0c;且等待事件较长。 分析&#xff1a; 什么是cursor: mutex X&#xff1f; 任何操作或访问游标的操作都可能需要等待访问共享池中支持游标的结构。在极端争用的情况下&#xff0c…

MySQL 【数字】函数大全(一)

ABSCEILCEILINGCONVDIVFLOORCREATESTLEAST 1、ABS ABS(number) &#xff1a;返回指定数字的绝对值 如果参数 number 为字符串&#xff0c;ABS() 将按照如下规则尝试转为数字&#xff1a; 如果以数字开头&#xff0c;则将开头的数字部分转为数字。如果不能转为数字&#xff0c;…

使用Go语言的gorm框架查询数据库并分页导出到Excel实例

文章目录 基本配置配置文件管理命令行工具: Cobra快速入门基本用法 生成mock数据SQL准备gorm自动生成结构体代码生成mock数据 查询数据导出Excel使用 excelize实现思路完整代码参考 入口文件效果演示分页导出多个Excel文件合并为一个完整的Excel文件 完整代码 基本配置 配置文…

Vue环境安装以及配置

这里写目录标题 前言一、前置要求1.安装Node.js2. 安装VScode 二、创建全局安装目录和缓存日志目录三、配置环境变量四、权限五、配置镜像六、vscode插件1. Vue-Offical2. Vue 3 Snippets3. Path Intellisense4. Auto Import5. Auto Close Tag6. Auto Rename Tag7.GitLens总结 …

001 Hadoop安装、Spring整合测试

Hadoop安装、整合测试 文章目录 Hadoop安装、整合测试1.简介1.优点2.组成 2.安装1.安装jdk&#xff08;如已安装可跳过&#xff09;2.安装hadoop1.安装2. 修改配置文件core-site.xml3. 修改配置文件hdfs-site.xml4.启动hadoop5.启动yarn6.执行jps查看7.相关端口及配置位置8.访问…

2024年【制冷与空调设备安装修理】考试及制冷与空调设备安装修理新版试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 制冷与空调设备安装修理考试是安全生产模拟考试一点通总题库中生成的一套制冷与空调设备安装修理新版试题&#xff0c;安全生产模拟考试一点通上制冷与空调设备安装修理作业手机同步练习。2024年【制冷与空调设备安装…

STM32CubeIDE使用ADC采用DMA重大BUG

问题描述 STM32CubeIDE 1.8.0问题 大牛攻城狮最近调试STM32L151CBT6。由于项目上使用该款芯片做控制电源使用&#xff0c;其中涉及到多路ADC的数据采样。使用STM32CubeIDE 1.8.0版本详细如下图所示 注意这里的使用的软件版本号很关键。采用该款软件搭建工程&#xff0c;第一次…

架构设计笔记-12-信息系统架构设计理论与实践

目录 知识要点 案例分析 1.Java企业级应用系统 2.c/s架构&#xff0c;b/s架构 知识要点 软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一类架构所共有的特征&#xff0c;主要包括架构定义、架构词汇表和架构约束。 数据挖掘是从数据库的大…

HarmonyOS NEXT 应用开发实战(四、仿知乎日报的首页轮播图实现)

在本篇博文中&#xff0c;我们将探讨如何在HarmonyOS NEXT应用中实现一个仿知乎日报的首页轮播图效果。我们将使用Swiper组件来展示轮播图&#xff0c;并且在轮播图下方添加半透明背景的标题。以下是具体的实现步骤和代码示例。 1. 项目结构与数据源 首先&#xff0c;我们需要…

Django兴农购物网站系统—计算机毕业设计源码38256

摘 要 助农工作是当前我国全面建成小康社会的重点工作&#xff0c;由于我国农村地域广大&#xff0c;贫困人口多&#xff0c;区域差异大&#xff0c;因此&#xff0c;不同区域的扶贫方法也是不一样的。近年来&#xff0c;随着网络的普及。许多农村地区物产丰富&#xff0c;但由…

计组_中断响应的步骤

2024.10.13&#xff1a;计算机组成原理学习笔记 中断响应步骤 中断响应 &#xff08;中断响应的过程也称中断隐指令&#xff09;第一步&#xff1a;关中断第二步&#xff1a;保存断点第三步&#xff1a;引出中断服务程序中断源识别判优方法1&#xff1a;软件查询方法中断源识别…

Redis两种持久化方式

目录 一、Redis持久化 RDB 四种执行场景 底层执行原理 优缺点 AOP 三种fsync策略 AOF重写机制 工作基本流程 优缺点 RDB和AOF的对比 混合持久化 Redis 持久化的主要目的是为了确保数据的持久性和可靠性&#xff0c;避免因意外崩溃或重启导致的数据丢失。以下是一些进…

基于STM32的图形识别智能跟踪小车设计

引言 本项目设计了一个基于STM32的图形识别智能跟踪小车&#xff0c;能够通过摄像头识别特定图形或标志&#xff0c;并自动跟随这些图形进行移动。系统结合了摄像头模块和图像处理算法&#xff0c;实现了对前方物体的识别与跟踪。同时&#xff0c;小车具备避障功能&#xff0c…

顺序表|消失的数字|轮转数组|移除元素|合并有序数组|删除有序数组中重复项(C)

面试题 17.04. 消失的数字 思路一 排序遍历 如果下一个不等于上一个数1&#xff0c;这个下一个数就是消失的数字 时间复杂度 O ( N ⋅ log ⁡ 2 N ) O(N\cdot \log_{2}N) O(N⋅log2​N) 思路二 0N等差数列公式计算结果 - 数组中的值&#xff0c;结果就是消失的数字 int mis…

基于海市蜃楼算法(Fata Morgana Algorithm ,FATA)的多无人机协同三维路径规划(提供MATLAB代码)

一、海市蜃楼算法 海市蜃楼算法&#xff08;Fata Morgana Algorithm &#xff0c;FATA&#xff09;是2024年提出一种新型的群体智能优化算法&#xff0c;它的设计灵感来源于自然现象中的海市蜃楼形成过程。FATA算法通过模仿光线在不均匀介质中的传播方式&#xff0c;提出了两种…

日语学习者福音:4大翻译软件集锦,总有一款适合你!

现在全球化了&#xff0c;学个外语&#xff0c;尤其是日语这种很有魅力的语言&#xff0c;成了很多人的愿望。不管是为了方便旅行&#xff0c;还是喜欢日本文化&#xff0c;或者想在工作中更有竞争力&#xff0c;学日语都挺重要的。学语言不容易&#xff0c;特别是遇到难懂的句…

C#实现Punycode编码/解码

测试代码 string word "我爱你"; string idn "我爱你.中国"; string wordCode PunyCode.Encode(word); string punycode PunyCode.IDN2Punycode(idn);Console.WriteLine(word); Console.WriteLine(wordCode); Console.WriteLine(PunyCode.Decode(word…

【工欲善其事】巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号

文章目录 巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号1 问题描述2 解决方案3 具体步骤4 效果测试5 小结与复盘 巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号 1 问题描述 不知各位是否也为复制过来的文本中夹杂的回车换行符抓狂过&#xff1f;就是在复…