正弦余弦算法的樽海鞘群算法


文章目录

  • 正弦余弦算法的樽海鞘群算法
  • 1.樽海鞘群算法
  • 2.正弦余弦算法的樽海鞘群算法
  • 2.1 Logistics 映射的种群初始化
  • 2.2 正弦余弦算法(SCA)
  • 2.3差分演化变异策略
  • 3.实验结果
  • 4.参考文献
  • 5.Matlab代码
  • 6.python代码



摘要:针对樽海鞘群算法求解精度不高和收敛速度慢等缺点,提出一种正弦余弦算法的樽海鞘群算法(SCS-SA)。引入 Logistics 混沌序列生成初始种群,增加初始个体的多样性;将正弦余弦算法作为局部因子嵌入到樽海鞘群算法中,对樽海鞘个体进行正弦和余弦优化;对最优樽海鞘的领域空间进行差分演化变异策略,增强局部搜索能力。

1.樽海鞘群算法

基础樽海鞘群优化算法算法的具体原理参考,

2.正弦余弦算法的樽海鞘群算法

2.1 Logistics 映射的种群初始化

樽海鞘群体的初始化对 SSA 的收敛速度和寻优精度至关重要。在樽海鞘群初始时,由于没有任何先验知识可使用,基本上大部分群智能算法的初始位置都是随机生成的。初始种群均匀分布在搜索空间,对提高算法寻优有很大帮助。混沌序列具有随机性、遍历性和规律性,通过其产生的樽海鞘群体有较好的多样性。其基本思路是:通过映射关系在[0,1]区间产生混沌序列,然后将其转化到个体的搜索空间。产生混沌序列的模型有许多,本文采用 Logistics 映射生成的混沌序列来初始化樽海鞘群算法群体。Logistics 映射的数学表达式为:
正弦余弦算法的樽海鞘群算法_算法
式中: 正弦余弦算法的樽海鞘群算法_搜索空间_02是混沌参数,正弦余弦算法的樽海鞘群算法_搜索空间_03 越大,混沌性越好,本文取正弦余弦算法的樽海鞘群算法_机器学习_04表示种群规模;正弦余弦算法的樽海鞘群算法_机器学习_05

Logistics 混沌映射对初始值的选取非常敏感,给式(6)选取 正弦余弦算法的樽海鞘群算法_初始化_06 个具有微小差异的初始值,则可得到 正弦余弦算法的樽海鞘群算法_初始化_06 个混沌序列 正弦余弦算法的樽海鞘群算法_机器学习_08 。然后再将正弦余弦算法的樽海鞘群算法_初始化_06个混沌序列 正弦余弦算法的樽海鞘群算法_机器学习_08 作逆映射到相应的个体搜索空间变量 正弦余弦算法的樽海鞘群算法_算法_11
正弦余弦算法的樽海鞘群算法_初始化_12
正弦余弦算法的樽海鞘群算法_搜索空间_13正弦余弦算法的樽海鞘群算法_算法_11

2.2 正弦余弦算法(SCA)

由式(5)追随者位置更新公式可知,第 i 只樽海鞘位置会根据第 i 和 i - 1 只樽海鞘位置坐标中点进行更新。在此过程中并没有判别x i 是否优于原来位置,这种单方向根据第 i 只樽海鞘的位置信息机制,樽海鞘个体之间缺少交流,信息利用率较低。为使群体之间拥有更多的交流机会,进一步优化樽海鞘群算法的探索和开发能力,本文引入正弦余弦算法作为局部优化算子嵌入到樽海鞘群算法中,即在更迭后期对全部樽海鞘个体采用正弦余弦操作,指导樽海鞘个体更新樽海鞘位置,更新公式如下:
正弦余弦算法的樽海鞘群算法_初始化_15
式中: 正弦余弦算法的樽海鞘群算法_初始化_16表示正弦余弦算法的樽海鞘群算法_初始化_06 维个体正弦余弦算法的樽海鞘群算法_算法_18的空间位置;正弦余弦算法的樽海鞘群算法_初始化_19表示每一代最有个体的位置,即食物源位置;$r _1 = a - t × a/T max 正弦余弦算法的樽海鞘群算法_搜索空间_20a = 2正弦余弦算法的樽海鞘群算法_聚类_21r_2$属于区间[0,2π]之间的一个随机数,其决定了应朝向或远离目标的移动距离。

2.3差分演化变异策略

在 SSA 中,樽海鞘链的领导者位置 正弦余弦算法的樽海鞘群算法_搜索空间_22至关重要,指引群体朝着最优解方向移动,但如果 正弦余弦算法的樽海鞘群算法_机器学习_23陷入局部最优,则容易使群体整体搜索出现停滞,对其进行变异操作,搜索邻域空间,可增强算法跳出局部最优的能力。本文采用一种差分演化变异策略(Differential Evolu-tionary Mutation,DEM) 。该策略采用差分演化对领导者位置 正弦余弦算法的樽海鞘群算法_机器学习_23进行扰动。更新公式如下:
正弦余弦算法的樽海鞘群算法_初始化_25
式中: 正弦余弦算法的樽海鞘群算法_算法_26 是缩放因子;正弦余弦算法的樽海鞘群算法_机器学习_27 是区间[1,N]上互不相同的随机整数,代表不同樽海鞘个体;j 是维度;正弦余弦算法的樽海鞘群算法_搜索空间_28为扰动后的食物源位置。使用式(10)交叉操作选择新的食物源位置。
正弦余弦算法的樽海鞘群算法_算法_29
式中: rand 是[0,1]区间均匀分布的随机数,对每一个维度都要重新产生;正弦余弦算法的樽海鞘群算法_搜索空间_30 为交叉概率;正弦余弦算法的樽海鞘群算法_搜索空间_31 是区间[1,D]上随机生成的一个整数,确保 正弦余弦算法的樽海鞘群算法_机器学习_32至少有一维不同于 正弦余弦算法的樽海鞘群算法_聚类_33 。本文实验中,正弦余弦算法的樽海鞘群算法_搜索空间_34

正弦余弦算法的樽海鞘群算法步骤如下:
Step 1 初始化个体位置。使用 Logistics 映射生成混沌序列,根据搜索空间的上下限,把混沌序列逆映射为一个 N × d 维的矩阵。
Step 2 计算初始适应度值。根据测试函数计算N 个樽海鞘的适应度值。
Step 3 选定食物源。将 Step2 中计算后的适应度值升序(或降序)排列,适应度值最好的樽海鞘位置选定为食物源位置。
Step 4 更新领导者和追随者位置。确定食物源位置之后,选取种群中一个的樽海鞘个体根据式(2)更新领导者位置,其余的樽海鞘根据式(5)更新追随者位置。
Step 5 正弦余弦指引策略。利用式(8)对 Step4所生成的樽海鞘个体进行正弦或余弦操作,以更新到新的樽海鞘位置。
Step 6 计算适应值。计算更新后种群的适应度值,引入差分演化变异策略,根据式(9)和式(10)更新食物源位置。
Step 7 重复 Step4 - Step6,如果达到设置的精度要求或规定的最大迭代次数,则终止算法,输出全局最优解。

3.实验结果

正弦余弦算法的樽海鞘群算法_算法_35

4.参考文献

[1]陈忠云,张达敏,辛梓芸.正弦余弦算法的樽海鞘群算法[J].计算机应用与软件,2020,37(09):209-214.

5.Matlab代码

6.python代码