Software Engineering and Applications
Vol. 13  No. 02 ( 2024 ), Article ID: 85767 , 13 pages
10.12677/sea.2024.132028

自适应沙丘猫鲸鱼优化算法

朱美芬,王联国*

甘肃农业大学信息科学技术学院,甘肃 兰州

收稿日期:2024年3月5日;录用日期:2024年4月22日;发布日期:2024年4月30日

摘要

鲸鱼优化算法原理简单、参数较少、全局搜索能力强,但在迭代后期易陷入局部最优且求解精度较低。本文将自适应收敛因子策略和沙丘猫群优化算法中随机搜索策略引入到鲸鱼优化算法中,提出了一种自适应沙丘猫鲸鱼优化算法。首先,采用自适应收敛因子策略,动态地调整算法参数a,使搜索更具连续性、稳定性与多样性,提高优化精度;其次,将沙丘猫群优化算法中引入到鲸鱼优化算法中,防止算法陷入局部最优,提高全局搜索能力;然后,通过基准测试函数进行仿真实验,并与其他几种智能群体算法进行比较,仿真实验结果表明,改进算法具有较高的优化性能;最后,利用改进算法求解机械工程优化问题,验证了改进算法的有效性和实用性。

关键词

鲸鱼优化算法,沙丘猫优化算法,收敛因子,工程优化

An Adaptive Sand Cat and Whale Optimization Algorithm

Meifen Zhu, Lianguo Wang*

College of Information Sciences and Technology, Gansu Agricultural University, Lanzhou Gansu

Received: Mar. 5th, 2024; accepted: Apr. 22nd, 2024; published: Apr. 30th, 2024

ABSTRACT

The whale optimization algorithm boasts a simple principle, fewer parameters, and strong global search ability; however, it tends to fall into local optimum and yields low solution accuracy in the later stages of iteration. In this paper, we introduce the self-adaptive convergence factor strategy and random search strategy from the sand cat swarm optimization algorithm into the whale optimization algorithm, proposing an adaptive sand cat whale optimization algorithm. Firstly, the self-adaptive convergence factor strategy is employed to dynamically adjust the algorithm parameter a, enhancing the continuity, stability, and diversity of the search, and improving optimization accuracy. Secondly, the sand cat swarm optimization algorithm is incorporated into the whale optimization algorithm to prevent it from getting trapped in local optimum and enhance its global search ability. Subsequently, simulation experiments are conducted using benchmark test functions and compared with several other intelligent swarm algorithms. The simulation experiment results demonstrate that the improved algorithm exhibits superior optimization performance. Finally, the improved algorithm is applied to solve optimization problems in mechanical engineering, validating its effectiveness and practicality.

Keywords:Whale Optimization Algorithm, Sand Cat Optimization Algorithm, Convergence Factor, Engineering Optimization

Copyright © 2024 by author(s) and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

智能群体算法是通过模拟自然界中的群体行为而衍生出的一种简单灵活,并且能够有效解决复杂优化问题的优化算法。

2016年Mirjaili等人 [1] 提出了一种群体智能优化算法——鲸鱼优化算法(Whale Optimization Algorithm),该算法通过模拟鲸鱼捕食时的泡泡网行为特征,采用收缩包围机制和螺旋更新位置的方式来模拟鲸鱼群体的包围、追捕和攻击猎物的过程,由此来实现优化搜索的目标。这类算法借鉴了仿生学原理,将鲸鱼的行为特征应用于解决优化问题的过程中。鲸鱼优化算法在执行过程中需要平衡探索新解空间和对已有解进行优化,以全面涵盖潜在最优解,增强全局搜索能力,并有效应对复杂情况。该算法具备设计简洁、参数少、全局搜索功能良好等优点。但鲸鱼优化算法也存在难以跳出局部最优、收敛速度慢、易早熟等问题,因此,国内外学者对WOA进行了相关的研究改进。其中,Chakraborty等人 [2] 提出一种饥饿搜索的鲸鱼优化算法,将饥饿状态下的群体行为和座头鲸的狩猎行为相结合,避免算法陷入局部最优,提高算法的全局搜索能力和收敛速度;Strumberger等人 [3] 提出一种混合算法(WOA-AEFS),将WOA与人工蜂群(ABC) [4] 算法、萤火虫算法(FA) [5] 结合,保持种群多样性,避免算法陷入局部最优解,提高了全局搜索能力和收敛速度。Lee等人 [6] 通过将遗传算法和热交换优化算法与鲸鱼优化算法相融合,利用遗传算法的强探索能力和热交换优化算法的强开发能力,提升算法的优化性能;Garip等人 [7] 采用从5个不同的混沌映射中获得的序列替换WOA中的随机参数,扩展了种群的搜索范围,提高了算法的寻优精度。

