使用MATLAB遗传算法工具实例(详细).docx
最新发布的MAT1.AB7.()Re1.ease14已经包含f一个特地设计的遗传算法与干脆搜寻工具箱(GeneticA1.gorithmandDirectSearchToo1.box.GADS>.运用遗传算法与干腑搜寻:具箱,可以扩展MAT1.B及其优化工具箱在处理优化同时方面的实力,可以处理传统的优化技术难以解决的问胞,包括那线难以定义或不便于数学建模的问题,可以解决目标函数较尚难的问题,比如目标函数不连续、或具有高度非线性、随机性以及目标函数没有导数的状况.本苑8节首先介绍这个遗传算法与干脆搜寻工具箱,其余各节分别介绍该工具箱中的遗传算法工具及其运用方法。8.1遗传算法与干脆搜寻工具箱概述本节介绍MNr1.AB的GADS(遗传算法与干腌搜寻)工具箱的特点、图形用户界面及运行要求,说明如何编写待优化函数的M文件,且通过举例加以阐明,工具箱的特点G,DS工具箱是系列函数的煲合,它们扩展了优化工具箱和MAT1.AB数做计能环境的性能。遇传算法马干腌搜寻工具箱包含了要运用遗传算法和干脆搜寻修法来求解优化何题的一些例程。这些算法使我们能第求斛那些标准优化工具箱范用之外的各种优化问题。全部工具箱函数都是MAT1.AB的M文件.这些文件的实现特定优化算法的MAT1.AB语句所写成.运用语用typefunc1.in-name就可以看到这些函数的MAT1.AB代码.我们也可以通过焉写自己的M文件先实现来扩展遗传尊法和干脆搜寻工具箱的性能.也可以符该具箱,jMAT1.AB的其他工具箱或Simu1.ink结合运用,来求解优化问冽.工具箱函数可以通过图形界面或MAT1.AB吩咐行来访问,它们是用MAT1.AB语言编写的,对用户开放,因此可以查看算法、修改源代眄或生成用户函数“遗传算法与干脆搜寻工具箱可以帮助我们求解而些不易用传统方法解淡的问时,警如火杳找问题等.遗传算法与干脆搜寻工具箱有一个细心设计的图形用户界面,可以帮助我们由观、便利、快速地求斜场优化问鹿,.1功能特点遗传算法与干脆搜寻工具箱的功能特点如下:(I)图形用户界面和吩咐行函数可用来快速地描述何时、设置算法选项以及监控进程.(2)具有多个选项的遗传算法工具可用于问题创建、适应度计匏、选择、交叉和变异.(3)干脆搜寻工具实现了一种模式搜寻方法,其选项可用于定义网格尺寸、去袂方法和搜寻方法。(4)遗传算法与干脆搜寻工具箱函数可与MAT1.AB的优化工具箱或其他的MATI.AB程序结合运用.(5)支持自动的M代码生成.2图形用户界面和吩咐行曲数遗传打法工具函数可以通过吩咐行和图形用户界面来运用遗传算法.干脆搜寻工具函数也可以通过吩咐行和图形用户界面来进行访问。图形用户界面可用来快速地定义问题、设置算法选项、对优化问他进行具体定义。遗传算法与干脆搜寻工具箱还同时供应了用于优化管理、性能监控及终止准则定义的工具,同时还供应大麻标准算法选项.在优化运行的过程中,可以通过修改选项来细化最优解,更新忤能结果.用户也可以供应自己的算法选项来定制工具箱.3运用其他遢数和求解4»遗传算法与干脆搜寻工具箱与MAT1.AB及优化工具箱是膝密结合在一起的.用户可以用遗传贪法或干脆搜寻算法来找寻最佳起始点,然后利用优化J1.具箱或用MAT1.AB程序来进一步找寻最优解,通过结合不同的算法,可以充分地发挥MAT1.AB和工具箱的功能以提高求解的质量,而于某些特定问题,运用这种方法还可以得到全局(最优解.4显示、监拄和出结果遗传笄法与干脆搜寻工具箱还包括一系列绘图函数用来可视化优化结果。这叫可视化动能宜观地故示了优化的过程.并且允许在执行过程中进行修改.工具箱还包括一系列绘图的数用来可视化优化结果.这些可视化功能直观地显示了优化的过程,并且允许在执行过程中进行修改.该工具箱还供应了一些特殊绘图函数.它们不仅适用于遗传眸法,还适用于干腌搜寻算法。适用于遗传算法的函数包括函数依、适应度值和函数估计。适用于干脆搜寻算法的函数包括函数值、分值H方图、系谙、适应度假、网格尺寸和函数估计.这些函数可以将多个绘图一并显示可出观便利地选取最优曲线.另外,用户也可以添加自己的绘图函数.运用输出函数可以将结果写入文件,产生用户自己的终止准则,也可以写入用户自己的图形界面来运行工具箱求解器除此之外,还可以将问题的算法选项导出,以便日后再将它们导入到图形界面中去.5所需的产品支持遗传算法与干脆搜寻工具箱作为其他优化方法的补充,可以用来找寻最佳起始点,然后可以再通过运用传统的优化技术来进一步找学最优斛.工具箱须要如下产品支持:(I)MAT1.AB.(2)优化工具箱.6相关产品与遗传算法与干脆搜寻工具箱相关的产品有:(I)统计工具箱应用统计算法和概率模式.(2)神经网络工具箱设计和仿真神势网络,(3)模糊逻轼工具箱设计和仿真基于模糊逻轼的系统。(4)金融工具箱分析金融数据和开发金融舞法.7所需的系统及平台遗传舞法和干脆搜寻工具箱对于对于运行环境、支持平台和系统的需求,可随时通过访问网站:/了耨最新发布的信息.这里介绍的MAT1.AB7.0ReIeaSe14所需的最低配置是:Windows系列操作系统,PentiumIII500CPU、61MBRAM.空闲硬做空间600MB以上.编写待优化函数的V文件为了运用遗传算法和干脆搜寻工具箱,首先必需编写一个M文件,来确定想要优化的函数.这个M文件应当接受一个行向埴,并旦返回一个标量。行向量的长度就是目标函数中独立变量的个数.本节将通过实例说明如何彘写这种M文件.1耳M文件举例下面的例子展示了如何为一个想要优化的函数漏写M文件.假定我们想要计算下面函数的及小但:/(x1.x,)=2-2r1x,+61.Vi+Xj-6%M文件确定这个函数必需接受一个长度为2的行向量X.分别与变盘X1.和x2相对应,并且返I可一个标属X,其伯等于该函数的依.为了编写这个M文件.执行如下步骡:(I)在MAT1.AB的Fi1.e菜单中选齐NeW菜单叫(2)选择M-Fik将在编辑器中打开一个新的M文件.(3)在该M文件中输入下面两行代码:functionz=myjun(x)Z=X(DA22*x*x+6*x(1.)+x(2)2-6*x(2):(4)在MAT1.AB路径指定的节目中保存该M文件。为了查看该M文件是否返回正确的值.可键入myjun(23)ans=-5留意:在运行遗传算法工具或模式搜斗工具时,不要运用编辑器或谓试器来网试目标函数的M文件,否则会导致在吩咐窗口出现JaVa异样消息,并且使调试更加困碓,.2大化与量小化遗传尊法和干脆搜寻工具箱中的优化函数总是使目标函数或适应度函数最小化.也就是说,它们求解如下形式的问SS:minimizef(x)X假如我们想要求出函数代灯的最大值可以转而求取函数观r1=一凡。的最小值,因为的如X)最小但出现的地方与函数凡D最大位出现的地方相同.例如,假定想要求前面所描述的函数T)=-2%X,+6r1.+尺-6.V,的最大(ft,这时,我们应当端写一个M文件来计算.求函数g(x)-(x1.V;)-(-2,Xj+6x1.+*-6x?)的呆小值.3自动代码生成遗传簿法与干脆搜寻工具箱供应了自动代码生成特性,可以自动生成求解优化问题所须要的M文件。例如,图8.1所示的就是运用遗传算法工具的自动代码生成特性所产生的M文件.另外,图形用户界面所输出的优化结果可以作为时来自吩咐行圜用代码的一种说明,这些代码还用于使例程和爱护工作自动化。functionunensMfiiewastoQeneratedtodoOptimzationwtnrn?g÷omicaiqoitrw»yiDirectsercnoooox.u5eGWTiOhStortnedefau1.tGAoptionsstructure.*st<rttndefau1.toptionsoptcm三Qioptions;wxtifysoeparameter*OPtIan三optcns三optc三optcns三A1.gcctftnopb)rVBraiKh)I1.c0c<nGtftoOfftniMhn1.>QaoptionsicptiofYs1.ePopu1.itionsue'4101011;gaoptonsoptions.*MigratIonDirectxon',Dot');g<optons(opt1.orn.,Oenerations'.150);giotons(opt10m.'MuatFcn,.OautationgauftSian11>>OPtKnS三otonsctom.,PiotFctts'.(OgtpiotDestfgitscores):opt<ns三Qioptions(Opt1.orn.,Hybndrcn.Pfrwc(X.FVA1.RES.OUTPUT.PC*>t1.ATION.SCORES)三Q(9CUyfC11.5.opt1.OM)图81if1.1修法M文件代闪的自动生成8.2运用遗传算法工具初步遗传算法与干脆搜寻工具箱包含遗传算法工具和干脆搜寻工具,从本节至章末,将主要介绍其中的遗传算法工具及其运用方法.本节主要介绍遗传算法工具运用的初步学问,内容包括:遗传算法运用规则,遗传算法工具的运用方式,举例说明如何运用遗传算法来求解一个优化问题,说明遗传算法的一些基本术语,最终阐述遗传算法的工作原理与工作过程.遗传第法运用规则遗传算法是一种独于自然选择、生物进化过程来求解问题的方法.遗传算法反复修改时于个体解决方案的种群,在每一步,遗传算法随机地从当前种群中选择若干个体作为父辈,井口运用它们产生下一代的子种群.在连续若干代之后,种祥朝岩优化解的方向进化.我们可以用遗传獴法来求解各种不相宜于用标准优化籁法求解的优化问题,包括目标函数不连续、不行微、随机或高度非线性的问题。遗传舞法在每一步运用下列三类规则从当前种群来创建下一代:(I)选择规则(SdeC1.ionru1.es,选择对下一代种群有贡献的个体,称为父辈.(2)交叉规则(Crossoverru1.es),将两个父辈结合起来构成下一代的子辈种群.(3)变异规则(Mutationru1.es),施加随机变更给父辈个体来构成子球.遗传算法与标准优化算法主要在两个方面有所不同,它们的比较状况归纳于表8.1中.表8.1遗传株法。配准优化算法比较标准算法遗传算法柘次送代产生.个小点.点的中列靠近个优化解好次迭代产生个种饼.种群靠近个优化解通过确定性的计惶在该序列中选择下个点通过Ia机进化选择计。来选择下代种群遗传算法运用方式遗传算法工具有两种运用方式:(1)以吩咐行方式调用遗传算法函数ga.(2)运用遗传算法工具,从图形用户界面到遗传算法.本节对这些方式做一个简要的介绍。.1在吩咐行用函数XH对于在吩咐行运用遗传匏法,可以用下列语法调用遗传算法函数ga:IXfva1.=ga(fitnessfun.nvars.options)其中:(Sfi1.nessfun是适应度函数句柄:nvars是适应度函数的独立变W的个数:op<ions是一个包含遗传算法选项参数的结构.赦如不传递选项参数.则即运用它本身的缺省选项值.函数所给出的结果:fva1.适应度函数的最终值:X最终值到达的点,我们可以特别便利擒把遗传算法工具输出的结果干腌返回到MAT1.AB的WOrkHaCe(工作空间),或以不同的选项从M文件多次调用函数段来运行遗传算法。调用函数即时.须要供应一个选项结构。ptions.后面的有关章节对于在吩咐行运用函数ga和创建选项结构OPtionS供应了具体的描述,.2通过G1.I运用迨传算法遗传算法工具有一个图影用户界面GU1.它使我们可以运用遗传尊法而不用工作在吩咐行方式得为了打开遗传宛法工具,可越入ga1.打开的遗传算法工具图形用户界面如图8.2所示。够示姑果4示参数箱述输入适应朦由数起先遗传算法.粕入Id应度由数的变破数目'图8.2IS传算法工具为了运用遗传算法工具.首先必需输入下列信息:(I)FitnCSSfUne1.ion(适应僮函数)欲求最小(ft的目标函数,输入适应度函数的形式为fImeSSfUn,其中fime$fun.m是计算适应度函数的M文件,在前面“编写待优化闲数的M文件”一节里己经说明白如何编写这种M文件,符号产生一个对于函数fitncsSfUn的函数句柄.NUmberofvariab1.es(变量个数)适应度函数输入向址的长度.时于“编写待优化函数的M文件”一节所描述的函数My_fun,这个多数是2点击S1.arI按钮,运行遗传算法,将在StatusandResu1.ts(状态与结果)窗格中显示出相应的运行结果.在0同。冰窗格中可以变更遗传算法的选项,为了查看窗格中所列出的各类选项,可埴击与之相连的符号、”。举例:RaStrigin函数本节介绍一个例子,讲解并描述如何找寻Rastrigin函数的以小值和显示绘制的图形。Rasirigin函数是最常用来测试遗传算法的一个典型函数,RaSIrigin南数的可视化图形显示,它具有多个局部最小他和一个全局最小值,遗传算法可以帮助我们确定这种具有多个局部最小伯函数的最优解.1RaStrigin函数具彳i两个独立变年的RaStrigin函数定义为Raxix)=2()+X;+W-IO(CoS2rx,+cos2,.v,)RaStrigin画数的图形如图8.3所示.工具箱包含1个M文件,即rastrigins化n.m,是用来计算RaStrigin函数侑的全月最小点0,0图8.3RaX1.riSin由数国影如图8.3所示,R1.1.SIrigin函数有很多局部最小假一在图上显示为,谷底(va1.1.eys),然而,该函数只有一个全局最小(ft.出现在x-y平面上的点00处.正如图中竖直线指示的那样,函数的他在那里是0,在任何不同于0,0的局部最小点处,Rgrigin函数的(ft均大于0,局部最小处距原点越远,该点处RaMrigin函数的值越大。RaMngin函数之所以及常用来测试遗传律法,是因为它有很多局部最小点,使得用标准的、基于梯度的查找全局最小的方法特别困难.图8.4所示是Ras(rigin函数的轮麻筏,它显示出蚣大最小交替变更的情形.全附收小点0,0)图8.4RaHngin南牧的轮席线.2找寻Rastrigin函效的量小值本节说明如何运用遗传算法来找寻Rastrigin函数的最小值.留意:因为遗传算法运用1.机致蜘来进行它的搜寻,所以该算法每次运行时所返回的结果会略做有些不同,为了杳找最小值,进行下列步骤:(1)在吩咐行犍入gatoo1.打开遗传舞法工具.(2)在遗传W法工具的相应栏目,输入适应度函数和变屈个数.在“Fitnessfunction(适应度函数)”文本框中,输入mstriginsftn:在“Numberofvariab1.es(变量个数)”文本框中,输入2,这就是RaStrigin函数独立变埴的个数,这一步操作如图8.5所示.Fitnessfunction:|TaSmginSftnNumberofvariab1.es:|2图8S输入通向度由tj变m个数在“Runso1.ver(运行求解器)“窗格中,单击Start按钮,如图8.6所示.图8.6的击运行求解;SSun按钮在算法运行的同时,“Curmntgcncration(当前代数)“文本框中显示出当前的代数.通过点击舒停(PaUSe)”按钮,可以使算法临时到秒一下.当这样做的时候,该按钮的名字变为"Resume(复原),为了从西停处廷深算法的运行,可单击这个“Resume”按钮.当算法完成时,“S1.aiusandresu1.ts”窗格出现如图8.7所示的情形。Statusandresu1.tsGArunning.一蚊终点的适限度函数值J终点GACeEHinated.Fitnessfunctionva1.ue:0.0067749206244585025Optimzationcerunaced:aa×ixu>numberofgenecdtionsexceeded.Fina1.point:120.00274-0.00516图8.7状态与结果i½示*Statusandresu1.s”窗格显示下列信息:(1)算法终止时适应度函数的附终值:Fitnessfunctionva1.ue:0.0()677492()6244585025留意:所显示的值特别接近于Rastrigin函数的实际最小值0.”遗传算法举例”一节描述;一些方法,可以用来得到更接近实际最小值的结果,(2)算法终止的缘由:Optimizationterminated:maximumnumberofgenerationsexceeded.即退出的缘由是:出过最大代数而壮致优化终止.在本例中,算法在100代后结束.这是"Generations(代数)”选项的缺省值,此选项规定了驾法计算的破大代数.(3)最终点,在本例中是0.00274-0.(X)516,.3从吩咐行查找小值为了从吩咐行查找RaStrigm函数的最小值可进入xha1.reasonI=ga(ras(riginsfcn.2)这将返回X=0.0()27-0.0052fva1.-0.0068reason=Optimizationterminated:maximumnumberofgenerationsexceeded.其中:X是算法返回的屐终点;RaI是该最终点处适应度函数的值:reason是算法结束的经由,.4显示能制图形-P1.ots(绘图)“窗格可以显示遗传富法运行时所供应的存关侑息的各种图形.这些估恩可以柄助我们变更算法的选项,改进算法的性能,例如,为了绘制加代适应度函数的班佳:做和平均值,选中亚选柢“Bes1.Mness(最佳适应度)如图8.8所示.P1.otinteiva1.:P-PPestfitnessiFBestindividua1.FDistanceExpectationFGenea1.ogyRangeScoredwers1.ScoresSe1.ectionStoppingVCustomfunction:图8.8绘图对话框当点击Start按钮时,遗传算法工具显示每代适应度函数的最佳值和平均值的绘制图形.当算法停止时,所出现的图形如图8.9所示.Aiitffi0.0067796平均债0.014788图89各代玷吨度函数的量传值和平均位在每一代中,图的底部的点表示最佳适应度值,而其上的点表示平均适应度值.图的原部还&示出当前代的最佳战().0067796和平均值0914788.为了得到最佳适应度值削减到多少为更好的宜观图形,我们可以将图中y轴的刻度变更为时数刻度.为此,需进行如下操作;(1)从绘图窗格的EdiI(确辑)菜单中选择“AxesPepenics(坐标轴强性“,打开属性编件零.如图8.10所示.单击Y我项选择材数刻收图绘图限性编辑器点击Y表项.在“Sca1.e(刻度)”窗格,选择“1.og(对数)”.绘制的图形如图81I所示.图8/1蟀4U&应收由tk呆性值和平均值的对数图形典里状况下,在早期各代中,当个体离志向值较远时,出佳值会快速得到改进,在后来各代中,种群越接近最佳点,最佳值改进得越慢.遗传算法的一些术语本节说明遗传算法的一些基本术语,主要包括:(I)适应度函数(FitnessFunctions).(2)个体(Individua1.s),(3)种群(Popu1.ations)和代(Generations).(4)适应度假(Fi1.ncssVa1.ues)和最佳适应度值(BestFitnessVa1.ues);(5)父笔和子芈ParentsandChi1.dren).1适应度的数所前适应度函数就是想要优化的南数。对于标准优化算法而言,这个函数称为目标函数.该工具箱总是试图找寻适应度函数的最小(ft.我们可以将适应健函数编写为一个M文件,作为怆入参数传递给遗传匏法函数.2件一个个体是可以施加适应度函数的陋意一点.一个个体的适应度函数值就是它的得分或评价.例如,假如适应度函数是/(A-rx,.xj)=(2.v1.+1)?+(3.v1+4)?+(x-2)?则向量2.-3.1)就是一个个体,向量的长度就是问题中变量的个数.个体2.-3.1)的得分½2,-3,1)三51.个体有时乂称为基因虫或染色体组(genome),个体的向量项称为范因(genes).3种零与代所谓种群是指由个体组成的一个数组或矩阵.例如,假如个体的长度是KX).适应度函数中变址的个数为3,我们就可以将这个种群表示为一个100X3的矩阵,相同的个体在种群中可以出现不止一次,例如,个体(2.31)就可以在数组的行中出现多次.每一次迭代,遗传算法都对当前种群执行一系列的计算,产生一个新的种群.每一个后继的种群称为新的-代.4多样性多样性或差异(Diversity)涉及一个种群的各个个体之间的平均距禹.若平均距肉大,则种群具有高的多样性:否则,其多样性低.在图8I2中,左面的种群具有高的多样性,亦即差异大:而右面的种群多样性低,亦即差异小,+Highdiversity1.owdiversityIW.2种群多择性比较多样性是遗传算法必不行少的本质属性,这是因为它能使遗传算法搜寻一个比较大的解的空间区域.5适应度值和最佳适应度值个体的适应度伯就是该个体的适应度函数的伯由于该工具箱总是查找适应度函数的设小值,所以一个种群的最佳适应度伯就是该种群中任何个体的最小适应度伯.6父挛和子辈为了生成下一代,遗传算法在当前种群中选择某些个体,称为父辈,并只运用它们来生成下代中的个体,称为子装。典型状况下,该算法更可能选择那些具有较佳适应度侑的父遗传算法如何工作本节简要介绍遗传算法的工作原理或工作过程,内容包括:律法要点:初始种群;生成下一代:后一代的绘图:算法的停止条件.1算法要点下面的要点总结了遗传算法是如何工作的:(I)首先.算法创建一个随机种群.(2)接籽,算法生成一个新的种群序列,即新的一代.在每一步,核算法郎运用当前一代中的个体来生成下一代。为了生成新一代,算法执行下列步躲:(八)通过计算其适应度假.给当前种群的每一个成员打分。(b)确定原来的适应度值的比例尺度将其转换为更使于运用的范围内的假“(C)依推它们的适应度选择父空.(d)由父辈产生子辈,子辈的产生可以通过随机变更一个单个父辈,亦即变异nwation)来进行,也可以通过祖合一对父辈的向量项,亦即交叉c11ssover)来进行。(C)用子辈替换当前种群,形成下一代.(3)最终,若停止准则之一得到满意,则该算法停止.关于殍止准则,可参见”.7算法的停止条件”一节.2初始种醉图8.13初始柏林在本例中,初始种群包含20个个体,这恰好是“Popu1.a1.ion(种柝“选项中的"Popukuionsize(种群尺度)的缺省值。留意:初始种群中的全部个体均处于图I二右上用的那个象限,也就是说它们的坐标处于0和1之间,这是因为“Popu1.ation”选项中的"Iniiia1.range(初始范围)”的映省值是0;1.假如已知函数的最小点大约位于何处,就可以设词一个适当的“Iniiia1.range",以便使该点处于那个范树的中间旁边。例如,假如确信RaMrigin函数的最小值在点(0,0)旁边,那么就可以干S设置“Initia1.range”为卜1:11然而,正如本例所显示的那样.即使没行给Tnitia1.range'1设置一个志向的位,遗传算法也还是能够找到那个最小假.3产生下一代在每一步.遗传算法运用当前种群来产生子辈,即获得下一代.算法在当前种群中选择一的个体,称为父辈,这些个父辈将其genes-亦即其向属中的项贡献给它们的子辈.遗传算法通常选择那些具有较好适应度值的个体作为父辈。我们可以在“Se1.ection(选和)“选项的“Sckc1.ionfunUion选择函数”文本框中指定遗传算法用来选择父纸的函数,遗传算法对干下一代产生三类子安:(I)优良子辈(EIitcchiIdrcn),是在当前代中具有最佳适应度值的那些个体.这些个体子辈存活到下一代。(2交叉子辈(Crossoverchi1.dren).是由一对父纸向优祖合产生的。(3)变异于华(MutationchiIdren),是对一个单个父辈引入防机变更即变异产生的.图8.14衣示了这:个类型的子辈.优良子辈变升子斗图8.14三类子阱在“.5变异与交叉'一节说明如何指定遗传算法产生的用一类子书的数目,以及用来执行完成交叉利变异的函数.4交又子辈算法通过组合当前种群中的父芈对Pair来产生交叉干辈.在子笔向盘的每一个相同位跣处,法省的交叉函数在两个父辈之一的相同位置处随机选择一项,即基因.并将它指派给其子辈。.5支舁子聚*法通过随机变更个体父辈中的基因而产生变异子辈.依据缺省,算法给父辈增加一个高斯分布的1.机向1ft,图8.15表示出初始种群的干辈,也即其次代种群,并且指出它们是否为优良子辈、交叉子芈或变异于笔.-0.500.51.52.6后代图形卷制图8.16展示出在迭代60次80次.95次.100次时的种群的图形Iteration60Iteration80Iteration9500.5Iteration100图8.16在迭代60.80.95.100次时的种书随著代数的增加.种群中的个体就近在一起,且旅近最小件点oOh.7算法的停止条件遗传算法运用下列5个条件来确定何时停止:(1) GCnCratiOnS(代数)当产生的代的数目达到规定的代数的值时,第法停止.(2) Time1.imiI(时限)在运行时间的秒数等于时限时,算法停止,(3) Fitness1.imit(适应度限)当适应度函数的值对于当前种群的最佳点小于或等于适应度限时,丸法停止.(4) SIangenera1.iOnS(停滞代数)在连续繁殖的时间序列中,若长时间不繁阳新代,亦即目标函数无改进,到达停滞代数规定的代数时,则算法停止.(5) Sta1.1.time1.imit停滞时限一在秒数等于停滞时限的时间间隔期间.并目标函数无改进,则算法停止.若这5个条件中任何一个条件一旦满意,则该豫法停止。我们可以在遗传算法工具的-Stoppingcriteria(停止标准)”选项中指定这些标准的值。它们的缺省值如图8.17所示.图8.17停止标准的统行值当运行遗传算法时,"Stams(状态)”面板显示这些导致算法停止的标准.,Time1.imit(时限)"选项与'Sta1.1.timeIim评觉人可以用来防止算法运行过长的时间.假如算法由于这两个条件之而停止,则可以通过相应增加FmeIimiI”或“Su1.1.timeIimiftftif1.来改善运行的结果。8.3运用遗传算法工具求解问题本节首先概括运用遗传算法工具GU1.的一股步骤,然后介绍如何从吩的行运用遗传獴法工具,必终通过例子,具体说明如何运用遗传算法工具来求解优化问题。运用遗传算法GU1.在前面一章,已经介绍了运用遗传算法工具的初步学问。本节将简要归纳运用遗传算法工具GU1.来求解优化问题的一般步躲内容包括:打开遗传尊法工具:在遗传算法工具中定义问遨:运行遗传算法:哲停和停止运算:图形显示:创建用户图形画数:及现运行结果:设置选项多数;输入输出参数及问题:从G终种群接着运行遗传算法。.1打开建传算法工具在MAT1.AB港口中输入gau>o1.打开、进入遗传算法工具,初后时的界面显示如图8.18所示。AGeneticAJqorithmToo1.1.J2dFtnatiKndnrtNWTt>erofvnbip5Rc<5PidrrvtVDHIenCieCxpecteocnScortcMritYSK(CtX)GeneeiojY$c«mRengeSwdon34c<MurcECUe<tger<ranS1.andrwttJjFMipc*<JjOPeianx:Omow¾yegcMcM1.ei6CaptoyH*c<ndwto*,VectoraeE,pCTHov<rtce.I-图8.18遗传算法J:共初出时的界面.2在遗传算法工具中定义向JB在下列两个文本框中定义所要解决的问题:<1)适应度函数一求解的问题是求目标函数的最小值,输入一个计算适应度函数的M文件函数的句柄.(2)变鼠个数一适应度函数的独立变显个数.««<',运行遗传算法工具时不要用“Edi1.or,DebUgger(编辑/调试“功能来调试目标函数的M文件,而要从吩咐行干脆调用目标函数或把M文件输入到遗传办法函数明。为了便利调试,可以在遗传算法工具中把问遨输舟到MAT1.AB工作窗中.如图8.19所示,珀入前面章节所介绍的Rastrigin区数或my_fun函数作为适配位函数,它们的变景个数为2。图8.19输入适应度Hi'j变M个1.3运行遗传算法要运行遗传算法.在“R1.mSOhCr(运行求解器)”中单击Stan按纽,如图8.20所示RunSONerUserandomS匕IeSfmFreyisrunCurrentgeneration:图8.20.JzStanKf1.1.这时,*Currentgenenition<,1.1nJ(U”文本框中显示当前代的数U,½S(ausax1.resu1.ts"窗格显示“GAnmning,等,思,如图8.23所示。Currentgeneration48-Statusandresu1.ts:GAnaming.图8.21当前代致和状态。结果商格当遗传算法停止时,Statusandresu1.ts,泣格显示:(1) ,bGterminated(GA终止)“信息O(2) G终一代最佳个体的适应度函数值。(3)算法停止的缘由.(4) Ai终点的坐标。图8.22显示当运行例子“Rastrigin函Sr遗传舞法停止时的信息。Statusandresu1.tsGArunning.GAtermnaced.Fitnessfunctionva1.ue:0.0067749206244585025Optiiiizationterminated:naxuuunumberofgenerationsexceeded.Fina1.point:12000274疝00516图8.22Rgngin函数的遗代算法运行结果在遗传竦法工具中,当遗传算法运行时Ur以更改多个卷数设置。所整的变更将被应用到下一代即在下一代将依据新设置的参数运行.在下一代起先但尚未应用变更的参数之前.在“Statusandrcsuhs"窗格显示伯息“ChangesPCnding”.而在下一代起先且应用了变更的参数时,ti*Sasandresu1.ts"窗格显示信息Changesapp1.ied",这样在遗传算法运行时更改了多数设置产生的愉出信息如图8.23所示.Statusandresu1.tsGArunning.Changespending.Changesapp1.ied.图8.23遗传。法运行时更改/每故设置.4看停和停止运算遗传算法的暂停和伶上运行.可以通过下面操作接着运行:(I)埴击按钮“Pause(翻停)”,匏法归停运行.该按钮上的文字变为“Resume熨原)”。单击这个“Resume”按钮,即复原遗传算法接着运行。(2)单击按钮“Stop”,算法停止运行。"S1.atusandrcu1.1.s”窗口显示停止运行时当前代最佳点的适应度函数值.W*(假如单击按钮“stop”,然后通过IR击按钮“Start”再次运行时,遗传篇法将以新的随机初始种群或在IIni1.ia1.PoPukI1.ion(初始种群)“文本框中特地指定的种群运行。假如现要在算法停止后能再次发原运行,则可以通过交替地单击按钮“Pause”和"Resume”来限制算法暂停或接着运行.遗传算法的停止运行经常是通过设置算法停止准则来进行限制的,运用停止准则,设徨停止准则电数,可以解法遗传算法在何时惇止运行的限制问魄。这样,也就不用通过单击"S1.op”按钿来人为地限制算法运行的停止。遗传算法有五个停止准则或条件,其中任何一个条件满意.算法即停止运行.这些停止准则是:(I)代数一一算法运行到现定的代数.(2)时限一一算法运行到规定的时间。(3)适应度限当前代的豉佳适应度值小于或等于规定的值。(4)杵滞代数一-适”度函数值在运行规定的代数后没有改进.(5)伶沛时限适应度函数值在运行规定时间后没有改进.假如想使算法始终运行到按下按钮“Pause”或“S1.op”时才停下来,可以变更这些停止准则的参数假;(I)设置-Ckncrations(代数"为In1.(2)设置“Time”为Inf.设双“Fiiness1.imi1”为-Inf.(4)设置mSta1.1.generations"为Inf1.(5)设置mSta1.1.time1.imit"为In1.图8.24显示了这些更改后的设置,-Stoppmacriteria(«8.24支更件止;I1.娟参数三*t在吩咐行中调用遗传算法函数ga时,并不运用这些参数设置,就似乎是不按下-Ctri+C%t函数就会恒久运行而不会停止.其实相反,可以设置“Generations”或齐“Time”做为限值来限制算法停止运行。.5BH形显示图8.25为uPIots(绘图)”窗格,可以用来限制显示遗传打法运行结果变更的图形.P1.otsP1.o1.Irrterva1.:pPBestfitnessPfeestndMdua(Dista