二进制差异演化算法及其应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

施如下措施:
UL

x(ij 0)=rand(ij 0,1)(xij - xij)+xij i=1,2,…,M j=1,2,…,n(1)
UL
其中,xij ,xij 分别是第 j 个变量上界和下界,rand(ij 0,1)是[0,1]
之间的随机小数。
基金项目:广东省自然科学基金(the Natural Science Foundation of Guangdong Province of China under Grant No.04020079);国家教育部新世纪 人才支持计划(the New Century Excellent Talent Foundation from MOE of China under Grant No.NCET- 05- 0734)。
WANG Zhi- gang,GUO Guang- han,HAO Zhi- feng.Binar y differ ential evolution and its applications.Computer Engineer ing and Applications,2008,44(18):48- 50.
目前对差异演化算法的研究及应用主要集中在一些采用 实数编码的问题。而对于一些采用二进制编码的问题,由于传 统的差异演化算法在变异后产生个体所含的基因不一定是 0 或 1,导致其无法用来解决这类问题,使差异演化算法的应用 受到了一定的局限。为了解决这个问题,本文通过采用“少数服 从多数”的原则,提出一种二进制差异演化算法(Binary Differ- ential Evolution,BDE)。通过对 5 个函数和 4 个背包问题的仿 真实验,表明本文提出的二进制差异演化算法在求解二进制编 码问题上的有效性。
在日常生活的决策过程中,通常喜欢采用“少数服从多数” 的原则,即某项决策如果被多数人认同,则执行这项决策,否则 不予执行。这是因为虽然多数人意见不一定总是正确的,但大 多数人意见的正确概率会比一人或少数人意见的正确概率高 一些。
基于这个原则,提出一种新的差异演化算法的变异操作方 式,用来解决传统差异演化算法在变异操作后不等于 0 或 1 的 缺点。新的变异操作方式在执行变异操作时采用如下规则:从 群体中随机选择 3 个染色体 xp1,xp2,xp3 且(i≠p1≠p2≠p3),如 果 xp1(j t)、xp2(j t)、xp3(j t)中至少有两个等于 1,则 h(ij t+1)=1;如果 xp1(j t)、xp2(j t)、xp3(j t)中至少有两个等于 0,则 h(ij t+1)=0。这是因 为在整个种群中随机选取 3 个互不相同的染色体,如果它们在 第 j 个基因位上至少有两个染色体的基因为 1,说明在这个基 因位上取 1 的染色体多于取 0 的染色体,根据“少数服从多数” 原则,h(ij t+1)应取 1;如果三个染色体在第 j 个基因位上至少有 两个染色体的基因为 0,说明在这个基因位上取 0 的染色体多 于取 1 的染色体,h(ij t+1)应取 0。
演化算法的操作过程:
令 x(i t)是第 t 代的第 i 个染色体则 x(i t)=(xi(1 t),xi(2 t),…, xi(n t)),i=1,2,…,M;t=1,2,…,tmax。其中,n 是染色体的长度,即 变量的个数,M 为群体规模,tmax 是最大的进化代数。
(1)生成初始种群
在 n 维空间里随机产生满足约束条件的 M 个染色体,实
2008,44(18) 49
(2)变异操作
从群体中随机选择 3 个染色体 xp1,xp2,xp3 且(i≠p1≠p2≠ p3),则
h(ij t+1)=xp1(j t)+!(xp2(j t)- xp3(j t)) xp2(j t+1)- xp3(j t+1)为差异化向量,! 为缩放因子。
(3)交叉操作
( * f(4 x)=

1 000
n 2
(xi - 100)-
n cos( xi - 100 )+1
i=1
i=1
)i
(5)Rastrigin 函数:

’2
f(5 x)= (xi - 10cos(2πxi)+10)
i=1
算法采用二进制编码,编码长度为 20,实验的种群规模均
为 40,每个函数独立实验 30 次,每次运行 10 000 代。在 BDE
(2)
交叉操作是为了增加群体的多样性,具体操作如下:
# v(ij t+1)=
h(ij t+1),rand(ij 0,1)≤pc 或 j=rand(i) x(ij t),rand(ij 0,1)>pc 或 j≠rand(i)
(3)
rand(ij 0,1)是 在 [0,1]之 间 的 随 机 小 数 ,pc 为 交 叉 概 率 ,pc ∈
但上面的变异操作方式亦有其不足:当种群趋于一致时, 执行上述的变异操作很难产生出新的个体,这样会由于种群缺 少多样性而导致算法停止进化。为了克服这个不足,在上面的 变异操作后,对产生的个体以一个较小的概率 pm 进行取反操 作,即:h(ij t+1)=1- h(ij t+1)。经过取反后,即使种群趋于一致时 仍然会有新的个体产生,避免了算法因为种群缺少多样性而停 止进化。
48 2008,44(18)
Computer Engineering and Applications 计算机工程与应用
二进制差异演化算法及其应用
王志刚 1,郭广寒 1,郝志峰 1,2 WANG Zhi- gang1,GUO Guang- han1,HAO Zhi- feng1,2
1.华南理工大学 数学科学学院,广州 510640 2.华南理工大学 计算机科学与工程学院,广州 510640 1.School of Mathematical Science,South China University of Technology,Guangzhou 510640,China 2.School of Computer Science and Engineering,South China University of Technology,Guangzhou 510640,China E- mail:wzg19.scut@163.com

