智能优化算法:卷积优化算法 2023
摘要:将二维卷积运算引入智能优化算法的种群位置更新过程,提出一种新的智能优化算法,即卷积优化算法(Convolution Optimization Algorithm,COA)。 该算法主要包括卷积搜索和解质量增强 2 种机制:在卷积搜索过程中,分别定义纵向卷积核、横向卷积核和区域卷积核,依次进行二维卷积运算并更新种群的位置向量,然后将 3 种卷积核更新后的种群的位置向量进行随机权重或等比例权重相加,进一步更新种群的位置向量;在解质量增强过程中,对最优解的搜索空间逐维进行带非惯性权重的高斯变异,并对最优解进行扰动,从而提高算法的局部搜索能力。
1.卷积优化算法
COA 主要包括卷积搜索和解质量增强 2 种机制,其中:卷积搜索机制的是通过矩阵卷积运算增强搜索趋势并加快收敛速度,从而在搜索空间中获得更好的位置;解质量增强机制通过提高解的质量,避免每次迭代中出现局部最优。
1.1 种群初始化
在
C
O
A
\mathrm{COA}
COA 中, 个体的位置向量
X
p
(
p
=
1
,
2
,
⋯
\boldsymbol{X}_p(p=1,2, \cdots
Xp(p=1,2,⋯,
n
n
n ) 为优化问题的候选解, 定义
X
p
\boldsymbol{X}_p
Xp 用于在
d
d
d 维空间 中搜索,其中
d
d
d 为决策变量的维度。这样, 在卷积 优化算法中, 种群的位置向量
X
\boldsymbol{X}
X 由维度为
d
d
d 的
n
n
n 个个体组成, 则种群的位置向量
X
\boldsymbol{X}
X 由
n
×
d
n \times d
n×d 阶矩阵 构成,有
X
=
[
X
1
⋮
X
n
]
=
[
x
11
⋯
x
1
d
⋮
⋮
x
n
1
⋯
x
n
d
]
(1)
\boldsymbol{X}=\left[\begin{array}{c} \boldsymbol{X}_1 \\ \vdots \\ \boldsymbol{X}_n \end{array}\right]=\left[\begin{array}{ccc} x_{11} & \cdots & x_{1 d} \\ \vdots & & \vdots \\ x_{n 1} & \cdots & x_{n d} \end{array}\right] \tag{1}
X=X1⋮Xn=x11⋮xn1⋯⋯x1d⋮xnd(1)
在
C
O
A
\mathrm{COA}
COA 中, 种群的位置向量
X
X
X 的适应度值为
F
X
=
[
f
(
X
1
)
⋮
f
(
X
n
)
]
=
[
f
(
[
x
11
x
12
⋯
x
1
d
]
)
⋮
f
(
[
x
n
1
x
n
2
⋯
x
n
d
]
)
]
(2)
\boldsymbol{F}_X=\left[\begin{array}{c} f\left(\boldsymbol{X}_1\right) \\ \vdots \\ f\left(\boldsymbol{X}_n\right) \end{array}\right]=\left[\begin{array}{rrrr} f\left(\left[\begin{array}{rrrr} x_{11} & x_{12} & \cdots & x_{1 d} \end{array}\right]\right) \\ & \vdots & & \\ f\left(\left[\begin{array}{rrrr} x_{n 1} & x_{n 2} & \cdots & x_{n d} \end{array}\right]\right) \end{array}\right]\tag{2}
FX=f(X1)⋮f(Xn)=f([x11x12⋯x1d])f([xn1xn2⋯xnd])⋮(2)
式中:
f
(
X
p
)
f\left(\boldsymbol{X}_p\right)
f(Xp) 表示适应度函数, 也称目标函数。
在
C
O
A
\mathrm{COA}
COA 中,初始种群的位置向量
X
0
\boldsymbol{X}^0
X0 在
d
d
d 维搜 索空间中随机生成, 每个个体的位置向量
X
p
0
\boldsymbol{X}_p^0
Xp0 的初始 化可定义为
X
p
0
=
l
p
+
r
a
n
d
⋅
(
u
p
,
l
p
)
(3)
\boldsymbol{X}_p^0=\boldsymbol{l}_p+\mathrm{rand} \cdot\left(\boldsymbol{u}_p, \boldsymbol{l}_p\right)\tag{3}
Xp0=lp+rand⋅(up,lp)(3)
式中:
l
p
\boldsymbol{l}_p
lp 为一个
1
×
d
1 \times d
1×d 阶矩阵, 为第
p
p
p 个个体的下限;
u
p
\boldsymbol{u}_p
up 为一个
1
×
d
1 \times d
1×d 阶矩阵, 为第
p
p
p 个个体的上限; rand 为
[
0
,
1
]
[0,1]
[0,1] 之间的随机数。
1.2 卷积搜索机制
卷积搜索过程分为纵向卷积位置更新、横向卷积位置更新、区域卷积位置更新和综合位置更新 4个步骤。
1.2.1 纵向卷积位置更新
定义纵向卷积核为
K
L
=
2
×
rand
(
k
,
1
)
−
I
L
(4)
\boldsymbol{K}_{\mathrm{L}}=2 \times \operatorname{rand}(k, 1)-\boldsymbol{I}_{\mathrm{L}}\tag{4}
KL=2×rand(k,1)−IL(4)
式中:
K
L
\boldsymbol{K}_{\mathrm{L}}
KL 为一个
k
×
1
k \times 1
k×1 阶矩阵, 为纵向卷积核, 其中
k
k
k 为纵向卷积核的高, 1 为纵向卷积核的宽;
rand
(
k
,
1
)
\operatorname{rand}(k, 1)
rand(k,1) 为一个
k
×
1
k \times 1
k×1 阶矩阵,每个元素为
[
0
,
1
]
[0,1]
[0,1] 之间的随机 数;
I
L
\boldsymbol{I}_{\mathrm{L}}
IL 为一个
k
×
1
k \times 1
k×1 阶矩阵, 所有元素为 1 。 定义纵向卷积为
X
L
t
=
X
t
∗
K
L
(5)
\boldsymbol{X}_{\mathrm{L}}^t=\boldsymbol{X}^t * \boldsymbol{K}_{\mathrm{L}}\tag{5}
XLt=Xt∗KL(5)
式中:
t
t
t 为当前迭代次数;
X
t
X^t
Xt 为一个
n
×
d
n \times d
n×d 阶矩阵, 为 第
t
t
t 代种群的位置向量;
X
L
t
X_{\mathrm{L}}^t
XLt 为一个
n
×
d
n \times d
n×d 阶矩阵, 为 第
t
t
t 代纵向卷积位置更新后的种群的位置向量。
比较
X
L
t
\boldsymbol{X}_{\mathrm{L}}^t
XLt 和
X
t
\boldsymbol{X}^t
Xt 中每个个体位置的适应度值的大 小,择优替换掉
X
t
\boldsymbol{X}^t
Xt 中个体位置, 则有
X
p
t
=
{
X
L
p
t
,
f
(
X
L
p
t
)
<
f
(
X
p
t
)
;
X
p
t
,
else 。
(6)
\boldsymbol{X}_p^t=\left\{\begin{array}{l} \boldsymbol{X}_{\mathrm{Lp}}^t, f\left(\boldsymbol{X}_{\mathrm{Lp}}^t\right)<f\left(\boldsymbol{X}_p^t\right) ; \\ \boldsymbol{X}_p^t, \text { else } 。 \end{array}\right.\tag{6}
Xpt={XLpt,f(XLpt)<f(Xpt);Xpt, else 。(6)
式中:
X
p
t
\boldsymbol{X}_p^t
Xpt 为第
t
t
t 代种群的第
p
p
p 个个体位置;
X
L
p
t
\boldsymbol{X}_{\mathrm{L} p}^t
XLpt 为 第
t
t
t 代纵向卷积位置更新后的种群的第
p
p
p 个个体 位置。
1.2.2 横向卷积位置更新
定义横向卷积核为
K
T
=
2
×
rand
(
k
,
1
)
−
I
T
(7)
\boldsymbol{K}_{\mathrm{T}}=2 \times \operatorname{rand}(k, 1)-\boldsymbol{I}_{\mathrm{T}} \tag{7}
KT=2×rand(k,1)−IT(7)
式中:
K
T
\boldsymbol{K}_{\mathrm{T}}
KT 为一个
1
×
k
1 \times k
1×k 阶矩阵, 为横向卷积核, 其中 1 为横向卷积核的高,
k
k
k 为横向卷积核的宽;
rand
(
1
,
k
)
\operatorname{rand}(1, k)
rand(1,k) 为一个
1
×
k
1 \times k
1×k 阶矩阵,每个元素为
[
0
,
1
]
[0,1]
[0,1] 之间的随机 数;
I
T
\boldsymbol{I}_{\mathrm{T}}
IT 为一个
1
×
k
1 \times k
1×k 阶矩阵,所有元素为 1 。
定义横向卷积为
X
T
t
=
X
t
∗
K
T
(8)
\boldsymbol{X}_{\mathrm{T}}^t=\boldsymbol{X}^t * \boldsymbol{K}_{\mathrm{T}} \tag{8}
XTt=Xt∗KT(8)
式中:
X
T
t
\boldsymbol{X}_{\mathrm{T}}^t
XTt 为一个
n
×
d
n \times d
n×d 阶矩阵, 为横向卷积更新后的 种群的位置向量。
比较
X
T
t
\boldsymbol{X}_{\mathrm{T}}^t
XTt 和
X
t
\boldsymbol{X}^t
Xt 中每个个体位置的适应度值的大 小,择优替换掉
X
t
\boldsymbol{X}^t
Xt 中个体位置,则有
X
p
t
=
{
X
T
p
t
,
f
(
X
T
p
t
)
<
f
(
X
p
t
)
;
X
p
t
,
else
(9)
\boldsymbol{X}_p^t=\left\{\begin{array}{l} \boldsymbol{X}_{\mathrm{T}_p}^t, f\left(\boldsymbol{X}_{\mathrm{T}_p}^t\right)<f\left(\boldsymbol{X}_p^t\right) ; \\ \boldsymbol{X}_p^t, \text { else } \end{array}\right.\tag{9}
Xpt={XTpt,f(XTpt)<f(Xpt);Xpt, else (9)
式中:
X
T
p
t
X_{\mathrm{T}_p}^t
XTpt 为第
t
t
t 代横向卷积位置更新后的种群的第
p
p
p 个个体位置。
1.2.3 区域卷积位置更新
定义区域卷积核为
K
R
=
2
×
rand
(
k
,
1
)
−
I
R
(10)
\boldsymbol{K}_{\mathrm{R}}=2 \times \operatorname{rand}(k, 1)-\boldsymbol{I}_{\mathrm{R}} \tag{10}
KR=2×rand(k,1)−IR(10)
式中:
K
R
\boldsymbol{K}_{\mathrm{R}}
KR 为一个
k
×
k
k \times k
k×k 阶矩阵, 为区域卷积核, 其中
k
k
k 为区域卷积核的高和宽;
rand
(
k
,
k
)
\operatorname{rand}(k, k)
rand(k,k) 为一个
k
×
k
k \times k
k×k 阶 矩阵,每个元素为
[
0
,
1
]
[0,1]
[0,1] 之间的随机数;
I
R
\boldsymbol{I}_{\mathrm{R}}
IR 为一个
k
×
k
k \times k
k×k 阶矩阵,所有元素为 1 。
定义区域卷积为
X
R
t
=
X
t
∗
K
R
(11)
\boldsymbol{X}_{\mathrm{R}}^t=\boldsymbol{X}^t * \boldsymbol{K}_{\mathrm{R}} \tag{11}
XRt=Xt∗KR(11)
式中:
X
R
t
\boldsymbol{X}_{\mathrm{R}}^t
XRt 为一个
n
×
d
n \times d
n×d 阶矩阵, 为区域卷积更新后的 种群的位置向量。
比较
X
R
t
\boldsymbol{X}_{\mathrm{R}}^t
XRt 和
X
t
\boldsymbol{X}^t
Xt 中每个个体位置的适应度值的大 小,择优替换掉
X
t
X^t
Xt 中个体位置, 则有
X
p
t
=
{
X
R
p
t
,
f
(
X
R
p
t
)
<
f
(
X
p
t
)
;
X
p
t
,
else
(12)
\boldsymbol{X}_p^t=\left\{\begin{array}{l} \boldsymbol{X}_{\mathrm{R} p}^t, f\left(\boldsymbol{X}_{\mathrm{R} p}^t\right)<f\left(\boldsymbol{X}_p^t\right) ; \\ \boldsymbol{X}_p^t, \text { else } \end{array}\right. \tag{12}
Xpt={XRpt,f(XRpt)<f(Xpt);Xpt, else (12)
式中:
X
R
p
t
X_{\mathrm{R} p}^t
XRpt 为第
t
t
t 代区域卷积位置更新后的种群的第
p
p
p 个个体位置。
1.2.4 综合位置更新
在综合位置更新阶段, 将第
t
t
t 代纵向卷积更新 后的种群的位置向量
X
L
t
X_{\mathrm{L}}^t
XLt, 第
t
t
t 代横向卷积更新后的 种群的位置向量
X
T
t
X_{\mathrm{T}}^t
XTt 和第
t
t
t 代区域卷积更新后的种 群的位置向量
X
R
t
\boldsymbol{X}_{\mathrm{R}}^t
XRt, 采用随机权重或等比例权重相加 合并为
X
s
t
\boldsymbol{X}_{\mathrm{s}}^t
Xst, 即
X
S
t
=
r
1
×
X
L
t
+
r
2
×
X
T
t
+
r
3
×
X
R
t
r
1
+
r
2
+
r
3
(13)
\boldsymbol{X}_{\mathrm{S}}^t=\frac{r_1 \times \boldsymbol{X}_{\mathrm{L}}^t+r_2 \times \boldsymbol{X}_{\mathrm{T}}^t+r_3 \times \boldsymbol{X}_{\mathrm{R}}^t}{r_1+r_2+r_3} \tag{13}
XSt=r1+r2+r3r1×XLt+r2×XTt+r3×XRt(13)
式中:
r
1
、
r
2
、
r
3
r_1 、 r_2 、 r_3
r1、r2、r3 均为
[
0
,
1
]
[0,1]
[0,1] 之间的随机数, 特别地, 可 以令
r
1
=
r
2
=
r
3
r_1=r_2=r_3
r1=r2=r3, 以便进行等比例权重相加。
比较
X
s
t
\boldsymbol{X}_{\mathrm{s}}^t
Xst 和
X
t
\boldsymbol{X}^t
Xt 中每个个体位置的适应度值的大 小,择优替换掉
X
t
X^t
Xt 中个体位置, 则有
X
p
t
=
{
X
s
p
t
,
f
(
X
s
p
p
t
)
<
f
(
X
p
t
)
;
X
p
t
,
else
(14)
\boldsymbol{X}_p^t=\left\{\begin{array}{l} \boldsymbol{X}_{\mathrm{sp}}^t, f\left(\boldsymbol{X}_{\mathrm{spp}}^t\right)<f\left(\boldsymbol{X}_p^t\right) ; \\ \boldsymbol{X}_p^t, \text { else } \end{array}\right. \tag{14}
Xpt={Xspt,f(Xsppt)<f(Xpt);Xpt, else (14)
式中:
X
s
p
t
X_{\mathrm{s} p}^t
Xspt 为第
t
t
t 代综合位置更新后的种群的第
p
p
p 个 个体位置。
最后, 计算
X
t
\boldsymbol{X}^t
Xt 中所有个体位置的适应度值, 并根据适应度值的大小进行排序, 选出最优 解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 。
1.3 解质量增强机制
在
C
O
A
\mathrm{COA}
COA 中,解质量增强机制是对最优解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 的
d
d
d 维搜索空间逐维进行带非惯性权重的高斯变异, 对最优解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 进行扰动, 从而提高算法的局部搜 索能力。
对最优解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 中
d
d
d 维搜索空间逐维进行带非惯性权重的高斯变异, 则有
X
n
b
s
(
q
)
t
=
ω
⋅
X
q
t
+
randn
⋅
X
b
s
(
q
)
t
(15)
\boldsymbol{X}_{\mathrm{nbs}(q)}^t=\omega \cdot \boldsymbol{X}_q^t+\operatorname{randn} \cdot \boldsymbol{X}_{\mathrm{bs}(q)}^t \tag{15}
Xnbs(q)t=ω⋅Xqt+randn⋅Xbs(q)t(15)
式中:
X
b
s
(
q
)
t
=
[
x
1
q
x
2
q
⋯
x
n
q
]
T
\boldsymbol{X}_{\mathrm{bs}(q)}^t=\left[\begin{array}{llll}x_{1 q} & x_{2 q} & \cdots & x_{n q}\end{array}\right]^{\mathrm{T}}
Xbs(q)t=[x1qx2q⋯xnq]T 为一个
n
×
1
n \times 1
n×1 阶 矩阵, 为最优解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 中
d
d
d 维搜索空间中的第
q
(
q
=
1
q(q=1
q(q=1,
2
,
⋯
,
d
)
2, \cdots, d)
2,⋯,d) 维的位置;
ω
=
1
−
(
t
/
iter
max
)
2
\omega=1-\left(t / \text { iter }_{\text {max }}\right)^2
ω=1−(t/ iter max )2, 其中 iter
max
_{\text {max }}
max 为最大迭代次数; randn 为一个满足均值为 0 , 方差 为 1 的标准正态分布的随机数;
X
n
b
s
(
q
)
t
X_{\mathrm{nbs}(q)}^t
Xnbs(q)t 为一个
n
×
1
n \times 1
n×1 阶矩阵, 为对最优解
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 的第
q
q
q 维进行带非惯性权重 高斯变异后的第
q
q
q 维位置。
令对第
q
q
q 维进行带非惯性权重高斯变异后的个 体位置为
X
(
q
)
nbs
t
\boldsymbol{X}_{(q) \text { nbs }}^t
X(q) nbs t, 比较
X
(
q
)
nbs
t
\boldsymbol{X}_{(q) \text { nbs }}^t
X(q) nbs t 和
X
b
s
t
\boldsymbol{X}_{\mathrm{bs}}^t
Xbst 的适应度值的大 小,择优替换掉
X
b
s
t
X_{\mathrm{bs}}^t
Xbst 的个体位置,则有
X
b
s
t
=
{
X
(
q
)
n
b
s
t
,
f
(
X
(
q
)
n
b
s
t
)
<
f
(
X
b
s
t
)
;
X
b
s
t
,
else 。
(16)
\boldsymbol{X}_{\mathrm{bs}}^t= \begin{cases}\boldsymbol{X}_{(q) \mathrm{nbs}}^t, & f\left(\boldsymbol{X}_{(q) \mathrm{nbs}}^t\right)<f\left(\boldsymbol{X}_{\mathrm{bs}}^t\right) ; \\ \boldsymbol{X}_{\mathrm{bs}}^t, & \text { else } 。\end{cases} \tag{16}
Xbst={X(q)nbst,Xbst,f(X(q)nbst)<f(Xbst); else 。(16)
**
C
O
A
\mathrm{COA}
COA 运行过程的伪代码如下:**
输人: 种群大小为
n
n
n, 个体位置的维度为
d
d
d, 最大 迭代次数为 iter
max
_{\text {max }}
max , 卷积核参数为
k
k
k 和适应度函数为
f
(
X
p
)
(
p
=
1
,
2
,
⋯
,
n
)
f\left(\boldsymbol{X}_p\right)(p=1,2, \cdots, n)
f(Xp)(p=1,2,⋯,n)
输出:最优解及其位置
1 : 初始化种群, 计算每个个体位置的适应度值, 选出最优个体的适应度值及其位置
2 : While
t
⩽
t \leqslant
t⩽ iter
max
_{\text {max }}
max do
3 : 在纵向卷积位置更新阶段, 由式 (4)- (6) 更 新种群的位置向量
4 : 在横向卷积位置更新阶段, 由式 (7)- (9) 更 新种群的位置向量
5 : 在区域卷积位置更新阶段, 由式 (10)-(12) 更新种群的位置向量
6 : 在综合位置更新阶段, 由式 (13)、(14) 更新 种群的位置向量
7 : 计算种群个体位置的适应度值, 选出最优解
8 : for
q
=
1
q=1
q=1 to
d
d
d do
9 : 在解增强阶段, 由式 (15)、(16) 更新最优解 及其位置
10 : end for
11 : 更新全局最优解及其位置
12
:
t
=
t
+
1
12: t=t+1
12:t=t+1
13 : end while
2.实验结果
3.参考文献
[1]陈克伟,魏曙光,张嘉曦.基于二维卷积运算的智能优化算法[J].装甲兵学报,2023,2(01):102-108.
4.Matlab
5.Python
版权归原作者 智能算法研学社(Jack旭) 所有, 如有侵权,请联系我们删除。