差分进化算法汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制参数的改进。 差分策略的改进。 选择策略的改进。 种群重构 混合算法。
DE的改进方法---多种扩展模式
DE算法的多种变形形式常用符号DE /x/y/ z 以 示区分,其中:
X——限定当前被变异的向量是“随机的”或“最佳的 ”; Y——是所利用的差向量的个数; Z——指示交叉程序的操作方法。
2 x2
2 2 1 1 ( x1 1)2 x22 x1 x2 3 5 ( x2 1) 10( x1 x1 x2 )e e 5 3
2
差异演化算法的参数选取
差异演化算法主要涉及群体规模M 、缩放 因子 以及交叉概率CR三个参数的设定。 M:一般介于5×n 与10×n 之间, 但不能少于4, 否则无法进 :一般在[ 0, 2 ]之间选择, 通常取0. 5; CR:一般在[ 0, 1 ]之间选择, 比较好的选择应在0. 3 左右,
CR 大些收敛速度会加快, 但易发生早熟现象。 行变异操作;
差异演化算法的优缺点
和其它进化算法相比, 差异演化具有以下优点:
差异演化在求解非凸、多峰、非线性函数优化问题表 现极强的稳健性。 在同样的精度要求下, 差异演化算法收敛的速度快。 差异演化算法尤其擅长求解多变量的函数优化问题。 操作简单, 易编程实现。
ui t+1 f ui t 1 f xi t xi t 1 i 1, 2,, M otherwise xi t
反复执行(2) 至(4) 操作, 直至达到最大的进化代数tmax.
试验——MATLAB
f ( x) 3(1 x1 ) e
引 言
开 始
根据实际问题进行编码
设置参数
问题
1、遗传操作象
遗传操作, 生成新种群
种群中所有个体 种群中部分个体
生成初始种群
计算个体适应值
2、遗传操作顺序
重叠 非重叠
是否满足进 化终止条件
否பைடு நூலகம்
3、新种群重组方式
是
算法结束, 输出最优个体
一般演化算法的过程
标准DE流程图
开始 确定控制参数 t=0 随机产生初始种群POP(0) 对初始种群进行评价
缺点:
由于差异演化的关键步骤变异操作是基于群体的差 异向量信息来修正各个体的值, 随着进化代数的增加, 各个体之间的差异化信息在逐渐缩小, 以至于后期收 敛速度变慢, 甚至有时会陷入局部最优点。
DE的改进方法
为了提高DE的寻优能力、加快收敛速度、 克服启发式算法常见的早熟收敛现象,许多学 者对DE算法进行改进:
Differential Evolution Algorithms
公司
徽标
大纲
1.引言 2.基本原理 3.标准算法 4.实例 5.总结---优缺点、改进方法、研究点
引 言
Rainer Storn 和Kenneth Price在1996 年为求 解切比雪夫多项式而提出; DE是一种随机的并行直接搜索算法,它可对非线 性不可微连续空间函数进行最小化,以其易用性 、稳健性和强大的全局寻优能力在多个领域取得 成功; 应用:在约束优化计算、聚类优化计算、非线 性优化控制、神经网络优化、滤波器设计、阵列 天线方向图综合及其它方面得到广泛应用。
L ij U ij L ij
i 1, 2, , M ; j 1, 2, n
基本原理——差分变异
(2) 变异操作 从群体中随机选择3 个染色体 x p, , xp 1 x p2 且( i≠p1≠p2≠p3) , 则
3
vij t 1 x p1 j t x p2 j t x p3 j t
DE算法: 基于实数编码; 整体结构类似于遗传算法; 变异操作是基于染色体的差异 向量进行的;
是否满足终止条件? 否 当前种群POP(t) for(int i = 0; i < pop_size; i++) { 对第i个体Xi进行差分变异 操作,产生相应的变异个体Vi; 对个体Xi和变异个体Vi实 施交叉操作,生成试验个体Ui; } 对试验个体组成的 临时种群进行评价 通过选择操作确定下 一代新种群POP(t+1) t=t+1 是
DE的研究点
DE还有很多方面有待完善,需要加强 并进行深人研究:
输出最优解
基本原理
求解非线性函数f (x 1, x 2, ⋯, x n)的最小值问题, x i满足:
xi t xi ,1 t , xi ,2 t , , xi ,n t
i 1, 2, , M ; t 1, 2, tmax . 令xi t 是第t代的第i个染色体, 则
xp2 j t x p3 j t 为差异化向量,为缩放因子。
基本原理——差分变异
基本原理——交叉操作
(3) 交叉操作 交叉操作是为了增加群体的多样性, 具体操作如 下:
vij t 1 rand1ij CR或j rand i uij t 1 xij t rand1ij CR且j rand i
x xij x
L ij
U ij
j 1,2,n
其中,n 是染色体的长度,即变量的个数,M为群体规模, tmax 是最大的进化代数。
基本原理——生成初始种群
(1) 生成初始种群 在n 维空间里随机产生满足约束条件的M 个染色体, 实施措施如下:
xi , j 0 x randij 0,1 x x ,
rand1ij 是在[ 0, 1 ]之间的随机小数, CR 为交叉概
率, CR∈[0, 1 ], rand (i) 在[1, n ]之间的随机整数, 这 种交叉策略可确保x i ( t+ 1) 至少有一分量由x i ( t) 的相应分量贡献。
基本原理——选择操作
(4) 选择操作 为了确定 xi t 是否成为下一代的成员,比较 向量 ui t+1 和目标向量xi t 的评价函数:
DE的改进方法---多种扩展模式
DE算法的多种变形形式常用符号DE /x/y/ z 以 示区分,其中:
X——限定当前被变异的向量是“随机的”或“最佳的 ”; Y——是所利用的差向量的个数; Z——指示交叉程序的操作方法。
2 x2
2 2 1 1 ( x1 1)2 x22 x1 x2 3 5 ( x2 1) 10( x1 x1 x2 )e e 5 3
2
差异演化算法的参数选取
差异演化算法主要涉及群体规模M 、缩放 因子 以及交叉概率CR三个参数的设定。 M:一般介于5×n 与10×n 之间, 但不能少于4, 否则无法进 :一般在[ 0, 2 ]之间选择, 通常取0. 5; CR:一般在[ 0, 1 ]之间选择, 比较好的选择应在0. 3 左右,
CR 大些收敛速度会加快, 但易发生早熟现象。 行变异操作;
差异演化算法的优缺点
和其它进化算法相比, 差异演化具有以下优点:
差异演化在求解非凸、多峰、非线性函数优化问题表 现极强的稳健性。 在同样的精度要求下, 差异演化算法收敛的速度快。 差异演化算法尤其擅长求解多变量的函数优化问题。 操作简单, 易编程实现。
ui t+1 f ui t 1 f xi t xi t 1 i 1, 2,, M otherwise xi t
反复执行(2) 至(4) 操作, 直至达到最大的进化代数tmax.
试验——MATLAB
f ( x) 3(1 x1 ) e
引 言
开 始
根据实际问题进行编码
设置参数
问题
1、遗传操作象
遗传操作, 生成新种群
种群中所有个体 种群中部分个体
生成初始种群
计算个体适应值
2、遗传操作顺序
重叠 非重叠
是否满足进 化终止条件
否பைடு நூலகம்
3、新种群重组方式
是
算法结束, 输出最优个体
一般演化算法的过程
标准DE流程图
开始 确定控制参数 t=0 随机产生初始种群POP(0) 对初始种群进行评价
缺点:
由于差异演化的关键步骤变异操作是基于群体的差 异向量信息来修正各个体的值, 随着进化代数的增加, 各个体之间的差异化信息在逐渐缩小, 以至于后期收 敛速度变慢, 甚至有时会陷入局部最优点。
DE的改进方法
为了提高DE的寻优能力、加快收敛速度、 克服启发式算法常见的早熟收敛现象,许多学 者对DE算法进行改进:
Differential Evolution Algorithms
公司
徽标
大纲
1.引言 2.基本原理 3.标准算法 4.实例 5.总结---优缺点、改进方法、研究点
引 言
Rainer Storn 和Kenneth Price在1996 年为求 解切比雪夫多项式而提出; DE是一种随机的并行直接搜索算法,它可对非线 性不可微连续空间函数进行最小化,以其易用性 、稳健性和强大的全局寻优能力在多个领域取得 成功; 应用:在约束优化计算、聚类优化计算、非线 性优化控制、神经网络优化、滤波器设计、阵列 天线方向图综合及其它方面得到广泛应用。
L ij U ij L ij
i 1, 2, , M ; j 1, 2, n
基本原理——差分变异
(2) 变异操作 从群体中随机选择3 个染色体 x p, , xp 1 x p2 且( i≠p1≠p2≠p3) , 则
3
vij t 1 x p1 j t x p2 j t x p3 j t
DE算法: 基于实数编码; 整体结构类似于遗传算法; 变异操作是基于染色体的差异 向量进行的;
是否满足终止条件? 否 当前种群POP(t) for(int i = 0; i < pop_size; i++) { 对第i个体Xi进行差分变异 操作,产生相应的变异个体Vi; 对个体Xi和变异个体Vi实 施交叉操作,生成试验个体Ui; } 对试验个体组成的 临时种群进行评价 通过选择操作确定下 一代新种群POP(t+1) t=t+1 是
DE的研究点
DE还有很多方面有待完善,需要加强 并进行深人研究:
输出最优解
基本原理
求解非线性函数f (x 1, x 2, ⋯, x n)的最小值问题, x i满足:
xi t xi ,1 t , xi ,2 t , , xi ,n t
i 1, 2, , M ; t 1, 2, tmax . 令xi t 是第t代的第i个染色体, 则
xp2 j t x p3 j t 为差异化向量,为缩放因子。
基本原理——差分变异
基本原理——交叉操作
(3) 交叉操作 交叉操作是为了增加群体的多样性, 具体操作如 下:
vij t 1 rand1ij CR或j rand i uij t 1 xij t rand1ij CR且j rand i
x xij x
L ij
U ij
j 1,2,n
其中,n 是染色体的长度,即变量的个数,M为群体规模, tmax 是最大的进化代数。
基本原理——生成初始种群
(1) 生成初始种群 在n 维空间里随机产生满足约束条件的M 个染色体, 实施措施如下:
xi , j 0 x randij 0,1 x x ,
rand1ij 是在[ 0, 1 ]之间的随机小数, CR 为交叉概
率, CR∈[0, 1 ], rand (i) 在[1, n ]之间的随机整数, 这 种交叉策略可确保x i ( t+ 1) 至少有一分量由x i ( t) 的相应分量贡献。
基本原理——选择操作
(4) 选择操作 为了确定 xi t 是否成为下一代的成员,比较 向量 ui t+1 和目标向量xi t 的评价函数: