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

embedded/2025/2/23 5:37:00/

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.ppmy.cn/embedded/164539.html

相关文章

运维Ansible面试题及参考答案

目录 简述 Ansible 的工作原理,它是如何实现对远程主机管理的? Ansible 是基于什么语言开发的?这门语言的特性对 Ansible 的功能实现有哪些帮助? 解释 Agentless 在 Ansible 中的含义,与基于 Agent 的自动化工具相比,优势体现在哪? Ansible 中的 Inventory 文件是什…

2502C++,C++继承的多态性

构 A{单 向量<串>记;元<类 T>静 空 ff(串&a){清理(记);名向量(a,记);串 b{"---ff---"};打印(b);T::g();} };构 B:公 A{元<类 T>静 空 f(){串 a{"错误.txt"};ff<T>(a);} };构 C:公 A{元<类 T>静 空 f(){串 a{"a12.c…

CloudMounter for Mac v4.11 挂载云盘为本地磁盘 支持M、Intel芯片

CloudMounter 可以把微软 OneDrive, Google Drive, Amazon S3, Dropbox 和远程 FTP/WebDAV 空间加载成 Mac 本地磁盘&#xff0c;方便用户随时存储使用文件的工具。 应用介绍 loudMounter 是一款 macOS 软件&#xff0c;可以将各种云存储服务和远程服务器挂载为本地磁盘。它支…

Python Django系列—入门实例(二)

数据库配置 现在&#xff0c;打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。 默认情况下&#xff0c;​ DATABASES 配置使用 SQLite。如果你是数据库新手&#xff0c;或者只是想尝试 Django&#xff0c;这是最简单的选择。SQLite 包含在 Python 中…

【深度学习】Transformer入门:通俗易懂的介绍

【深度学习】Transformer入门&#xff1a;通俗易懂的介绍 一、引言二、从前的“读句子”方式三、Transformer的“超级阅读能力”四、Transformer是怎么做到的&#xff1f;五、Transformer的“多视角”能力六、Transformer的“位置记忆”七、Transformer的“翻译流程”八、Trans…

Nginx Embedded Variables 嵌入式变量解析(4)

Nginx Embedded Variables 嵌入式变量解析(4) 相关链接 nginx 嵌入式变量解析目录nginx 嵌入式变量全目录nginx 指令模块目录nginx 指令全目录 一、目录 1.1 变量目录 1.1.24 ngx_stream_core_module $binary_remote_addr $bytes_received $bytes_sent $connection $hos…

【Leetcode】11. 盛最多水的容器

一、题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a; 你不能倾…

RNN中远距离时间步梯度消失问题及解决办法

RNN中远距离时间步梯度消失问题及解决办法 RNN 远距离时间步梯度消失问题LSTM如何解决远距离时间步梯度消失问题 RNN 远距离时间步梯度消失问题 经典的RNN结构如下图所示&#xff1a; 假设我们的时间序列只有三段&#xff0c; S 0 S_{0} S0​ 为给定值&#xff0c;神经元没有…