智能优化算法:正余弦优化算法

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

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

1.算法原理

正余弦优化算法是一种随机优化算法,具有高度的灵活性,原理简单,易于实现,可以方便地应用于不同领域的优化问题。正余弦优化算法的寻优过程可分为两个阶段,在探索阶段,优化算法通过结合某随机解在所有随机解中快速寻找搜索空间中的可行区域; 到了开发阶段,随机解会逐渐发生变化,且随机解的变化速度会低于探索阶段的速度。在正弦余弦算法中,首先候选解会被随机初始化,然后会根据正弦或者余弦函数并结合随机因子来更新当前解在每一维度上的值。其具体更新方程为:

式中:是当前个体的第维第代的位置;为0到的随机数;为0到2之间的随机数;为0到1的随机数,表示在t次迭代时最优个体位置变量的第维的位置。

式中: 是一个常数; 为当前迭代次数; 为最大迭代次数; 参数表示下一个解的位置区域在当前解和最优解之内或者之外,较小的 的值有助于增强算法的局部开发能力,较大的 的值有助于提高算法的全局探索能力,同时 的值随迭代次数逐渐减小,平衡了算法局部开发和全局搜索的能力; 为随机因子,参数 定义了当前解朝向或者远离最优解多远; 参数 为最优解给出一个随机权值,是为了随机强调 或者忽略 最优解在定义候选解移动距离时的影响效果; 参数平等地切换正弦和余弦函数。

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

在这里插入图片描述

图1.正余弦寻优过程

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

2.算法流程

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

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

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

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

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

3.算法结果

算法结果

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代码

https://mianbaoduo.com/o/bread/Z5iZlZ0=

文献复现代码:
1.文献复现:自学习策略和Levy飞行的正弦余弦优化算法

[1]李银通,韩统,赵辉,王骁飞.自学习策略和Lévy飞行的正弦余弦优化算法[J].重庆大学学报,2019,42(09):56-66.

6.Python代码

https://mianbaoduo.com/o/bread/aZ2WmJc=

你可能感兴趣的:(智能优化算法:正余弦优化算法)