Page 259 - 《软件学报》2021年第5期
P. 259

傅文渊:具有万有引力加速机理的布谷鸟搜索算法                                                          1483


                 位置和速度分别为
                                     X  , r m  =  (x (1) , rm , x (2)  ,..., x ( )j , rm ,..., x ( )D , r m  ), V m  =  (v (1) , r m ,v (2)  ,...,v ( )j , r m ,...,v ( )D , r m  ),
                                                                       , r m
                                                , rm
                 其中,j=1,2,3,…,D, x ()j , rm  和 v ()j , rm  分别表示第 m 个物质个体在第 j 维的位置分量和速度分量.通过物质个体位置对
                 应的适应度数值,确定物质个体的质量 M i 和受到的万有引力.根据牛顿第二定律计算物质个体的加速度,并更新
                 物质个体位置 X r,m 和速度 V r,m .GSA 算法主要包括以下 4 个步骤.
                    (1)  物质个体质量计算
                    根据文献[24−26],物质个体 m 的质量定义为
                                                         f  −  f
                                                    q  , rm  =  , rm  , r worst                       (5)
                                                         f  , rbest  −  f  , r worst
                                                            q
                                                      M  , rm  =  N  , rm                             (6)
                                                           ∑  q  , rm
                                                           m= 1
                 其中,f r,m 和 M r,m 分别表示 GSA 算法第 r 次进化时,物质个体 m 的函数适应度值和相应的质量.假设所求解的为
                 最小化问题,f r,best 和 f r,worst 分别表示第 r 次进化时物质个体最优的适应度数值和最差适应度数值,其数学表达式
                 如下:
                                                    f  , rbest  =  min  f  , r m                      (7)
                                                         m∈ {1,2,..., }
                                                              N
                                                    f  , rworst  =  max  f  , r m                     (8)
                                                          m∈ {1,2,..., }
                                                               N
                    (2)  物质个体万有引力计算
                    根据万有引力定律,在维度 j 上,物质个体 m 对物质个体 k 的万有引力定义如下:
                                                      M    ⋅ M
                                              F () j , rmk  =  G ⋅  r  , rpm  , r ak  ⋅  (x ( ) j , rm  −  x () j , r k  )  (9)
                                                        R  , rmk  + ε
                 其中,ε为一个无穷小的常数;M r,pm 表示被作用于物质个体 m 第 r 次进化时的惯性质量,M r,ak 表示为作用于物质
                 个体 m 第 r 次进化时的惯性质量,并且 M r,pm =M r,ak =M r,m ;R r,mk 为物质个体 m 和物质个体 k 的欧氏空间距离,即
                 R r,mk =||X r,m −X r,k || 2 ;G r 表示第 r 次进化时物质个体的万有引力常数,其表达式如公式(10)所示:
                                                   G r =G(G 0 ,r)=G 0 ⋅e −θ⋅r/W                      (10)
                 其中,G 0 为进化初始时物质个体的万有引力系数;θ为算法控制参数,一般取θ=20;W 为算法进化代数的最大值.
                    在维度 j 上,物质个体 m 所受的万有引力合力为 F             ()j  :
                                                            , rm
                                                          N
                                                   F () j  =  d ⋅ ∑  F () j                          (11)
                                                     , rm     j  , r mk
                                                        kb ≠ ∈  ,k m
                 其中,d j 为区间(0,1)内均匀分布的一个随机数,b 为物质个体数目.
                    (3)  物质个体加速度计算
                    由牛顿第二定律,物质个体 m 在维度 j 上第 r 次进化时的加速度定义如下:
                                                            F  ()j
                                                      a ()j , rm  =  , rm                            (12)
                                                           M
                                                              , rmm
                 其中,M r,mm =M r,pm =M r,ak =M r,m .
                    (4)  物质个体更新速度和位置
                    算法在每次进化过程中,物质个体按照公式(13)和公式(14)分别更新速度 v                     ()j , rm  和位置 x ()j , rm  ,其具体的数学表
                 达式分别为
                                                   v ()j 1,m  =  d v⋅  j  ( )j , r m  +  a ()j , r m  (13)
                                                    r+
                                                    x r+  ( )j 1,m  =  x ()j , r m  +  v ()j 1,m     (14)
                                                               r+
   254   255   256   257   258   259   260   261   262   263   264