智能优化算法:投影迭代优化算法
文章目录
- 智能优化算法:投影迭代优化算法
-
- 1.算法原理
-
- 1.1 投影集群初始化
- 1.2 残差引导投影 (RGP)
- 1.3 双重随机投影 (DRP)
- 1.4 加权随机投影更新 (WRPU)
- 1.5 莱维飞行引导投影 (LFGP)
- 2.实验结果
- 3.Matlab&Python
- 4.参考文献
投影迭代优化算法Projection-Iterative-Methods-based Optimizer (PIMO) 是一种新颖的元启发式算法,其灵感来源于投影迭代法,旨在解决连续优化问题和特征选择问题。PIMO 引入了四种新的算子来引导种群向最优解收敛,同时增强了探索能力和收敛速度。该算法首次集成了Kaczmarz方法和随机梯度下降等技术,以提升性能并防止陷入局部最优。PIMO 的框架包含四个核心部分:残差引导投影 (RGP)、双重随机投影 (DRP)、加权随机投影更新 (WRPU) 和莱维飞行引导投影 (LFGP)。该算法不仅能够解决复杂的函数和工程设计等连续优化问题,在特征选择方面也表现出很高的性能。
1.算法原理
1.1 投影集群初始化
PIMO 算法首先通过初始化种群来启动优化过程。给定种群大小
N
N
N 和变量维度
D
D
D,每个投影代理被视为算法的一个搜索代理。每个代理的位置通过以下数学表达式生成:
X
i
j
=
r
0
×
(
U
B
j
−
L
B
j
)
+
L
B
j
(4)
X_{ij} = r_0 \\times (UB_j – LB_j) + LB_j \\tag{4}
Xij=r0×(UBj−LBj)+LBj(4) 其中,
X
i
j
X_{ij}
Xij 表示第
i
i
i 个投影搜索个体在第
j
j
j 维度的位置;
r
0
r_0
r0 是一个介于
[
0
,
1
]
[0, 1]
[0,1] 之间的随机数;
U
B
j
UB_j
UBj 和
L
B
j
LB_j
LBj 分别是变量在第
j
j
j 维的上界和下界向量。
1.2 残差引导投影 (RGP)
在残差引导投影 (RGP) 过程中,算法通过在多维空间中持续投影来逼近最优解。该过程结合了 Kaczmarz 迭代更新策略和随机梯度下降 (SGD),为高维解空间中的搜索提供了系统的轨迹引导。算法会随机选择两个残差适应度较小的解作为引导代理
X
ν
1
X_{\\nu1}
Xν1 和
X
ν
2
X_{\\nu2}
Xν2,并根据它们计算梯度。梯度
G
1
G_1
G1 的计算公式为:
G
1
=
{
R
×
(
X
ν
1
−
X
b
e
s
t
)
+
(
1
−
R
)
×
(
X
ν
2
−
X
b
e
s
t
)
2
,
if
3
r
3
≥
2
r
4
R
×
(
X
ν
2
−
X
b
e
s
t
)
+
(
1
−
R
)
×
(
X
ν
1
−
X
b
e
s
t
)
2
,
otherwise
(7)
G_1= \\begin{cases} \\displaystyle \\frac{R \\times (X_{\\nu1} – X_{best}) + (1 – R) \\times (X_{\\nu2} – X_{best})}{2}, & \\text{if } 3r_3 \\ge 2r_4 \\\\[6pt] \\displaystyle \\frac{R \\times (X_{\\nu2}-X_{best})+(1-R) \\times (X_{\\nu1}-X_{best})}{2}, & \\text{otherwise} \\end{cases} \\tag{7}
G1=⎩
⎨
⎧2R×(Xν1−Xbest)+(1−R)×(Xν2−Xbest),2R×(Xν2−Xbest)+(1−R)×(Xν1−Xbest),if 3r3≥2r4otherwise(7) 其中,
X
b
e
s
t
X_{best}
Xbest 是当前的最佳位置;
R
,
r
3
,
r
4
R, r_3, r_4
R,r3,r4 是
[
0
,
1
]
[0, 1]
[0,1] 之间的随机数。为了更精确地更新,RGP 利用了雅可比矩阵
J
J
J。雅可比矩阵的元素
J
i
j
J_{ij}
Jij 表示目标函数分量
f
j
f_j
fj 相对于变量
x
i
x_i
xi 的偏导数,其近似计算方式为:
J
i
j
=
∂
f
j
∂
x
i
≈
f
j
(
x
+
ϵ
e
i
)
−
f
j
(
x
)
ϵ
(8)
J_{ij} = \\frac{\\partial f_j}{\\partial x_i} \\approx \\frac{f_j(x + \\epsilon e_i) – f_j(x)}{\\epsilon} \\tag{8}
Jij=∂xi∂fj≈ϵfj(x+ϵei)−fj(x)(8) 其中,
f
j
(
x
)
f_j(x)
fj(x) 是目标函数的第
j
j
j 个分量;
ϵ
\\epsilon
ϵ 是一个微小的扰动值;
e
i
e_i
ei 是标准基向量。最终,结合梯度信息的投影操作被用于更新位置:
X
n
1
p
r
o
j
(
t
+
1
)
=
{
X
i
−
δ
×
G
1
,
if
3
r
3
≥
2
r
4
X
i
+
J
×
δ
×
G
1
,
otherwise
(11)
X_{n1}^{proj(t+1)} = \\begin{cases} X_i – \\delta \\times G_1, & \\text{if } 3r_3 \\ge 2r_4 \\\\ X_i + J \\times \\delta \\times G_1, & \\text{otherwise} \\end{cases} \\tag{11}
Xn1proj(t+1)={Xi−δ×G1,Xi+J×δ×G1,if 3r3≥2r4otherwise(11) 其中,
X
n
1
p
r
o
j
(
t
+
1
)
X_{n1}^{proj(t+1)}
Xn1proj(t+1) 是 RGP 更新后的新位置;
X
i
X_i
Xi 是当前的搜索代理;动态参数
δ
\\delta
δ 随着当前迭代次数
t
t
t 和最大迭代次数
T
T
T 变化,其表达式如下:
δ
=
s
i
n
(
π
2
(
1
−
(
2
t
T
)
5
)
)
(12)
\\delta = sin\\left(\\frac{\\pi}{2}\\big(1 – \\big(\\frac{2t}{T}\\big)^5\\big)\\right) \\tag{12}
δ=sin(2π(1−(T2t)5))(12)
1.3 双重随机投影 (DRP)
双重随机投影过程通过引入双重随机性来增强算法的全局搜索能力。算法首先从粒子群中随机选择两个索引
ν
3
\\nu_3
ν3 和
ν
4
\\nu_4
ν4 作为投影更新的参考点。当随机决策选择梯度更新时,算法根据当前位置与当前最优位置的差异来计算更新方向向量
g
1
g_1
g1:
g
1
=
R
×
(
X
ν
3
−
X
b
e
s
t
)
+
(
1
−
R
)
×
(
X
ν
4
−
X
b
e
s
t
)
2
(14)
g_1 = \\frac{R \\times (X_{\\nu3} – X_{best}) + (1 – R) \\times (X_{\\nu4} – X_{best})}{2} \\tag{14}
g1=2R×(Xν3−Xbest)+(1−R)×(Xν4−Xbest)(14)
X
n
2
p
r
o
j
(
t
+
1
)
=
X
i
−
δ
×
g
1
(14)
X_{n2}^{proj(t+1)} = X_i – \\delta \\times g_1 \\tag{14}
Xn2proj(t+1)=Xi−δ×g1(14) 如果选择使用雅可比矩阵投影更新,则更新方向向量
g
2
g_2
g2 的计算方式为:
g
2
=
R
×
(
X
ν
4
−
X
b
e
s
t
)
+
(
1
−
R
)
×
(
X
ν
3
−
X
b
e
s
t
)
2
(15)
g_2 = \\frac{R \\times (X_{\\nu4} – X_{best}) + (1 – R) \\times (X_{\\nu3} – X_{best})}{2} \\tag{15}
g2=2R×(Xν4−Xbest)+(1−R)×(Xν3−Xbest)(15)
X
n
2
p
r
o
j
(
t
+
1
)
=
X
i
+
J
×
δ
×
g
2
T
(15)
X_{n2}^{proj(t+1)} = X_i + J \\times \\delta \\times g_2^T \\tag{15}
Xn2proj(t+1)=Xi+J×δ×g2T(15) 其中,
X
n
2
p
r
o
j
(
t
+
1
)
X_{n2}^{proj(t+1)}
Xn2proj(t+1) 是 DRP 更新后的新位置。这种双重随机性确保了选择过程的多样性,并有助于算法在不同方向上进行探索。
1.4 加权随机投影更新 (WRPU)
加权随机投影更新 (WRPU) 是一个通过随机加权和自适应调整来实现的优化过程,旨在引导粒子在解空间中朝向最优解移动。该过程通过随机因子
r
7
r_7
r7 和
r
8
r_8
r8 来确定粒子位置更新分量的权重:
r
7
=
1
+
r
a
n
d
,
r
8
=
1
+
r
a
n
d
(16)
r_7 = 1 + rand,\\ r_8 = 1 + rand \\tag{16}
r7=1+rand, r8=1+rand(16) 位置更新基于两条不同的投影路径。路径1是随机加权投影:
X
n
3
p
r
o
j
(
t
+
1
)
=
r
7
×
X
i
+
(
1
−
R
)
×
X
b
e
s
t
+
r
8
×
(
X
i
−
X
b
e
s
t
)
(17)
X_{n3}^{proj(t+1)} = r_7 \\times X_i + (1 – R) \\times X_{best} + r_8 \\times (X_i – X_{best}) \\tag{17}
Xn3proj(t+1)=r7×Xi+(1−R)×Xbest+r8×(Xi−Xbest)(17) 路径2是自适应校正投影,它利用了 RGP 阶段的历史位置信息:
X
n
3
p
r
o
j
(
t
+
1
)
=
X
i
+
a
×
(
X
n
1
p
r
o
j
(
t
+
1
)
−
X
b
e
s
t
)
(18)
X_{n3}^{proj(t+1)} = X_i + a \\times \\big(X_{n1}^{proj(t+1)} – X_{best}\\big) \\tag{18}
Xn3proj(t+1)=Xi+a×(Xn1proj(t+1)−Xbest)(18) 其中自适应因子
a
=
(
1
−
t
/
T
)
×
r
a
n
d
a = (1 – t/T) \\times rand
a=(1−t/T)×rand 用于调节步长。算法根据维度因子在每个维度上选择不同的投影路径,增加了位置更新的动态性。
1.5 莱维飞行引导投影 (LFGP)
莱维飞行引导投影 (LFGP) 过程通过模拟自然界中有机体的随机运动来实现高效的全局搜索和局部优化。莱维飞行投影的触发概率
O
O
O 由以下公式确定:
O
=
1
2
(
t
a
n
h
(
9
×
t
T
−
5
)
+
1
)
(19)
O = \\frac{1}{2}\\big(tanh\\big(9 \\times \\frac{t}{T} – 5\\big) + 1\\big) \\tag{19}
O=21(tanh(9×Tt−5)+1)(19) 莱维飞行的步长
z
z
z 由以下公式生成:
z
=
u
∣
v
∣
1
/
β
×
τ
(20)
z = \\frac{u}{|v|^{1/\\beta}} \\times \\tau \\tag{20}
z=∣v∣1/βu×τ(20) 其中,
u
u
u 和
v
v
v 是从正态分布中抽取的随机数;
β
\\beta
β 是一个介于
[
0
,
2
]
[0, 2]
[0,2] 之间的随机数;
τ
\\tau
τ 是一个通过伽马函数
Γ
\\Gamma
Γ 和正弦函数计算出的系数。位置更新公式结合了最优解
X
E
l
i
t
e
X_{Elite}
XElite(前三个步骤中得到的最佳粒子)和当前解
X
i
X_i
Xi,并通过随机权重
d
d
d 进行动态调整:
X
n
4
p
r
o
j
(
t
+
1
)
=
r
9
×
X
E
l
i
t
e
+
(
1
−
r
9
)
×
z
×
d
×
(
X
E
l
i
t
e
−
X
j
×
(
2
t
T
)
)
(21)
X_{n4}^{proj(t+1)} = r_9 \\times X_{Elite} + (1 – r_9) \\times z \\times d \\times \\big(X_{Elite} – X_j \\times \\big(2\\frac{t}{T}\\big)\\big) \\tag{21}
Xn4proj(t+1)=r9×XElite+(1−r9)×z×d×(XElite−Xj×(2Tt))(21) 其中,
r
9
r_9
r9 是一个
[
0
,
1
]
[0, 1]
[0,1] 范围内的随机数,动态权重
d
=
r
a
n
d
×
(
1
−
t
/
T
)
2
d = rand \\times (1 – t/T)^2
d=rand×(1−t/T)2。这种动态调整机制使得 LFGP 能够实现从全局探索到局部收敛的平稳过渡。
2.实验结果

3.Matlab&Python
4.参考文献
[1] Dongmei Yu, Yanzhe Ji, Yiqiang Xia, Projection-Iterative-Methods-based Optimizer: A novel metaheuristic algorithm for continuous optimization problems and feature selection, Knowledge-Based Systems, Volume 326, 2025, 113978, https://doi.org/10.1016/j.knosys.2025.113978.



