Page 58 - 《应用声学》2021年第4期
P. 58

542                                                                                  2021 年 7 月

             2 改进和声搜索算法                                        x i,j (0) 6 x , i = 1, 2, · · · , HMS; j = 1, 2, · · · , D},
                                                                         U
                                                                         i,j
                                                               按照如下方式随机产生:
             2.1 标准和声搜索算法
                                                                                                U
                                                                         x i,j (0) = unifrnd(x L  − x ),  (5)
                 和 声 搜 索 算 法 源 于 对 音 乐 演 奏 的 模 拟,                                         i,j   i,j
             设 乐 器 演 奏 的 和 声 i 的 状 态 表 示 为 X i           =     其中,HMS 为记忆库大小,x           L  和 x U  分别为 x i,j 取
                                                                                              i,j
                                                                                         i,j
             (x i1 , x i2 , · · · , x iD ),美学评估设为 Y i = f(X i ),即  值的下限和上限,unifrnd为在上下限生成均匀分布
             待求目标函数。算法流程如下:                                    的随机数。
                 (1) 初 始 化 和 声 记 忆 库 HM: {x i (0)|x  L   6         (2)基于差分变异创作一个新和声:
                                                     i,j
                                     
                                      x r,j + bw · (x best − x middle ),  if rand < PAR,
                             
                              new  =                                              if rand < HMCR,
                             
                               x
                      x new  =  i,j    x r,j ,                    otherwise,                             (6)
                       i,j
                             
                             
                                      L     U
                               unifrnd(x  − x ),                                   otherwise,
                             
                                       i,j   i,j
             其中,HMCR 为和声记忆库取值概率,PAR 为微调                        似解给 BFGS 赋为初值利用其局部搜索能力,提高
             概率,bw为微调带宽,r ∈ {1, 2, · · · , HMS}。               得到精确解的概率,两者的融合有利于同步提高全
                 (3)更新和声记忆库 HM:判断新和声目标函数                       局和局部效率。
             值f(X  new )是否优于当前和声库中的f(X            worst ),若        图 1 为 改 进 和 声 算 法 (Improved harmony
             是,则用新和声代替当前和声库内的最差和声。                             search algorithm, IHS) 流程,在迭代前期仅使用
                 (4) 是否满足终止条件:若满足停止条件,算法                       和声搜索算法,基于差分策略生成新和声全局寻
             结束;否则重复步骤 (2) 和步骤 (3),直到满足终止
                                                               优,待一定迭代次数时,拟牛顿 BFGS算法介入,与
             条件。
                                                               和声搜索算法并行计算。具体的,将和声搜索算
             2.2 拟牛顿法                                          法寻得当前最优解赋给拟牛顿 BFGS 作为初值,若
                 拟牛顿法是一种较成熟算法,拥有牛顿法                            BFGS 反演目标函数值小于和声搜索算法所得,则
             收敛速度快的优点,同时用每步梯度信息去近                              以 BFGS 的最优解替代和声搜索种群库里最优解,
             似 Hesse 矩阵,减少计算量         [23] ,基本迭代公式为            更新记忆库,直到满足停止条件。
             d k = −H k ∇f(x k ),d k 为优化方向,由式 (7)BFGS
             修正公式得H k :
                                                                                      नݽ
                                  T         T
                            H k y k y H k  s k s k   T
                                  k
              H k+1 = H k −   T        +  T   + w k w , (7)
                                                     k
                             y H k y k   y s k                        Ѻݽӑ֗ܦᝮॺः
                              k           k                                               ѺݽӑBFGSԠ஝
             其中,s k = x k+1 − x k ,y k = ∇f(x k+1 ) − ∇f(x k ),
                             (                )                                            ᝠካ೙ए֗൦᫂
                    T       1   s k    H k y k                        ࣀѬኖ႕̗ၷழᝍ
             w k = (y H k y k ) 2   −          ,k 为迭代次
                    k          T       T
                              y s k   y H k y k                                                         ௧
                               k       k
             数,初始H 0 赋为单位矩阵。                                                                ||g k⇁|| Ĺ ε
                                                                       ໘ᡜᤖ̽൓஝      ௧             ա
             2.3 改进和声搜索算法                                                                  BFGSξ൤Нर
                                                                            ա
                 作为全局优化算法,和声搜索算法进化到后期,                                                       ᝠካH k⇁
             记忆库多样性降低,贪婪选择容易错过一些有潜力                                    ఞழᝮॺः
             的解向量,陷入极小值,致求解精度不高;而拟牛顿                               ա              ௧
             BFGS 算法局部开发能力强,搜索结果更依赖于给                                  ໘ᡜϣൣ౎͈         ፇౌ
             定初值。由于搜索过程,局部和全局搜索未设也不
                                                                  图 1  和声搜索算法和 BFGS 拟牛顿算法并行计算
             易设清晰分界线,且前期与后期算法需求不同,为                               流程图
             了提高反演准确性,提出将和声搜索算法和拟牛顿                               Fig. 1 Harmony search and BFGS quasi-Newton
             BFGS 进行并行计算,HS 全局搜索能力强,将其近                           algorithm parallel computing flow chart
   53   54   55   56   57   58   59   60   61   62   63