一种改进的基于实数编码的遗传算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种改进的基于实数编码的遗传算法
Ξ
叶正华
1,2
, 谢 勇2, 郑金华
2
(1.吉首大学计算机系,湖南吉首416000;2湘潭大学信息工程学院,湖南湘潭411105)
[摘要] 对传统遗传算法在编码方案及遗传操作中存在的局限性以及非成熟收敛现象,提出一种改进的基于实数编码
的遗传算法.该方法以实数编码代替二进制编码,有效地解决了传统遗传算法中海明悬崖、计算精度等问题.根据适应度值对父染色体进行变异操作,减轻传统遗传算法中变异操作所存在的盲目性,并对遗传算法可能出现的非成熟收敛现象进行预测,从而能极大的避免非成熟收敛现象的产生.关 键 词:数编码;遗传算法;非成熟收敛
中图分类号:TP301 文献标识码:A 文章编号:10005900(2002)03003204
An Madified G enetic Algorithm B ase on R eal Coding
YE Zheng
hua
1,2
, XIE Yong 2
, ZHENG Jin
hua
2
(1.C om puter Department ,Jishou University ,Jishou 416000China ;
2.C ollege of In formation Engineering of X iangtan University ,X iangtan 411105China )
【Abstract 】 T owards the premature convergence phenomenon and the limited of traditional G enetic Alg orithm in course
of coding and genetic operation.The paper presents a kind of m odified G enetic Alg orithm.The G enetic Alg orithm adopts real coding ,s o it can res olve the problems that exist in the binary system ,such as Hamming Cliff ,C om puting precision.According to the fitness of the father ,it adopt different mutation operations.And it can forecast the premature conver 2gence phenomenon ,s o it can reduce the happening of the phenomenon.K ey w ords : Real coding ;G enetic Alg orithm ;premature convergence
遗传算法(G enetic Alg orithm ———G A ),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型
[1]
,它是由美国Michigan 大学的J.H olland 教授于1975年首先提出的.遗传算法作为一种新的全局
优化搜索算法,以其简单通用、鲁棒性强、适于并行处理以及应用范围广等显著特点,奠定了它作为21世纪关键智能计算之一的地位.尽管遗传算法本身在理论和应用方法上仍有许多有待进一步研究的问题,但它在组合优化、自适应控制、规划设计、机器学习和人工生命的领域的应用中已展现了其特色和魅力
[6]
.
但是,对于标准遗传算法(SG A ),其还是存在一些缺陷,如:非成熟收敛、收敛速度过慢、编码表示等.针对SG A 的这些缺点,笔者提出了一种新的遗传算法,能有效的克服或减轻以上的缺点.
1 改进的遗传算法
2.1 算法框架
算法框架如下:{
随机初始化种群P (0),t =0;计算P (0)中个体的适应度;while (t while (新一代数目<种群规模){ 第24卷第3期2002年9月 湘 潭 大 学 自 然 科 学 学 报Natural Science Journal of X iangtan University V ol.24N o.3 Sept.2002 Ξ收稿日期:20020312 基金项目:湖南省自然科学基金资助项目(01JJ Y 2060);省教育厅资助项目(00C088) 作者简介:叶正华(1963),男,湖南益阳人,副教授. 随机选择P (t )中的二个不同个体. r =RANDOM[0,1]; if (r <重组概率)执行重组操作,将生成的后代插入新一代P (t +1)中; else 分别对两个父体进行自适应变异,将生成的两个后代插入新一代P (t +1)中;} 在P (t )与P (t +1)中选择最优的种群规模的个体组成新一代P (t +1);预测P (t +1)中是否发生非成熟收敛,分别采取不同策略.}}1.2 编码 本算法使用的实数编码,采用浮点数组来表示个体.实数编码能克服二进制编码的诸如:海明悬崖、精度要事先确定、对于大规模问题位串长度太长等缺点,并且较易融入领域知识.实数编码向量中的每一分量都可能具有不同的定义域,而且定义域的限制与特定问题相关.于是,遗传算子的设计及操作皆与各分量的定义域有关.为解决这个问题,我将定义域映射到[0,1].这样除了计算个体适应度外,其他操作与各分量定义域无关. 假设搜索空间为:{(x 1,x 2,…,x n )|x i ∈[l i ,u i ],i =1,2,…,n }.通过下述变换可将每个定义域都映射到[0,1]区间:f i :[l i ,u i ][0,1],其中f i (x )=(x -l i )Π (u i -l i )2.3 选择策略 针对标准遗传算法中使用赌轮选择容易造成超级个体[5] 的影响,产生非成熟收敛,本算法选择策略 选择了基于局部竞争的选择策略———(μ+λ)选择.这种选择策略是从种群中均匀随机地选择个体作为父体,对这些父体进行重组直至后代个数等于群体规模.然后,取父种群和后代种群中最优的种群规模个体为最终后代种群.在此算法中我们将使用非重叠种群的算法结构及择优策略.同时,避免选择的两个父体为同一个体.2.4 遗传操作 2.4.1 重组 算法在算法中采用了重组操作,代替了交叉操作.二者不同之处在于:两个父体重组织 产生一个后代,交叉产生两个.实现了三种不同的重组算子.前两种与一般算法中使用的重组算子类似,后一种则是在位串表示下的单点交叉操作在实数表示情形下的实现.三种算子均匀随机使用. 设两个父体为:x (x 1,x 2,…,x n ),y (y 1,y 2,…,y n ),后代为z (z 1,z 2,…,z n ). 1.部分重组 z i =a i ・x i +(1-a i )・y i ,a i 中的一个随机数,i =1,2,…,n . 2.整体重组 z i =a ・x i +(1-a )・y i ,a 为[0,1]中的一个随机数,i =1,2,…,n . 3.交叉重组 交叉重组类似于二进制编码下的杂交操作.它由两步组成,首先,选择重组点,假设为k (0 n ),则z i = x i ,i i =1,2,…,k -1,k .l +1,…,n .考虑精度要求,再在0与15之间选择一个交叉 点j ,z k = x k ・10j 」+{y k ・10j }/10j .此处 ・」为下整函数,即表示不大于x 的最大整数;{・}为分数函 数,即表示小数部分.实际上,在十进制下,z k 取x k 的前j 个数字和y k 去掉前j 个数字后的和[7] .2.4.2 变异 对于实数编码,变异算子成为主要的搜索算子[8] .不同的变异算自由不同的搜索趋 向 [2] ,如某些算子搜索的范围较大,即适合进行全局搜索,而另一些算子的搜索范围较小,适合进行局部 搜索.基于这种考虑,算法中同时使用了三种算子,并根据父体适应度分别采用不同的算子.其自适应机制为:{ 3 3第3期 叶正华等 一种改进的基于实数编码的遗传算法