针对鲸鱼优化算法在迭代后期易陷入局部最优、收敛速度慢和求解精度低等问题,本文引入沙丘猫算法 [8] ,提出一种自适应沙丘猫鲸鱼优化算法(An adaptive sand cat and whale optimization algorithm, SCWOA)。首先,引入自适应收敛因子,动态地调整算法参数,增加搜索的连续性与稳定性,提高搜索效率和优化精度;然后,将沙丘猫群优化算法中随机搜索策略和鲸鱼优化算法交替运行,提升全局搜索能力;最后,通过仿真实验验证算法改进的有效性并用SCWOA求解工程优化问题。

2. 鲸鱼优化算法

鲸鱼优化算法是一种基于自然界中鲸鱼觅食行为的启发式优化算法。自然界中座头鲸群体庞大,喜欢捕食靠近水面的小鱼群和磷虾,鲸鱼优化算法利用群体捕食行为来进行优化搜索,这种捕食行为主要有包围猎物、泡泡网攻击和搜寻猎物三个阶段。

2.1. 包围捕食

鲸鱼优化算法的核心思想是通过群体内个体之间的信息交流和随机游走来识别目标并进行包围。将群体中最优位置作为目标时,其他个体会围绕最优个体移动。通过式(1)来更新位置:

D = | C X ( t ) X ( t ) | (1)

X ( t + 1 ) = X ( t ) A D (2)

a = 2 2 t t max (3)

A = 2 a r 1 a (4)

C = 2 r 2 (5)

其中,t为当前迭代次数; X 为猎物位置;X为当前位置;A和C为系数向量用来调节距离;r1和r2为[0, 1]之间的随机向量; t max 为最大迭代次数;a为收敛因子,随着迭代次数增加从2线性递减到0。

2.2. 气泡网捕食

当鲸鱼发现猎物时,它们会吸入大量的水,下潜约12米,通过在猎物周围形成螺旋状气泡带,同时向水面游动的方式来捕食猎物。它们利用这种向上的螺旋运动,逐渐缩小包围圈,以捕获猎物。在鲸鱼优化算法中,利用收缩包围机制和螺旋更新位置来描述这一捕食行为。

X ( t + 1 ) = X ( t ) + D e b l cos ( 2 π l ) (6)

其中,b用来定义对数螺旋的形状; D = | X ( t ) X ( t ) | 表示鲸鱼与当前全局最优个体之间的距离;l是[−1, 1]的随机数。

鲸鱼围绕着猎物收缩圈螺旋游动,在收缩包围和螺旋更新中选择相同概率更新鲸鱼的位置,其数学模型如式(7)所示:

