zl程序教程

您现在的位置是:首页 >  后端

当前栏目

智能优化算法:世界杯优化算法-附代码

算法智能代码 优化 世界杯
2023-09-14 09:06:12 时间

智能优化算法:世界杯优化算法


摘要:世界杯算法(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=NM(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=1nXi/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=1n(XiXmean)/(n1) (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 NM的新种群,为 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.5ac(Ub+Lb)L=0.5ac(UbLb)(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代码