智能优化算法:世界杯优化算法
文章目录
智能优化算法:世界杯优化算法1.算法原理1.1 建立国家和团队。1.2团队之间的竞争1.3 更新:为下一次比赛准备团队
2.算法结果3.参考文献4.Matlab代码
摘要:世界杯算法(World Cup Optimization(WCO))是于2016年提出的,一种基于国际足联世界杯比赛的数学函数优化方法。该方法具有收敛速度快,寻优能力强等特点。
1.算法原理
1.1 建立国家和团队。
在
M
M
M个大洲中解决
N
N
N维优化问题时,每个大洲设为一个
1
×
N
v
a
r
1×Nvar
1×Nvar的数组表示当前参赛大洲的参赛队。这个数组的定义如下:
c
o
n
t
i
n
e
n
t
=
[
c
o
u
n
t
r
y
1
,
c
o
u
n
t
r
y
2
,
.
.
.
,
c
o
u
n
t
r
y
N
v
a
r
]
(1)
continent=[country_1,country_2,...,country_{Nvar}]\tag{1}
continent=[country1,country2,...,countryNvar](1)
c
o
u
n
t
r
y
i
=
[
x
1
,
x
2
,
.
.
.
,
x
N
v
a
r
]
(2)
country_i=[x_1,x_2,...,x_{Nvar}]\tag{2}
countryi=[x1,x2,...,xNvar](2)
x
i
x_i
xi为国家的第
i
i
i只队伍,所有的变量
(
x
1
,
x
2
,
.
.
.
,
x
N
v
a
r
)
(x_1,x_2,...,x_{Nvar})
(x1,x2,...,xNvar)是浮点数。每个大陆的排名可以通过对变量
(
x
1
,
x
2
,
.
.
.
,
x
N
v
a
r
)
(x_1,x_2,...,x_{Nvar})
(x1,x2,...,xNvar)等级函数的适应度值来实现见式(3).
R
a
n
k
=
f
r
(
c
o
n
t
i
n
e
n
t
)
=
f
r
(
x
1
,
x
2
,
.
.
.
,
x
N
v
a
r
)
,
O
=
N
∗
M
(3)
Rank=f_r(continent)=f_r(x_1,x_2,...,x_{Nvar}),O=N*M\tag{3}
Rank=fr(continent)=fr(x1,x2,...,xNvar),O=N∗M(3) 其中
N
N
N表示维数,
M
M
M表示大洲的个数。
该算法首先生成一些大小为
N
p
o
p
×
N
v
a
r
Npop×Nvar
Npop×Nvar的候选大陆矩阵,其中
N
p
o
p
Npop
Npop定义了团队的数量,Nvar是问题中的变量数量。一些随机组成的团队被认为是针对这些最初的大陆。在最初的国际足联中,有五大洲,每一大洲包括四支球队。这些值被用来作为团队在不同迭代中对每个大陆的投入的初始限制。
1.2团队之间的竞争
在初始化团队之后,下一步是评估每个大洲的分数。这个分数不是很清楚,因为可能有一个大陆上的球队其中一个得分最高(最低适应度),而其他的球队相对于其他大陆的其他球队得分较低。为了解决这一问题,在该算法中应用了一种特定的技术。见步骤(a)至(d)。
步骤(a):获得各大洲
步骤(b): 计算各大洲的平均值和标准差如下:
X
m
e
a
n
=
∑
i
=
1
n
X
i
/
n
(4)
Xmean=\sum_{i=1}^{n}X_i/n \tag{4}
Xmean=i=1∑nXi/n(4)
σ
=
∑
i
=
1
n
(
X
i
−
X
m
e
a
n
)
/
(
n
−
1
)
(5)
\sigma = \sqrt{\sum_{i=1}^n(X_i-Xmean)/(n-1)}\tag{5}
σ=i=1∑n(Xi−Xmean)/(n−1)
(5)
步骤(c): 计算各大洲的分数:
R
a
n
k
=
β
σ
+
X
m
e
a
n
2
(6)
Rank = \frac{\beta \sigma+Xmean}{2}\tag{6}
Rank=2βσ+Xmean(6) 步骤(d): 根据排名,在一个向量中对所有大陆进行排序(假设默认有5个大洲和n支球队):
{
X
1
=
[
X
11
,
.
.
.
,
X
1
n
]
T
X
2
=
[
X
21
,
.
.
.
,
X
2
n
]
T
X
3
=
[
X
31
,
.
.
.
,
X
3
n
]
T
X
4
=
[
X
41
,
.
.
.
,
X
4
n
]
T
X
5
=
[
X
51
,
.
.
.
,
X
5
n
]
T
(7)
\begin{cases} X_1=[X_{11},...,X_{1n}]^T\\ X_2=[X_{21},...,X_{2n}]^T\\ X_3=[X_{31},...,X_{3n}]^T\\ X_4=[X_{41},...,X_{4n}]^T\\ X_5=[X_{51},...,X_{5n}]^T \end{cases}\tag{7}
⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧X1=[X11,...,X1n]TX2=[X21,...,X2n]TX3=[X31,...,X3n]TX4=[X41,...,X4n]TX5=[X51,...,X5n]T(7)
X
T
o
t
a
l
=
[
X
11
,
.
.
.
,
X
1
n
,
X
21
,
.
.
.
,
X
2
n
,
.
.
.
,
X
51
,
.
.
.
,
X
5
n
]
T
(8)
X_{Total}=[X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T\tag{8}
XTotal=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(8)
X
R
a
n
k
=
[
X
11
,
.
.
.
,
X
1
n
,
X
21
,
.
.
.
,
X
2
n
,
.
.
.
,
X
51
,
.
.
.
,
X
5
n
]
T
(9)
X_{Rank}=[X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T\tag{9}
XRank=[X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T(9)
X
C
h
a
m
p
i
o
n
=
m
i
n
(
X
T
o
t
a
l
)
=
m
i
n
(
[
X
11
,
.
.
.
,
X
1
n
,
X
21
,
.
.
.
,
X
2
n
,
.
.
.
,
X
51
,
.
.
.
,
X
5
n
]
T
)
(10)
X_{Champion}=min(X_{Total})=min([X_{11},...,X_{1n},X_{21},...,X_{2n},...,X_{51},...,X_{5n}]^T)\tag{10}
XChampion=min(XTotal)=min([X11,...,X1n,X21,...,X2n,...,X51,...,X5n]T)(10)
1.3 更新:为下一次比赛准备团队
在确定本届杯赛的冠军队伍后,根据上届杯赛和球队排名来定义新的人口(大洲及其球队)。这部分不同于真实的FIFA,将有一个启发式的模式。为此,我们使用如下两部分矢量:
P
o
p
=
X
T
o
t
a
l
=
[
X
b
e
s
t
,
X
R
a
n
d
]
(11)
Pop=X_{Total}=[X_{best},X_{Rand}]\tag{11}
Pop=XTotal=[Xbest,XRand](11) 其中
P
o
p
(
X
T
o
t
a
l
)
Pop(X_{Total})
Pop(XTotal)为总规模为
N
∗
M
N*M
N∗M的新种群,为
X
R
a
n
d
X_{Rand}
XRand问题限制区间之间的随机值,
X
B
e
s
t
X_{Best}
XBest为当前最优向量,其特征如下:
{
L
<
X
b
e
s
t
<
U
U
=
0.5
∗
a
c
∗
(
U
b
+
L
b
)
L
=
0.5
∗
a
c
∗
(
U
b
−
L
b
)
(12)
\begin{cases} L ⎩⎪⎨⎪⎧L a c ac ac是考虑问题的高低边界限制在 L b Lb Lb和 U b Ub Ub之间的精度系数。 X R a n d X_{Rand} XRand和 X B e s t X_{Best} XBest的大小可以被分离和改变,因为问题陈述的值是Cross Point (CP),如下所示: { X R a n d = P o p ( 1 : C P , M ) X b e s t = P o p ( C P + 1 : N , M ) (13) \begin{cases} X_{Rand}=Pop(1:CP,M)\\ X_{best}=Pop(CP+1:N,M) \end{cases}\tag{13} {XRand=Pop(1:CP,M)Xbest=Pop(CP+1:N,M)(13) 在产生新的种群后,它将被分成n个大陆的m个团队: P o p = [ X b e s t , X R a n d ] = { X 1 n e w = [ P o p ( 1 : k ) ] X 2 n e w = [ P o p ( k + 1 : l ) ] X 1 n e w = [ P o p ( 1 + l : r ) ] X 1 n e w = [ P o p ( r + 1 : s ) ] (14) Pop=[X_{best},X_{Rand}] =\begin{cases} X_{1new}=[Pop(1:k)]\\ X_{2new}=[Pop(k+1:l)]\\ X_{1new}=[Pop(1+l:r)]\\ X_{1new}=[Pop(r+1:s)] \end{cases}\tag{14} Pop=[Xbest,XRand]=⎩⎪⎪⎪⎨⎪⎪⎪⎧X1new=[Pop(1:k)]X2new=[Pop(k+1:l)]X1new=[Pop(1+l:r)]X1new=[Pop(r+1:s)](14) 算法步骤: 步骤1:设置算法初始参数种群数量及维度。 步骤2:根据式(1)至(3)建立国家和团队,并评估适应度函数值。 步骤3:根据步骤(a)至(d)即公式(4)至(10)确定团队之间排名。 步骤4:根据式(11)至(12)更新国家和团队分数,确定下一届参加的国家和团队,即更新种群的位置。 步骤5:重新评估适应度函数值,并更新国家和团队分数。 步骤6:判断是否满足迭代条件,若是则输出排名分数及下一届参加的国家和团队,否则返回步骤2重新迭代更新计算。 2.算法结果 3.参考文献 [1] Navid Razmjooy et al., A New Meta-Heuristic Optimization Algorithm Inspired by FIFA World Cup Competitions: Theory and Its Application in PID Designing for AVR System[J]. J. Control Autom. Electr Syst. 2016. 4.Matlab代码