第六章遗传算法工具箱应用.doc
文本预览下载声明
第六章遗传算法工具箱应用
第六章 遗传算法工具箱应用
本章介绍英国设菲尔德大学开发的遗传算法工具箱的使用方法。这个遗传算法工具箱已经在世界近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)》中描述了使用实值编码的细节。
有了确定的表示,简单遗传算法的第一步是建立初始种群,使用在希望的范围内均匀分布数字的随机数产生器生成所需数量的个体。例如,使用有Nind个个体的二进制种群,染色体
长度为Lind 位,从集{0,1}中产生Nind ×Lind 个均匀分布随机数。一个变化是Bramlette的扩
展随机的初始步骤,无论如何,大量的随机初始化(initializations)为每个个体尝试,它们中性
能最好的被选择为初始种群,另外一些遗传算法用户使用初始种群的一些已知为接近全局最
小化的个体播种。当然,这种接近法仅仅适用于自然问题,是易于事前了解的或遗传算法用
于与基本知识系统相联合的。
这个遗传算法工具箱支持二进制、整数和浮点的染色体表示。二进制和整数种群初始化
可使用工具箱函数crtbp创建二进制种群。附加函数crtbase提供向量描述的整数表示法。实值
种群的初始化可使用函数crtrp完成,程序bs2rv提供二进制串和实值之间的转换,它支持使
用格雷码和对数编码。
6.3 目标函数和适应度函数
目标函数将提供一测量手段,测量个体在问题域的完成情况,在一个最小化问题中,最
适合的个体对应最小的目标函数值。未经加工的适应度值通常只用在遗传算法的中期来判断
一个个体的相对性能。另一函数——适应度函数通常用于转换目标函数值为相对适应度值。
因此,有
F(x) = g f
这里f是目标函数,g是将目标函数值转换为非负值的变换因子,F是所得的相对适应度,当
目标函数是最小化即函数值越小对应适应度越好的个体时,这种变换是必须的。许多情况下,
适应度函数值对应大量子代——预计在下一代中能存在的个体。通常使用这个转换进行适应
度概率分配。个体的适应度——每一个个体的F(xi)通过个体的未加工的适应度f(xi)相对整个种
显示全部