X ( t + 1 ) = { X ( t ) A D , if p < 0.5 X ( t ) + D e b l cos ( 2 π l ) , if p 0.5 (7)

其中,p是[0, 1]之间的随机数。

2.3. 随机搜索

鲸鱼群通过根据彼此位置进行随机搜索,在收缩圈外游动,以扩大搜索范围并最终达到全局寻优的目的,数学模型如式(8)和式(9)所示:

D = | C X r a n d X | (8)

X ( t + 1 ) = X r a n d A D (9)

其中, X r a n d 是从当前种群中选择的一个随机位置向量。

3. 自适应沙丘猫鲸鱼优化算法

3.1. 收敛因子指数衰减策略

鲸鱼优化算法在寻优过程中需要平衡其探索和开发能力,以取得更好的寻优结果。由式(3)、(4)可知,参数A的值随着收敛因子a的变化而不断变化,即寻优过程中,WOA的全局探索和局部开发能力的转换是通过调整收敛因子a来实现的。事实上,WOA的寻优过程极为复杂,控制参数a线性递减策略不能适应寻优过程的实际情况,可能会导致收敛精度不高或易陷入局部最优,在求解高维多峰函数优化问题时易陷入局部最优。基于上述考虑,本文提出一种指数衰减策略,其具体表达式为:

a = 2 2 ( t t max ) 1 2 (10)

上式使得a的取值在迭代过程中呈指数下降,使得算法更加稳定和收敛。这有助于算法在搜索空间中进行平滑的变化,更稳定地调整搜索步长,避免因为参数变化过快而导致突然跳变或不连续的情况,降低不稳定性,也使得算法可以更好地覆盖整个搜索空间,具有更好的探索性。改进前后收敛因子a的变化曲线图如图1所示。

Figure 1. Comparison of the change curve of convergence factor a

图1. 收敛因子a变化曲线对比

3.2. 混合沙丘猫策略

3.2.1. 沙丘猫群优化算法

沙丘猫群优化算法(Sand Cat swarm optimization, SCSO)是土耳其学者Amir Seyyedabbasi [8] 于2022年最新提出的一种模拟沙丘猫生存行为的元启发式算法。沙丘猫能够探测低于2 kHz的低频,也具有难以置信的挖掘猎物的能力。沙丘猫群优化模拟了沙丘猫的两个主要行为:搜寻猎物和攻击猎物。还提出一种用于平衡探索和利用的机制。其中,沙丘猫的猎物搜索机制依赖于低频噪声发射。

在搜索猎物的过程中,假设沙丘猫的听力灵敏范围2 kHz,沙丘猫常规灵敏范围将随着迭代过程从2线性的降为0。每只沙丘猫会根据最优解、自己当前的位置和 r 来更新自己位置。位置更新公式如下:

Pos ( t + 1 ) = r ( Pos bc ( t ) r a n d ( 0 , 1 ) Pos c ( t ) ) (11)

其中, Pos bc 为最佳候选位置, Pos c 为当前位置, r 为灵敏度范围。

假定沙丘猫的灵敏度范围是一个圆,通过轮盘赌法在圆上选取一个随机角度 θ ,以此确定移动方向。根据式(12)和式(13)计算得出攻击猎物阶段中最优位置与当前位置。

Pos rand = | r a n d ( 0 , 1 ) Pos b ( t ) Pos c ( t ) | (12)

Pos ( t + 1 ) = Pos b ( t ) r Pos rand cos ( θ ) (13)

其中, Pos b 为最优解。

探索和利用阶段是通过自适应的 r 和R保证, r 随着迭代过程从2线性地降低为0,以逐渐靠近猎物而不会丢失或跳过,参数R是区间 [ 2 r , 2 r ] 的随机值,波动范围会随 r 变小。当R的随机值为[−1, 1]时,沙丘猫的下一个位置可以是当前位置与狩猎位置之间的任意位置。SCSO算法在|R|小于或等于1时攻击猎物,否则进行探索和寻找新的猎物,其数学模型如式(14)所示:

X ( t + 1 ) = { Pos b ( t ) r Pos rand cos ( θ ) | R | 1 r ( Pos bc ( t ) r a n d ( 0 , 1 ) Pos c ( t ) ) | R | > 1 (14)

3.2.2. 混合沙丘猫

将SCSO中随机搜索策略和参数引入WOA,更好地在解空间中进行全局搜索,提高找到全局最优解的概率。

根据生成的随机数判断此次迭代使用沙丘猫算法还是鲸鱼算法来更新位置,两种算法交替进行,以增加搜索的多样性和全局探索能力。通过这种交替的方式,两种算法可以相互补充,提高整体优化性能,从而更好地适应不同问题。

3.3. SCWOA算法流程

SCWOA算法流程如下:

步骤一:随机初始化一组鲸鱼群体,进入迭代循环,当迭代次数t小于最大迭代次数时,执行以下步骤。

步骤二:对当前位置进行边界检查,并计算适应度值,更新全局最优解和最优位置。

步骤三:生成随机数选择通过沙丘猫优化还是鲸鱼优化两种方式进行位置更新。

步骤四:进入沙丘猫算法阶段的概率为q,使用轮盘赌法选择随机角度,通过随机搜索对每个个体进行位置更新;

步骤五:进入鲸鱼优化算法阶段的概率为1 − q,计算参数A、C,通过生成的随机概率p选择更新方式来更新位置;

步骤六:迭代次数加1,重复步骤二到步骤五,直到达到最大迭代次数;

最终,输出最优适应度值、最优位置。

3.4. SCWOA算法时间复杂度

SCWOA算法的时间复杂度主要由沙丘猫优化和鲸鱼优化两部分组成,假设种群规模为N,问题维度为D,最大迭代次数为T,执行沙丘猫优化的概率为q,执行鲸鱼优化的概率为1 − q,则沙丘猫优化部分的时间复杂度为 O ( q N D T ) ,鲸鱼优化部分的时间复杂度为 O ( ( 1 q ) N D T ) ,因此,SCWOA算法的时间复杂度为:

O ( SCWOA ) = O ( q N D T ) + O ( ( 1 q ) N D T ) = O ( N D T ) (15)

WOA的算法时间复杂度为:

O ( WOA ) = O ( N D T ) (16)

3.5. 仿真函数测试

此次仿真实验基于Windows10 (64 bit)操作系统,处理器Intel (R) Core (TM) i7-7500U CPU编程采用MATLAB R2021a软件。

为验证本文SCWOA的性能,引入13个基准测试函数进行实验(具体函数表达式见参考文献 [9] ),其中,F1~F7为单峰函数(其中F5在维度大于3时为多峰函数,F6为非连续函数),F8~F13为多峰函数。实验中,算法种群规模为30,维度为30,最大迭代次数为500,独立运行30次后的Min (最小值)、Max (最大值)、Ave (平均最优值)和Std (标准差)为最终测试结果,其中,平均最优值体现算法的收敛速度和求解准确度,标准差体现算法的稳定性和健壮性,最大值与最小值体现可行解的质量。实验结果如表1所示。

Table 1. Simulation function test results of WOA and SCWOA

表1. WOA与SCWOA的仿真函数测试结果

从测试函数在最小值、最大值、平均最优值、标准差四方面的优化效果来看,函数F1~F7中,除F6以外,SCWOA测得的四个值相较于WOA效果更优,在函数F8~F13中,F8的稳定性比WOA差一些,在复杂多模态函数F9、F11中取得理论最优值,在F10、F12、F13中均取得一定优化效果。

为验证自适应沙丘猫鲸鱼算法的收敛性分别选取表1中的五个函数——F2、F4、F5、F7、F12绘制收敛曲线来对比基本鲸鱼优化算法(收敛曲线图展示算法的收敛趋势变化),横坐标为迭代次数,纵坐标表示函数最优值(等同于最小值)的对数,如图2~图7所示。

Figure 2. Convergence curve of F2

图2. F2的收敛曲线

Figure 3. Convergence curve of F4

图3. F4的收敛曲线

Figure 4. Convergence curve of F5

图4. F5的收敛曲线

Figure 5. Convergence curve of F7

图5. F7的收敛曲线

Figure 6. Convergence curve of F10

图6. F10的收敛曲线

Figure 7. Convergence curve of F12

图7. F12的收敛曲线

分析函数收敛图,F2迭代次数约为10时开始收敛,接着减缓收敛速度,直至迭代次数约450时已收敛,F4、F5、F7、F10分别持续收敛至约130、50、400、160代时便已收敛,收敛速度快的同时取得更高的收敛精度,F12前期收敛速度优于WOA,约在迭代次数为100时收敛。总体来看,SCWOA的收敛的速度与精度相较WOA更为显著。

3.6. 与其他智能算法性能对比分析

为了验证改进算法的寻优性能,以本文提出的SCWOA对测试函数进行数值实验,并与其他一些方法——基于余弦控制因子和多项式变异的鲸鱼优化算法(CPWOA) [10] 、正余弦算法(SCA) [11] 、灰狼优化算法(GWO) [12] 进行对比。除WOA、SCWOA外,其余算法的实验数据取自原文献,实验中各智能算法的种群规模N为30,最大迭代次数Tmax为500,其他参数设置同原文献。各实验均独立运行30次,取30次实验的平均值(Ave)、标准差(Std)为统计结果。表2为具体实验结果(对比结果的最优值加粗表示)。

Table 2. Experimental results of 13 test functions by different algorithms

表2. 不同算法对13个测试函数的实验结果

表2可以看出,SCWOA相较于CPWOA,除F3、F5、F12外,优化效果更为显著;相较于GWO、SCA与WOA,仅有函数F3、F6、F13优化效果略显逊色。

4. 改进算法的应用

4.1. 机械设计优化问题

选取设计变量、列出目标函数、给定约束条件是构造优化设计问题数学模型的重要步骤。该问题的数学模型一般可以描述为如下约束非线性优化设计问题:

min f ( X ) s .t . g j ( X ) 0 j = 1 , 2 , , q h p ( X ) = 0 p = 1 , 2 , , m X i 1 X i X i u i = 1 , 2 , , n } (17)

其中,X为设计变量, X = ( X 1 , X 2 , , X n ) X R n f ( X ) 为目标函数;gj为第j个不等式约束;hp为第p个等式约束; X i 1 X i u 分别为设计变量的上下界。

4.2. 约束优化问题的处理方法

群体智能优化算法求解约束优化问题时需要将约束问题转化为无约束优化问题进行求解。将约束优化问题转化为无约束优化问题的主要处理方法是罚函数法。该方法的基本思想是通过引入惩罚项并将其添加到目标函数中以构成惩罚函数,使得约束优化问题转化为一系列无约束极值子问题,然后按照无约束优化方法来求解这些子问题。该策略将对求解过程中违反约束条件的迭代点进行“惩罚”,进而迫使无约束子问题的极小值点趋向于满足约束条件。

罚函数的一般形式为:

F ( X ) = f ( X ) + λ ( h 2 ( X ) + [ min ( 0 , g ( X ) ) ] 2 ) (18)

其中, F ( X ) 为惩罚函数, f ( X ) 为优化问题的原始目标函数, λ 为惩罚因子; h 2 ( X ) [ min ( 0 , g ( X ) ) ] 2 分别为与等式有关的惩罚项和与不等式有关的惩罚项。

4.3. 设计实例及仿真实验

利用SCWOA优化以下2个机械设计问题,通过计算机仿真来验证所提出算法的性能。实例参照文献 [13] 。为了体现比较的公平性,SCWOA与其他算法作对比时,实例1和实例2中SCWOA参数设置分别为:N = 30,Tmax = 500。另外,因实例均受约束限制,SCWOA采用罚函数法处理约束越界。算法独立运行30次并取最优值,具体实验结果如表3表4所示。

4.3.1三架桁杆设计优化

三杆桁架是一种常见的结构形式,广泛应用于桥梁、建筑物和机械设备等领域。三杆桁架的设计优化是指通过调整杆件的尺寸、形状和连接方式等参数,使得结构在满足一定约束条件下,具有最佳的性能和经济性。其目标函数和约束条件数学模型如下:

min f ( X ) = ( 2 2 x 1 + x 2 ) l g 1 ( X ) = 2 x 1 + x 2 2 x 1 2 + 2 x 1 x 2 P σ 0 g 2 ( X ) = x 2 2 x 1 2 + 2 x 1 x 2 P σ 0 g 3 ( X ) = 1 2 x 2 + x 1 P σ 0 0 x i 1 , i = 1 , 2 } (19)

