智能优化算法:正余弦优化算法-附代码

智能优化算法:正余弦优化算法-附代码

文章目录

  • 智能优化算法:正余弦优化算法-附代码
    • 1.算法原理
    • 2.算法流程
    • 3.算法结果
    • 4.参考文献
    • 5.MATLAB代码
    • 6.Python代码

摘要:正 余 弦 优 化 算 法 ( Sine Cosine Algorithm,SCA) 是Seyedali Mirjalili等于2016年提出的一种新型智能优化算法,在算法中会生成多个初始随机候选解,并使它们基于正弦和余弦的数学模型向外波动或向最优解的方向波动,利用多个随机变量和自适应变量来计算当前解所在位置,从而可以搜索空间中的不同区域,有效地避免局部最优,收敛于全局最优。

1.算法原理

正余弦优化算法是一种随机优化算法,具有高度的灵活性,原理简单,易于实现,可以方便地应用于不同领域的优化问题。正余弦优化算法的寻优过程可分为两个阶段,在探索阶段,优化算法通过结合某随机解在所有随机解中快速寻找搜索空间中的可行区域; 到了开发阶段,随机解会逐渐发生变化,且随机解的变化速度会低于探索阶段的速度。在正弦余弦算法中,首先候选解会被随机初始化,然后会根据正弦或者余弦函数并结合随机因子来更新当前解在每一维度上的值。其具体更新方程为:
X i t + 1 = { X i t + r 1 ∗ s i n ( r 2 ) ∗ ∣ r 3 P i t − X i t ∣ r 4 < 0.5 X i t + r 1 ∗ c o s ( r 2 ) ∗ ∣ r 3 P i t − X i t ∣ r 4 > 0.5 (1) X_{i}^{t+1}=\begin{cases}X_{i}^{t}+r_{1}*sin(r_{2})*|r_{3}P_{i}^{t}-X_{i}^{t}|\quad r_{4}<0.5\\ X_{i}^{t}+r_{1}*cos(r_{2})*|r_{3}P_{i}^{t}-X_{i}^{t}|\quad r_{4}>0.5\end{cases}\tag{1} Xit+1={Xit+r1sin(r2)r3PitXitr4<0.5Xit+r1cos(r2)r3PitXitr4>0.5(1)
式中: X i t X_{i}^{t} Xit是当前个体的第 i i i维第 t t t代的位置; r 2 r_{2} r2为0到 2 π 2\pi 2π的随机数; r 3 r_{3} r3为0到2之间的随机数; r 4 r_{4} r4为0到1的随机数, P i t P_{i}^{t} Pit表示在t次迭代时最优个体位置变量的第 i i i维的位置。
r 1 = a − t a T (2) r_{1}=a-t\frac{a}{T}\tag{2} r1=atTa(2)
式中: a a a 是一个常数; t t t 为当前迭代次数; T T T 为最大迭代次数; 参数 r 1 r_{1} r1表示下一个解的位置区域在当前解和最优解之内或者之外,较小的 r 1 r_{1} r1的值有助于增强算法的局部开发能力,较大的 r 1 r_{1} r1的值有助于提高算法的全局探索能力,同时 r 1 r_{1} r1的值随迭代次数逐渐减小,平衡了算法局部开发和全局搜索的能力; r 2 , r 3 , r 4 r_{2},r_{3},r_{4} r2,r3,r4为随机因子,参数 r 2 r_{2} r2定义了当前解朝向或者远离最优解多远; 参数 r 3 r_{3} r3为最优解给出一个随机权值,是为了随机强调 ( r 3 > 1 ) (r_{3}>1) (r31) 或者忽略 ( r 3 < 1 ) (r_{3}<1) (r31) 最优解在定义候选解移动距离时的影响效果; 参数 r 4 r_{4} r4平等地切换正弦和余弦函数。

对于给出的问题,正余弦优化算法会随机创建一系列候选解,并且根据正弦和余弦函数更新每个候选解在所有维度上的值,正弦和余弦函数的循环模式允许一个解在其他解的周围被重新定位,这能够保证在两个解之间的空间进行搜索。可以更快地收敛于全局最优。

智能优化算法:正余弦优化算法-附代码_第1张图片

图1.正余弦寻优过程

正余弦的寻优过程如图 1 所示,当正弦或余弦函数返回值在-1和1之间时,候选解可以较好搜索前景的空间,使其得到充分开发; 当正弦或余弦函数返回一个大于1或小于-1的值时,候选解可以在探索所定义的搜索空间之外的区域进行全局搜索; SCA 算法在定义的空间区域范围内利用正弦和余弦函数可以平缓地从探索阶段过渡到开发阶段; 在优化过程中全局最优解的地点被存储为一个可变目标点而不丢失; 在优化过程中,候选解总是在当前最优解周围更新他们的地点,并不断趋向于搜索空间中的最佳区域。

2.算法流程

Step1: 种群初始化。设种群的群规模为m在[0,255]范围内随机生成 m 个解,并且随机设定各解的初始位置。

Step2: 计算所有解的适应度。

Step3: 解的位置更新。根据 r 4 r_{4} r4值选择相应的位置更新公式,更新候选解在每一维度上的位置,重新计算所有候选解的适应度值 ,从而得到每个解的适应度以及本次全局最优位置的适应度。

Step4: 比较并更新全局最优解的位置。将更新后的每一个解的适应度值与全局最优解的适应度值进行比较,如果当前解的适应度值大于全局最优的适应值,则更新全局最优解的位置。

Step5:是否满足算法终止条件,如果满足则输出最优解,否则重复step2-4。

3.算法结果

智能优化算法:正余弦优化算法-附代码_第2张图片

4.参考文献

[1]Seyedali Mirjalili. SCA: A Sine Cosine Algorithm for solving optimization problems[J]. Knowledge-Based Systems,2016,96.

[2]鲍小丽,贾鹤鸣,郎春博,彭晓旭,康立飞,李金夺.正余弦优化算法在多阈值图像分割中的应用[J].森林工程,2019,35(04):58-64.

5.MATLAB代码

正余弦优化算法
改进算法matlab代码

名称 说明或者参考文献
基于动态分级策略的改进正余弦算法(DSCA) [1]魏锋涛,张洋洋,黎俊宇,史云鹏.基于动态分级策略的改进正余弦算法[J].系统工程与电子技术,2021,43(06):1596-1605.
基于量子位Bloch坐标编码自适应的改进正余弦算法(ASCA) [1]牛培峰,吴志良,马云鹏,史春见,李进柏.基于正弦余弦算法的汽轮机热耗率预测[J].动力工程学报,2018,38(02):85-91.
基于精英混沌搜索策略的交替正余弦算法(COSCA) [1]郭文艳,王远,戴芳,刘婷.基于精英混沌搜索策略的交替正余弦算法[J].控制与决策,2019,34(08):1654-1662.
自学习策略和Lévy飞行的正弦余弦优化算法 [1]李银通,韩统,赵辉,王骁飞.自学习策略和Lévy飞行的正弦余弦优化算法[J].重庆大学学报,2019,42(09):56-66.
多尺度正余弦优化算法(MSCA) [1]申元霞,张学锋,方馨,汪小燕.多尺度正余弦优化算法[J/OL].控制与决策:1-10[2021-10-27].https://doi.org/10.13195/j.kzyjc.2021.0513.
基于精英混沌搜索策略的交替正余弦算法(COSCA) [1]郭文艳,王远,戴芳,刘婷.基于精英混沌搜索策略的交替正余弦算法[J].控制与决策,2019,34(08):1654-1662.

算法相关应用

名称 说明或者参考文献
基于二进制正余弦算法的背包问题求解 https://blog.csdn.net/u011835903/article/details/120221888?spm=1001.2014.3001.5501

6.Python代码

正余弦优化算法
个人资料介绍

你可能感兴趣的:(智能优化算法,算法,机器学习,深度学习)