智能优化算法:野马优化算法
摘要:野马优化算法(Wild Horse Optimizer,WHO)是于2021年提出的一种新型智能优化算法,该算法主要通过模拟野马种群的生活行为来进行寻优。具有寻优能力强,收敛速度快等特点。
1.算法原理
野马的行为由以下五个主要步骤组成:
1.创建初始种群,组建马群,挑选领队;
2.放牧和交配;
3.领导和领导团队(种马);
4.领导人的交流与选拔;
5.保存最佳解决方案。
1.1 种群初始化
与其他优化算法类似,种群个体在搜索范围内随机初始化,在算法开始时随机选择组的领导者,在后续阶段,根据组成员中的ftness(最佳ftness函数)选择领导者。
1.2 放牧行为
小马驹通常大部分时间都在群中吃草。为了实施放牧行为,我们认为种马是放牧区的中心,群成员围绕着中心(放牧)搜索。我们提出了公式(1)来模拟放牧行为。等式(1)使小组成员以不同半径移动并搜索领队。
X
i
,
G
j
=
2
Z
c
o
s
(
2
π
R
Z
)
∗
(
S
t
a
l
l
i
o
n
j
−
X
i
,
G
j
)
+
S
t
a
l
l
i
o
n
j
(1)
X_{i,G}^j=2Zcos(2\pi RZ)*(Stallion^j-X_{i,G}^j)+Stallion^j \tag{1}
Xi,Gj=2Zcos(2πRZ)∗(Stallionj−Xi,Gj)+Stallionj(1)
式中Stallion为领导者的位置,R 为[-2,2]内的随机数,主要控制个体与领导者间的角度;自适应机制Z 的计算方式为:
P
=
R
1
⃗
<
T
D
R
;
I
D
X
=
(
P
=
=
0
)
;
Z
=
R
2
Θ
I
D
X
+
R
3
⃗
Θ
(
∼
I
D
X
)
(2)
P=\vec{R_1}<TDR;IDX=(P==0);Z=R_2\Theta IDX+\vec{R_3}\Theta (\sim IDX) \tag{2}
P=R1<TDR;IDX=(P==0);Z=R2ΘIDX+R3Θ(∼IDX)(2)
其中
P
P
P是由0和1组成的向量,
R
1
,
R
3
R_1,R_3
R1,R3均为[0,1]范围内均匀分布的随机向量,
R
2
R_2
R2为[0,1]内一随机值。满足条件
(
P
=
=
0
)
(P==0)
(P==0)的随机向量
R
1
R_1
R1返回的
I
D
X
IDX
IDX索引。
Θ
Θ
Θ这个符号即点乘。
T
D
R
TDR
TDR为由1线性递减至0的系数:
T
D
R
=
1
−
i
t
e
r
1
m
a
x
i
t
e
r
(3)
TDR=1-iter\frac{1}{maxiter}\tag{3}
TDR=1−itermaxiter1(3)
1.3 野马的交配行为
野马的交配行为,如下表达式:
X
G
,
K
p
=
C
r
o
s
s
o
v
e
r
(
X
G
,
i
q
,
X
G
,
j
z
)
,
i
≠
j
≠
k
,
p
=
q
=
e
n
d
C
r
o
s
s
o
v
e
r
=
M
e
a
n
(4)
X_{G,K}^p=Crossover(X_{G,i}^q,X_{G,j}^z),i\neq j\neq k,p=q=end\\Crossover=Mean \tag{4}
XG,Kp=Crossover(XG,iq,XG,jz),i=j=k,p=q=endCrossover=Mean(4)
这里
X
G
,
K
p
X_{G,K}^p
XG,Kp表示种群
k
k
k 中个体
p
p
p离群后再次进入种群
k
k
k的个体位置,
X
G
,
i
q
X_{G,i}^q
XG,iq表示种群
k
k
ki中个体
p
p
p离群后再次进入种群
q
q
q的个体位置,
X
G
,
j
z
X_{G,j}^z
XG,jz表示种群
j
j
j中个体
z
z
z离群后再次进入种群
q
q
q的个体位置。所以很明显,后面括号里的两个位置即为其父母的位置。
1.4 团队领导
在自然界中,领导者主要带领种群前往合适的栖息地。原文设定若另一个种群对栖息地占主导地位,那么该种群必须离开此地。公式(5)即计算每个种群中领导者相对于栖息地的下一位置:
S
t
a
l
l
i
o
n
G
i
=
{
2
Z
c
o
s
(
2
π
R
Z
)
∗
(
W
H
−
S
t
a
l
l
i
o
n
G
i
)
+
W
H
,
i
f
R
3
>
0.5
2
Z
c
o
s
(
2
π
R
Z
)
∗
(
W
H
−
S
t
a
l
l
i
o
n
G
i
)
−
W
H
,
e
l
s
e
(5)
Stallion_{G_i}=\begin{cases} 2Zcos(2\pi RZ)*(WH-Stallion_{G_i})+WH,if\ R_3>0.5\\ 2Zcos(2\pi RZ)*(WH-Stallion_{G_i})-WH,else \end{cases}\tag{5}
StallionGi={2Zcos(2πRZ)∗(WH−StallionGi)+WH,if R3>0.52Zcos(2πRZ)∗(WH−StallionGi)−WH,else(5)
式中
W
H
WH
WH为栖息地的位置(也就是当前最优个体位置),
R
、
Z
R、Z
R、Z的定义与前文相同。
在种群初始化阶段提到过,如果其中一名组员的适应度值优于领导者,这则两者身份互换:
S
t
a
l
l
i
o
n
G
i
=
{
X
G
,
i
,
i
f
c
o
s
t
(
X
G
i
)
<
c
o
s
t
(
S
t
a
l
l
i
o
n
G
i
)
S
t
a
l
l
i
o
n
G
i
,
e
l
s
e
(6)
Stallion_{G_i}=\begin{cases} X_{G,i},if\ cost(X_{G_i})<cost(Stallion_{G_i})\\ Stallion_{G_i},else \end{cases}\tag{6}
StallionGi={XG,i,if cost(XGi)<cost(StallionGi)StallionGi,else(6)
这里cost为适应度函数。
算法流程图如下:
2.实验结果
3.参考文献
[1] Naruei I , Keynia F . Wild horse optimizer: a new meta-heuristic algorithm for solving engineering optimization problems[J]. Engineering with Computers, 2021:1-32.