表3是本文SCWOA与其他算法获得最优解的比较结果。可以看出,SCWOA获得的最优解优于其他算法。

Table 3. Optimization results of three-bar truss problem

表3. 三杆桁架问题优化结果

4.3.2. 悬梁臂

悬梁臂问题是一个结构工程设计问题,与方形截面悬臂梁的重量优化有关。悬臂梁一端刚性支撑,垂直力作用在悬臂的自由节点上。梁由5个具有恒定厚度的空心方形块组成,其高度(或宽度)为决策变量,且厚度固定(此处为2/32/32/3)。这一问题可以用以下数学等式表示:

min f ( X ) = 0.0624 ( x 1 + x 2 + x 3 + x 4 + x 5 ) g ( X ) = 61 x 1 3 + 37 x 2 3 + 19 x 3 3 + 7 x 4 3 + 1 x 5 3 1 0 0.01 x i 100 , i = 1 , 2 , 3 , 4 , 5 } (20)

表4是本文SCWOA与其他算法获得最优解的比较结果。可以看出,SCWOA获得的最优解优于其他算法。

Table 4. Optimization results of cantilever beam problem

表4. 悬梁臂问题优化结果

5. 结束语

针对鲸鱼优化算法在优化部分高维函数问题时的缺陷,提出了一种自适应沙丘猫鲸鱼优化算法。本文所做的主要工作总结为:1) 通过参数调整策略,提高算法的搜索能力和收敛速度;2) 通过将沙丘猫算法和鲸鱼算法结合,增加多样性,较好地平衡算法的全局探索能力和局部搜索能力,提高搜索效率;3) 进行基准函数仿真实验,并与其它算法进行比较,结果表明SCWOA算法寻优效果更好;4) 将改进算法应用到工程优化问题中,并取得较好的优化效果。下一步的工作是研究如何运用SCWOA算法解决农业相关优化问题。

