1.摘要
本文提出了一种新型的元启发式优化算法——梯度优化器(Gradient-based Optimizer, GBO)。GBO算法灵感来源于牛顿法,采用两个主要操作:梯度搜索规则(Gradient Search Rule, GSR)和局部逃逸操作算子(Local Escaping Operator, LEO),通过一组向量来探索搜索空间。GSR利用基于梯度的方法加强探索倾向并加速收敛速率,以实现更优的搜索空间定位,LEO则资助GBO逃离局部最优解。
2.算法原理
梯度搜索规则(GSR)
在梯度搜索规则(GSR)中,GBO算法通过控制向量的移动,可以在可行域内更有效地搜索并探求到更优的位置。思量到很多优化题目不可微分,因此采用数值梯度方法。为了根据方程推导GSR,必要使用泰勒级数来计算函数的一阶导数:
f ( x + Δ x ) = 0 f ( x ) + f ′ ( x 0 ) Δ x + f ′ ′ ( x 0 ) Δ x 2 2 ! + f ( 3 ) ( x 0 ) Δ x 3 3 ! + ⋯ f ( x − Δ x ) = f ( x ) − f ′ ( x 0 ) Δ x + f ′ ′ ( x 0 ) Δ x 2 2 ! − f ( 3 ) ( x 0 ) Δ x 3 3 ! + ⋯ \begin{gathered} f(x+\Delta x)=0f(x)+f^{^{\prime}}(x_0)\Delta x+\frac{f^{^{\prime\prime}}(x_0)\Delta x^2}{2!}+\frac{f^{^{(3)}}(x_0)\Delta x^3}{3!}+\cdots \\ f(x-\Delta x)=f(x)-f^{^{\prime}}(x_{0})\Delta x+\frac{f^{^{\prime\prime}}(x_{0})\Delta x^{2}}{2!}-\frac{f^{^{(3)}}(x_{0})\Delta x^{3}}{3!}+\cdots \end{gathered} f(x+Δx)=0f(x)+f′(x0)Δx+2!f′′(x0)Δx2+3!f(3)(x0)Δx3+⋯f(x−Δx)=f(x)−f′(x0)Δx+2!f′′(x0)Δx2−3!f(3)(x0)Δx3+⋯
一阶导数的中心差分形式:
f ′ ( x ) = f ( x + Δ x ) − f ( x − Δ x ) 2 Δ x f^{^{\prime}}(x)=\frac{f(x+\Delta x)-f(x-\Delta x)}{2\Delta x} f′(x)=2Δxf(x+Δx)−f(x−Δx)
整理为迭代形式:
x n + 1 = x n − 2 Δ x × f ( x n ) f ( x n + Δ x ) − f ( x n − Δ x ) x_{n+1}=x_n-\frac{2\Delta x\times f(x_n)}{f(x_n+\Delta x)-f(x_n-\Delta x)} xn+1=xn−f(xn+Δx)−f(xn−Δx)2Δx×f(xn)
x n x_n xn的相近位置是 x n + Δ x x_n+\Delta x xn+Δx和 x n − Δ x x_n-\Delta x xn−Δx,在GBO算法中,这些相近位置被种群中的另外两个位置(向量)所替代。由于 f ( x ) f(x) f(x)是一个最小化题目,位置 x n + Δ x x_n+\Delta x xn+Δx的适应度比 x n x_n xn差,而 x n − Δ x x_n-\Delta x xn−Δx比 x n x_n xn好。因此,GBO算法用更好的位置 x b e s t x_{best} xbest,即 x n x_n xn邻域内的位置, 替换 x n − Δ x x_n-\Delta x xn−Δx,用较差的位置 x w o r s t x_{worst} xworst代替 x n x_n xn邻域内的较差位置,替换 x n + Δ x x_n+\Delta x xn+Δx。此外,提出的算法使用位置 x n x_n xn而非其适应度 f ( x n ) f(x_n) f(xn):
G S R = r a n d n × 2 Δ x × x n ( x w o r s t − x b e s t + ε ) GSR=randn\times\frac{2\Delta x\times x_{n}}{(x_{\mathrm{worst}}-x_{best}+\varepsilon)} GSR=randn×(xworst−xbest+ε)2Δx×xn
在提出的GBO算法中,梯度搜索规则(GSR)思量了优化过程中的随机行为,以促进探索和逃离局部最优:
Δ x = r a n d ( 1 : N ) × ∣ s t e p ∣ s t e p = ( x b e s t − x r 1 m ) + δ 2 δ = 2 × r a n d × ( ∣ x r 1 m + x r 2 m + x r 3 m + x r 4 m 4 − x n m ∣ ) \begin{aligned} & \Delta x=rand(1:N)\times|step| \\ & step=\frac{(x_{best}-x_{r1}^{m})+\delta}{2} \\ & \delta=2\times rand\times\left(\left|\frac{x_{r1}^{m}+x_{r2}^{m}+x_{r3}^{m}+x_{r4}^{m}}{4}-x_{n}^{m}\right|\right) \end{aligned} Δx=rand(1:N)×∣step∣step=2(xbest−xr1m)+δδ=2×rand×( 4xr1m+xr2m+xr3m+xr4m−xnm )
为了更有效地利用 x n x_n xn附近的区域,GBO算法中引入了移动方向(DM)。这一机制通过使用最佳向量 x b e s t x_{best} xbest,并将当前向量 x n x_n xn向 ( x b e s t − x n ) (x_{best}-x_n) (xbest−xn)方向移动来操作。这样的设计不仅加强了局部搜索的本领,另有助于提拔算法的收敛速率,从而使GBO算法在探求最优解的讨程中更加高效:
D M = r a n d × ρ 2 × ( x b e s t − x n ) DM=rand\times\rho_{2}\times(x_{best}-x_{n}) DM=rand×ρ2×(xbest−xn)
因此,位置更新为:
X 1 n m = X n m − G S R + D M X 1 n m = x n m − r a n d n × ρ 1 × 2 Δ x × x n m ( x w o r s t − x b e s t + ε ) + r a n d × ρ 2 × ( x b e s t − x n m ) \begin{aligned} & X\mathbf{1}_{n}^{m}=X_n^m-GSR+DM \\ & X\mathbf{1}_{n}^{m}=x_n^m-randn\times\rho_1\times\frac{2\Delta x\times x_n^m}{(x_{\mathrm{worst}}-x_{\mathrm{best}}+\varepsilon)}+rand\times\rho_2\times(x_{\mathrm{best}}-x_n^m) \end{aligned} X1nm=Xnm−GSR+DMX1nm=xnm−randn×ρ1×(xworst−xbest+ε)2Δx×xnm+rand×ρ2×(xbest−xnm)
局部逃逸操作算子(LEO)
为了加强GBO算法办理复杂题目的服从,引入了局部逃逸操作算子(LEO)。LEO通过整合多个办理方案来明显改变解的位置,这些方案包括最佳位置 x b e s t x_{best} xbest,两个随机解 x m r 1 x_{mr1} xmr1和 x m r 2 x_{mr2} xmr2,以及一个新生成的随机解 x m k x_{mk} xmk:
x k m = L 2 × x p m + ( 1 − L 2 ) × x r a n d x_{k}^{m}=L_{2}\times x_{p}^{m}+(1-L_{2})\times x_{rand} xkm=L2×xpm+(1−L2)×xrand
伪代码
3.效果展示
4.参考文献
[1] Ahmadianfar I, Bozorg-Haddad O, Chu X. Gradient-based optimizer: A new metaheuristic optimization algorithm[J]. Information Sciences, 2020, 540: 131-159.
5.获取代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |