一种改进的遗传算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第17卷第3期 辽阳石油化工高等专科学校学报Vol.17No.3 2001年9月 Journal of Liaoyang Petrochemical College September2001
一种改进的遗传算法
王亮申 王文友 吴克勤 江远鹏 谢 荣
(辽阳石油化工高等专科学校机械系,辽阳111003)
摘 要 给出的适应值标定公式能够解决对个体选择压力和标定后适应值非负问题.
对多极值函数的遗传算法所提出的改进措施可以增加群体的多样性,避免算法“早熟”,过早
陷入局部最优.
关键词 遗传算法;适应值标定;早熟
中图分类号 O224
由美国密执安(Michrgan)大学的Holland教授等人在1975年创立的遗传算法(G enetic Algo2 rithms简称G A),是建立在达尔文(Darwin)的生物进化论和孟德尔(Mendel)的遗传学说基础上的算法.经过后人的不断改进使得遗传算法更加完善.由于遗传算法求解复杂优化问题的巨大潜力及其在各个领域(如布局优化问题、交通问题、图像处理与识别、结构设计、电力系统设计、可靠性计算等)的成功应用,这种算法越来越被人们所接受.
遗传算法是一种基于生物进化原理构想出来的搜索最优解的仿生算法,它模拟基因重组与进化的自然过程,把待解决问题的参数编成二进制码或十进制码(也可编成其它进制码)即基因(gene),若干基因组成一个染色体(个体),许多染色体进行类似于自然选择、配对交叉和变异运算,经过多次重复迭代(即世代遗传)直至得到最后的优化结果.习惯上,适应度值越大,表示解的质量越好.对于求解最小值问题可通过变换转为求解最大值问题.遗传算法是一种高度并行、随机、自适应搜索算法.
尽管遗传算法有许多优点,也有许多专家学者对遗传算法进行不断研究,但目前存在的问题依然很多.如(1)适应值标定方式多种多样,没有一个简洁、通用方法,不利于对遗传算法的使用;
(2)遗传算法的“早熟”现象即很快收敛到局部最 收稿日期:2001-06-27优解而不是全局最优解是迄今为止最难处理的关键问题;(3)快要接近最优解时在最优解附近左右摆动,收敛较慢.
1 改进方法
1.1 适应值标定
初始种群中可能存在特殊个体的适应值超常(如很大).为了防止其统治整个群体并误导群体的发展方向而使算法收敛于局部最优解需限制其繁殖;在计算临近结束,遗传算法逐渐收敛,由于群体中个体适应值比较接近,继续优化选择困难,造成在最优解附近左右摇摆,此时应将个体适应值适当加以放大,以提高选择能力,这就是适应值的标定.文献[1]提出的标定方法有两个计算公式,不利于使用;文献[2]的标定方式虽然限制了适应值范围但将最大最小值颠倒.此外象幂律标定、对数标定等亦有应用.本文针对适应值标定问题提出以下计算公式.
f’=
1
f max-f min+δ
(f+|f min|) f′—为标定后的适应值;f—为原适应值;δ—为在(0,1)内的一个正实数,目的是防止分母为零和增加遗传算法的随机性;|f min|—是为了保证定标后的适应值不出现负值。
图1 适应值定标
由图可见,若f max 与f min 差值越大,则α越小,即变化范围小;反之则α越大.这样群体适应值可以有效放大或缩小,变更选择压力.1.2 群体多样化
对于存在多个极值点的函数应用遗传算法来求解时,存在一个致命弱点—早熟,即收敛到局部最优解而非全局最优解.这也是遗传算法最难解决的一个问题.文献[3]认为遗传算法的早熟原因是交叉算子在搜索过程中存在着严重的成熟化效应—它在起搜索作用的同时,不可避免地使群体多样度渐趋于零,从而逐渐减少自己的搜索范围,以引起过早收敛.
为了解决这一问题人们研究出很多方法如文献[4]提出的元算法、文献[5]提出的自适应遗传算法(A G A )、文献[1]的改进的自适应遗传算法(MA G A )等.可见避免遗传算法早熟,关键是使群体呈多元化发展,也就是应使搜索点分布在各极值点所在的区域.如图2所示
.
图2 多极值函数及其收敛区间由模式定理知道,在遗传算子复制、选择、交叉、变异的作用下,具有低阶、短定义距以及平均适应值高于群体平均适应值的模式在子代中将呈几何指数增长.
而低阶、短定义距、低平均适应值的模式(积木块)在遗传算子的作用下,能生成高阶、长距、高平均适应值的模式,最终可生成全局最优解.这就是积木块假设.
文献[6]应用齐次Markov 链证明了简单遗传算法不是全局收敛,只有保证最优个体复制到
小一代,才能保证其收敛性.也就是说尽管遗传算法的基本作用对象是多个可行解且隐并行操作,仍需对其进行适当改进.
定义1相似度R 群体中两个个体逐位比较,如果个体中的字符及其位置一致,则相同数量定义为相似度.
设置阈值T =适应度平均值,取大于T 的个体进行个体相似程度判断.相似度低则表示这两个个体相似性差.当相似度值R 超过个体长度
L /2时即认为这两个个体相似.如1011001和
1101001的相似度R =5,L =7,R >L /2,所以
可以认为这两个个体具有相似性.由此得出的改进遗传算法如下:
(1)父代、子代一起按适应值大小排序;
(2)求平均适应值,以此作为阈值,选择适应
值大于平均适应值的个体;
(3)判断相似程度.以最高适应值个体为模板,剔除相似个体;
(4)重复(3),逐次以适应值高的个体为模板;
(5)判断是否达到群体规模.如是则进行下一
次交叉、变异等遗传操作;否则重复(4);如果不能得到足够的群体规模则将剔除的个体按适应值大小顺序顺次补足群体所缺数量;
(6)判断是否满足结束要求.如是则结束,否则返回(1).
为了避免过早陷入局部最优解,必须拓宽搜索空间,相似度较大的两个个体实际上就是含有相同模式,尤其是在计算开始时,通过去除相似个体,可以增加群体多样性.取平均适应值作为阈值并以高于阈值的个体做摸板进行选择,有效鼓励高适应值个体的竞争力.经过这样处理,主要是为了增加群体的多样性和高适应值个体的主导地位,避免同一模式统治群体,进而误导搜索方向.当接近最优解时,由第5步知道可以尽快收敛到
最优解.以上方法完全满足积木块假设条件.
2 举例
为了证明本方法的优越性,现举几个例子。通过比较可知利用本方法解优化问题能够尽快收敛到全局最优解.
对于以下无约束优化问题:
(1) max f (x )=21.5+x 1sin (4πx 1)+
x 2sin (20πx 2)
・03・辽阳石油化工高等专科学校学报第17卷第3期