第六章 遗传算法工具箱应用

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

第六章遗传算法工具箱应用本章介绍英国设菲尔德大学开发的遗传算法工具箱的使用方法。这个遗传算法工具箱已经在世界近30个广泛的应用领域得到了很好的测试,包括:参数优化、多目标优化、控制器结构选择、非线性系统论证、形形色色模式的模型制作、神经网络设计、实时和自适应控制、

并行遗传算法、故障诊断和天线设计等。

6.1 安装

遗传算法工具箱的安装过程可以参照MATLAB的安装说明进行。建议将工具箱中的文件保存在MATLAB或工具箱主目录下的名为genetic子目录中。

工具箱包含许多可用的示例。例如,示例M文件sga .m是解决数值优化问题的单种群二进制编码的遗传算法。示例M文件mpga .m是解决动态控制问题的多种群十进制实数编码的遗传算法。这两个示例M文件在第七章进行了详细的讨论。

另外,来自遗传算法著作的一套测试函数在一个从遗传算法工具箱函数中分离出来的目录test fns中提供,这些测试函数的摘要性描述在最后给出。此外,还有,一个文档描述了这些函数的实现和使用。

6.2 种群的表示和初始化

遗传算法同时运算在由已编码的参数集组成的称为种群的大量可能答案上。典型的一个种群由30~100个个体组成,一些变化的称为微型的遗传算法采用很小的10个个体的种群,使用有限制的复制和代替策略以试图达到实时运算。

一般情况下,在遗传算法中大多数采用单层的二进制串染色体表示方法。这里,参数集中的每一个决策变量被编码为一个二进制串,它串接起来形成一个染色体。这里采用格雷码,可用来克服传统二进制表示方法的不足。Caruana和Schaffer 的经验证明显示,表示图中邻近值间过大的海明(Hamming)距离使用标准的二进制表示情况下,搜索过程易导致欺骗性结果或不能有效定位于全局最小值。Schmitendorgf 等更进一

步的方法是在二进制编码的染色体变换到实际的表示值时使用对数计量。尽管参数值的精度可能低于希望的范围,但在问题中,可行参数的传播是未知的,一个大的搜索空间中可能掩藏着大量相同的位,与线性映象方案允许的搜索未知搜索空间的计算负担相比,可减少到更易管理的水平。

与此同时,二进制编码的遗传算法更广泛使用,同时引起更多兴趣的可选择的编码方案,有整数和实数表示。对一些问题域,有一个争论是二进制表示事实上是靠不住的,它掩盖了搜索的自然性。例如在选择子集问题中,使用整数表示法和搜索表提供方便和自然表示方法映射为对问题域的表示。

Wright 声称使用实值基因的遗传算法在数值函数优化上与二进制编码相比有许多的优点。在函数计算前,不需要从染色体到表现值的转换,提高了遗传算法的效率;计算机内部高效的浮点表示可直接使用,以减少内存需求;相对于离散的二进制或其它值,没有精度损失;对使用不同的遗传算子非常自由。Michalewicz 在其著作《进化策略(Evolution Strategies)》中描述了使用实值编码的细节。

有了确定的表示,简单遗传算法的第一步是建立初始种群,使用在希望的范围内均匀分布数字的随机数产生器生成所需数量的个体。例如,使用有N ind个个体的二进制种群,染色体长度为L ind位,从集{0,1}中产生N ind ×L ind个均匀分布随机数。一个变化是Bramlette的扩展随机的初始步骤,无论如何,大量的随机初始化(initializations)为每个个体尝试,它们中性能最好的被选择为初始种群,另外一些遗传算法用户使用初始种群的一些已知为接近全局最小化的个体播种。当然,这种接近法仅仅适用于自然问题,是易于事前了解的或遗传算法用于与基本知识系统相联合的。

这个遗传算法工具箱支持二进制、整数和浮点的染色体表示。二进制和整数种群初始化可使用工具箱函数crtbp创建二进制种群。附加函数crtbase提供向量描述的整数表示法。实值种群的初始化可使用函数crtrp 完成,程序bs2rv提供二进制串和实值之间的转换,它支持使用格雷码和对数编码。

6.3 目标函数和适应度函数

目标函数将提供一测量手段,测量个体在问题域的完成情况,在一个最小化问题中,最适合的个体对应最小的目标函数值。未经加工的适应度值通常只用在遗传算法的中期来判断一个个体的相对性能。另一函

数——适应度函数通常用于转换目标函数值为相对适应度值。因此,有F(x) = g f (x)))

这里f是目标函数,g是将目标函数值转换为非负值的变换因子,F是所得的相对适应度,当目标函数是最小化即函数值越小对应适应度越好的个体时,这种变换是必须的。许多情况下,适应度函数值对应大量子代——预计在下一代中能存在的个体。通常使用这个转换进行适应度概率分配。个体的适应度——每一个个体的F(x i)通过个体的未加工的适应度f(x i)相对整个种群的适应度被计算出来,即

(6.1)式中,N IND是种群大小,x i是个体i的表现值,与此同时适应度分配确保每一个体均有按其相对适应度再生的机会,它不能处理负的目标函数值。

使用水平移位的线性变换是优先使用的适应度分配方法。

(6.2)

如果优化方法是最大化,这里是一个正的换算系数,如果是最小化,则是一个负的。是一个偏移值,它确保最后的适应度值是非负的。

无论如何,上面给出的线性尺度变换和移位方法易迅速收敛。这个选择算法选择个体进行再生是基于它们的相对适应度。使用线性尺度变换,预期的后代将近似与它们性能相称(成比率),如果说没有限制个体在给出代中的性能,则在上代中高适应度的个体将决定再生过程引起快速收敛,可能产生局部最优解。同样,如果种群有很少变异,这种变换仅仅向最合适的个体提供小偏移。

Baker认为通过限制再生范围,以使个体不产生极端的后代,防止过早收敛。这里个体是根据它们在种群中的排序计算适应度。一个变量MAX常常用来决定偏移或选择强度,最适合的个体和其它个体的适应度由下面的规则决定:

MIN = 2.0 -MAX

INC = 2.0 *(MAX -1.0) / N in d

LOW = INC / 2.0

这里MIN是下界,INC是邻近个体适应度的差别,LOW是最小适应度个体预期的试验值(一定选择代数),MAX是在区间[1.1,2.0]中典型精选值。因此如果种群大小N ind为40,MAX=1.1,我们将获得MIN=0.9,INC = 0.05,LOW = 0.025。种群中个体的适应度能被直接计算出:

(6.3)

式中,是个体在有序种群中的位置。

尽管工具箱提供大量的M-文件例子用于完成通用的测试功能,但目

相关文档
最新文档