当前位置:文档之家› 差分进化算法

差分进化算法


设这一轮的选择-复制结果为:
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)
这一轮仍然不会发生变异。于是,得第四代种群S4:
s1=11111(31), s2=11100(28), s3=11000(24), s4=10000(16)
显然,在这一代种群中已经出现了适应度最高的染色体s1=11111。于是,遗传操作 终止,将染色体“11111”作为最终结果输出。 然后,将染色体“11111”解码为表现型,即得所求的最优解:31。将31代入函数 y=x2中,即得原问题的解,即函数y=x2的最大值为961。
开 始
根据实际问题进行编码
设置参数
问题
1、遗传操作象
遗传操作, 生成新种群
种群中所有个体 种群中部分个体
生成初始种群ຫໍສະໝຸດ 计算个体适应值2、遗传操作顺序
重叠 非重叠
是否满足进 化终止条件

3、新种群重组方式

算法结束, 输出最优个体
一般演化算法的过程
2.2标准DE流程图
开始 确定控制参数 t=0 随机产生初始种群POP(0) 对初始种群进行评价
这一轮仍然不会发生变异。于是,得第三代种群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
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)
解 (1) 定义适应度函数,编码染色体。由上面的分析,函数f(x)=x2就可作为空间U上 的适应度函数。显然y=x2是一个单调增函数,其取最大值的点x=31是个整数。另一
方面, 5位二进制数也刚好能表示区间[0, 31]中的全部整数。所以, 我们就仅取
[0,31]中的整数来作为参加进化的个体 ,并且用5位二进制数作为个体x的基因型 编码, 即染色体。 (2) 设定种群规模 , 产生初始种群 。我们将种群规模设定为 4, 取染色体
2.1 Differential Evolution Algorithms
它是由Storn等人于1995年提出的,和其 它演化算法一样,DE是一种模拟生物进 化的随机模型,通过反复迭代,使得那些 适应环境的个体被保存了下来。但相比于 进化算法,DE保留了基于种群的全局搜 索策略,采用实数编码、基于差分的简单 变异操作和一对一的竞争生存策略,降低 了遗传操作的复杂性。同时,DE特有的 记忆能力使其可以动态跟踪当前的搜索情 况,以调整其搜索策略,具有较强的全局 收敛能力和鲁棒性,且不需要借助问题的 特征信息,适于求解一些利用常规的数学 规划方法所无法求解的复杂环境中的优化 问题。
选择(Selection)
DE是一种随机的并行直 接搜索算法,它可对非线 性不可微连续空间函数 进行最小化,以其易用性 、稳健性和强大的全局 寻优能力在多个领域取 得成功;
应用
在约束优化计算、聚类优化计算、非线性 优化控制、神经网络优化、滤波器设计、 阵列天线方向图综合及其它方面得到广泛 应用。
演化算法算法流程
单击增加标题内容
适应度 种群 遗传操作 编码
演化 算法 共有 的对 象元 素
选择优秀个 体,复制成 为新的群体 初始化种群; 评价种群适应 度
决定的参加 交叉的染色 体数,配对 进行交叉操 作,并用产 生的新染色 体代替原染 色体
进行变异操 作
3
4
得到新的子 种群
2 1
遗传算法
5
1.3 遗传算法应用举例
差分进化算法
1.2基本遗传 2.1 DE的来源 算法 2.2DE的标准算 1.1GA的基本 1.3 举例和应用 法 概念
单击增加标题内容
GA
遗传算法(Genetic Algorithm)它 是由美国的J.Holland教授1975年首 先提出的模拟达尔文生物进化论的 自然选择和遗传学机理的生物进化 过程的计算模型,是一种通过模拟 自然进化过程搜索最优解的方法。 这个过程将导致种群像自然进化一 样的后生代种群比前代更加适应于 环境,末代种群中的最优个体经过 解码(decoding),可以作为问题 近似最优解。
表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个随机数如下:
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 大
表 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个染色体恰好都被选中的情况是存在的),我们得到 群体:
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
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)
输出最优解
基本算法实例
求解非线性函数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个染色体, 则
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中。
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 ,
例: 利用遗传算法求解区间[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的适当染色体编码, 该问题就可以用遗传算法来解决。
xp2 j t x p3 j t


, 为缩放 为差异化向量
因子
(3) 交叉操作
交叉操作是为了增加群体的多样性, 具体 操作如下:
相关主题