【智能算法】牛顿-拉弗森优化算法(NRBO)原理及实现


1.背景

2024年,R Sowmya等人受到Newton-Raphson方法启发,提出了牛顿-拉弗森优化算法(Newton-Raphson-Based Optimizer, NRBO)。

在这里插入图片描述
在这里插入图片描述

2.算法原理

2.1算法思想

NRBO受到Newton-Raphson方法的启发,它使用两个规则来探索整个搜索过程:Newton-Raphson搜索规则(NRSR)和陷阱避免算子(TAO),并使用几组矩阵来进一步探索最佳结果。NRSR采用Newton-Raphson方法来提高NRBO的探索能力,提高收敛速度以达到改进的搜索空间位置。TAO帮助NRBO避免局部最优陷阱。

在这里插入图片描述

2.2算法过程

牛顿-拉弗森方法是一种在实数域和复数域上近似求解方程的方法,利用泰勒级数展开:
x n + 1 = x n − f ′ ( x n ) f ′ ′ ( x n ) , n = 1 , 2 , 3 , . . . (1) x_{n+1}=x_n-\frac{f'(x_n)}{f''(x_n)}, n=1,2,3,...\tag{1} xn+1=xnf′′(xn)f(xn),n=1,2,3,...(1)

牛顿-拉弗森搜索规则 NRSR

NRSR控制向量允许更准确地探索可行区域并获得更好的位置,二阶导数表述为:
f ( x + Δ x ) = f ( x ) + f ′ ( x 0 ) Δ x + 1 2 ! f ′ ′ ( x 0 ) Δ x 2 + 1 3 ! f ′ ′ ( x 0 ) Δ x 3 + ⋯ f ( x − Δ x ) = f ( x ) − f ′ ( x 0 ) Δ x + 1 2 ! f ′ ′ ( x 0 ) Δ x 2 − 1 3 ! f ′ ′ ( x 0 ) Δ x 3 + ⋯ (2) \begin{gathered} f(x{+}\Delta x)= f(x)+f^{'}(x_{0})\Delta x+{\frac{1}{2!}}f^{''}(x_{0})\Delta x^{2}+{\frac{1}{3!}}f^{''}(x_{0})\Delta x^{3}+\cdots \\ f(x{-}\Delta x)= f(x)-f^{'}(x_{0})\Delta x+\frac{1}{2!}f^{''}(x_{0})\Delta x^{2}-\frac{1}{3!}f^{''}(x_{0})\Delta x^{3}+\cdots \end{gathered}\tag{2} f(x+Δx)=f(x)+f(x0)Δx+2!1f′′(x0)Δx2+3!1f′′(x0)Δx3+f(xΔx)=f(x)f(x0)Δx+2!1f′′(x0)Δx23!1f′′(x0)Δx3+(2)
上述整理可得f’(x),f’'(x)表达式:
f ′ ( x ) = f ( x + Δ x ) − f ( x − Δ x ) 2 Δ x f ′ ( x ) = f ( x + Δ x ) + f ( x − Δ x ) − 2 × f ( x ) Δ x 2 (3) \begin{aligned} &f^{'}(x)= \frac{f(x+\Delta x)-f(x-\Delta x)}{2\Delta x} \\ &f^{^{\prime}}(x)= \frac{f(x+\Delta x)+f(x-\Delta x)-2\times f(x)}{\Delta x^{2}} \end{aligned}\tag{3} f(x)=xf(x+Δx)f(xΔx)f(x)=Δx2f(x+Δx)+f(xΔx)2×f(x)(3)
位置更新:
x n + 1 = x n − ( f ( x n + Δ x ) − f ( x n − Δ x ) ) × Δ x 2 × ( f ( x n + Δ x ) + f ( x n − Δ x ) − 2 × f ( x n ) ) (4) x_{n+1}=x_n-\frac{(f(x_n+\Delta x)-f(x_n-\Delta x))\times\Delta x}{2\times(f(x_n+\Delta x)+f(x_n-\Delta x)-2\times f(x_n))}\tag{4} xn+1=xn2×(f(xn+Δx)+f(xnΔx)2×f(xn))(f(xn+Δx)f(xnΔx))×Δx(4)
NRSR是NRBO的主要组成部分,考虑基于种群搜索方式,进行一定修正:
N R S R = r a n d n × ( X w − X b ) × Δ x 2 × ( X w + X b − 2 × x n ) (5) \mathrm{NRSR}=randn\times\frac{(X_w-X_b)\times\Delta x}{2\times(X_w+X_b-2\times x_n)}\tag{5} NRSR=randn×2×(Xw+Xb2×xn)(XwXb)×Δx(5)
其中,Xw为最差位置,Xb为最佳位置。δ的自适应系数平衡了探索和开发能力:
δ = ( 1 − ( 2 × I T M a x I T ) ) 5 (6) \delta=\left(1-\left(\frac{2\times IT}{Max_IT}\right)\right)^5\tag{6} δ=(1(MaxIT2×IT))5(6)
Δx的表达:
Δ x = r a n d ( 1 , d i m ) × ∣ X b − X n I T ∣ (7) \Delta x=rand(1,dim)\times\left|X_b-X_n{}^{IT}\right|\tag{7} Δx=rand(1,dim)× XbXnIT (7)
Xb表示目前得到的最优解,NRSR表述为:
x n + 1 = x n − N R S R (8) x_{n+1}=x_n-NRSR\tag{8} xn+1=xnNRSR(8)
参数ρ来改进所提出的NRBO的利用,该参数将种群引向正确的方向:
ρ = a × ( X b − X n ′ T ) + b × ( X r 1 ′ T − X r 2 ′ T ) (9) \rho=a\times\left(X_b-X_n^{\prime T}\right)+b\times\left(X_{r_1}^{\prime T}-X_{r_2}^{\prime T}\right)\tag{9} ρ=a×(XbXnT)+b×(Xr1TXr2T)(9)
其中a和b是(0,1)之间的随机数,r1和r2是从总体中随机选择的不同整数。向量(Xn IT)的当前位置:
X 1 n T = x n I T − ( r a n d n × ( X w − X b ) × Δ x 2 × ( X w + X b − 2 × X n ) ) + ( a × ( X b − X n I T ) ) + b × ( X r 1 I T − X r 2 I T ) (10) \begin{aligned} X1_{n}^{T}= x_{n}^{IT}-\left(randn\times\frac{(X_{w}-X_{b})\times\Delta x}{2\times(X_{w}+X_{b}-2\times X_{n})}\right)+\left(a\times\left(X_{b}-X_{n}{}^{IT}\right)\right) +b\times\left(X_{r_{1}}^{IT}-X_{r_{2}}^{IT}\right) \end{aligned}\tag{10} X1nT=xnIT(randn×2×(Xw+Xb2×Xn)(XwXb)×Δx)+(a×(XbXnIT))+b×(Xr1ITXr2IT)(10)
(Weerakoon and Fernando, 2000)提出的NRM进一步完善了NRSR:
N R S R = r a n d n × ( y w − y b ) × Δ x 2 × ( y w + y b − 2 × x n ) y w = r 1 × ( M e a n ( Z n + 1 + x n ) + r 1 × Δ x ) y b = r 1 × ( M e a n ( Z n + 1 + x n ) − r 1 × Δ x ) Z n + 1 = x n − r a n d n × ( X w − X b ) × Δ x 2 × ( X w + X b − 2 × x n ) (11) \begin{aligned} &\mathrm{NRSR}=randn\times\frac{(y_w-y_b)\times\Delta x}{2\times(y_w+y_b-2\times x_n)} \\ &y_w=r_1\times(\mathrm{Mean}(Z_{n+1}+x_n)+r_1\times\Delta x) \\ &y_b=r_1\times(\mathrm{Mean}(Z_{n+1}+x_n)-r_1\times\Delta x) \\ &Z_{n+1}= x_{n}-randn\times{\frac{(X_{w}-X_{b})\times\Delta x}{2\times(X_{w}+X_{b}-2\times x_{n})}} \end{aligned}\tag{11} NRSR=randn×2×(yw+yb2×xn)(ywyb)×Δxyw=r1×(Mean(Zn+1+xn)+r1×Δx)yb=r1×(Mean(Zn+1+xn)r1×Δx)Zn+1=xnrandn×2×(Xw+Xb2×xn)(XwXb)×Δx(11)
其中yw和yb为zn1和xn生成的两个向量的位置,NRSR表述为:
X 1 n T = x n I T − ( r a n d n × ( y w − y b ) × Δ x 2 × ( y w + y b − 2 × x n ) ) + ( a × ( X b − X n I T ) ) + b × ( X r 1 I T − X r 2 I T ) (12) \begin{aligned} X1_{n}^{T}= x_{n}^{IT}-\left(randn\times{\frac{(y_{w}-y_{b})\times\Delta x}{2\times(y_{w}+y_{b}-2\times x_{n})}}\right)+\left(a\times\left(X_{b}-X_{n}{}^{IT}\right)\right) +b\times\left(X_{r_{1}}^{IT}-X_{r_{2}}^{IT}\right)\end{aligned}\tag{12} X1nT=xnIT(randn×2×(yw+yb2×xn)(ywyb)×Δx)+(a×(XbXnIT))+b×(Xr1ITXr2IT)(12)
通过最佳向量Xb构造新向量X2nIT:
X 2 n T = X b − ( r a n d n × ( y w − y b ) × Δ x 2 × ( y w + y b − 2 × x n ) ) + ( a × ( X b − X n I T ) ) + b × ( X r 1 I T − X r 2 I T ) (13) \begin{aligned} X2_{n}^{T}= X_{b}-\left(randn\times{\frac{(y_{w}-y_{b})\times\Delta x}{2\times(y_{w}+y_{b}-2\times x_{n})}}\right)+\left(a\times\left(X_{b}-X_{n}{}^{IT}\right)\right) +b\times\left(X_{r_{1}}^{IT}-X_{r_{2}}^{IT}\right) \end{aligned}\tag{13} X2nT=Xb(randn×2×(yw+yb2×xn)(ywyb)×Δx)+(a×(XbXnIT))+b×(Xr1ITXr2IT)(13)
位置向量:
x n I T + 1 = r 2 × ( r 2 × X 1 n I T + ( 1 − r 2 ) × X 2 n I T ) + ( 1 − r 2 ) × X 3 n I T X 3 n I T = X n I T − δ × ( X 2 n I T − X 1 n I T ) (14) \begin{aligned}&x_{n}^{IT+1}=r_{2}\times\left(r_{2}\times X1_{n}^{IT}+(1-r_{2})\times X2_{n}^{IT}\right)+(1-r_{2})\times X3_{n}^{IT}\\&X3_{n}^{IT}=X_{n}^{IT}-\delta\times\left(X2_{n}^{IT}-X1_{n}^{IT}\right)\end{aligned}\tag{14} xnIT+1=r2×(r2×X1nIT+(1r2)×X2nIT)+(1r2)×X3nITX3nIT=XnITδ×(X2nITX1nIT)(14)

陷阱避免算子 TAO

TAO是采用(ahmadanfar等人,2020)改进和增强的优化方式,使用TAO可以显著改变x1n的位置。通过结合最佳位置Xb和当前矢量位置xitn,它产生了一个具有增强质量的解决方案:
{ X T A O T T = X n T T + 1 + θ 1 × ( μ 1 × x b − μ 2 × X n T T ) + θ 2 × δ × ( μ 1 × M e a n ( X T T ) − μ 2 × X n T T ) , i f μ 1 < 0.5 X T A O T T = x b + θ 1 × ( μ 1 × x b − μ 2 × X n T T ) + θ 2 × δ × ( μ 1 × M e a n ( X T T ) − μ 2 × X n T T ) , O t h e r w i s e (15a) \begin{cases}X_{TAO}^{TT}=X_{n}^{TT+1}+\theta_{1}\times\left(\mu_{1}\times x_{\mathrm{b}}-\mu_{2}\times X_{n}^{TT}\right)+\theta_{2}\times\delta\times\left(\mu_{1}\times\mathrm{Mean}\left(X^{TT}\right)-\mu_{2}\times X_{n}^{TT}\right), \mathrm{if} \mu_{1}<0.5\\X_{TAO}^{TT}=x_{\mathrm{b}}+\theta_{1}\times\left(\mu_{1}\times x_{\mathrm{b}}-\mu_{2}\times X_{n}^{TT}\right)+\theta_{2}\times\delta\times\left(\mu_{1}\times\mathrm{Mean}\left(X^{TT}\right)-\mu_{2}\times X_{n}^{TT}\right),\quad\mathrm{Otherwise}\end{cases}\tag{15a} {XTAOTT=XnTT+1+θ1×(μ1×xbμ2×XnTT)+θ2×δ×(μ1×Mean(XTT)μ2×XnTT),ifμ1<0.5XTAOTT=xb+θ1×(μ1×xbμ2×XnTT)+θ2×δ×(μ1×Mean(XTT)μ2×XnTT),Otherwise(15a)
X n I T + 1 = X T A O I T (15b) X_n^{IT+1}=X_{TAO}^{IT}\tag{15b} XnIT+1=XTAOIT(15b)
DF为控制NRBO性能的决定因子,μ1和μ2为随机数:
μ 1 = { 3 × r a n d , i f Δ < 0.5 1 , O t h e r w i s e μ 2 = { r a n d , i f Δ < 0.5 1 , O t h e r w i s e (16) \left.\mu_{1}=\left\{\begin{array}{cc}{3\times rand,}&{{\mathrm{if}}\Delta<0.5}\\{1,}&{{\mathrm{Otherwise}}}\end{array}\right.\right.\\\mu_{2}=\left\{\begin{array}{cc}{rand,}&{{\mathrm{if}}\Delta<0.5}\\{1,}&{{\mathrm{Otherwise}}}\end{array}\right.\tag{16} μ1={3×rand,1,ifΔ<0.5Otherwiseμ2={rand,1,ifΔ<0.5Otherwise(16)
其中rand表示(0,1)之间的随机数,Δ表示(0,1)之间的随机数。上述等式进一步简化:
μ 1 = β × 3 × r a n d + ( 1 − β ) μ 2 = β × r a n d + ( 1 − β ) (17) \mu_{1}=\beta\times3\times rand+(1-\beta)\\\mu_{2}=\beta\times rand+(1-\beta)\tag{17} μ1=β×3×rand+(1β)μ2=β×rand+(1β)(17)

流程图

在这里插入图片描述

伪代码

在这里插入图片描述

3.结果展示

使用测试框架,测试NRBO性能 一键run.m

CEC2017-F21

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Sowmya R, Premkumar M, Jangir P. Newton-Raphson-based optimizer: A new population-based metaheuristic algorithm for continuous optimization problems[J]. Engineering Applications of Artificial Intelligence, 2024, 128: 107532.

5.代码获取

资源清单

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小O的算法实验室

谢谢大佬的肯定!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值