首页 基于Matlab遗传算法工具箱的函数优化问题求解

基于Matlab遗传算法工具箱的函数优化问题求解

举报
开通vip

基于Matlab遗传算法工具箱的函数优化问题求解 MODERN COMPUTER2006.12 实践与经验 现 代 计 算 机 (总 第 二 四 九 期 ) 引 言 遗传算法(Genetic Algorithm)是建立在自然选择 和群体遗传学基础上的一种非数值计算优化方法。遗 传算法作为一种实用、高效、鲁棒性强的优化技术,广 泛地应用于函数优化、机器学习、自动控制、图像处理 以及人工智能领域。Matlab是MathWorks公司推出的 一套高性能的数值计算可视化软件,它集数值分析、 矩阵运算、信号处理和图形显示于一体,构成了一个 方便的、界...

基于Matlab遗传算法工具箱的函数优化问题求解
MODERN COMPUTER2006.12 实践与经验 现 代 计 算 机 (总 第 二 四 九 期 ) 引 言 遗传算法(Genetic Algorithm)是建立在自然选择 和群体遗传学基础上的一种非数值计算优化方法。遗 传算法作为一种实用、高效、鲁棒性强的优化技术,广 泛地应用于函数优化、机器学习、自动控制、图像处理 以及人工智能领域。Matlab是MathWorks公司推出的 一套高性能的数值计算可视化软件,它集数值分析、 矩阵运算、信号处理和图形显示于一体,构成了一个 方便的、界面友好的用户环境。遗传算法工具箱使用 Matlab矩阵函数,为实现广泛的遗传算法应用建立了 一套通用的工具,这个工具是使用M文件编写的命 令行函数,是实现遗传算法大部分重要功能的程序的 集合。用户可以根据实际需要,通过调用这些命令行 函数编写出功能强大的遗传算法程序。 1 遗传算法 遗传算法将问题的解表示成字符串,并把这样的 字符串当作人工染色体或称为个体,多个个体构成一 个种群,随机产生若干个个体构成初始种群,通过对 种群的不断进化,利用“优胜劣汰”的自然选择机制, 使种群中的个体不断朝着最优解的方向移动,最终搜 索到问题的最优解。 遗传算法的基本流程如图1所示。算法的主要运 算过程如下: ①编码:在用遗传算法求解问题时,首先遇到的 是编码问题。将问题的解以适合于遗传算法求解的形 式进行编码,称为遗传算法的表示。而交叉、变异等操 作与编码的形式有关,因此在进行编码时要考虑到交 叉和变异问题。最简单的编码方式是二进制编码,此 外,编码的方式还有整数编码、实数编码、树编码等。 图1遗传算法流程图 ②初始种群的生成:产生初始种群是在求解之 前,在解的备选空间中选择若干个体组成初始种群, 通常产生初始种群采用的是随机法。 ③适应度评价:根据生物进化“适者生存”的原 则,需要对每个个体适应环境的能力进行刻画,从而 引入适应度。适应度是遗传算法在群体进化过程中用 到的唯一的信息,它为字符串如何进行复制给出了定 量的描述。适应度函数通过计算个体的适应值,来比 较个体的适应度。适应度函数分为无约束条件的适应 度函数和有约束条件的适应度函数。 基于 Matlab遗传算法工具箱 的函数优化问题求解 周琛琛 (安徽大学计算机学院,合肥 230039) 摘 要:介绍了遗传算法的基本原理和求解流程,详细阐述了Matlab遗传算法工具箱的使用方法,并 通过使用遗传算法工具箱对一个典型的函数优化问题进行求解,验证了该工具箱在解决函数 优化问题上的有效性和实用性。 关键词:遗传算法;函数优化;Matlab !!! !!!!!! ! ! ! ! ! !!!! !!!!!! ! ! ! ! ! !" 现 代 计 算 机 (总 第 二 四 九 期 ) MODERN COMPUTER2006.12 实践与经验 ④选择:种群中的个体在进行交叉之前,要进行 选择。选择的目的是获得较优的个体作为父代,进行 下一步的交叉。选择的依据是个体的适应度,适应度 值高的个体被选中的可能性大,适应度低的个体被选 中的概率小。适应度高的个体可能被多次复制,而适 应度低的个体可能一次也未被选中。选择算子有时也 叫复制算子。常用的选择方法是适应度比例法,也叫 轮盘赌法,它的基本原则是按照个体的适应度大小比 例进行选择。 ⑤交叉:交叉也称为交配,即将两个父代个体的 编码串的部分基因进行交换,产生新的个体。交叉算子 是种群遗传算法中的重要算子,是种群产生新个体的 主要手段。对于二进制编码,具体实施交叉的方法有单 点交叉、两点交叉、多点交叉、一致交叉等。对于实数编 码,交叉的方法有离散重组、中间重组、线性重组等。 ⑥变异:变异操作首先在种群中随机选择一个个 体,对于选中的个体按照一定的概率随机改变串结构 中的某个值,即对种群中的每一个个体,以某一概率 改变某一个或某一些基因座上的值为其他的基因。同 生物界一样,遗传算法中发生变异的概率很低。变异 操作为新个体的产生提供了机会。 ⑦终止条件判断:终止条件判断是指在什么情况 下认为算法找到了最优解,从而可以终止算法。由于 通常使用遗传算法解决具体问题时,并不知道问题的 最优解是什么,也不知道其最优解的目标函数值,因 而需要通过算法终止,并获得最优解。 2 Matlab遗传算法工具箱 Matlab7.0中包含一个专门设计的遗传算法与直 接搜索工具箱 (GeneticAlgorithmandDirectSearch Toolbox)。使用该工具箱可以扩展优化工具箱在处理 优化问题方面的能力,可以处理传统优化技术难以解 决的问题,包括难以定义或不方便数学建模的问题, 还可以解决目标函数复杂的问题,比如目标函数不连 续或具有高度的非线性、随机性以及目标函数不可微 的情况。 GADS工具箱中遗传算法的主函数为: [xfval]=ga(@fitnessfcn,nvars,options) 其中,输出参数: ①x:返回的最终点; ②fval:适应度函数在x点的值。 输入参数: ①@fitnessfun:计算适应度函数的M文件的函数 句柄; ②nvars:适应度函数中变量个数; ③options:参数结构体。 输入参数结构体options具有缺省值,可以利用 缺省参数运行遗传算法,调用语句如下: [xfval]=ga(@fitnessfcn,nvars) 每一个参数的值都存放在参数结构体 options 中,例如 options.Populationsize在结构体中的缺省值 为20,如果需要设置Populationsize的值等于100,可 以通过下面的语句进行修改: options=gaoptimset('PopulationSize',100) 这样,参数 Populationsize的值为 100,其他参数 的值为缺省值或当前值。这时,再输入: ga(@fitnessfun,nvars,options) 函数ga将以种群中个体为100运行遗传算法。 为了得到遗传算法更多的输出结果,可以使用下 面的语句调用ga: [xfvalreasonoutputpopulationscores]=ga(@fitnessfcn, nvars) 除了x和fval之外增加了四个输出变量: ①reason:算法停止的原因; ②output:算法每一代的性能; ③population:最后种群; ④scores:最后得分值。 3 优化实例 具有两个独立变量的Rastrigin函数定义为: Ras(x)=20+x12+x22-10(cos2πx1+cos2πx2) Rastrigin函数具有许多局部最小值。然而,该函 数只有一个全局最小值,出现在[0,0]点处,函数在该 点的值为0,Rastrigin函数的值均大于0。局部最小点 距离原点越远,该点的函数值越大。Rastrigin函数是 最常用于遗传算法测试的函数之一,因为它有许多局 部最小点,使得使用标准的、基于梯度的查找全局最 小值的方法十分困难。 问题:求Rastrigin函数的最小值,其中-5≤x1, x2≤5。参数设置:种群大小=25,交叉率=0.85,变异 率=0.15,最大代数=50,其他参数使用缺省值。 ①编写Rastrigin函数的M文件rastrigin.m: functionz=rastrigin(x) z=20+x(1)^2+x(2)^2-10*(cos(2*pi*x(1))+cos(2*pi *x(2))); !" MODERN COMPUTER2006.12 实践与经验 现 代 计 算 机 (总 第 二 四 九 期 ) ②设置参数和调用遗传算法的程序的主体部分 如下: fitnessFunction=@rastrigin; nvars=2; options=gaoptimset; options=gaoptimset(options,'PopulationSize',25); options=gaoptimset(options,'PopInitRange',[-5;5]); options=gaoptimset(options,'CrossoverFraction',0.85); options=gaoptimset(options,'MigrationFraction',0.15); options=gaoptimset(options,'Generations',50); [X,FVAL]=ga(fitnessFunction,nvars,options); 程序运行返回结果为:X=[0.00809,0.00155], Fval=0.01344728697355535。50次迭代过程中最佳适 应度变化如图2所示,图3所示的是迭代过程中种群 的平均适应度的变化。由实验结果可以看出,使用 Matlab遗传算法工具箱求解函数优化问题,函数可以 有效地收敛到全局最优点,并且具有收敛速度快和结 果直观的特点。 图2最佳适应度变化 图3平均适应度变化 结 语 遗传算法具有通用性、智能性、鲁棒性、全局性和 并行性的特点,函数数值优化是遗传算法最常应用的 领域之一。本文在Matlab环境下使用遗传算法工具 箱对Rastrigin函数进行优化,实验结果表明对于函数 的寻优问题,遗传算法不仅不会陷入局部最优点,而 且具有较快的收敛速度和较高的收敛精度。 参考文献 [1]王小平,曹立明.遗传算法—理论、应用与软件实现.西 安:西安交通大学出版社, 2002 [2]雷英杰,张善文等. Matlab遗传算法工具箱及应用.西 安:西安电子科技大学出版社, 2005 [3]飞思科技产品研发中心. Matlab7基础与提高.北京:电 子工业出版社, 2005 [4]王末然. Matlab与科学计算.北京:电子工业出版社, 2004 (收稿日期:2006- 10- 20) Function Optimization based on Matlab Genetic Algorithm Toolbox ZHOUChen-chen (College ofComputer Science, Anhui University, Hefei 230039 China) Abstract: The principle and the solving procedure of the genetic algorithm are presented, and a Matlab genetic algorithmtoolboxis expatiated. Then, a typical simulation example about function optimization problem is given toverifythe toolbox' s efficiencyand practicability. Key words: Genetic Algorithm;Matlab;Function Optimization !"
本文档为【基于Matlab遗传算法工具箱的函数优化问题求解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_294370
暂无简介~
格式:pdf
大小:97KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2009-12-30
浏览量:62