终于成为了正式的研究生,继续更新博客~
最近看论文的时候遇到了差分进化算法 differential evolution algorithm,是一种遗传算法,但是其采用的是实数编码而不是二进制编码,相比起来更方便理解
这里记录下算法核心步骤以及个人的一些心得
differential evolution algorithm
首先要说明的是DE算法通常被用来求非线性、不可微问题的最优解,具有速度快,鲁棒性好的特点。简单来说,就是DE算法可以用来解决多变量的函数优化问题。
DE算法主要分为四大步骤:生成初始种群,变异,交叉和选择:
生成初始种群
在这一步,首先要给定的是个体的维数 D D D,个体数 N P NP NP,以及 X L X_{L} XL、 X H X_{H} XH,其中要说明的是, X H X_{H} XH、 X L X_{L} XL分别是个体,也就是 D D D维向量的上下限。如一个向量 { x , y } \{x,y\} {
x,y}, x ∈ [ 0 , 1 ] x\in[0,1] x∈[0,1], y ∈ [ 3 , 4 ] y\in[3,4] y∈[3,4],那么此时的 X L = { 0 , 3 } X_{L} = \{0,3\} XL={
0,3}, X H = { 1 , 4 } X_{H} = \{1,4\} XH={
1,4}。
要随机生成 N P NP NP个个体,组成初始种群:
X i , 0 = X L + r a n d o m [ 0 , 1 ] ∗ ( X H − X L ) X_{i,0} = X_L + random[0,1]*(X_H- X_L) Xi,0<

差分进化算法(DE)是一种适用于非线性、不可微问题优化的遗传算法,以其速度快、鲁棒性好著称。算法主要包括生成初始种群、变异、交叉和选择四个步骤。在变异阶段,通过F缩放因子和随机选取的三个个体生成新变异个体;交叉阶段使用CR交叉概率决定目标个体和变异个体的组合;选择阶段依据评估函数选择优胜个体进入下一代种群。DE算法广泛应用于多变量函数优化问题。
最低0.47元/天 解锁文章
176

被折叠的 条评论
为什么被折叠?



