融合黄金正弦与sigmoid连续化的海鸥优化算法

文章目录

  • 融合黄金正弦与sigmoid连续化的海鸥优化算法
    • 1.海鸥优化算法
    • 2. 改进海鸥优化算法
      • 2.1 Sigmoid 函数收敛因子
      • 2.2 全局最优更新连续化
      • 2.3 黄金正弦指引机制
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.Python代码

摘要:针对海鸥算法(SOA)在迭代寻优过程中容易陷入局部最优、收敛速度慢以及寻优精度低等缺陷,提出一种黄金正弦引导与Sigmoid连续化的海鸥优化算法(GSCSOA)。在海鸥迁徙阶段,使用Sigmoid函数作为非线性收敛因子引导海鸥搜寻过程,使得算法前期保持更强的全局寻优能力,后期更快收敛。在海鸥扑食阶段,引入禁忌搜索的思想,使得海鸥始终向着置信度更高的区域移动,并且在一次迭代中最优位置持续变化,从而提高寻优精度。之后使用黄金正弦机制指引种群位置跟新,缩小搜索范围,提高局部寻优能力。

1.海鸥优化算法

基础海鸥优化算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107535864

2. 改进海鸥优化算法

2.1 Sigmoid 函数收敛因子

Ps(x)=A×Z+Pbs(x)Z=∣Pbs(x)+2×A×rd×(Pbs(x)−Pb(x)∣×x×y×z(11)\begin{aligned} &P_s(x)=A \times Z+P_{\mathrm{bs}}(x)\\ &Z=\mid P_{\mathrm{bs}}(x)+2 \times A \times r d \times\left(P_{b s}(x)-P_b(x) \mid \times x \times y \times z\right. \end{aligned}\tag{11} ​Ps​(x)=A×Z+Pbs​(x)Z=∣Pbs​(x)+2×A×rd×(Pbs​(x)−Pb​(x)∣×x×y×z​(11)

式(11)由式(10)转换而来, 由式(11)可知:当收敛因子 AAA 的值较大时, 全局搜索能力强, 当 AAA 的值小时, 局部寻优能 力强。SOA算法使用线性惯性权重, AAA 的值随着迭代次数增 加从 2 线性下降至 0 。这种线性惯性权重虽然能在一定程度 上平衡全局搜索和局部搜索, 但是实际的搜索过程是一个极 为复杂的非线性过程, 线性权重会降低算法寻优的性能。
本文提出的 GSCSOA 算法使用 Sigmoid 函数作为非线 性收敛因子 AfA_fAf​, 替换原有的收敛因子 A∘AfA \circ A_fA∘Af​ 的表达式如式(14) 所示, 首先将 xxx 缩放到 (−5,5),Af(-5,5), A_f(−5,5),Af​ 从接近 2 的值非线性下降至 接近 0 的值, 改进后的位置更新由式(12)计算。
Ps(x)=Af×Z+Pbs(x)(12)S(x)=21+e−x(13)Af(x)=fc×S(−x−12Maxitea Max⁡itea ×10)=fc1+exp⁡(x−12Maxitea Mitea ×10)(14)\begin{gathered} P_s(x)=A_f \times Z+P_{\mathrm{bs}}(x)&(12)\\ S(x)=\frac{2}{1+e^{-x}}&(13)\\ A_f(x)=f_c \times S\left(-\frac{x-\frac{1}{2} M a x_{\text {itea }}}{\operatorname{Max}_{\text {itea }}} \times 10\right)=\frac{f_c}{1+\exp \left(\frac{x-\frac{1}{2} M a x_{\text {itea }}}{M_{\text {itea }}} \times 10\right)}&(14) \end{gathered} Ps​(x)=Af​×Z+Pbs​(x)S(x)=1+e−x2​Af​(x)=fc​×S(−Maxitea ​x−21​Maxitea ​​×10)=1+exp(Mitea ​x−21​Maxitea ​​×10)fc​​​(12)(13)(14)​
本文使用 Sigmoid 函数作为收敛因子,在前期保持种群较大的个体自由度,增强全局寻优能力。在后期的个体自由度迅速下降,局部寻优能力加强。相比于线性惯性权重,Sigmoid 函数作为非线性收敛因子来平滑过度迁徙和扑食过程,能更优地平衡全局搜索和局部搜索,使寻优过程变成非线性。因此这种改在进理论上可以提高种群寻优精度,同时加速寻优速度。

2.2 全局最优更新连续化

SOA 算法每次迭代中,对于种群更新后的位置全部接受,迭代完成后种群才进行全局最优查找。这样会存在两个缺点:一是种群多样性过早下降。由式(11)可知,SOA 算法更新后的种群分布以上次搜索的全局最优为中心,呈螺旋状形态。随着迭代次数的增加,种群越接近中心,个体多样性锐减。二是全局最优更新非连续。在一次迭代中,全局最优在每个搜索代理位置更新后都有可能产生,SOA 算法是在种群位置更新完成后才更新全局最优位置,这种更新会导致 P s (x)不连续。使的本次迭代与下一次迭代之间不连续,非连续化的更新使得最新产生的全局最优不能及时的用来指导后面的搜索,降低了算法的效率和收敛速度。

GSCSOA 算法引入贪心策略(15)对每个搜索代理的位置 进行一次篮选, 引导种群向最优位置靠近。这一策略一方面 保留了较大适应度的搜索代理, 使得平均适应度较高, 由式 (1)知搜索代理自身的经验也在寻优中发挥作用, 因此有利于 提高算法整体的寻优性能。另一方面, 抛弃了本次迭代中的 一部分个体, 保留了历代搜索中的一部分较高适应度的个体, 使得每次迭代计算的搜索代理来自不同的搜索历史, 从而种 群的多样性得到丰富, 个体分布较为分散, 避免陷入局部收 敛, 解决了 SOA 遇到的第一个问题。
为解决第二个问题, GSCSOA 在每个搜索代理位置更新后使用式(16)更新全局最优,在每次迭代中全局最优可以多 次变化。及时地使用最新全局最优来指导后面的更新, 避免 了无效的计算, 提升算法效率。这种机制使 Pbs(x)P_{b s}(x)Pbs​(x) 的更新相对 连续化, 每次迭代之间更加平滑地过度。
Pbs(x+1)={Ps(x+1),if fit (Ps(x+1))≥fit(Pbs(x))Pbs(x),else (16)P_{\mathrm{bs}}(x+1)=\left\{\begin{array}{l} P_{\mathrm{s}}(x+1), \text { if fit }\left(P_{\mathrm{s}}(x+1)\right) \geq f i t\left(P_{b \mathrm{~s}}(x)\right) \\ P_{\mathrm{bs}}(x), \text { else } \end{array}\right. \tag{16} Pbs​(x+1)={Ps​(x+1), if fit (Ps​(x+1))≥fit(Pb s​(x))Pbs​(x), else ​(16)

2.3 黄金正弦指引机制

在 GSCSOA 算法中, 通过融合搜索代理自身的历史经验 和种群的全局最优经验对搜索代理的位置进行二次更新, 如 式(17)所示。
Ps(x)=xit∗∣sin⁡(r1)∣+r2∗sin⁡(r1)∗∣θ1∗Pbs(x)−θ2∗Ps(x−1)∣(17)\begin{gathered} P_s(x)=x_i^t *\left|\sin \left(r_1\right)\right|+r_2 * \sin \left(r_1\right)^* \\ \left|\theta_1 * P_{b s}(x)-\theta_2 * P_s(x-1)\right| \end{gathered}\tag{17} Ps​(x)=xit​∗∣sin(r1​)∣+r2​∗sin(r1​)∗∣θ1​∗Pbs​(x)−θ2​∗Ps​(x−1)∣​(17)
其中, r1r_1r1​ 是 (0,2Π)(0,2 \Pi)(0,2Π) 中的一个随机数, r2r_2r2​ 是 (0,Π)(0, \Pi)(0,Π) 中的一个随机 数。 θ1\theta_1θ1​ 和 θ2\theta_2θ2​ 是黄金正弦系数, 由式(18)获得, τ\tauτ 是黄金分割比 例, a、ba 、 ba、b 是参数, 初始值分别为 Π\PiΠ 和 Π\PiΠ, 通过黄金分割算法 [15]更新。
θ1=a∗(1−τ)+b∗τ,θ2=a∗τ+b∗(1−τ)(18)τ=1−52=0.618033..(19)\begin{gathered} \theta_1=a^*(1-\tau)+b^* \tau, \theta_2=a^* \tau+b^*(1-\tau) &(18)\\ \tau=\frac{1-\sqrt{5}}{2}=0.618033 . .&(19) \end{gathered} θ1​=a∗(1−τ)+b∗τ,θ2​=a∗τ+b∗(1−τ)τ=21−5​​=0.618033..​(18)(19)​
黄金正弦指引机制通划分种群范围得到最佳搜索区域, 将其用于指导搜索代理的寻优过程, 使得 GSCSOA 算法在两 个方面有较大改善。一是海鸥的迁徙和和扑食操作都在最优 范围内进行, 搜索代理更容易寻找到全局最优位置, 从而提 高种群搜索精度。二是搜索范围以黄金比例缩小, 种群迅速 最佳区域靠近, 从而提高收玫速度。

结合以上改进方法, 本文改进的海鸥算法伪代码如下:
算法 1GSCSOA1 \mathrm{GSCSOA}1GSCSOA
输入:海鸥种群 Ps(s=1,2…N)P_s(s=1,2 \ldots N)Ps​(s=1,2…N) 。
输出:全局最优 PbsP_{b s}Pbs​ 。
初始化算法超参数 fcf cfc, 根据种群规模 NNN, 最大迭代次数 Tmax T_{\text {max }}Tmax ​, 搜索空
间维度 ddd 初始化种群;
计算种群每个搜索代理的适应度, 寻找种群最优位置 Pbs(x)P_{b s}(x)Pbs​(x);
While (t<Tmax⁡)//Tmax⁡\left(t<T_{\max }\right) \quad / / T_{\max }(t<Tmax​)//Tmax​ 为最大迭代次数
For in range (N)//N(N) \quad / / N(N)//N 为搜索代理数量
使用式 (14) 计算 Sigmoid 收敛因子 AfA_fAf​, 并使用式 (12)更新搜索 代理 sss 的位置 Ps(x)P_s(x)Ps​(x);
使用式 (15)(16)更新搜索代理 sss 的位置 Ps(x)P_s(x)Ps​(x) 和全局最优位置 Pbs(x)P_{b s}(x)Pbs​(x);
End for
For in range (N)(N)(N)
按式 (17)对所有搜索代理进行位置二次更新; ///黄金正弦引导
End for
End while
输出全局最优 Pbs(x)P_{b s}(x)Pbs​(x);

3.实验结果

4.参考文献

[1]王宁,何庆.融合黄金正弦与sigmoid连续化的海鸥优化算法[J/OL].计算机应用研究:1-8[2021-08-06].https://doi.org/10.19734/j.issn.1001-3695.2021.05.0176.

5.Matlab代码

6.Python代码

融合黄金正弦与sigmoid连续化的海鸥优化算法-附代码相关推荐

  1. 融合互利共生和透镜成像学习的哈里斯鹰优化算法-附代码

    融合互利共生和透镜成像学习的HHO优化算法 文章目录 融合互利共生和透镜成像学习的HHO优化算法 1.哈里斯鹰优化算法 2.改进哈里斯鹰优化算法 2.1 Tent 混沌初始化种群 2.2 融合互利共生 ...

  2. 融合莱维飞行与黄金正弦的蚁狮优化算法-附代码

    融合莱维飞行与黄金正弦的蚁狮优化算法 文章目录 融合莱维飞行与黄金正弦的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 Lévy 变异机制 2.2 黄金正弦算法 3.实验结果 4.参考 ...

  3. 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法-附代码

    融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 无限折叠迭代混沌映射的种群初始化 2.2 ...

  4. 自学习策略和Levy飞行的正弦余弦优化算法-附代码

    自学习策略和Levy飞行的正弦余弦优化算法 文章目录 自学习策略和Levy飞行的正弦余弦优化算法 1.正余弦算法 2. 改进的正弦余弦优化算法 2.1 自学习策略 2.2 停滞扰动策略 3.实验结果 ...

  5. 混合正弦余弦算法和 Lévy飞行的麻雀算法-附代码

    混合正弦余弦算法和 Lévy飞行的麻雀算法 文章目录 混合正弦余弦算法和 Lévy飞行的麻雀算法 1.麻雀搜索算法 2. 改进麻雀算法 2.1 融合正弦余弦算法(SCA)思想 2.2 Lévy飞行策略 ...

  6. 融合收敛因子和樽海鞘群的蝴蝶优化算法-附代码

    融合收敛因子和樽海鞘群的蝴蝶优化算法 文章目录 融合收敛因子和樽海鞘群的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 收敛因子 2.2 融合樽海鞘群领导者策略 3.实验结果 4.参考 ...

  7. 融合黄金正弦和曲线自适应的多策略麻雀搜索算法

    文章目录 一.理论基础 1.原始麻雀搜索算法(SSA) 2.融合黄金正弦和曲线自适应的多策略麻雀搜索算法(GCSSA) 2.1 Chebyshev混沌映射策略 2.2 位置更新方式改进 2.2.1 黄 ...

  8. 融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法-附代码

    融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法 文章目录 融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法 1.海鸥优化算法 2. 改进海鸥优化算 ...

  9. 融合柯西变异和反向学习的改进麻雀算法-附代码

    融合柯西变异和反向学习的改进麻雀算法 文章目录 融合柯西变异和反向学习的改进麻雀算法 1.麻雀搜索算法 2.融合柯西变异和反向学习的改进麻雀算法(ISA) 2.1 Sine 初始化种群 2.2 动态自 ...

  10. python人脸融合_用Python玩人脸融合,想知道你未来孩子的长相?(附代码)

    这次花了点时间,将百度智能云里面的人脸识别功能与python结合,进行了一场实验.结果还是蛮有成就感的,过程也挺简单,不会复杂,说不定,你就能融合出你孩子的长相了耶~ 下面我们一起敲起键盘吧! # 好 ...

最新文章

  1. 切歌请按3或4!我把树莓派装进了旋转电话里,现在它成了一部MP3
  2. CE6.0 下获得 SD 卡序列号的方法
  3. 笔记本电脑锁_小雷问答丨3000-3500 价格的笔记本电脑怎么选?
  4. RabbitMQ introduction
  5. VUEX中关于 mapActions, mapMutations使用解析
  6. 商城系统PageBean分页 Cookie存储浏览记录
  7. vue-lazyload的使用
  8. DataSet的Join操作
  9. servlet的请求转发与重定向
  10. git把项目上传到github的常用命令
  11. java打印出日历_java控制台打印本月的日历
  12. ureport2学习笔记
  13. GAN 模式崩溃的理论解释
  14. 一周成python大神_2个月把你变成selenium+Python大神,上海悠悠带你飞!
  15. 【你也能看得懂的电磁场与电磁波系列连载 12】
  16. 非专业学生如何系统的学习计算机编程?
  17. Ubuntu 搜狗输入法 关闭简繁切换快捷键
  18. [Codeforces266E]More Queries to Array...——线段树
  19. 4种方法!怎么把电脑上的音频传到苹果手机上?
  20. 微信版“花呗”全面开放,人人都可以申请!

热门文章

  1. win10卸载ie11后安装不上
  2. 微信小程序扫码功能的使用
  3. linux命令行连接蓝牙音箱,有些Linux发行版用蓝牙连接天猫精灵和小爱音箱没声音...
  4. 蓝桥杯web开发-5道模拟题让你信心满满
  5. NOIP 模拟题 国际跳棋
  6. 霓虹灯的c语言编写程序,用C语言编写单片机流水灯程序
  7. CSP共空间模式详解
  8. (原创)二十一天定律
  9. 秘制祖传正宗四川麻辣烫锅底配方
  10. 手机上将mp4转换成amv_如何在Linux上将所有文本从大写转换为小写?