智能优化算法:混沌博弈优化算法
文章目录
摘要:混沌博弈优化算法(Chaos Game Optimization (CGO))是于2020年提出的一种基于混沌理论原理的优化算法。
1.算法原理
1.1 初始化
该算法的初始化,与其他智能优化算法的初始化一样,在搜索空间范围内进行随机初始化。
x
i
j
(
0
)
=
x
i
,
m
i
n
j
+
r
a
n
d
.
(
x
i
,
m
a
x
j
−
x
i
,
m
i
n
j
)
,
i
=
1
,
2
,
.
.
.
,
n
,
j
=
1
,
2
,
.
.
.
,
d
(1)
x_i^j(0)=x_{i,min}^j+rand.(x_{i,max}^j-x_{i,min}^j),i=1,2,...,n,j=1,2,...,d\tag{1}
xij(0)=xi,minj+rand.(xi,maxj−xi,minj),i=1,2,...,n,j=1,2,...,d(1)
其中
n
n
n为候选点的数量,
d
d
d为候选点的维度。
x
i
j
(
0
)
x_i^j(0)
xij(0)为合格的初始位置,
x
i
,
m
i
n
j
,
x
i
,
m
a
x
j
x_{i,min}^j,x_{i,max}^j
xi,minj,xi,maxj为上下限。
1.2 第一种子位置更新
第一种子位置更新数学描述如下:
S
e
e
d
i
1
=
X
i
+
α
i
∗
(
β
i
∗
G
B
−
γ
i
∗
M
G
i
)
(2)
Seed_i^1=X_i+\alpha_i*(\beta_i*GB-\gamma_i*MG_i)\tag{2}
Seedi1=Xi+αi∗(βi∗GB−γi∗MGi)(2)
其中
X
i
X_i
Xi为第
i
i
i个候选解。
G
B
GB
GB为当前最优解。
M
G
i
MG_i
MGi为初始合格点的平均值,这些点被认为是第一个临时三角形的三个顶点。
α
i
\alpha_i
αi为是随机生成的矩阵,用于模拟种子的运动位置限制,而
β
i
\beta_i
βi和
γ
i
\gamma _i
γi每个和表示0或1的随机整数。
1.3 第二种子位置更新
第二种子位置更新数学描述如下:
S
e
e
d
i
2
=
G
B
+
α
i
∗
(
β
i
∗
X
i
−
γ
∗
M
G
i
)
(3)
Seed_i^2=GB+\alpha_i*(\beta_i*X_i-\gamma*MG_i)\tag{3}
Seedi2=GB+αi∗(βi∗Xi−γ∗MGi)(3)
其中
X
i
X_i
Xi为第
i
i
i个候选解。
G
B
GB
GB为当前最优解。
M
G
i
MG_i
MGi为初始合格点的平均值,这些点被认为是第一个临时三角形的三个顶点。
α
i
\alpha_i
αi为是随机生成的矩阵,用于模拟种子的运动位置限制,而
β
i
\beta_i
βi和
γ
i
\gamma_i
γi每个和表示0或1的随机整数。
1.4 第三种子位置更新
第三种子位置更新数学描述如下:
S
e
e
d
i
3
=
M
G
i
+
α
i
∗
(
β
i
∗
X
i
−
γ
i
∗
G
B
)
(4)
Seed_i^3=MG_i+\alpha_i*(\beta_i*X_i-\gamma_i*GB)\tag{4}
Seedi3=MGi+αi∗(βi∗Xi−γi∗GB)(4)
其中
X
i
X_i
Xi为第
i
i
i个候选解。
G
B
GB
GB为当前最优解。
M
G
i
MG_i
MGi为初始合格点的平均值,这些点被认为是第一个临时三角形的三个顶点。
α
i
\alpha_i
αi为是随机生成的矩阵,用于模拟种子的运动位置限制,而
β
i
\beta_i
βi和
γ
i
\gamma_i
γi每个和表示0或1的随机整数。
1.5 第四种子位置更新
第四种子位置更新数学描述如下:
S
e
e
d
i
4
=
X
i
(
x
i
k
=
x
i
k
+
R
)
,
k
=
[
1
,
2
,
.
.
,
d
]
(5)
Seed_i^4=X_i(x_i^k=x_i^k+R),k=[1,2,..,d]\tag{5}
Seedi4=Xi(xik=xik+R),k=[1,2,..,d](5)
其中
k
k
k为
[
1
,
d
]
[1,d]
[1,d]内的随机整数向量。
R
R
R为
[
0
,
1
]
[0,1]
[0,1]内均匀分布随机数。为了控制和调整所提出的新的
C
G
O
CGO
CGO算法的探索和开发速度,
α
i
\alpha_i
αi可根据公式(6)确定。
α
i
=
{
R
a
n
d
2
∗
R
a
n
d
δ
∗
R
a
n
d
+
1
ξ
∗
R
a
n
d
+
(
−
ξ
)
(6)
\alpha_i=\begin{cases} Rand\\ 2*Rand\\ \delta*Rand + 1\\ \xi*Rand+(-\xi) \end{cases}\tag{6}
αi=⎩⎪⎪⎪⎨⎪⎪⎪⎧Rand2∗Randδ∗Rand+1ξ∗Rand+(−ξ)(6)
其中
R
a
n
d
Rand
Rand为[0,1]内的随机向量。
δ
\delta
δ和
ξ
\xi
ξ为[0,1]内的随机向量。
算法流程:
步骤1:利用随机选择方法定义了搜索空间中候选解X或初始合格点的初始位置。
步骤2:根据初始合格点的自相似性计算初始候选解的适应度值。
步骤3:确定全局最佳合格点及全局最优值 G B GB GB。
步骤4:对于搜索空间中的每个合格点 X i X_i Xi,由随机选择过程确定的平均值 M G i MG_i MGi。
步骤5:对于搜索空间中的每个合格点 X i X_i Xi,用三个顶点 X i , M G i , G B i X_i,MG_i,GB_i Xi,MGi,GBi确定一个临时三角形。
步骤6:对于每个临时三角形,四个种子位置更新。
步骤7:重新评估种子位置并更新适应度值。
步骤8:判断是否满足最大迭代次数,若满足,则输出最优位置和全局最优解,否则,返回步骤3重新迭代计算
2.算法结果
3.参考文献
[1]Talatahari, S., Azizi, M., Optimization of Constrained Mathematical and Engineering Design Problems Using Chaos Game Optimization, Computers & Industrial Engineering (2020).