(源码)群体智能优化算法之正余弦优化算法(Sine Cosine Algorithm,SCA)

在这里插入图片描述
获取更多资讯,赶快关注上面的公众号吧!

正余弦优化算法(Sine Cosine Algorithm,SCA)

该算法是由澳大利亚的Mirjalili于2016年提出的一种基于种群的新型随机优化算法,SCA创建多个初始随机候选解,然后利用基于正弦和余弦函数的数学模型,使得这些解朝最优解方向或反向波动。算法源代码可以关注公众号后回复"正余弦"获取。

SCA

SCA本质上为基于种群的优化算法,而基于种群的优化算法的共同点是都包含两个阶段:探索和利用。探索阶段,算法以较大的概率随机搜索以充分探索搜索空间,而在利用阶段,随机概率逐渐下降。

SCA使用以下两个等式进行位置更新:
X i t + 1 = X i t + r 1 × sin ⁡ ( r 2 ) × ∣ r 3 P i t − X i t ∣ (1) X_{i}^{t+1}=X_{i}^{t}+r_{1} \times \sin \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|\tag{1} Xit+1=Xit+r1×sin(r2)×r3PitXit(1)

X i t + 1 = X i t + r 1 × cos ⁡ ( r 2 ) × ∣ r 3 P i t − X i t ∣ (2) X_{i}^{t+1}=X_{i}^{t}+r_{1} \times \cos \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|\tag{2} Xit+1=Xit+r1×cos(r2)×r3PitXit(2)

其中 X i t X_{i}^{t} Xit为第 t t t次迭代中当前解在第 i i i个维度上的位置, r 1 r_1 r1/ r 2 r_2 r2/ r 3 r_3 r3为随机数, P i P_{i} Pi为第 i i i维终点的位置。

这两个等式通常按照如下的组合方式使用:
X i t + 1 = { X i t + r 1 × sin ⁡ ( r 2 ) × ∣ r 3 P i t − X i t ∣ , r 4 < 0.5 X i t + r 1 × cos ⁡ ( r 2 ) × ∣ r 3 P i t − X i t ∣ , r 4 ≥ 0.5 (3) X_{i}^{t+1}=\left\{\begin{array}{ll} X_{i}^{t}+r_{1} \times \sin \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|, & r_{4}<0.5 \\ X_{i}^{t}+r_{1} \times \cos \left(r_{2}\right) \times\left|r_{3} P_{i}^{t}-X_{i}^{t}\right|, & r_{4} \geq 0.5 \end{array}\right. \tag{3} Xit+1={Xit+r1×sin(r2)×r3PitXit,Xit+r1×cos(r2)×r3PitXit,r4<0.5r40.5(3)

其中 r 4 r_4 r4为[0,1]之间的随机数。

可以看出,在SCA中主要涉及四个参数: r 1 r_1 r1, r 2 r_2 r2, r 3 r_3 r3 r 4 r_4 r4。参数 r 1 r_1 r1为下一位置的所在区域(或移动方向),该区域既可以位于解和终点之间的空间内,也可以不在。参数 r 2 r_2 r2定义了朝向或背离终点的距离远近。参数 r 3 ∈ [ 0 , 2 ] r_3\in[0,2] r3[0,2]为终点引入了随机权重,以随机强调( r 3 > 1 r_3>1 r3>1)或弱化( r 3 < 1 r_3<1 r3<1)终点在距离计算时的作用。参数 r 4 r_4 r4用于以相等的概率在正弦和余弦之间进行切换。

图1 等式(1)和(2)中正弦和余弦对下一位置的影响

等式(1)和(2)中正弦和余弦对下一位置的影响如图1所示,正弦和余弦的周期模式可以允许一个解在另一个解周围重新定位,从而保证利用两个解之间定义的空间,同时为了探索搜索空间,解应该能够搜索其对应终点之间之外的空间,而这可以通过改变正弦和余弦函数的取值范围来实现,如图2所示。

图2 取值在[-2,2]的正余弦

图3展示了改变正余弦的取值范围可以更新解的位置,该随机位置到底是在空间内还是空间外,是通过等式(3)中定义的 r 2 ∈ [ 0 , 2 π ] r_2\in[0, 2\pi] r2[0,2π]来实现的。

图3 取值在[-2,2]的正余弦允许解围绕(位于两者的空间内)或远离(不在两者的空间内)终点

为了平衡探索和利用,正弦和余弦的取值范围应该自适应地调整:
r 1 = a − t a T (4) r_{1}=a-t \frac{a}{T}\tag{4} r1=atTa(4)

其中 t t t为当前迭代, T T T为最大迭代次数, a a a是一个常数。图4展示了当 a = 2 a=2 a=2时取值范围递减的过程。

图4 取值范围递减过程

所以通过图3和图4可知,当取值范围在(1,2]和[-2,-1)范围内时,SCA算法在空间内进行探索,而当取值范围在[-1,1]之间时,SCA在空间内进行利用。

SCA算法的伪代码如下:

初始化初始解( X X X)

Do

评估每个代理的目标函数

更新当前最优解( P = X ∗ P=X^* P=X)

更新 r 1 r_1 r1, r 2 r_2 r2, r 3 r_3 r3 r 4 r_4 r4

更新代理的位置(式3)

While( t t t<最大迭代次数)

Return全局最优解

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SCA余弦优化算法Sine Cosine Algorithm,SCA)是一种基于弦和余弦函数优化的算法。它是由Seyedali Mirjalili于2016年提出的,用于求解全局优化问题。 SCA算法的主要思想是通过模拟弦和余弦函数的运动规律来搜索最优解。弦函数在区间[0,π]上递增,而余弦函数在区间[0,π/2]上递减。利用这种特性,SCA算法引入了两个变量:弦变量sin(t)和余弦变量cos(t),t为迭代次数。 算法的优化过程包括两个主要步骤:位置更新和解搜索。在位置更新步骤中,根据弦和余弦函数的运动规律,更新每个解的位置。同时,引入一个随机数项来增加算法的搜索范围。在解搜索步骤中,通过计算适应度函数来评估每个解的质量,并根据适应度函数的值进行解的选择和更新。 SCA算法的优点包括以下几个方面: 1. 算法简单易实现,没有复杂的参数设置过程; 2. 具有较强的全局搜索能力,能够有效地搜索到最优解; 3. 算法具有较好的收敛性能,收敛速度较快。 然而,SCA算法也存在一些不足之处: 1. 对于复杂的优化问题,算法可能会陷入局部最优解; 2. 算法的搜索范围受到弦和余弦函数的限制,可能导致搜索空间不足。 总之,SCA余弦优化算法是一种基于弦和余弦函数优化的算法,通过模拟弦和余弦函数的运动规律来搜索最优解。它具有简单易实现、全局搜索能力强和较快的收敛速度等优点,但也需要考虑到局部最优解和搜索范围受限的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

松间沙路hba

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值