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

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

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

文章目录

智能优化算法:世界杯优化算法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∑n​Xi​/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代码

相关推荐