智能优化算法:世界杯优化算法-附代码
智能优化算法:世界杯优化算法
摘要:世界杯算法(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<X_{best}<U\\ U=0.5*ac*(Ub+Lb)\\ L = 0.5*ac*(Ub-Lb) \end{cases} \tag{12}
⎩⎪⎨⎪⎧L<Xbest<UU=0.5∗ac∗(Ub+Lb)L=0.5∗ac∗(Ub−Lb)(12)
其中
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代码
相关文章
- 智能优化算法——哈里斯鹰算法(Matlab代码实现)
- 智能优化算法——差分进化算法(Python实现)
- 瑶光TechTalk | 迈向多维智慧,智能画像与预测算法剖析
- 智能优化算法应用:基于GWO优化的指数熵图像多阈值分割 - 附代码
- 智能优化算法:卷积优化算法-2023 附代码
- 智能优化算法:协作搜索算法-附代码
- 智能优化算法:鹈鹕优化算法-附代码
- 智能优化算法:材料生成优化算法-附代码
- 智能优化算法:瞬态搜索优化算法 -附代码
- 智能优化算法:蛾群优化算法-附代码
- 智能优化算法:动物迁徙优化算法-附代码
- 智能优化算法:JAYA优化算法 -附代码
- 智能优化算法:黏菌优化算法 - 附代码
- 智能优化算法:共生生物搜索算法 - 附代码
- 智能优化算法:蜻蜓优化算法-附代码
- 智能优化算法:樽海鞘群优化算法-附代码
- 智能优化算法:飞蛾扑火优化算法-附代码
- 智能优化算法:正余弦优化算法-附代码
- 智能优化算法:平衡优化器算法 -附代码
- 智能优化算法:象群算法-附代码
- 智能优化算法:风驱动优化算法-附代码
- 智能优化算法:哈里斯鹰算法-附代码
- 智能优化算法:帝国主义竞争算法-附代码
- 智能优化算法:人工蜂群算法-附代码
- 智能优化算法:蝙蝠算法-附代码
- Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
- 基于智能优化算法PSO/GWO/AFO+柔性车间生产调度(Matlab代码实现)