混合多策略改进的樽海鞘群算法及其应用

2024-03-21 01:59张家玮张奇志
计算机工程与设计 2024年3期
关键词:海鞘测试函数领导者

张家玮,李 琳+,张奇志

(1.西安石油大学 电子工程学院,陕西 西安 710065;2.西安石油大学 陕西省油气井重点测控实验室,陕西 西安 710065)

0 引 言

近年来,源于自然现象的群智能优化算法迅速发展[1],如海鸥算法(seagull optimization algorithm,SOA)[2]、麻雀搜索算法(sparrow search algorithm,SSA)[3]和黏菌算法(slime mound algorithm,SMA)[4]。这些群智能算法具有灵活性、无梯度机制、简单性和避免局部最优等优点。樽海鞘群优化算法(salp swarm algorithm,SSA)由Mirjalili等提出[5],SSA算法模拟了樽海鞘的生活习性和捕食习性,其数学模型可分为两组:一组为领导者,另一组为跟随者。领导者是樽海鞘链中的第一个樽海鞘,在这条链中其余樽海鞘为跟随者。在算法寻优中,领导者带领种群寻找最优食物,而跟随者则跟随最近的樽海鞘,由于樽海鞘之间的相互作用,樽海鞘不会轻易倾向一个局部可行的解,很大程度地避免局部最优,其寻优精度和收敛性能的效果比传统遗传算法、粒子群算法、灰狼算法更好[6]。此外,其结构简单和控制参数少使得它正在成为算法领域的热门研究[7],引来许多学者研究并将其应用于不同领域,如训练多层感知器[8]、电力系统调度优化[9]和能源管理策略优化[10]等。这些都反映了SSA算法在某些领域的突出性能,验证该方法的高灵活性和可靠性。

1 相关工作

虽然SSA算法在很多领域都表现出了出色的性能,但它存在收敛速度慢、局部最优停滞等缺点。多年来,研究人员提出了许多改进的SSA算法,以获取更好的性能。文献[11]中通过改进混沌Tent映射机制对种群化初始化,同时加入动态学习使算法跳出局部最优,提升其寻优能力。文献[12]引入衰减因子和动态学习机制分别对领导者和追随者的位置更新进行优化,有效提升局部开发和全局搜索能力。

这些改进在一定程度上提高了SSA算法寻优能力,但仍存在计算精度低和局部最优停滞等缺陷。本文提出一种混合多策略的改进樽海鞘群算法(improved slap swarm algorithm with hybrid multi-strategy,ISSA)。在前期利用佳点集策略生成初始化种群,增强种群空间分布的均匀性,减少种群随机性的影响;将反向学习和自适应t分布融入到领导者的位置更新中,使得领导者摆脱以往的限制,不仅在迭代前期具有更大的全局搜索空间,而且在后期具有更好的局部开发能力;在种群位置更新的最后阶段引入精英反向学习策略,选取适应度较优的个体来参与算法的下一次迭代,种群由精英个体引导,更有可能地找到全局最优解。将ISSA算法与其它算法在测试函数上对比性能以验证ISSA算法的优势,并采用Wilcoxon秩和检验评价算法之间的差异性。

2 樽海鞘群算法

樽海鞘群优化算法与其它基于群体的智能优化算法相似。首先,随机初始化种群,樽海鞘的位置被定义在N维搜索空间中,樽海鞘群X可以表述一个N×D维矩阵,如式(1)所示。F在搜索空间中被设定为目标向量或者食物源,领导者位置的每次更新都是朝着食物源,更新公式如式(2)所示

(1)

(2)

(3)

式中:l是当前迭代次数,Lmax是定义的最大迭代次数,追随者的运动是由领导者引导,追随者位置更新公式如下所示

(4)

3 改进樽海鞘群算法

3.1 基于佳点集的种群初始化

任何一种元启发式算法都是为了在全局优化过程中找到收敛性和多样性之间的平衡而设计,这种权衡对于成功执行优化算法至关重要[13]。一般来说,良好的多样性表示种群对探索整个搜索空间具有很强的优势。标准SSA算法的种群初始化主要依靠随机方式生成,而随机初始化会造成种群在搜索空间的非均匀分布。因此,本文结合均匀设计思想,引入佳点集策略来改进SSA算法。佳点集理论由华罗庚先生提出[14],利用佳点集策略生成初始化群体,可得到以下公式

(5)

式中:d表示变量的维数,p是满足p≥2d+3的最小素数。假设N为群体规模,第i个樽海鞘可由下式产生

(6)

式中:{γji} 表示γji的小数部分。ubj,lbj分别是搜索范围的上下限。

3.2 领导者更新机制变化

SSA算法中,所有领导者向食物源靠近,受食物源牵引的领导者可以加快算法的收敛速度。但由式(2)可知,其搜索范围太窄,导致领导者对搜索空间的勘探不充分,造成搜索精度不足。