2 (- 2.048,2.048) 0
2 (- 100.0,100.0) 0
2 差异演化算法
差异演化算法是基于实数编码的进化演化算法,它的整体
结构类似于遗传算法,与遗传算法的主要区别在变异操作上,
差异演化算法的变异操作是基于染色体的差异向量进行的,其
余操作和遗传算法类似。下面通过求解非线性函数 (f x1,x2,…,


xn)的最小值问题,xj 满足 xj ≤xj ≤xj ,j=1,2,…,n 来介绍差异
f(1 x)= xi
i=1
(2)Rosenbrock 函数:

( 22

f(2 x)= 100(xi+1 - xi )+(1- xi)
ห้องสมุดไป่ตู้
i=1
(3)Schaffer’s F6 函数:
)2 2
sin2 f(3 x1,x2)=0.5+
x1 +x2 - 0.5
2 22
[1+0.001(x1 +x2)]
(4)Griewank 函数:
摘 要:针对传统差异演化算法(Differential Evolution)无法求解采用二进制编码问题的缺点,通过引入“少数服从多数”原则,提 出一种解决二进制编码问题的差异演化算法—二进制差异演化算法。5 个测试函数和 4 个背包问题的仿真实验表明了文中提出 算法在解决二进制编码问题上的有效性。 关键词:差异演化;二进制;粒子群算法 DOI:10.3778/j.issn.1002- 8331.2008.18.015 文章编号:1002- 8331(2008)18- 0048- 03 文献标识码:A 中图分类号:TP18
x(i t), (f vi(1 t+1),…,vi(n t+1))≥(f xi(1 t+1),…,xi(n t+1)) 反复执行(2) ̄(4)步骤,直至达到最大的进化代数 tmax。
3 二进制差异演化算法(BDE)
在第 2 章的描述中可以看出,差异演化算法主要适用于解 决实数编码的问题,对于采用二进制编码的问题,因 x(ij t)=0 或 1,经过变异操作式(2)后得到的 h(ij t+1)不等于 0 或 1,使得算 法无法对这类问题进行求解。要解决这个问题,可以对差异演 化算法的变异操作方式进行改变。
中 ,pc =0.1,pm =0.05;BPSO 中 ,vmax =4.0,w =0.729 844,c1 =c2 = 1.496 180。测试函数的名称、维数、取值范围、最优值如表 1 所示。
表 1 测试函数的维数、取值范围、最优值
函数 f1 f2 f3 f4 f5
维数
取值范围
最优值
3 (- 5.12,5.12)
1 引言
差异演化算法(DE)是一种基于群体差异的演化算法[1],和 其它进化算法相比,差异演化算法具有以下优点:(1)差异演化 算法在求解非凸、多峰、非线性函数优化问题表现极强的稳健 性。(2)在同样的精度要求下,差异演化算法收敛的速度快。(3) 差异演化算法尤其擅长求解多变量的函数优化问题。(4)操作 简单,易编程实现。它在首届 IEEE 演化计算大赛中表现超群, 随后在各领域得到了广泛的应用[2- 4]。
作者简介:王志刚(1978- ),男,硕士研究生,研究领域为组合优化与算法研究;郭广寒,硕士研究生,研究领域为组合优化与算法研究;郝志峰,博 士,教授,博导,研究领域为组合优化与算法研究。
收稿日期:2007- 09- 19 修回日期:2007- 12- 04
王志刚,郭广寒,郝志峰:二进制差异演化算法及其应用
采用上述的变异操作后,差异演化算法可以用来对二进制 编码的问题进行求解,把采用上述变异操作方式的差异演化算 法称为二进制差异演化算法(BDE)。BDE 与传统差异演化算法
除了在初始种群的生成和变异操作方式以及多加了一步取反
操作外,其它方面是一样的,在此就不赘述。BDE 初始种群的
产生方式如下:
& x(ij 0)=
Abstr act:Since Differential Evolution can not solve problems which are binary- coded in binary space,in order to overcome the drawback,a new Binary Differential Evolution (BDE) algorithm based on“the minority is subordinate to the majority”principle is proposed in this paper.The BDE algorithm is applied to eight commonly used benchmark functions and the experimental re- sults show the effectiveness for the binary differential evolution in binary space. Key wor ds:Differential Evolution;binary;particle swarm optimization
1 0
rand(ij 0,1)<0.5 否则
i=1,2,…,M,j=1,2,…,n
(5)
4 函数优化问题的仿真实验
为了验证本文提出的 BDE 的性能,将 BDE 与文献[5]提出
的二进制粒子群算法(BPSO)进行对比试验,采用优化算法领
域常用的 5 个测试函数进行分析:
(1)Sphere 函数:

’2
[0,1],rand(i)为在[1,n]之间的随机整数,这种交叉策略可确保
x(i t+1)至少有一分量由 x(i t)的相应分量贡献。 (4)选择操作
为了决定 x(i t)是否成为下一代的成员,向量 v(i t+1)和目 标向量 x(i t)对评价函数进行比较:
x(i t+1)=
&v(i t+1),(f vi(1 t+1),…,vi(n t+1))<(f xi(1 t+1),…,xi(n t+1))(4)
相关文档
最新文档