24年算法Python版免费获取!牛顿-拉夫逊优化算法(NRBO)-原理详解及实现!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类算法的家人,可关注我的VX公众号:python算法小当家,不定期会有很多免费代码分享~ 

目录

01 算法初始化

02 牛顿-拉夫森搜索规则(NRSR)

03 陷阱避免算子(TAO)

04 函数测试

 05 免费获取代码

        牛顿-拉夫逊优化算法算法(Newton-Raphson-based optimizer,NRBO)是Sowmya等学者在启发式优化算法领域的最新研究成果,论文刊登于中科院2区顶级SCI期刊《Engineering Applications of Artificial Intelligence》。

图片

该算法灵感来源主要基于两个关键原理:

  1. 牛顿-拉弗森搜索规则(NRSR):

    NRSR基于牛顿-拉弗森方法增强了NRBO的搜索能力,提高了收敛速度,从而能更快地达到更优的搜索空间位置。它通过计算函数的一阶和二阶导数来更新解的位置,从而加快搜索过程。

  2. 陷阱避免算子(TAO):

    TAO的目的是帮助NRBO避开局部最优解。它通过改变解的更新方式,增加随机性和多样性,从而避免算法陷入局部最优。

  • 下面我们将详细介绍NRBO算法的原理及实现。

01 算法初始化

        NRBO 是一种基于种群的优化算法,它在开始时随机生成一组解,这些解构成了初始种群。初始种群的每一个解都是在解空间中随机位置的一个点,代表了一个潜在的解。因此,使用公式(7)生成随机种群:

图片

        式中,xij表示第n个总体的第j维位置,rand表示(0,1)之间的随机数。下式给出了可以描述所有维度的种群的种群矩阵。

图片

02 牛顿-拉夫森搜索规则(NRSR)

        牛顿-拉弗森方法是一种求解函数零点的数值方法,通过迭代逼近实现。它使用泰勒级数展开来近似函数,并利用一阶和二阶导数信息更新解的位置。NRSR 控制向量允许更准确地探索可行区域并获得更好的位置,二阶导数表述为:

图片

        通过减去/添加等式(9)和等式(10),f'(x)和f''(x)的表达式如下:

图片

        更新后的根位置重写如下:

图片

        考虑到NRSR是牛顿-拉夫森基优化器(NRBO)的主要组成部分,为了管理基于种群的搜索,有必要进行一些调整。根据公式(13),相邻的位置分别用 𝑥𝑛+Δ𝑥和 𝑥𝑛−Δ𝑥表示,如图 2 所示。这一对邻近位置在NRBO中被转换为种群中的另外两个向量。因为 𝑓(𝑥𝑛)是一个最小化问题,位置 𝑥𝑛+Δ𝑥的适应度值比位置 𝑥x 差,而位置 𝑥𝑛−Δ𝑥的适应度值比位置 𝑥𝑛好。因此,NRBO用位置 𝑥𝑛−Δ𝑥(在其邻域中有更好位置的)替换位置 𝑋𝑏,同时用位置 𝑥𝑛+Δ𝑥(在其邻域中有更差位置的)替换位置 𝑋𝑤。这种方法的一个额外优势是它使用位置 𝑥𝑛 而不是适应度 𝑓(𝑥𝑛),这样可以节省计算时间。在此之后,建议的NRSR表示如下:

图片

        其中randn表示均值为0、方差为1的正态分布随机数,Xw表示最差位置,Xb表示最佳位置。等式(14)可以通过用当前解决方案来辅助更新其位置来增强当前解决方案。等式(14)具有随机参数,以增加NRBO的搜索能力并更好地平衡开发和探索能力。

图片

        根据经验法则,该算法必须能够在多样化和强化之间达到平衡,以便在搜索空间中发现最优解,并最终收敛到全局解。可以通过应用一种称为δ的自适应系数来增强算法。δ的表达式用等式(15)表示:

图片

        其中IT表示当前迭代,而Max IT表示迭代的最大次数。为了在勘探和开发阶段之间保持平衡,参数δ在迭代过程中会自行调整。图3说明了每次迭代过程中δ的变化。根据公式(15),δ的值在1到−1之间变化。

图片

        与自适应参数δ一起,所提出的NRSR通过在优化过程中考虑随机动作,增加多样化,避免局部优化,同时显著减少迭代次数,从而改进了NRBO。Δx在等式中的表达式(14)在等式中提出了这个问题 (16)。

图片

        这里Xb表示迄今为止得到的最佳解,rand(1:dim)是一个决策变量模糊的随机数。现在,等式(13)通过考虑NRSR进行修改,并重写如下。

图片

        通过引入另一个名为ρ的参数,改进了NRBO的开发,该参数引导种群走向正确的方向。ρ的表达式如下。

图片

        其中,a和b是(0、1)之间的随机数,r1和r2是从总体中随机选择的不同整数。但是,r1和r2的值并是不相等的。矢量的当前位置(Xn IT)已由等式更新 (19)。

图片

        其中X1ITn是通过更新xITn而得到的新矢量位置。NRSR是由NRM进一步改进,并且公式(13)被修改和重写如下:

图片

        式中,yw和yb为使用Zn+1和xn生成的两个向量的位置,r1表示(0,1)之间的随机数。NRSR的增强版本在等式中呈现 (20).正在使用“等式”(20), Eq.(19),更新内容如下。

图片

        有必要通过用等公式(24)中的当前矢量xnIT的位置代替最佳矢量Xb的位置来构造新矢量X2ITn:

图片

        开发阶段是该搜索方向策略的主要重点。对于局部搜索,采用了等式提出的搜索方法(25)是良性的,但在涉及到全局搜索时,它有局限性,而等式提出的搜索策略(24)对于全球搜索是良性的,但在本地搜索方面有局限性。然而,NRBO同时使用了两个等式(24)和(25)改善多样化和强化阶段。下一次迭代中新的位置向量用等式表示 (26)。

图片

03 陷阱避免算子(TAO)

        TAO 是采用(ahmadanfar 等人,2020)改进和增强的优化方式,使用 TAO 可以显著改变 x1n 的位置。通过结合最佳位置 Xb 和当前矢量位置 xitn,它产生了一个具有增强质量的解决方案:

图片

图片

        式中,rand为(0,1)之间的均匀随机数,θ1和θ2分别为(- 1,1)和(- 0.5,0.5)之间的均匀随机数,DF为控制NRBO性能的决定因子,μ1和μ2为随机数,分别由下式生成。

图片

        其中rand表示(0,1)之间的随机数,Δ表示(0,1)之间的随机数。将上式进一步简化如下:

图片

        其中β表示二进制数,或1或0,rand表示随机数。如果Δ的值大于或等于0.5,则β的值为0,否则,该值为1。由于参数μ1和μ2选择的随机性,种群变得更加多样化,脱离局部最优解,有助于提高其多样化。与NRBO类似,GBO也受到了牛顿方法的启发。因此,NRBO的概念可能看起来类似于GBO,但由于NRBO的独特特性,其性能仍然比GBO好得多。在该算法中给出了NRBO的伪代码。所提出的NRBO的流程图如下图所示。

图片

NRBO伪代码如下所示:

图片

04 函数测试

        为了便于比较和理解,小当家选取标准测试函数,将NRBO与简单高效的新型优化算法JAYA进行性能对比。这里,我们展示了其中5个代表性测试函数的结果图。

图片

图片

图片

图片

图片

 05 免费获取代码

关注VX公众号python算法小当家,后台回复关键字NRBO,即可免费获得代码

NRBO

可后台回复需求定制NRBO改进及应用模型

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值