反向学习(opposition-based learning,OBL)是由Tizhoo提出[15],反向学习是一种旨在提高元启发式算法性能的机器智能策略,它是在当前个体中间找到一个更有效的解,求得反向解,计算它们的适应度值,选择最优解进行下一次迭代。本文受反向学习的启发,将反向学习的思想融入到领导者的更新机制,在搜索最优值的过程中,使得算法拥有更好的全局开发能力和局部开发能力。融入反向学习的领导者位置更新公式如下所示

(7)

3.3 自适应t分布权重

SSA算法主要依靠领导者进行觅食寻优,领导者的移动主要受参数c1控制,因此,c1是影响整个算法寻优能力的重要指标。随迭代次数的增加,c1是[0,2]之间递减的非线性函数,在迭代前期,算法具有较大的全局搜索空间;但在迭代后期,算法的局部开发能力减弱,导致算法的精度不高。受文献[16]启发,本文引入t分布用来替换c1参数,在概率学中,t分布又称学生分布。t分布曲线的形状与自由度n有关,与标准正态分布相比,自由度越小,曲线越平坦。如果曲线中间较低,那么曲线两边的尾部较高。自由度n越大,t分布越接近正态分布。柯西分布和高斯分布是t分布边界处的两个特殊情况分布,3个函数分布如图1所示。

图1 高斯分布、柯西分布和t分布的概率密度曲线

从图1中可以看出,t分布的两端形状长而平坦,接近0的过程相对平缓。速度和峰值均介于柯西分布和高斯分布之间,使得t分布吸取了柯西分布和高斯分布的优点。因此,在领导者位置更新公式中引入t分布突变,利用t分布突变的扰动能力提高全局优化的能力。具体公式如下所示

(8)

式中:t(iter) 表示具有迭代次数itert的t分布,将迭代次数iter视为参数自由度。

3.4 精英反向学习机制

精英反向学习(elite opposition-based learning,EOBL)是OBL的改进版本,EBOL定义请见文献[17]。利用EBOL策略可以扩大算法的搜索范围,提升算法的寻优性能,并且EBOL已经成功应于改进其它群体智能算法[18]。

本文利用EOBL策略来提高SSA算法的全局搜索能力。设每轮迭代更新后的樽海鞘都是精英个体,精英个体公式如下所示

(9)

其反向解公式如下所示

(10)

如果反向解超越边界,则利用随机生成将其重置,重置公式如下所示

(11)

计算精英樽海鞘和反向精英樽海鞘的适应度,保留适应度更优的前N个樽海鞘,将其作为新的樽海鞘种群参与下一次更新迭代。

3.5 算法步骤

ISSA算法的具体执行步骤如下:

步骤1 设置种群规模N和迭代次数Lmax等初始变量。

步骤2 利用3.1节的佳点集策略生成初始种群。

步骤3 计算每个个体的适应度值,选择最优的个体作为食物源位置。

步骤4 根据式(8)更新领导者的位置,式(4)更新跟随者的位置。

步骤5 计算个体的动态边界,根据式(10)生成反向解并添加到种群中。

步骤6 从融合的种群中保留适应度更优的前N个樽海鞘,将其作为新的樽海鞘种群参与下一次迭代,并将最佳位置设为食物源。

步骤7 判断条件,若符合,则得到结果;否则,跳到步骤4。

ISSA算法的流程如图2所示。

图2 ISSA算法的流程

4 实 验

4.1 实验参数设置

为验证ISSA算法的有效性,将ISSA算法与标准樽海鞘群算法(SSA)和标准海鸥算法(SOA)对比性能;同时为了突出ISSA算法的竞争优势,选取3种改进SSA算法,即基于衰减因子和动态学习的改进樽海鞘群算法(SSA based on reduction factor and dynamic learning,RDSSA[12])、基于混沌映射动态惯性权重的改进樽海鞘群算法(SSA based on chaotic map and dynamic inertia weight,I-SSA[19])和基于高斯分布估计策略的改进樽海鞘群算法(SSA based on Gaussian distribution estimation strategy,CDESSA[20]),进行对比研究。它们的具体参数设置见表1。

表1 算法实验参数设置

4.2 测试函数及测试环境

基准函数测试是衡量智能算法性能的常用方法,本文选取的8个基准测试函数来展示所改进算法的优越性能,F1~F4是单峰函数,这类测试函数只存在一个最优解。这类型的搜索空间适用于测试收敛速度和搜索的能力。F5~F8是多峰值的基准函数,多峰值的基准函数存在局部最优值,这使得它们适合于对比算法的局部最优回避和全局探索行为。它们的具体信息分别见表2和表3。

表2 单峰基准测试函数

表3 多峰基准测试函数

本文的实验环境是基于Intel(R)Core i5处理器以及4 G内存的计算机,仿真软件是MatlabR2016b。所有测试的初始条件均相同:种群规模N=60,迭代次数Lmax=1000。每种算法在函数中独立运行30次,其结果取最优值、平均值和标准差,如表4所示。

表4 测试函数结果

4.3 实验结果及分析

由表4可以看出,在单峰基准函数F1~F4的测试结果中,ISSA算法都取得了较好的效果,ISSA算法的3个指标相比其它算法都具有显著的优势。如在函数F1的测试结果中,标准SSA算法和改进算法中结果较好的I_SSA算法的平均值分别为8.97E-09和3.02E-74,而ISSA算法的平均值达到了9.7695E-244,相较I-SSA算法提高近150个数量级,较SSA算法更是提高近230个数量级,其结果表明本文提出的改进策略能有效提高SSA算法的收敛精度。