基金项目

基于多尺度卷积神经网络的当归病害识别技术研究(项目编号21YF5GA088)。

文章引用

朱美芬,王联国. 自适应沙丘猫鲸鱼优化算法
An Adaptive Sand Cat and Whale Optimization Algorithm[J]. 软件工程与应用, 2024, 13(02): 281-293. https://doi.org/10.12677/sea.2024.132028

参考文献

  1. 1. Mirjalili, S. and Lewis, A. (2016) The Whale Optimization Algorithm. Advances in Engineering Software, 95, 51-67.https://doi.org/10.1016/j.advengsoft.2016.01.008

  2. 2. Chakraborty, S., Saha, A.K., Chakraborty, R., et al. (2022) HSWOA: An Ensemble of Hunger Games Search and Whale Optimization Algorithm for Global Optimization. International Journal Intelligent Systems, 37, 52-104.https://doi.org/10.1002/int.22617

  3. 3. Strumberger, I., Bacanin, N., Tuba, M., et al. (2019) Resource Scheduling in Cloud Computing Based on a Hybridized Whale Optimization Algorithm. Applied Sciences, 9, Article 4893. https://doi.org/10.3390/app9224893

  4. 4. Karaboga, D. (2005) An Idea Based on Honey Bee Swarm for Numerical Optimization, Report-TR06. Erciyes University, Kayseri.

  5. 5. Yang, X.S. (2010) Firefly Algorithm, Stochastic Test Functions and Design Optimisation. International Journal of Bioinspired Computation, 2, 78-84. https://doi.org/10.1504/IJBIC.2010.032124

  6. 6. Lee, C.Y. and Zhuo, G.L. (2021) A Hybrid Whale Optimization Algorithm for Global Optimization. Mathematics, 9, Article 1477. https://doi.org/10.3390/math9131477

  7. 7. Garip, Z., Cimen, M.E., et al. (2019) The Chaos-Based Whale Optimization Algorithms Global Optimization. Chaos Teory and Applications, 1, 51-63.

  8. 8. Seyyedabbasi, A. and Kiani, F. (2023) Sand Cat Swarm Optimization: A Nature-Inspired Algorithm to Solve Global Optimization Problems. Engineering with Computers, 39, 2627-2651. https://doi.org/10.1007/s00366-022-01604-x

  9. 9. 吴迪, 吴美莲, 吴杭蕖, 等. 融合知识共享和精英反向学习的成长优化算法[J]. 闽南师范大学学报(自然科学版), 2023, 36(4): 51-61.

  10. 10. 黄清宝, 李俊兴, 宋春宁, 等. 基于余弦控制因子和多项式变异的鲸鱼优化算法[J]. 控制与决策, 2020, 35(3): 559-568.

  11. 11. Mirjalili, S. (2016) SCA: A Sine Cosine Algorithm for Solving Optimization Problems. Knowledge-Based Systems, 96, 120-133. https://doi.org/10.1016/j.knosys.2015.12.022

  12. 12. Mirjalili, S., Mirjalili, S.M. and Lewis, A. (2014) Grey Wolf Optimizer. Advances in Engineering Software, 69, 46-61.https://doi.org/10.1016/j.advengsoft.2013.12.007

  13. 13. Bayzidi, H., Talatahari, S., Saraee, M., et al. (2021) Social Network Search for Solving Engineering Optimization Problems. Computational Intelligence and Neuroscience, 2, Article ID: 8548639.https://doi.org/10.1155/2021/8548639

  14. NOTES

    *通讯作者。

期刊菜单