一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)
文章目录
- 一种引入过渡阶段和高斯变异的改进算术优化算法(TGAOA)
- 1.算术优化算法
- 2. 改进算术优化算法
- 2.1 重构数学加速优化器 MOA
- 2.2 新策略的引入
- 2.3 具有一致性的高斯变异策略
- 2.4具有一致性的高斯变异策略
 
- 3.实验结果
- 4.参考文献
- 5.Matlab代码
- 6.Python代码
 
摘要:针对算术优化算法收敛精度低、易陷入局部最优等问题,提出了一种改进的过渡高斯算术优化算法,该算法将新的非线性过渡阶段与改进的高斯变异策略相结合。 首先,为了更好地从勘探阶段的高离散度策略过渡到开发阶段的低离散度策略,提出过渡阶段策略,并通过比较三种曲线实验重构数学优化加速函数。其次,引入具有算术优化算法特性的高斯变异策略和边界函数策略,加强算法跳出局部区域的能力。
1.算术优化算法
基础算术优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/119785544
2. 改进算术优化算法
2.1 重构数学加速优化器 MOA
选择余弦函数作为数学优化 的加速函数, 以实现相对最优的勘探过程、过渡 过程和开发过程。余弦函数的选择使得算法在求 解问题时更具通用性。具体公式如等式 1 所示。
  
      
       
        
         
          
          
           
           
             M 
            
           
             O 
            
           
             A 
            
           
             = 
            
            
            
              { 
             
             
              
               
                
                 
                  
                  
                    1 
                   
                  
                    2 
                   
                  
                 
                   cos 
                  
                 
                    
                  
                  
                  
                    ( 
                   
                   
                    
                    
                      3 
                     
                    
                      π 
                     
                    
                      × 
                     
                    
                      t 
                     
                    
                    
                    
                      2 
                     
                    
                      × 
                     
                     
                     
                       M 
                      
                     
                       − 
                      
                     
                    
                      Iter  
                     
                    
                   
                  
                    ) 
                   
                  
                 
                   + 
                  
                  
                  
                    1 
                   
                  
                    2 
                   
                  
                  
                 
                   0 
                  
                 
                   < 
                  
                 
                   t 
                  
                 
                   ≤ 
                  
                  
                  
                    2 
                   
                  
                    3 
                   
                  
                  
                  
                    M 
                   
                  
                    − 
                   
                  
                 
                   Iter  
                  
                 
                
               
              
              
               
                
                 
                 
                   0 
                  
                  
                  
                  
                    2 
                   
                  
                    3 
                   
                  
                  
                  
                    M 
                   
                  
                    − 
                   
                  
                 
                   Iter  
                  
                 
                   < 
                  
                 
                   t 
                  
                 
                   ≤ 
                  
                  
                  
                    M 
                   
                  
                    − 
                   
                  
                 
                   Iter  
                  
                 
                
               
              
             
            
              } 
             
            
           
          
          
          
          
            (6) 
           
          
         
        
       
         M O A=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad 0<t \leq \frac{2}{3} M_{-} \text {Iter } \\ 0 \quad \frac{2}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \end{array}\right\}\tag{6} 
        
       
     MOA={21cos(2×M−Iter 3π×t)+210<t≤32M−Iter 032M−Iter <t≤M−Iter }(6)
