目录
- 1.背景
- 2.算法原理
- 2.1算法思想
- 2.2算法过程
 
- 3.结果展示
- 4.参考文献
- 5.代码获取
 
1.背景
2024年,C Yuan受到青蒿素药物治疗疟疾过程启发,提出了青蒿素优化算法(Artemisinin Optimization, AO)。

 
2.算法原理
2.1算法思想
AO灵感来自于疟疾的青蒿素药物治疗过程,该过程涉及全面根除人体内的疟疾寄生虫。AO包括三个优化阶段:模拟全局探索的全面消除阶段,局部开发的局部清除阶段,以及增强算法逃避局部最优能力的后巩固阶段。

2.2算法过程
全面消除阶段
在疟疾治疗的初始阶段,给病人更大剂量的药物,以迅速控制疾病的进展。青蒿素一旦被吸收,就会随着血液被输送到人体的各个部位而扩散到全身。药物扩散过程:
  
      
       
        
         
          
          
           
           
             { 
            
            
             
              
               
                
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                  
                  
                    t 
                   
                  
                    + 
                   
                  
                    1 
                   
                  
                 
                
                  = 
                 
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                 
                   t 
                  
                 
                
                  + 
                 
                
                  c 
                 
                
                  × 
                 
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                 
                   t 
                  
                 
                
                  × 
                 
                
                  ( 
                 
                
                  − 
                 
                
                  1 
                 
                 
                 
                   ) 
                  
                 
                   t 
                  
                 
                
                  , 
                 
                
                  r 
                 
                
                  a 
                 
                
                  n 
                 
                
                  d 
                 
                
                  < 
                 
                
                  0.5 
                 
                
               
              
             
             
              
               
                
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                  
                  
                    t 
                   
                  
                    + 
                   
                  
                    1 
                   
                  
                 
                
                  = 
                 
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                 
                   t 
                  
                 
                
                  + 
                 
                
                  c 
                 
                
                  × 
                 
                
                  b 
                 
                
                  e 
                 
                
                  s 
                 
                 
                 
                   t 
                  
                 
                   j 
                  
                 
                   t 
                  
                 
                
                  × 
                 
                
                  ( 
                 
                
                  − 
                 
                
                  1 
                 
                 
                 
                   ) 
                  
                 
                   t 
                  
                 
                
                  , 
                 
                
                  r 
                 
                
                  a 
                 
                
                  n 
                 
                
                  d 
                 
                
                  > 
                 
                
                  0.5 
                 
                
               
              
             
            
           
          
          
          
          
            (1) 
           
          
         
        
       
         \left.\left\{\begin{matrix}\mathrm{a_{i,j}^{t+1}=a_{i,j}^{t}+c\times a_{i,j}^{t}\times(-1)^{t},rand<0.5}\\\mathrm{a_{i,j}^{t+1}=a_{i,j}^{t}+c\times best_{j}^{t}\times(-1)^{t},rand>0.5}\end{matrix}\right.\right.\tag{1} 
        
       
     {ai,jt+1=ai,jt+c×ai,jt×(−1)t,rand<0.5ai,jt+1=ai,jt+c×bestjt×(−1)t,rand>0.5(1)
 青蒿素类药物在人体内的扩散遵循药代动力学原理,考虑到药物浓度会随着时间的推移而降低,c表示药物浓度在人体内的衰减指数,青蒿素药物浓度的衰减可以用单室模型描述:
  
      
       
        
         
          
          
           
            
             
             
               d 
              
             
               C 
              
             
             
             
               d 
              
             
               t 
              
             
            
           
             = 
            
           
             − 
            
           
             k 
            
           
             × 
            
           
             C 
            
            
           
             C 
            
           
             ( 
            
           
             t 
            
           
             ) 
            
           
             = 
            
            
            
              C 
             
            
              0 
             
            
           
             × 
            
            
            
              e 
             
             
             
               ( 
              
             
               − 
              
             
               k 
              
             
               × 
              
             
               t 
              
             
               ) 
              
             
            
           
          
          
          
          
            (2) 
           
          
         
        
       
         \frac{dC}{dt}=-k\times C\\C(t)=C_{0}\times e^{(-k\times t)}\tag{2} 
        
       
     dtdC=−k×CC(t)=C0×e(−k×t)(2)
 因此,青蒿素药物浓度的指数c表述为:
  
      
       
        
         
          
          
           
           
             c 
            
           
             = 
            
           
             1 
            
           
             × 
            
            
            
              e 
             
             
             
               − 
              
             
               ( 
              
             
               4 
              
             
               × 
              
              
              
                f 
               
               
               
                 M 
                
               
                 a 
                
               
                 x 
                
               
                 f 
                
               
              
             
               ) 
              
             
            
           
          
          
          
          
            (3) 
           
          
         
        
       
         c=1\times e^{-(4\times\frac f{Maxf})}\tag{3} 
        
       
     c=1×e−(4×Maxff)(3)
 概率系数K表述为:
  
      
       
        
         
          
          
           
           
             K 
            
           
             = 
            
           
             1 
            
           
             − 
            
            
             
             
               f 
              
              
              
                1 
               
              
                / 
               
              
                6 
               
              
             
             
             
               M 
              
             
               a 
              
             
               x 
              
              
              
                f 
               
               
               
                 1 
                
               
                 / 
                
               
                 6 
                
               
              
             
            
           
          
          
          
          
            (4) 
           
          
         
        
       
         K=1-\frac{f^{1/6}}{Maxf^{1/6}}\tag{4} 
        
       
     K=1−Maxf1/6f1/6(4)
 综合淘汰阶段策略:
  
      
       
        
         
          
          
           
            
            
              { 
             
             
              
               
                
                 
                  
                  
                    a 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                   
                   
                     t 
                    
                   
                     + 
                    
                   
                     1 
                    
                   
                  
                 
                   = 
                  
                  
                  
                    a 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                    t 
                   
                  
                 
                   + 
                  
                 
                   c 
                  
                 
                   × 
                  
                  
                  
                    a 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                    t 
                   
                  
                 
                   × 
                  
                 
                   ( 
                  
                 
                   − 
                  
                 
                   1 
                  
                  
                  
                    ) 
                   
                  
                    t 
                   
                  
                 
                   , 
                  
                  
                  
                    r 
                   
                  
                    a 
                   
                  
                    n 
                   
                  
                    d 
                   
                  
                 
                   < 
                  
                 
                   0.5 
                  
                 
                
               
              
              
               
                
                 
                  
                  
                    a 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                   
                   
                     t 
                    
                   
                     + 
                    
                   
                     1 
                    
                   
                  
                 
                   = 
                  
                  
                  
                    a 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                    t 
                   
                  
                 
                   + 
                  
                 
                   c 
                  
                 
                   × 
                  
                 
                   b 
                  
                 
                   e 
                  
                 
                   s 
                  
                  
                  
                    t 
                   
                  
                    j 
                   
                  
                    t 
                   
                  
                 
                   × 
                  
                 
                   ( 
                  
                 
                   − 
                  
                 
                   1 
                  
                  
                  
                    ) 
                   
                  
                    t 
                   
                  
                 
                   , 
                  
                 
                   r 
                  
                 
                   a 
                  
                 
                   n 
                  
                 
                   d 
                  
                 
                   > 
                  
                 
                   0.5 
                  
                 
                
               
              
             
            
           
             , 
            
            
            
              r 
             
            
              1 
             
            
           
             < 
            
           
             K 
            
           
          
          
          
          
            (5) 
           
          
         
        
       
         \left.\left\{\begin{matrix}a_{i,j}^{t+1}=a_{i,j}^{t}+c\times a_{i,j}^{t}\times(-1)^{t},\mathrm{rand}<0.5\\a_{i,j}^{t+1}=a_{i,j}^{t}+c\times best_{j}^{t}\times(-1)^{t},rand>0.5\end{matrix}\right.,r_{1}<K\right.\tag{5} 
        
       
     {ai,jt+1=ai,jt+c×ai,jt×(−1)t,rand<0.5ai,jt+1=ai,jt+c×bestjt×(−1)t,rand>0.5,r1<K(5)
 在最初的治疗阶段之后,随着疾病得到控制,治疗过渡到维持阶段,以确保彻底治愈疟疾。
 
局部清除阶段
局部清除阶段的目标是消除体内任何残留的疟疾寄生虫,防止其繁殖和疟疾症状的复发。在这一阶段,患者继续接受低剂量青蒿素及其衍生物的治疗,以确保完全根除疟疾寄生虫,尽量减少在人体内发生不良反应的风险。局部清除阶段策略:
  
      
       
        
         
          
          
           
            
            
              a 
             
            
              i 
             
             
             
               t 
              
             
               + 
              
             
               1 
              
             
            
           
             = 
            
            
            
              a 
             
             
             
               b 
              
             
               3 
              
             
            
              t 
             
            
           
             + 
            
           
             d 
            
           
             × 
            
            
            
              ( 
             
             
             
               a 
              
              
              
                b 
               
              
                1 
               
              
             
               t 
              
             
            
              − 
             
             
             
               a 
              
              
              
                b 
               
              
                2 
               
              
             
               t 
              
             
            
              ) 
             
            
           
             , 
            
           
             i 
            
           
             f 
            
           
             r 
            
           
             a 
            
           
             n 
            
           
             d 
            
           
             < 
            
           
             F 
            
           
             i 
            
            
            
              t 
             
             
             
               n 
              
             
               o 
              
             
               r 
              
             
               m 
              
             
            
           
             ( 
            
           
             i 
            
           
             ) 
            
            
           
             F 
            
           
             i 
            
            
            
              t 
             
             
             
               n 
              
             
               o 
              
             
               r 
              
             
               m 
              
             
            
           
             ( 
            
           
             i 
            
           
             ) 
            
           
             = 
            
            
             
             
               f 
              
             
               i 
              
             
               t 
              
             
               ( 
              
             
               i 
              
             
               ) 
              
             
               − 
              
             
               min 
              
             
                
              
              
              
                ( 
               
              
                f 
               
              
                i 
               
              
                t 
               
              
                ) 
               
              
             
             
             
               max 
              
             
                
              
             
               ( 
              
             
               f 
              
             
               i 
              
             
               t 
              
             
               ) 
              
             
               − 
              
             
               min 
              
             
                
              
              
              
                ( 
               
              
                f 
               
              
                i 
               
              
                t 
               
              
                ) 
               
              
             
            
            
            
            
              b 
             
            
              1 
             
            
           
             , 
            
            
            
              b 
             
            
              2 
             
            
           
             , 
            
            
            
              b 
             
            
              3 
             
            
           
             ∼ 
            
           
             U 
            
           
             ( 
            
           
             1 
            
           
             , 
            
           
             N 
            
           
             ) 
            
           
             , 
            
            
            
              b 
             
            
              1 
             
            
           
             ≠ 
            
            
            
              b 
             
            
              2 
             
            
           
             ≠ 
            
            
            
              b 
             
            
              3 
             
            
           
          
          
          
          
            (6) 
           
          
         
        
       
         a_{i}^{t+1}=a_{b_{3}}^{t}+d\times\left(a_{b_{1}}^{t}-a_{b_{2}}^{t}\right),if rand<Fit_{norm}(i)\\Fit_{norm}(i)=\frac{fit(i)-\min{(fit)}}{\max(fit)-\min{(fit)}}\\b_{1},b_{2},b_{3}\sim U(1,N),b_{1}\neq b_{2}\neq b_{3}\tag{6} 
        
       
     ait+1=ab3t+d×(ab1t−ab2t),ifrand<Fitnorm(i)Fitnorm(i)=max(fit)−min(fit)fit(i)−min(fit)b1,b2,b3∼U(1,N),b1=b2=b3(6)
后巩固阶段
对疾病的严重程度漠不关心和治疗期间的松懈是危险的有害因素,在这种策略中,假设不活跃的寄生虫形式仍然存在于人体内。不幸的是,尽管这些休眠寄生虫持续存在,一些患者仍可能再次出现疟疾。该策略表述为:
  
      
       
        
         
          
          
           
           
             { 
            
            
             
              
               
                
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                  
                  
                    t 
                   
                  
                    + 
                   
                  
                    1 
                   
                  
                 
                
                  = 
                 
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                 
                   t 
                  
                 
                
                  , 
                 
                
                  i 
                 
                
                  f 
                 
                
                  r 
                 
                
                  a 
                 
                
                  n 
                 
                
                  d 
                 
                
                  < 
                 
                
                  0.05 
                 
                
               
              
             
             
              
               
                
                 
                 
                   a 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                  
                  
                    t 
                   
                  
                    + 
                   
                  
                    1 
                   
                  
                 
                
                  = 
                 
                
                  b 
                 
                
                  e 
                 
                
                  s 
                 
                 
                 
                   t 
                  
                  
                  
                    i 
                   
                  
                    , 
                   
                  
                    j 
                   
                  
                 
                
                  , 
                 
                
                  i 
                 
                
                  f 
                 
                
                  r 
                 
                
                  a 
                 
                
                  n 
                 
                
                  d 
                 
                
                  < 
                 
                
                  0.2 
                 
                
               
              
             
            
           
          
          
          
          
            (7) 
           
          
         
        
       
         \left\{\begin{matrix}a_{i,j}^{t+1}=a_{i,j}^{t},if rand<0.05\\a_{i,j}^{t+1}=best_{i,j},if rand<0.2\end{matrix}\right.\tag{7} 
        
       
     {ai,jt+1=ai,jt,ifrand<0.05ai,jt+1=besti,j,ifrand<0.2(7)

 流程图

伪代码

3.结果展示

 
4.参考文献
[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.
5.代码获取
资源清单



















