改进收敛因子和比例权重的灰狼优化算法【期刊论文完美复现】(Matlab代码实现)

2 灰狼优化算法

2.1 基本灰狼优化算法

灰狼优化算法是一种模拟灰狼捕猎自然群体行为的社会启发式优化算法,属于一种新型的群体智能优化算法。灰狼优化算法具有高度的灵活性,是当前较为流行的优化算法之一。灰狼优化算法主要分为三个阶段:追击猎物、包围猎物、攻击猎物。

假设灰狼群体由 N 个个体组成,假设它们的位置为 X i X_i Xi,群体成员的解为 X X X,优先解为 X g X_g Xg,第三步是攻击猎物,把其他个体 x x x 所执行的行为的数学模型如下:

X ( i + 1 ) = X ( i ) − A ⋅ D X(i+1) = X(i) - A \cdot D X(i+1)=X(i)−A⋅D

其中, A A A 表示当前随机变量, X X X 和 C C C 是常数项, X i X_i Xi 是群体的当前位置, D D D 是当前位置的猎物位置。

2.2 改进灰狼优化算法(CGWO)

2.2.1 基于学习和变换的改进灰狼优化算法

文献3可知,当 α = 1 \alpha = 1 α=1时,灰狼群体将计划搜索范围表示简单,即为搜索范围较大。当 α = 1 \alpha = 1 α=1时,灰狼群体在有效搜索范围内逐步进行查找,即局部搜索,较有效。因此,目标函数的局部灰狼算法的局部搜索能力得到了增强。

由此学者们发现GWO算法的局部搜索能力和全局搜索能力有较大关系。由式(3)可看出,当灰狼收敛时,与位置变化不大,收敛则与灰狼优化算法的学习策略变化有关。于是我们选择不修改的过程并不一定是最佳的,在此回顾并修改的结果可以不完全模拟实际的优化结果。接下来,本文提出了一种基于学习规律变化的改进算法,其优化结果表达为:

a = a min + ( a initial − a min ) 1 + cos ⁡ ( ( t − 1 ) π / ( t max − 1 ) )   /   2 a = a_{\text{min}} + \left( a_{\text{initial}} - a_{\text{min}} \right) \left1 + \\cos \\left( (t-1) \\pi / \\left( t_{\\text{max}} -1 \\right) \\right) \\right \, / \, 2 a=amin+(ainitial−amin)1+cos((t−1)π/(tmax−1))/2

式中, a min a_{\text{min}} amin 和 a initial a_{\text{initial}} ainitial 为初始值和最终值,本文取 a min = 2 a_{\text{min}} = 2 amin=2, a initial = 0 a_{\text{initial}} = 0 ainitial=0,为最小值, t max t_{\text{max}} tmax 为最大迭代次数, 0 ≤ t ≤ t max 0 \leq t \leq t_{\text{max}} 0≤t≤tmax,其变化图如图1所示。

图1:收敛后的变化图

由图1可以看出,原始收敛时的变化图是线性递减的,优化过程中相关的速度系数,优化后收敛时的变化是一个基于最优化率变化的曲线;其定义形式为:

a = a initial + ( a initial − a min ) ⋅ 1 − cos ⁡ ( ( t − 1 ) π / ( t max − 1 ) )   /   2 a = a_{\text{initial}} + \left( a_{\text{initial}} - a_{\text{min}} \right) \cdot \left1 - \\cos \\left( (t-1) \\pi / \\left( t_{\\text{max}} - 1 \\right) \\right) \\right \, / \, 2 a=ainitial+(ainitial−amin)⋅1−cos((t−1)π/(tmax−1))/2

初期减小的较慢,使得收敛因子α较长时间保持较大值,从而使A保持较大值的时间长些,以提高搜索效率;迭代后期减小的较快,使得α较长时间保持较小值,从而使A保持较小值的时间长些,以提高搜索精度。因此,平衡了算法的全局搜索和局部搜索能力。

2.2.2 引入动态权重策略

下面是常见的比例权重表示,文献12中给出了两种不同的分配权重的方法。

(1)第一种是加权平均,表达式如下:

X ( t + 1 ) = 5 X 1 + 3 X 2 + 2 X 3 10 X(t+1) = \frac{5X_1 + 3X_2 + 2X_3}{10} X(t+1)=105X1+3X2+2X3

加权平均值是一种静态加权,此时有α、β和δ狼的权重分别是5、3和2,代表金字塔的等级结构,然后权重之和等于10。

(2)第二种是基于适应度值的比例权重,表达式如下:

W α = f α + f β + f δ f α , W β = f α + f β + f δ f β , W δ = f α + f β + f δ f δ W_\alpha = \frac{f_\alpha + f_\beta + f_\delta}{f_\alpha}, \quad W_\beta = \frac{f_\alpha + f_\beta + f_\delta}{f_\beta}, \quad W_\delta = \frac{f_\alpha + f_\beta + f_\delta}{f_\delta} Wα=fαfα+fβ+fδ,Wβ=fβfα+fβ+fδ,Wδ=fδfα+fβ+fδ

X ( t + 1 ) = X 1 ⋅ W α + X 2 ⋅ W β + X 3 ⋅ W δ W α + W β + W δ X(t+1) = \frac{X_1 \cdot W_\alpha + X_2 \cdot W_\beta + X_3 \cdot W_\delta}{W_\alpha + W_\beta + W_\delta} X(t+1)=Wα+Wβ+WδX1⋅Wα+X2⋅Wβ+X3⋅Wδ

其中 W α W_\alpha Wα、 W β W_\beta Wβ、 W δ W_\delta Wδ分别表示α、β、δ狼所占的权重, f α f_\alpha fα、 f β f_\beta fβ、 f δ f_\delta fδ分别表示α、β、δ狼的适应度值。根据它们的适应度来计算分配给三头狼的权重,从而使α狼在狩猎过程中占有更大的权重,然后是第二个领先的β狼,以δ狼的最低权重结束,理论上是对潜在猎物位置的了解较少(优化)。

(3)文献13给出一种不同的基于适应度值的比例权重,表达式如下:

W α = f α f α + f β + f δ , W β = f β f α + f β + f δ , W δ = f δ f α + f β + f δ W_\alpha = \frac{f_\alpha}{f_\alpha + f_\beta + f_\delta}, \quad W_\beta = \frac{f_\beta}{f_\alpha + f_\beta + f_\delta}, \quad W_\delta = \frac{f_\delta}{f_\alpha + f_\beta + f_\delta} Wα=fα+fβ+fδfα,Wβ=fα+fβ+fδfβ,Wδ=fα+fβ+fδfδ

X ( t + 1 ) = X 1 ⋅ W α + X 2 ⋅ W β + X 3 ⋅ W δ X(t+1) = X_1 \cdot W_\alpha + X_2 \cdot W_\beta + X_3 \cdot W_\delta X(t+1)=X1⋅Wα+X2⋅Wβ+X3⋅Wδ

(4)文献14提出一种基于步长欧氏距离的比例权重,表达式如下:

W 1 = ∣ X 1 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ , W 2 = ∣ X 2 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ , W 3 = ∣ X 3 ∣ ∣ X 1 ∣ + ∣ X 2 ∣ + ∣ X 3 ∣ W_1 = \frac{|X_1|}{|X_1| + |X_2| + |X_3|}, \quad W_2 = \frac{|X_2|}{|X_1| + |X_2| + |X_3|}, \quad W_3 = \frac{|X_3|}{|X_1| + |X_2| + |X_3|} W1=∣X1∣+∣X2∣+∣X3∣∣X1∣,W2=∣X1∣+∣X2∣+∣X3∣∣X2∣,W3=∣X1∣+∣X2∣+∣X3∣∣X3∣

X ( t + 1 ) = X 1 ⋅ W 1 + X 2 ⋅ W 2 + X 3 ⋅ W 3 3 X(t+1) = \frac{X_1 \cdot W_1 + X_2 \cdot W_2 + X_3 \cdot W_3}{3} X(t+1)=3X1⋅W1+X2⋅W2+X3⋅W3

其中 W 1 W_1 W1、 W 2 W_2 W2、 W 3 W_3 W3分别表示α狼对β、δ狼的学习率。

引入上述四种比例权重均可以加快算法的收敛速度,通过实验,可以发现引入文献14所提出的步长欧氏距离的比例权重效果更好。下面通过理论角度对运用基于步长欧氏距离的比例权重效果进行研究验证。

首先给出如下命题:

设 X ( 1 ) X^{(1)} X(1)、 X ( 2 ) X^{(2)} X(2)和 X ( 3 ) X^{(3)} X(3)是三角形的三个顶点,X是三角形中任意一点,则可以用 X ( 1 ) X^{(1)} X(1)、 X ( 2 ) X^{(2)} X(2)和 X ( 3 ) X^{(3)} X(3)三个点的坐标表示。