M O B = { 1 2 cos  ( 3 π × t 2 × M − Iter ) + 1 2 1 3 M − Iter < t ≤ M − Iter 0 0 < t ≤ 1 3 M − Iter } (8) M O B=\left\{\begin{array}{c} \frac{1}{2} \cos \left(\frac{3 \pi \times t}{2 \times M_{-} \text {Iter }}\right)+\frac{1}{2} \quad \frac{1}{3} M_{-} \text {Iter }<t \leq M_{-} \text {Iter } \\ 0 \quad 0<t \leq\frac{1}{3} M_{-} \text {Iter } \end{array}\right\}\tag{8} MOB={21cos(2×M−Iter 3π×t)+2131M−Iter <t≤M−Iter 00<t≤31M−Iter }(8)
2.2 新策略的引入
 
     
      
       
       
         S 
        
       
         S 
        
       
         A 
        
       
      
        \mathrm{SSA} 
       
      
    SSA在过渡阶段的更新公式设计中, 由于原  
     
      
       
       
         A 
        
       
         O 
        
       
         A 
        
       
      
        \mathrm{AOA} 
       
      
    AOA 采用了对所有个体均选择历史最优位置进行更新 的更新策略, 忽略了当前个体位置向量对优化过 程的重大影响。因此, 新公式引入了当前个体位 置。在此基础上, 过渡阶段还加入当前所有个体 的平均位置, 在算法迭代初期, 个体分布较为分 散, 平均位置与最优位置距离较远, 有利于勘探 阶段的执行, 随着算法的迭代, 这个距离会逐渐 减小逐渐收玫, 有利于开发阶段的执行。最终用 以平衡原始  
     
      
       
       
         A 
        
       
         O 
        
       
         A 
        
       
      
        \mathrm{AOA} 
       
      
    AOA 的勘探和开发阶段的过渡更新公 式如下:
  
      
       
        
         
          
          
           
            
            
              x 
             
             
             
               i 
              
             
               , 
              
             
               j 
              
             
            
           
             ( 
            
           
             t 
            
           
             + 
            
           
             1 
            
           
             ) 
            
           
             = 
            
           
             best 
            
           
              
            
            
            
              ( 
             
             
             
               x 
              
             
               j 
              
             
            
              ) 
             
            
           
             + 
            
           
             2 
            
           
             × 
            
           
             M 
            
           
             O 
            
           
             P 
            
           
             × 
            
            
            
              ( 
             
             
             
               x 
              
             
               temp  
              
             
            
              − 
             
             
             
               x 
              
             
               mean  
              
             
            
              ) 
             
            
           
          
          
          
          
            (8) 
           
          
         
        
       
         x_{i, j}(t+1)=\operatorname{best}\left(x_j\right)+2 \times M O P \times\left(x_{\text {temp }}-x_{\text {mean }}\right)\tag{8} 
        
       
     xi,j(t+1)=best(xj)+2×MOP×(xtemp −xmean )(8)
 其中,  
     
      
       
        
        
          x 
         
        
          temp  
         
        
       
      
        x_{\text {temp }} 
       
      
    xtemp  表示当前个体位置,  
     
      
       
        
        
          x 
         
        
          mean  
         
        
       
      
        x_{\text {mean }} 
       
      
    xmean  表示当前所有个体的平均位置。
2.3 具有一致性的高斯变异策略
高斯变异策略因其优异的随机性在其他算法 中跳出局部最优有较多的应用, 本文在基本高斯 变异的基础上, 提出了一种与算术优化算法具有 一致性的高斯变异策略,公式见(9)。
  
      
       
        
         
          
          
           
            
            
              x 
             
            
              pause  
             
            
           
             = 
            
            
            
              { 
             
             
              
               
                
                 
                 
                   2 
                  
                 
                   ⋅ 
                  
                 
                   M 
                  
                 
                   O 
                  
                 
                   P 
                  
                 
                   ⋅ 
                  
                 
                    Gauss  
                  
                 
                   × 
                  
                  
                  
                    x 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                 
                
               
               
                
                 
                  
                  
                    r 
                   
                  
                    4 
                   
                  
                 
                   ≤ 
                  
                 
                   0.5 
                  
                 
                
               
              
              
               
                
                 
                 
                   2 
                  
                 
                   ⋅ 
                  
                 
                   M 
                  
                 
                   O 
                  
                 
                   P 
                  
                 
                   ⋅ 
                  
                 
                    Gauss  
                  
                 
                   + 
                  
                  
                  
                    x 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                 
                
               
               
                
                 
                  
                  
                    r 
                   
                  
                    4 
                   
                  
                 
                   > 
                  
                 
                   0.5 
                  
                 
                
               
              
             
            
              } 
             
            
           
          
          
          
          
            (9) 
           
          
         
        
       
         x_{\text {pause }}=\left\{\begin{array}{ll} 2 \cdot M O P \cdot \text { Gauss } \times x_{i, j} & r_4 \leq 0.5 \\ 2 \cdot M O P \cdot \text { Gauss }+x_{i, j} & r_4>0.5 \end{array}\right\}\tag{9} 
        
       
     xpause ={2⋅MOP⋅ Gauss ×xi,j2⋅MOP⋅ Gauss +xi,jr4≤0.5r4>0.5}(9)
 其中  
     
      
       
       
         M 
        
       
         O 
        
       
         P 
        
       
      
        M O P 
       
      
    MOP 为原始  
     
      
       
       
         A 
        
       
         O 
        
       
         A 
        
       
      
        \mathrm{AOA} 
       
      
    AOA 算法的参数见公式(4)。 Gauss 表示服从标准正态的高斯函数。  
     
      
       
        
        
          r 
         
        
          4 
         
        
       
      
        r_4 
       
      
    r4 表示区 间为  
     
      
       
       
         [ 
        
       
         0 
        
       
         , 
        
       
         1 
        
       
         ] 
        
       
      
        [0,1] 
       
      
    [0,1] 的随机数。  
     
      
       
        
        
          x 
         
        
          pause  
         
        
       
      
        x_{\text {pause }} 
       
      
    xpause  表示策略更新后生成的 解。
