差分进化算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L ij U ij L ij
i 1, 2, , M ; j 1, 2, n
(2) 变异操作
从群体中随机选择3 个染色体 , , 且( i≠p1≠p2≠p3) , 则 x p1 x p x p 2
3
vij t 1 x p1 j t x p2 j t x p3 j t
s1=01101(13),s2=11000(24),s3=01000(8), s4=10011(19)组成初始种群S1。
(3) 计算各代种群中的各染色体的适应度 , 并进行遗传操作,直到适应度最高 的染色体(该问题中显然为“11111”=31)出现为止。 计算S1中各染色体的适应度、选择概率、积累概率等并列于表4.1中。
解 (1) 定义适应度函数,编码染色体。由上面的分析,函数f(x)=x2就可作为空间U上 的适应度函数。显然y=x2是一个单调增函数,其取最大值的点x=31是个整数。另一
方面, 5位二进制数也刚好能表示区间[0, 31]中的全部整数。所以, 我们就仅取
[0,31]中的整数来作为参加进化的个体 ,并且用5位二进制数作为个体x的基因型 编码, 即染色体。 (2) 设定种群规模 , 产生初始种群 。我们将种群规模设定为 4, 取染色体
ui t+1 f ui t 1 f xi t xi t 1 i 1, 2,, M otherwise xi t
反复执行(2) 至(4) 操作, 直至达到最大的 进化代数tmax.
Differential Evolution
这一轮仍然不会发生变异。于是,得第三代种群S3:
s1=11100(28), s2=01001(9), s3=11000(24), s4=10011(19)
表1.3.3 第三代种群S4中各染色体的情况
染色体 s1=11100 s2=01001 s3=11000 s4=10011 适应度 784 81 576 361 选择概率 0.44 0.04 0.32 0.20 积累概率 0.44 0.48 0.80 1.00 估计被选中次数 2 0 1 1
单击增加标题内容
适应度 种群 遗传操作 编码
演化 算法 共有 的对 象元 素
选择优秀个 体,复制成 为新的群体 初始化种群; 评价种群适应 度
决定的参加 交叉的染色 体数,配对 进行交叉操 作,并用产 生的新染色 体代替原染 色体
进行变异操 作
3
4
得到新的子 种群
2 1
遗传算法
5
1.3 遗传算法应用举例
是否满足终止条件?
DE算法: 基于实数编码; 整体结构类似于遗传算法; 变异操作是基于染色体的差异 向量进行的;
否 当前种群POP(t) for(int i = 0; i < pop_size; i++) { 对第i个体Xi进行差分变异 操作,产生相应的变异个体Vi; 对个体Xi和变异个体Vi实 施交叉操作,生成试验个体Ui; } 对试验个体组成的 临时种群进行评价 通过选择操作确定下 一代新种群POP(t+1) t=t+1 是
差分进化算法
1.2基本遗传 2.1 DE的来源 算法 2.2DE的标准算 1.1GA的基本 1.3 举例和应用 法 概念
单击增加标题内容
GA
遗传算法(Genetic Algorithm)它 是由美国的J.Holland教授1975年首 先提出的模拟达尔文生物进化论的 自然选择和遗传学机理的生物进化 过程的计算模型,是一种通过模拟 自然进化过程搜索最优解的方法。 这个过程将导致种群像自然进化一 样的后生代种群比前代更加适应于 环境,末代种群中的最优个体经过 解码(decoding),可以作为问题 近似最优解。
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 的评 价函数:
f ( x) 3(1 x1 ) e
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 大
r1=0.450126, r2=0.110347, r3=0.572496, r4=0.98503 按赌轮选择法,染色体s1, s2, s3, s4的被选中次数依次为:1, 2, 0, 1。于是,经复制 得群体:
s1’=11000(24), s2’=01101(13), s3’=11000(24), s4’=10011(19)
表1.3.1 第一代种群S1中各染色体的情况
染色体 s1=01101 s2=11000 s3=01000 s4=10011
适应度 169 576 64 361
选择概率 0.14 0.49 0.06 0.31
积累概率 0.14 0.63 0.69 1.00
估计被选中次数 1 2 0 1
源自文库
选择-复制
设从区间[0, 1]中产生4个随机数如下:
可以看出,在第一轮选择中适应度最高的染色体s2被选中两次,因而被复制两 次;而适应度最低的染色体s3一次也没有选中而遭淘汰。
交叉 设交叉率pc=100%,即S1中的全体染色体都参加交叉运算。设s1’与s2’配 对,s2’与s4’配对。分别交换后两位基因,得新染色体:
s1’’=11001(25), s2’’=01100(12),
遗传操作
变异(Mutation) 交叉(Crossover)
算法的基本思想是从某一随机产 生的初始群体开始,利用从种群 中随机选取的两个个体的差向量 作为第三个个体的随机变化源, 将差向量加权后按照一定的规则 与第三个个体求和而产生变异个 体,该操作称为变异。然后,变 异个体与某个预先决定的目标个 体进行参数混合,生成试验个体 ,这一过程称之为交叉。如果试 验个体的适应度值优于目标个体 的适应度值,则在下一代中试验 个体取代目标个体,否则目标个 体仍保存下来,该操作称为选择
xp2 j t x p3 j t
, 为缩放 为差异化向量
因子
(3) 交叉操作
交叉操作是为了增加群体的多样性, 具体 操作如下:
vij t 1 rand1ij CR或j rand i uij t 1 x t rand 1 CR 且 j rand i ij ij
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 ,
选择(Selection)
DE是一种随机的并行直 接搜索算法,它可对非线 性不可微连续空间函数 进行最小化,以其易用性 、稳健性和强大的全局 寻优能力在多个领域取 得成功;
应用
在约束优化计算、聚类优化计算、非线性 优化控制、神经网络优化、滤波器设计、 阵列天线方向图综合及其它方面得到广泛 应用。
演化算法算法流程
2.1 Differential Evolution Algorithms
它是由Storn等人于1995年提出的,和其 它演化算法一样,DE是一种模拟生物进 化的随机模型,通过反复迭代,使得那些 适应环境的个体被保存了下来。但相比于 进化算法,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个染色体, 则
表 1.3.2 第二代种群S2中各染色体的情况
染色体 s1=11001 s2=01100 s3=11011 s4=10000
适应度 625 144 729 256
选择概率 0.36 0.08 0.41 0.15
积累概率 0.36 0.44 0.85 1.00
估计被选中次数 1 0 2 1
假设这一轮选择-复制操作中,种群S2中的4个染色体都被选中(因为选择概 率毕竟只是一种几率,所以4个染色体恰好都被选中的情况是存在的),我们得到 群体:
这一轮仍然不会发生变异。于是,得第四代种群S4:
s1=11111(31), s2=11100(28), s3=11000(24), s4=10000(16)
显然,在这一代种群中已经出现了适应度最高的染色体s1=11111。于是,遗传操作 终止,将染色体“11111”作为最终结果输出。 然后,将染色体“11111”解码为表现型,即得所求的最优解:31。将31代入函数 y=x2中,即得原问题的解,即函数y=x2的最大值为961。
例: 利用遗传算法求解区间[0,31]上的二次函数y=x2的最大值。 分析 可以看出,只要能在区间[0,31]中找到函数值最大的点a,则函数y=x2的 最大值也就可以求得。于是, 原问题转化为在区间[0, 31]中寻找能使y取最大值 的点a的问题。显然, 对于这个问题, 任一点x∈[0, 31]都是可能解, 而函数值f(x)= x2也就是衡量x能否为最佳解的一种测度。那么,用遗传算法的眼光来看 , 区间[0, 31]就是一个(解)空间,x就是其中的个体对象, 函数值f(x)恰好就可以作为x的适应度 。这样, 只要能给出个体x的适当染色体编码, 该问题就可以用遗传算法来解决。
开 始
根据实际问题进行编码
设置参数
问题
1、遗传操作象
遗传操作, 生成新种群
种群中所有个体 种群中部分个体
生成初始种群
计算个体适应值
2、遗传操作顺序
重叠 非重叠
是否满足进 化终止条件
否
3、新种群重组方式
是
算法结束, 输出最优个体
一般演化算法的过程
2.2标准DE流程图
开始 确定控制参数 t=0 随机产生初始种群POP(0) 对初始种群进行评价
设这一轮的选择-复制结果为:
s1’=11100(28), s2’=11100(28), s3’=11000(24), s4’=10011(19)
然后,做交叉运算,让s1’与s4’,s2’与s3’ 分别交换后两位基因,得
s1’’=11111(31), s2’’=11100(28), s3’’=11000(24), s4’’=10000(16)
s1’=11001(25), s2’=01100(12), s3’=11011(27), s4’=10000(16)
然后,做交叉运算,让s1’与s2’,s3’与s4’ 分别交换后三位基因,得
s1’’=11100(28), s2’’=01001(9), s3’’=11000(24), s4’’=10011(19)
s3’’=11011(27), s4’’=10000(16) 变异 设变异率pm=0.001。这样,群体S1中共有540.001=0.02位基因可以变异。 0.02位显然不足1位,所以本轮遗传操作不做变异。 现在,我们得到了第二代种群S2: s1=11001(25), s2=01100(12), s3=11011(27), s4=10000(16)
i 1, 2, , M ; j 1, 2, n
(2) 变异操作
从群体中随机选择3 个染色体 , , 且( i≠p1≠p2≠p3) , 则 x p1 x p x p 2
3
vij t 1 x p1 j t x p2 j t x p3 j t
s1=01101(13),s2=11000(24),s3=01000(8), s4=10011(19)组成初始种群S1。
(3) 计算各代种群中的各染色体的适应度 , 并进行遗传操作,直到适应度最高 的染色体(该问题中显然为“11111”=31)出现为止。 计算S1中各染色体的适应度、选择概率、积累概率等并列于表4.1中。
解 (1) 定义适应度函数,编码染色体。由上面的分析,函数f(x)=x2就可作为空间U上 的适应度函数。显然y=x2是一个单调增函数,其取最大值的点x=31是个整数。另一
方面, 5位二进制数也刚好能表示区间[0, 31]中的全部整数。所以, 我们就仅取
[0,31]中的整数来作为参加进化的个体 ,并且用5位二进制数作为个体x的基因型 编码, 即染色体。 (2) 设定种群规模 , 产生初始种群 。我们将种群规模设定为 4, 取染色体
ui t+1 f ui t 1 f xi t xi t 1 i 1, 2,, M otherwise xi t
反复执行(2) 至(4) 操作, 直至达到最大的 进化代数tmax.
Differential Evolution
这一轮仍然不会发生变异。于是,得第三代种群S3:
s1=11100(28), s2=01001(9), s3=11000(24), s4=10011(19)
表1.3.3 第三代种群S4中各染色体的情况
染色体 s1=11100 s2=01001 s3=11000 s4=10011 适应度 784 81 576 361 选择概率 0.44 0.04 0.32 0.20 积累概率 0.44 0.48 0.80 1.00 估计被选中次数 2 0 1 1
单击增加标题内容
适应度 种群 遗传操作 编码
演化 算法 共有 的对 象元 素
选择优秀个 体,复制成 为新的群体 初始化种群; 评价种群适应 度
决定的参加 交叉的染色 体数,配对 进行交叉操 作,并用产 生的新染色 体代替原染 色体
进行变异操 作
3
4
得到新的子 种群
2 1
遗传算法
5
1.3 遗传算法应用举例
是否满足终止条件?
DE算法: 基于实数编码; 整体结构类似于遗传算法; 变异操作是基于染色体的差异 向量进行的;
否 当前种群POP(t) for(int i = 0; i < pop_size; i++) { 对第i个体Xi进行差分变异 操作,产生相应的变异个体Vi; 对个体Xi和变异个体Vi实 施交叉操作,生成试验个体Ui; } 对试验个体组成的 临时种群进行评价 通过选择操作确定下 一代新种群POP(t+1) t=t+1 是
差分进化算法
1.2基本遗传 2.1 DE的来源 算法 2.2DE的标准算 1.1GA的基本 1.3 举例和应用 法 概念
单击增加标题内容
GA
遗传算法(Genetic Algorithm)它 是由美国的J.Holland教授1975年首 先提出的模拟达尔文生物进化论的 自然选择和遗传学机理的生物进化 过程的计算模型,是一种通过模拟 自然进化过程搜索最优解的方法。 这个过程将导致种群像自然进化一 样的后生代种群比前代更加适应于 环境,末代种群中的最优个体经过 解码(decoding),可以作为问题 近似最优解。
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 的评 价函数:
f ( x) 3(1 x1 ) e
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 大
r1=0.450126, r2=0.110347, r3=0.572496, r4=0.98503 按赌轮选择法,染色体s1, s2, s3, s4的被选中次数依次为:1, 2, 0, 1。于是,经复制 得群体:
s1’=11000(24), s2’=01101(13), s3’=11000(24), s4’=10011(19)
表1.3.1 第一代种群S1中各染色体的情况
染色体 s1=01101 s2=11000 s3=01000 s4=10011
适应度 169 576 64 361
选择概率 0.14 0.49 0.06 0.31
积累概率 0.14 0.63 0.69 1.00
估计被选中次数 1 2 0 1
源自文库
选择-复制
设从区间[0, 1]中产生4个随机数如下:
可以看出,在第一轮选择中适应度最高的染色体s2被选中两次,因而被复制两 次;而适应度最低的染色体s3一次也没有选中而遭淘汰。
交叉 设交叉率pc=100%,即S1中的全体染色体都参加交叉运算。设s1’与s2’配 对,s2’与s4’配对。分别交换后两位基因,得新染色体:
s1’’=11001(25), s2’’=01100(12),
遗传操作
变异(Mutation) 交叉(Crossover)
算法的基本思想是从某一随机产 生的初始群体开始,利用从种群 中随机选取的两个个体的差向量 作为第三个个体的随机变化源, 将差向量加权后按照一定的规则 与第三个个体求和而产生变异个 体,该操作称为变异。然后,变 异个体与某个预先决定的目标个 体进行参数混合,生成试验个体 ,这一过程称之为交叉。如果试 验个体的适应度值优于目标个体 的适应度值,则在下一代中试验 个体取代目标个体,否则目标个 体仍保存下来,该操作称为选择
xp2 j t x p3 j t
, 为缩放 为差异化向量
因子
(3) 交叉操作
交叉操作是为了增加群体的多样性, 具体 操作如下:
vij t 1 rand1ij CR或j rand i uij t 1 x t rand 1 CR 且 j rand i ij ij
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 ,
选择(Selection)
DE是一种随机的并行直 接搜索算法,它可对非线 性不可微连续空间函数 进行最小化,以其易用性 、稳健性和强大的全局 寻优能力在多个领域取 得成功;
应用
在约束优化计算、聚类优化计算、非线性 优化控制、神经网络优化、滤波器设计、 阵列天线方向图综合及其它方面得到广泛 应用。
演化算法算法流程
2.1 Differential Evolution Algorithms
它是由Storn等人于1995年提出的,和其 它演化算法一样,DE是一种模拟生物进 化的随机模型,通过反复迭代,使得那些 适应环境的个体被保存了下来。但相比于 进化算法,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个染色体, 则
表 1.3.2 第二代种群S2中各染色体的情况
染色体 s1=11001 s2=01100 s3=11011 s4=10000
适应度 625 144 729 256
选择概率 0.36 0.08 0.41 0.15
积累概率 0.36 0.44 0.85 1.00
估计被选中次数 1 0 2 1
假设这一轮选择-复制操作中,种群S2中的4个染色体都被选中(因为选择概 率毕竟只是一种几率,所以4个染色体恰好都被选中的情况是存在的),我们得到 群体:
这一轮仍然不会发生变异。于是,得第四代种群S4:
s1=11111(31), s2=11100(28), s3=11000(24), s4=10000(16)
显然,在这一代种群中已经出现了适应度最高的染色体s1=11111。于是,遗传操作 终止,将染色体“11111”作为最终结果输出。 然后,将染色体“11111”解码为表现型,即得所求的最优解:31。将31代入函数 y=x2中,即得原问题的解,即函数y=x2的最大值为961。
例: 利用遗传算法求解区间[0,31]上的二次函数y=x2的最大值。 分析 可以看出,只要能在区间[0,31]中找到函数值最大的点a,则函数y=x2的 最大值也就可以求得。于是, 原问题转化为在区间[0, 31]中寻找能使y取最大值 的点a的问题。显然, 对于这个问题, 任一点x∈[0, 31]都是可能解, 而函数值f(x)= x2也就是衡量x能否为最佳解的一种测度。那么,用遗传算法的眼光来看 , 区间[0, 31]就是一个(解)空间,x就是其中的个体对象, 函数值f(x)恰好就可以作为x的适应度 。这样, 只要能给出个体x的适当染色体编码, 该问题就可以用遗传算法来解决。
开 始
根据实际问题进行编码
设置参数
问题
1、遗传操作象
遗传操作, 生成新种群
种群中所有个体 种群中部分个体
生成初始种群
计算个体适应值
2、遗传操作顺序
重叠 非重叠
是否满足进 化终止条件
否
3、新种群重组方式
是
算法结束, 输出最优个体
一般演化算法的过程
2.2标准DE流程图
开始 确定控制参数 t=0 随机产生初始种群POP(0) 对初始种群进行评价
设这一轮的选择-复制结果为:
s1’=11100(28), s2’=11100(28), s3’=11000(24), s4’=10011(19)
然后,做交叉运算,让s1’与s4’,s2’与s3’ 分别交换后两位基因,得
s1’’=11111(31), s2’’=11100(28), s3’’=11000(24), s4’’=10000(16)
s1’=11001(25), s2’=01100(12), s3’=11011(27), s4’=10000(16)
然后,做交叉运算,让s1’与s2’,s3’与s4’ 分别交换后三位基因,得
s1’’=11100(28), s2’’=01001(9), s3’’=11000(24), s4’’=10011(19)
s3’’=11011(27), s4’’=10000(16) 变异 设变异率pm=0.001。这样,群体S1中共有540.001=0.02位基因可以变异。 0.02位显然不足1位,所以本轮遗传操作不做变异。 现在,我们得到了第二代种群S2: s1=11001(25), s2=01100(12), s3=11011(27), s4=10000(16)