证明 任选一项点 X ( 2 ) X^{(2)} X(2),作一条连接 X ( 2 ) X^{(2)} X(2)与X的直线,并延长交于 X ( 1 ) X ( 3 ) X^{(1)}X^{(3)} X(1)X(3)连线上一点 Y Y Y。因X是 Y Y Y与 X ( 2 ) X^{(2)} X(2)连线上一点,故可用 X ( 1 ) X ( 3 ) X^{(1)}X^{(3)} X(1)X(3)线性表示为:

Y = α X ( 1 ) + ( 1 − α ) X ( 3 ) ( 0 < α < 1 ) Y = \alpha X^{(1)} + (1-\alpha) X^{(3)} \quad (0 < \alpha < 1) Y=αX(1)+(1−α)X(3)(0<α<1)

又因 Y Y Y是 X ( 1 ) X ( 3 ) X^{(1)}X^{(3)} X(1)X(3)连线上一点,故

X = λ Y + ( 1 − λ ) X ( 2 ) ( 0 < λ < 1 ) X = \lambda Y + (1-\lambda) X^{(2)} \quad (0 < \lambda < 1) X=λY+(1−λ)X(2)(0<λ<1)

将 Y Y Y的表达式代入上式得到:

X = λ α X ( 1 ) + ( 1 − α ) X ( 3 ) + ( 1 − λ ) X ( 2 ) = λ α X ( 1 ) + λ ( 1 − α ) X ( 3 ) + ( 1 − λ ) X ( 2 ) X = \lambda\\alpha X\^{(1)} + (1-\\alpha) X\^{(3)} + (1-\lambda) X^{(2)} = \lambda \alpha X^{(1)} + \lambda (1-\alpha) X^{(3)} + (1-\lambda) X^{(2)} X=λαX(1)+(1−α)X(3)+(1−λ)X(2)=λαX(1)+λ(1−α)X(3)+(1−λ)X(2)

令 μ 1 = λ α \mu_1 = \lambda \alpha μ1=λα, μ 2 = ( 1 − λ ) \mu_2 = (1-\lambda) μ2=(1−λ), μ 3 = λ ( 1 − α ) \mu_3 = \lambda (1-\alpha) μ3=λ(1−α) 这样就得到:

X = μ 1 X ( 1 ) + μ 2 X ( 2 ) + μ 3 X ( 3 ) ( ∑ μ i = 1 , 0 < μ i < 1 ) X = \mu_1 X^{(1)} + \mu_2 X^{(2)} + \mu_3 X^{(3)} \quad (\sum \mu_i = 1, 0 < \mu_i < 1) X=μ1X(1)+μ2X(2)+μ3X(3)(∑μi=1,0<μi<1)

假设α、β、δ狼的位置为三角形的三个顶点 X ( 1 ) X^{(1)} X(1)、 X ( 2 ) X^{(2)} X(2)、 X ( 3 ) X^{(3)} X(3),则当X是三角形的重心时,有 μ 1 = μ 2 = μ 3 = 1 3 \mu_1 = \mu_2 = \mu_3 = \frac{1}{3} μ1=μ2=μ3=31,此时对应于基本GWO算法中的位置更新公式。而利用基于步长的欧氏距离计算 μ i \mu_i μi,使得 μ i \mu_i μi在算法的每一次迭代过程中不断变化,从而使得领导层的灰狼动态的指导狼群前进。

因此,本文引入文献14所提出的基于步长欧氏距离的比例权重。

1王秋萍,王梦娜,王晓峰.改进收敛因子和比例权重的灰狼优化算法J.计算机工程与应用,2019,55(21):60-65+98.

相关推荐
退休倒计时9 小时前
【每日一题】LeetCode 15. 三数之和 TypeScript
数据结构·算法·leetcode·typescript
林爷万福9 小时前
MATLAB光谱数据分析从入门到项目实战
算法·光纤光谱仪
吴可可1239 小时前
AutoCAD2016二次开发环境配置指南
算法·机器学习
Thomas_YXQ9 小时前
Unity3D Addressable 深度优化热更性能消耗
开发语言·3d·unity·微信
一条大祥脚9 小时前
ABC461 枚举|扫描线|动态前缀和|数论|dfs枚举子集
算法·深度优先
aini_lovee9 小时前
C# 快递单打印系统(万能套打系统)
开发语言·c#
计算机安禾9 小时前
【数据库系统原理】第14篇:关系模式的语义约束:函数依赖的公理系统与闭包计算
人工智能·算法·机器学习
量化君也9 小时前
快速入门量化交易都要学些什么?
大数据·人工智能·python·算法·金融
天启HTTP9 小时前
开启全局代理后网络变慢,问题出在哪
开发语言·前端·网络·tcp/ip·php