由表4可知,在多峰基准函数的测试结果中,ISSA算法在函数F5和F7上都达到理论最优值,均值和标准差的值都是0,ISSA算法在函数F6的结果比RDSSA算法和I_SSA算法的效果略差,但在函数F8的结果上强于其它改进算法。总的来说ISSA算法在多峰基准函数上表现出较好的结果,验证其具有良好的避免局部最优的能力。

综上所述,在求解单峰和多峰基准函数过程中,ISSA算法相对其它5种算法具有更好的寻优效果。为了更好地体现算法的寻优性能,本文给出6种算法在8个基准函数的收敛曲线图,分别如图3和图4所示。

图3 单峰函数上的收敛曲线

图4 多峰函数上的收敛曲线

由图3和图4的收敛曲线可以直观地看出,SSA算法在寻优迭代过程中,收敛曲线很难向下探索并且探索的速度较为缓慢,并且在求解每个函数的过程中都出现停滞,只是它们的程度不同,表明SSA算法容易陷入了局部最优。由图3(a)~图3(d)所示单峰函数的收敛曲线看出,ISSA算法的收敛曲线呈直线型快速向下探索,由此可以验证本文改进SSA算法在收敛速度上有较为明显的改善;由图4(a)~图4(d)所示多峰函数的收敛曲线可知,ISSA算法的收敛曲线下降速度较快且曲线存在拐点,验证提出的改进方法能明显提高其全局搜索能力和局部勘探能力,有效地避免陷入局部最优的情况。由于I-SSA算法在函数F5和F7上迅速收敛到最优值,因此图中没有I-SSA算法的收敛曲线。

4.4 Wilcoxon秩和检验

仅仅是平均值和标准差不足以体现算法之间的差异,为了验证ISSA算法与其它5种算法在求解复杂优化问题时是否存在显著差异,采用Wilcoxon秩和检验比较两种算法的性能测试特征。Wilcoxon秩和检验是一种非参数零假设检验统计方法,用于评价算法的公平性和鲁棒性[21]。表5列出独立运行30次后的Wilcoxon秩和检验结果的p值,其中N/A表示不适用。

表5 Wilcoxon秩和检验p值

由表5可以看出,ISSA算法的p值大部分小于0.05,说明ISSA算法的性能与其它算法相比具有较强的竞争能力,验证该算法在不同函数优化问题上的优势。综上所述,ISSA算法与其它5种算法有显著不同,其结果具有统计学意义,表明ISSA算法的性能不是偶然的。

4.5 ISSA算法在拉伸/压缩弹簧设计问题中的应用

为了进一步验证ISSA算法的性能,将ISSA算法应用到拉伸/压缩弹簧设计的工程优化问题,该问题的设计模型如图5所示。该问题通过考虑最小扰度、剪切应力和喘振频率等约束来最小化弹簧的质量。这个模型有3个连续优化变量,分别是导线直径d、线圈直径D和有源线圈个数N,其数学模型如下所示。

图5 拉伸/压缩弹簧问题的设计

假设

(12)

(13)

0.05≤x1≤2,0.25≤x2≤1.3,2≤x3≤15

(14)

6种算法对拉伸/压缩弹簧设计问题的优化结果见表6。

表6 弹簧设计问题的优化结果

从表6可以看出,在弹簧设计的问题上,ISSA算法的优化结果要优于其它算法。

5 结束语

为提高标准SSA算法的搜索效率、收敛精度和稳定性。本文在标准SSA算法的基础上,提出一种融合佳点集策略、反向学习、自适应t分布和精英反向学习的改进樽海鞘群算法(ISSA)。ISSA算法采用佳点集策略生成初始化种群,具有更强大的搜索能力;通过将反向学习和自适应t分布融入领导者位置更新中,既利用领导者和跟随者的位置优势,又利用t分布的优势,使得种群尽可能地寻找最优解;加入精英反向学习,筛选出更好的种群参与下一次迭代。在8个基准函数上测试了ISSA算法的有效性,其仿真结果说明该算法在求解寻优的能力优于其它算法,同时Wilcoxon秩和检验的结果表明ISSA算法相比SSA算法及其它算法存在显著差异。在一些实际的工程优化问题中,ISSA算法也表现出较好的效果。下一步会将ISSA算法应用到更多的工程优化问题中,并且尝试不同的改进策略,获得更优的结果。

猜你喜欢
海鞘测试函数领导者
它吃掉自己的“脑子”
改进樽海鞘群优化K-means算法的图像分割
闭目塞听,才是领导者的第一大忌
污损性海鞘的生态特点研究展望
真诚是领导者的最高境界
具有收缩因子的自适应鸽群算法用于函数优化问题
带势函数的双调和不等式组的整体解的不存在性
约束二进制二次规划测试函数的一个构造方法
神秘胶球席卷海滩
金圣节能清净剂 节能减排领导者