辽宁科技大学本科生毕业设计 第12页
制编码,初代种群产生后,按照适者生存和优胜劣汰的原理,逐代演化出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体。并借助于自然遗传学的遗传算子进行组合交叉和变异产生出代表新的解集的种群。这个过程将导致种群象自然进化一样,后生代种群比前代更加适应于环境,末代种群的最优个体经过解码,可以作为问题的近似最优解。
下面是简单遗传算法的求解步骤: 1)初始化种群;
2)计算种群上每个个体的适应度值;
3)按由个体适应度值所决定的某个规则将进入下一代的个体; 4)按概率Pc进行交叉操作; 5)概率Pc进行突变操作;
6)没有满足某种停止条件,则转第2)步,否则进入7); 7)输出种群中适应度值最优的染色体作为问题的满意解或最优解。
程序的停止条件有两个:完成了预定的进化代数;种群中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进。遗传算法流程如图3.1所示:
图 3.1 遗传算法结构图
辽宁科技大学本科生毕业设计 第13页
3.2 遗传算法的操作方法
3.2.1 二进制编码
在遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码。编码是应用遗传算法时要解决的首要问题,也是设计遗传算法时的一个关键步骤。编码方法除了决定了个体的染色体排列形式之外,它还决定了个体从搜索空间的基因型变换到解空间的表现型时的译码方法,编码方法也影响到交叉操作数、变异操作数等遗传操作数的运算方法。由此可见,编码方法在很大程度上决定了如何进行群体的遗传进化运算以及遗传算法进化计算的效率。好的编码方法,有可能会使得交叉运算、变异运算等遗传操作可以简单的实现和执行。遗传算法编码方式有多种形式,本文采用适用于多种问题的一类多变量二进制编码形式。二进制编码是遗传算法中最常用的一种编码方法,它使用的编码符号集是由二进制符号0和1所组成的二值符号集{0,1},它所构成的个体基因型是一个二进制编码符号串。二进制编码符号串的长度与问题所要求的求解精度有关。参数的二进制字符串表示值和实际值之间的关系为:
a?amin?binamax?amin (3.1)
2n?1其中,bin是参数a的二进制编码;[amax,amin]是参数a的取值范围,n为二进制编码的长度,总共能够产生2n种不同的编码。 3.2.2 适应度函数
在研究自然界中生物的遗传和进化现象时,生物学家使用适应度这个术语来度量某个物种对于其生存环境的适应程度。遗传算法中也使用适应度这个概念来度量群体中各个个体在优化计算中有可能达到或接近于或有助于找到最优解的优良程度。适应度较高的个体遗传到下一代的概率就较大;而适应度较低的个体遗传到下一代的概率就相对小一些。度量个体适应度的函数称为适应度函数(Fitness Function)。因此,适应度函数的确定直接关系到遗传算法的寻优效率以及效果。
1.适应度函数的作用
在选择操作时会出现以下问题:
辽宁科技大学本科生毕业设计 第14页
(1) 在遗传进化的初期,通常会产生一些超常的个体,若按照比例选择法,这些异常个体因竞争力太突出而控制了选择过程,影响算法的全局优化性能。
(2) 在遗传进化的后期,即算法接近收敛时,由于种群中个体适应度差异较小时,继续优化的潜能降低,可能获得某个局部最优解。
上述问题,通常称为遗传算法的欺骗问题。适应度函数设计不当,可能造成这种问题的出现,因此适应度函数的设计是遗传算法设计的一个重要方面。
2.适应度函数的设计
适应度函数设计主要满足以下条件: (1) 单值、连续、非负、最大化。
(2) 合理、一致性的要求适应度值反映对应解的优劣程度,这个条件的达成往往比较难以衡量。
(3) 计算量小的适应度设计应尽可能简单,这样可以减少计算时间和空间上的复杂性,降低计算成本。
(4) 通用性强的适应度对某类具体问题,应尽可能通用,最好无需使用者改变适应度函数中的参数。
衡量控制系统的性能可用稳定性、可控性、可观性、稳态特性和动态特性来表征,用稳定裕量、稳态指标、动态指标以及综合指标评价。在控制系统中,由于其本身特有的惯性、滞后等特点,一般采用偏差积分指标来衡量控制系统性能的优良程度。偏差积分指标是过渡过程中被调节量偏离其新稳态值的偏差沿时间轴的积分。无论是偏差幅度大,还是过渡过程时间长,都会使得误差积分指标增大。因此,偏差积分指标是一类综合指标,希望越小越好。
常用的偏差积分指标如下: 1) 误差积分:
IE??e(t)dt (3.2)
0?2) 误差平方和积分:
ISE??e2(t)dt (3.3)
0?这种性能指标着重权衡大的偏差,在大的起始偏差时有迅速减小偏差的倾向,因此系统响应速度快,有振荡,超调量大,稳定性较差。
辽宁科技大学本科生毕业设计 第15页
3) 平方误差的矩的积分:
?4) 平方误差的二阶矩的积分:
?0te2(t)dt (3.4)
?5) 绝对误差的积分:
?0t2e2(t)dt (3.5)
IAE??e(t)dt (3.6)
0?该性能指标是一种容易应用的指标,其最佳性能时,表明系统具有适当的阻尼和令人满意的瞬态响应,因此系统将有较快的输出响应,超调量略大。
6) 绝对误差的矩的积分:
ITAE??te(t)dt (3.7)
0?这是绝对误差积分指标的一种改进,它对阶跃响应的起始的大的偏差考虑较少,而是着重权衡瞬间响应后期的偏差。该指标的特点是瞬态响应超调量小,振荡有足够阻尼。
7) 绝对误差的一阶矩的积分:
??0t2e(t)dt (3.8)
采用不同的积分公式意味着估计整个过渡过程优良程度的侧重点不同。控制系统的设计往往也要求同时满足多个性能指标,这些性能指标可能包括优化目标和对系统性能的约束条件等,是根据对控制系统的要求预先给定的。有时候,这些指标之间往往含有相互矛盾的因素,由于控制目标具有一定的模糊性,约束指标常常也存在着一定的柔性。在一定条件下难以满足较高的性能指标时,适当放宽要求,对整个控制系统可能是有利的。性能指标的设计本身就是控制系统设计中的一个重要环节。无论是对系统性能指标的“硬约束”或“软性能期望”,都可以统一地通过定义一个满意度函数方式描述,以综合满意度函数反映对系统总体性能的综合评价,只是具体的函数形式的区别。 3.2.3 遗传操作
遗传操作是模拟生物基因遗传的操作,在遗传算法中,通过编码组成初始群体后,遗传操作的任务就是对群体的个体,按照它们环境适应程度施加一定操作,从而实现优胜劣汰的进化过程,从优化搜索而言,遗传操作可使问题的解,一代又一代的优化,并
辽宁科技大学本科生毕业设计 第16页
逼近最优解。
简单遗传算法的遗传操作包含三个基本遗传算子:选择(Selection)、交叉(Crossover)、变异(Mutation)。
这三个遗传算子有如下特点:这三个遗传算子的操作都是在随机扰动情况进行,换句话说,遗传操作是随机操作,因此群体中个体向最优解迁移的规则是随机的。遗传操作效果和上述三个遗传算子所取操作概率、编码方法、群体大小、初始群体以及适应度函数设定密切相关。三个基本遗传算子的操作方法或操作策略随具体求解问题的不同而相异,更具体地讲,是与个体的编码方式直接相关。
1.选择
从群体中选择优胜个体,淘汰劣质个体的操作叫选择。选择算子有时又称为再生算子。选择的目的是把优胜的个体直接传到下一代或通过交叉配对再遗传到下一代。选择操作是建立在群体中个体适应度评估的基础之上,即个体适应度越高,其被选择的机会就越多,日前常用的选择算子有:适应度比例方法、最优保留法、期望值方法、排序选择方法、联赛选择方法、排挤方法。
选择过程的第一步是计算适应度。被选择的每个个体具有一个选择概率,这个概率取决于种群中个体的适应度及其分布。
按比例分配的适应度分配是个体选择概率的常用分配方法。按比例分配的适应度分配,可称为蒙特卡罗法,是利用比例于各个个体适应度的概率决定其子孙的遗留可能性。若某一个个体i其适应度为fi,则其被选取的概率表示为:
Pi?fik?fi?1Mki (3.9)
从上式就可以看出:
适应度高的个体,繁殖下一代的数目比较多。
适应度低的个体,繁殖下一代的数目比较少,甚至被淘汰。
这样,就产生了对环境适应能力比较强的后代。对于问题求解角度来讲,就是选择出和最优解比较接近的中间解。当选择的概率确定后,产生[0,1]区间的均匀随机数来决定哪一个个体参加交配。显然选择概率大的个体能多次被选中,它的遗传因子就会在种群中扩大。上述方法以适应度为基础进行选择。
2.交叉