基于沙猫群优化算法的函数寻优算法

Posted 心️升明月

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于沙猫群优化算法的函数寻优算法相关的知识,希望对你有一定的参考价值。

文章目录

一、理论基础

1、沙猫群优化算法

文献[1]提出了一种新的元启发式算法,称为沙猫群优化算法(Sand Cat swarm optimization, SCSO),该算法模拟了沙猫试图在自然界中生存的行为。

(1)初始化种群

在SCSO算法中,种群被称为沙猫群,每一个猫显示问题变量的值。该算法是一种基于种群的方法,将相关结构定义为向量。在 d d d维优化问题中,沙猫是表示问题解的 1 × d 1\\times d 1×d数组。每个变量值 ( x 1 , x 2 , ⋯   , x d ) (x_1,x_2,\\cdots,x_d) (x1,x2,,xd)都是一个浮点数。这里的每个 x x x必须位于上下边界之间( ∀ x ∈ [ lower , upper ] \\forall x\\in[\\textlower, \\textupper] x[lower,upper])。为了启动SCSO算法,首先根据问题的大小( N p o p × N d ) , ( p o p = 1 , 2 , ⋯   , n ) N_pop\\times N_d), (pop=1,2,\\cdots,n) Npop×Nd),(pop=1,2,,n)用沙猫种群创建一个候选矩阵。
此外,通过对定义的适应度函数进行评价,得到每只沙猫的适应度代价。此函数定义问题的相关参数,SCSO将获得参数(变量)的最佳值。将从每个沙猫个体输出相应函数的值。当一次迭代完成时,会选择到目前为止该迭代中适应度函数最优的沙猫,其他沙猫会在下一个迭代中尝试向这个最佳选择的猫移动。因为每次迭代中的最佳解决方案可以代表最接近猎物的猫。如果在下一次迭代中没有找到更好的解决方案,那么该迭代的解决方案就不会不必要地存储在内存中,这确保了内存的有效使用。

(2)搜索猎物(探索)

沙猫的猎物搜索机制依赖于低频噪声发射。每只沙猫的解表示为 X i = ( x i 1 , x i 2 , ⋯   , x i d ) X_i=(x_i1,x_i2,\\cdots,x_id) Xi=(xi1,xi2,,xid)。SCSO算法得益于沙猫在低频探测方面的听觉能力,这样就声明了每只猫的敏感范围,沙猫可以感知低于2kHz的低频,在数学模型中,根据算法的工作原理,这个值( r G → \\overrightarrowr_G rG )将随着迭代过程的进行从2线性地降低为0,以逐渐靠近猎物而不会丢失或跳过。因此为了搜索猎物,假设沙猫的敏感范围为2kHz到0(式(1)), S M S_M SM​模拟了沙猫的听觉特性,其假设为2(当然对于不同问题可以适当调整以确定代理行为的速度)。值得一提的是,控制探索和利用之间转换的主要参数是 R R R,其是根据式(2)获得的向量。此外, iter c \\textiter_\\text c iterc是当前迭代次数, iter max ⁡ \\textiter_\\max itermax是最大迭代次数。 r G → = S M − ( S M × iter c iter max ⁡ ) (1) \\overrightarrowr_G=S_M-\\left(\\fracS_M\\times\\textiter_\\textc\\textiter_\\max\\right)\\tag1 rG =SM(itermaxSM×iterc)(1) R → = 2 × r G → × rand ( 0 , 1 ) − r G → (2) \\overrightarrow R=2\\times\\overrightarrowr_G\\times\\textrand(0,1)-\\overrightarrowr_G\\tag2 R =2×rG ×rand(0,1)rG (2) r → = r G → × rand ( 0 , 1 ) (3) \\overrightarrow r=\\overrightarrowr_G\\times\\textrand(0,1)\\tag3 r =rG ×rand(0,1)(3)每个搜索代理(沙猫)根据最佳候选位置( Pos b c → \\overrightarrow\\textPos_bc Posbc )和当前位置( Pos c → \\overrightarrow\\textPos_c Posc )及其灵敏度范围( r → \\overrightarrow r r )更新自己的位置。因此,沙猫能够找到其他可能的最佳猎物位置(式(4))。该公式为算法在搜索区域找到新的局部最优提供了另一个机会。因此,获得的位置位于当前位置和猎物位置之间。此外,这是通过随机性实现的,而不是通过精确的方法。这样,算法中的搜索代理就有利于提高随机性。这使得算法操作成本低,复杂度高效。 Pos → ( t + 1 ) = r → ⋅ ( Pos b c → ( t ) − rand ( 0 , 1 ) ⋅ Pos c → ( t ) ) (4) \\overrightarrow\\textPos(t+1)=\\overrightarrow r\\cdot\\left(\\overrightarrow\\textPos_bc(t)-\\textrand(0,1)\\cdot\\overrightarrow\\textPos_c(t)\\right)\\tag4 Pos (t+1)=r (Posbc (t)rand(0,1)Posc (t))(4)

(3)攻击猎物(开发)

如前所述,沙猫根据听力检测猎物。为了数学建模SCSO的攻击猎物阶段,最佳位置( Pos b → \\overrightarrow\\textPos_b Posb )(最佳解决方案)和当前位置( Pos c → \\overrightarrow\\textPos_c Posc )由式(5)计算。此外,沙猫敏感范围假设为一个圆,这样,运动方向由随机角度决定( θ \\theta θ)在圆圈上。当然,在指定运动方向时,式(5)中声明的其他参数也是有效的。由于所选的随机角度介于0和360之间,其值将介于-1和1之间。这样,种群中的每个成员都能够在搜索空间的不同圆周方向上移动。SCSO有利于轮盘选择算法为每只沙猫选择一个随机角度。这样,沙猫就可以接近狩猎位置。随机角也用于避免局部最优陷阱。使用式(5)中的随机角度将对搜索代理的狩猎方式产生积极影响,并引导它们。 Pos rnd →

以上是关于基于沙猫群优化算法的函数寻优算法的主要内容,如果未能解决你的问题,请参考以下文章

优化求解猫群算法求函数最优值

优化求解猫群算法求函数最优值

基于蒲公英优化算法的函数寻优算法

基于神经网络算法的函数寻优和工程优化

基于被囊群优化算法的函数寻优算法matlab代码

matlab基于鱼群算法函数寻优matlab优化算法八