当前位置: 首页 > article >正文

改进收敛因子和比例权重的灰狼优化算法【期刊论文完美复现】(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)AD

其中, 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) \left[1 + \cos \left( (t-1) \pi / \left( t_{\text{max}} -1 \right) \right) \right] \, / \, 2 a=amin+(ainitialamin)[1+cos((t1)π/(tmax1))]/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}} 0ttmax,其变化图如图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 \left[1 - \cos \left( (t-1) \pi / \left( t_{\text{max}} - 1 \right) \right) \right] \, / \, 2 a=ainitial+(ainitialamin)[1cos((t1)π/(tmax1))]/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δX1Wα+X2Wβ+X3Wδ

其中 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)=X1Wα+X2Wβ+X3Wδ

(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+X3X1,W2=X1+X2+X3X2,W3=X1+X2+X3X3

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)=3X1W1+X2W2+X3W3

其中 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.


http://www.kler.cn/a/556727.html

相关文章:

  • matlab 海浪模型和舰艇动力学模型
  • 在windows下安装windows+Ubuntu16.04双系统(下)
  • 解决 Ubuntu 中 Docker 安装时“无法找到软件包”错误
  • 人工智能任务23-天文领域的超亮超新星能源机制结合深度神经网络的研究方向
  • 什么是超越编程(逾编程)(元编程?)
  • C++初阶——简单实现vector
  • 数据结构之【顺序表简介】
  • 出行项目案例
  • Ubuntu24.04LTS的下载安装超细图文教程(VMware虚拟机及正常安装)
  • 【Python爬虫(34)】Python多进程编程:开启高效并行世界的钥匙
  • OpenSSL crt key (生成一套用于TLS双向认证的证书密钥)
  • vue-指令
  • 自然语言处理NLP 04案例——苏宁易购优质评论与差评分析
  • w220周边游平台设计与实现
  • 力扣-回溯-39 组合总和
  • Python 单例模式笔记
  • HarmonyOS NEXT 开发者进阶指南(基于API 12+理论解析)
  • 《Python实战进阶》专栏 No.3:Django 项目结构解析与入门DEMO
  • 如何优化Spark作业的性能
  • 网络通信中的TCP三次握手与四次挥手:新手小白的入门指南