2.4具有一致性的高斯变异策略
本文提出的新的高斯变异策略很好地解决了算法陷入局部最优的问题, 但是高斯变异策略可 能会使得个体每个维度朝着不同的方向更新, 这 有时会导致解空间区域较大的目标函数跳出局部 失效。因此本文还提出了一种与算术优化算法具 有一致性的边界函数变异策略, 该策略不仅解决 了所提出的新高斯变异策略存在的问题, 还能够 更好地帮助算法解决跳出局部最优问题, 公式如 等式(10)。
  
      
       
        
         
          
          
           
            
            
              X 
             
            
              pause  
             
            
           
             = 
            
            
            
              { 
             
             
              
               
                
                 
                 
                   ( 
                  
                 
                   U 
                  
                 
                   B 
                  
                 
                   − 
                  
                 
                   L 
                  
                 
                   B 
                  
                 
                   ) 
                  
                 
                   ⋅ 
                  
                 
                   rand 
                  
                 
                    
                  
                 
                   ( 
                  
                 
                   ) 
                  
                 
                   × 
                  
                  
                  
                    x 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                 
                
               
               
                
                 
                  
                  
                    r 
                   
                  
                    4 
                   
                  
                 
                   ≤ 
                  
                 
                   0.5 
                  
                 
                
               
              
              
               
                
                 
                 
                   ( 
                  
                 
                   U 
                  
                 
                   B 
                  
                 
                   − 
                  
                 
                   L 
                  
                 
                   B 
                  
                 
                   ) 
                  
                 
                   ⋅ 
                  
                 
                   rand 
                  
                 
                    
                  
                 
                   ( 
                  
                 
                   ) 
                  
                 
                   + 
                  
                  
                  
                    x 
                   
                   
                   
                     i 
                    
                   
                     , 
                    
                   
                     j 
                    
                   
                  
                 
                
               
               
                
                 
                  
                  
                    r 
                   
                  
                    4 
                   
                  
                 
                   > 
                  
                 
                   0.5 
                  
                 
                
               
              
             
            
              } 
             
            
           
          
          
          
          
            (10) 
           
          
         
        
       
         X_{\text {pause }}=\left\{\begin{array}{ll} (U B-L B) \cdot \operatorname{rand}() \times x_{i, j} & r_4 \leq 0.5 \\ (U B-L B) \cdot \operatorname{rand}()+x_{i, j} & r_4>0.5 \end{array}\right\} \tag{10} 
        
       
     Xpause ={(UB−LB)⋅rand()×xi,j(UB−LB)⋅rand()+xi,jr4≤0.5r4>0.5}(10)
 其中解空间的上界和下界由  
     
      
       
       
         U 
        
       
         B 
        
       
      
        U B 
       
      
    UB 和  
     
      
       
       
         L 
        
       
         B 
        
       
      
        L B 
       
      
    LB 表示, 而 0 和 1 之间的随机整数由  
     
      
       
       
         rand 
        
       
          
        
        
        
          ( 
         
        
          O 
         
        
       
      
        \operatorname{rand}\left(\mathrm{O}\right. 
       
      
    rand(O 表示。  
     
      
       
        
        
          X 
         
        
          pause  
         
        
       
      
        X_{\text {pause }} 
       
      
    Xpause  表 示策略变化后生成的解决方案。

3.实验结果

4.参考文献
[1]张伟,李世港,齐明楚,周徐虎,宋燕.一种引入过渡阶段和高斯变异的改进算术优化算法[J/OL].小型微型计算机系统:1-12[2023-04-23].http://kns.cnki.net/kcms/detail/21.1106.TP.20230413.1731.019.html



















