HGWOSCA-改进的灰狼优化算法1(Matlab)

HGWOSCA-改进的灰狼优化算法1(Matlab)的图1

在作者前面的文章中介绍了灰狼优化算法(Grey Wolf Optimization,GWO)的原理及其MATLAB实现,灰狼优化算法是Mirjalili等[1]于2014年提出的一种新型SI算法,GWO通过模拟灰狼群体捕食行为基于狼群群体协作的机制来达到优化的目的,这一机制在平衡探索和开发方面取得了不错的效果,并且在收敛速度和求解精度上都有良好的性能,目前已广泛应用于工程领域,如:神经网络、调度、控制、电力系统等。

虽然GWO在应用上非常成功,但其仍有几个缺点

1.勘探/开发保持为1,而在其他的优化算法往往是以一个减小的比例来加速搜索的过程,在迭代初期,算法需要注重勘探避免局部极小值,在迭代后期,算法需要注重开发以进行精确搜索,提高寻优精度。而勘探和开发对应着算法中的搜索猎物和攻击猎物,主要由参数aA控制,当A<1时即攻击,A>1时即搜索

HGWOSCA-改进的灰狼优化算法1(Matlab)的图2

2.不同类别的狼存在依赖性,比如低级的狼就依赖于𝛼狼,虽然这样能有极其有效的开发能力,但也降低了多样性,容易导致过早收敛和局部极值

3.初始种群多样性差,这是由GWO的初始种群生成方式导致的。随机初始化生成初始种群的方式无法保证较好的种群多样性

因此对于灰狼优化算法的改进可以从这3个方面入手,其改进策略也是多样的。基于以上认识,本文对控制参数以及头狼的位置更新进行了改进


00 文章目录

1 灰狼优化算法原理

2 改进的灰狼优化算法

3 代码目录

4 算法性能

5 总结

01 灰狼优化算法原理

关于灰狼优化算法的原理在前面的文章中已作了阐述,这里不再展开,想要了解的朋友可以点击下面的链接查看。

超详细 | 灰狼优化算法原理及其实现(Matlab)

02 改进的灰狼优化算法

2.1 改进控制参数a

GWO中的参数a控制勘探和开发过程,其主要影响A的值,当 | A | > 1 时,灰狼群体将扩大包围圈,以寻找更好的猎物,此时对应于全局搜索(勘探); 当| A | < 1 时,灰狼群体将收缩包围圈,以对猎物完成最后的攻击行为,此时对应于局部精确搜索(开发)。

HGWOSCA-改进的灰狼优化算法1(Matlab)的图3

HGWOSCA-改进的灰狼优化算法1(Matlab)的图4

参数a的变化是从勘探到开发过渡的控制因素,灰狼在自然界中的狩猎过程是复杂的,因此简单的线性变化不能有效的表征其搜索过程。本文使用正弦形式的a的变化来改进线性的搜索过程,其表达式如下:

HGWOSCA-改进的灰狼优化算法1(Matlab)的图5

其中,t表示当前迭代数,max_iter表示最大迭代数。

下图中展示了该非线性函数和标准GWO中的线性函数的比较。由图可知,本文的非线性函数在迭代初期,a的取值更广,其可用于勘探的范围也更广;而在迭代后期,a较小,有助于算法进行局部开发,加快其收敛速度

HGWOSCA-改进的灰狼优化算法1(Matlab)的图6


2.2 改进位置更新机制

GWO的搜索机制可知,狼群质量主要由α、β、δ狼以及父代狼的位置决定,因此,若头狼陷入局部最优,则狼群也会朝着偏离全局最优的方向搜索,导致GWO无法找到最优解。因此为提高算法的性能,可以对头狼的搜索机制进行改进。

正余弦算法(SCA)具有较高的勘探性能可以避免局部最优,但其开发效率低于GWO,而GWO虽然在局部开发中有更好的性能,但GWO在处理大规模问题时全局勘探性能会降低[2],因此将SCA合并到GWO中能够提高GWO的勘探能力,这样的混合算法能克服其陷入局部最优。因此本文将SCA的机制引入对于头狼引导的更新中,以提高算法的全局性,加速搜索,避免算法迭代多次而无任何改进。

2.2.1 正余弦算法

正余弦算法是 Mirjalili 于 2016 年提出的一种新型优化算法。该方法会创建不同的初始随机解决方案,并要求他们使用基于正弦或余弦函数的数学模型向外波动或朝向最佳解决方案前进,位置更新公式:

HGWOSCA-改进的灰狼优化算法1(Matlab)的图7

其中: Xt是第 t 次迭代时搜索代理的位置; X* t 是目标全局最优解决方案; r1、r2、r3、r4 均为[0,1]内的随机数。

2.2.2 ALPHA狼位置更新方法

利用上一节中的公式来更新alpha狼引导的位置,以平衡勘探和开发过程,加速算法收敛,对于其余狼的更新方法与传统GWO算法相同,alpha狼引导的位置更新公式如下:

HGWOSCA-改进的灰狼优化算法1(Matlab)的图8

2.3 算法流程

HGWOSCA(hybrid GWO-SCA)算法主要流程与GWO相同,其差异主要在与对于a参数以及alpha狼引导的更新中。

HGWOSCA-改进的灰狼优化算法1(Matlab)的图9

03 代码目录

HGWOSCA-改进的灰狼优化算法1(Matlab)的图10

代码获取方式见文末

04 算法性能

采用CEC的测试函数F9来初步检验其寻优性能,其运行结果如下:

HGWOSCA-改进的灰狼优化算法1(Matlab)的图11

05 总结

本文尝试了两种改进方法来改进GWO即正弦函数模拟狩猎以及通过SCA算法对alpha狼的位置进行更新,可以看出这种改进对于性能的提升虽有但不明显,因此作者后面也将进一步在该代码基础上改进,策略有如下几点:由于GWO算法本身不涉及个体历史最优信息,也即是无记忆种群,因此可以学习粒子群算法的策略,将个体历史最优引入包围行为中,同时,由于领头狼包含α、β、δ,这三个头狼协同引领了群体进化的方向,因此可以将SCA算法应用于这三头狼来增加其搜索空间,有助于GWO的全局搜索等等,具体策略在作者后面的文章将进行更新,欢迎关注~

参考文献

[1]MIRJALILI S,MIRJALILI S M,LEWIS A.Grey Wolf Optimi-zer[J].Advances in Engineering Software,2014,69(3):46-61.

[2]Long, W., Jiao, J., Liang, X., & Tang, M. (2018). Inspired grey wolf optimizer for solving large-scale function optimization problems. Applied Mathematical Modelling, 60,112–126.


文章来源: KAU的云实验台

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注