智能优化算法:混沌博弈优化算法-附代码
智能优化算法:混沌博弈优化算法文章目录智能优化算法:混沌博弈优化算法1.算法原理1.1 初始化1.2 第一种子位置更新1.3 第二种子位置更新1.4 第三种子位置更新1.5 第四种子位置更新2.算法结果3.参考文献4.Matlab代码摘要:混沌博弈优化算法(Chaos Game Optimization (CGO))是于2020年提出的一种基于混沌理论原理的优化算法。1.算法原理1.1 初始化该算
智能优化算法:混沌博弈优化算法
文章目录
摘要:混沌博弈优化算法(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).
4.Matlab代码
更多推荐
所有评论(0)