基于Matlab遗传算法工具箱的曲线拟合

基于Matlab遗传算法工具箱的曲线拟合

2023年7月17日发(作者:)

与技术Computer电脑知识与技术ComputerKnowledgeKnowledgeandandTechnologyTechnology电脑知识Vol.5,No.17,June2009,pp.4768-4769ISSN1009-3044E-mail:xsjl@第5卷第18期(2009年6月):+86-551-569基于Matlab遗传算法工具箱的曲线拟合范小勤1,汪小红2(1.广州番禺职业技术学院基础课部,广东广州511483;2.广州番禺职业技术学院机械与电子系,广东广州511483)摘要:遗传算法具有高度并行、随机、自适应的全局优化搜索的特点,能很好地应用于曲线拟合这样的函数优化问题上。利用Matlab遗传算法工具箱求解曲线拟合,为遗传算法工具箱的实际应用提供了新的途径,效果也好。关键词:遗传算法;工具箱;曲线拟合中图分类号:TP18文献标识码:A文章编号:1009-3044(2009)18-4768-02Matlab-basedCurveFittingofGeneticAlgorithmToolboxFANXiao-qin1,WANGXiao-hong2(mentofBasicCourses,GuangzhouPanyuPolytechnic,Guangzhou511483,China;mentofMechanicalandEletronic,GuangzhouPanyuPolytechnic,Guangzhou511483,China)Abstract:Geneticalgorithmischaracterizedbyhighlyparallel,random,gcurvefittingthroughtheapplicationofMatlab-basedgeneticalgo-rithmtoolboxprovidesnewapproachesfortheprcticalds:geneticalgorithm;toolbox;curvefitting由于遗传算法(GA)在全局搜索和内在启发式随机搜索方面的优势,其主要特点是不依赖于梯度信息,特别适合于处理传统搜索方法难以解决的复杂性和非线性性问题。本文基于曲线拟合的特点,针对GA的特性,结合Matlab遗传算法工具箱,给出曲线的拟合方法。1遗传算法拟合曲线1.1遗传算法的基本原理遗传算法是模拟达尔文的生物自然选择学说和自然界的生物进化过程的一种自适应全局概率搜索算法。在解决具体问题时先大致确定问题的潜在解的一个集合,这个集合就是算法的初始种群。种群由计算机生成(一般是随机生成)的一定数目的个体组成,个体就是潜在解的计算机编码,那么我们最后要求的解就由这些初始生成的个体进化而来。每个个体具有其自身的特征(携带不同基因),我们根据这些个体的不同的特征来确定其存活到下一代的可能性的高低,按照优胜劣汰的法则,由父代来产生子代,如此来繁衍。当然在具体的进化过程中为了保持种群多样性,防止过早收敛,还要在其中使个体以一定小概率发生变异。这样在最后满足收敛条件后的种群最优个体就是问题的近似最优解。1.2遗传算法实现曲线拟合的过程遗传算法的实现主要包括编码、产生群体、计算适应度、复制、交换、变异等操作。概括地讲,遗传算法求解曲线拟合问题的具体步骤可描述如下:Step1:根据具体问题,选择编码方式,随机产生初始群体,个体数目一定,每个个体表示为染色体的基因编码;Step2:选择合适的适应度函数,计算并评价群体中各个体的适应度;Step3:选择(selection)。根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体。Step4:交叉(crossover)。将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。Step5:变异(mutation)。对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改变某一个或某一些基因位上的基因值为其他的等位基因。Step6:终止条件判断。若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算。否则,迭代执行Step2至Step5。适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体的适应度越大,被遗传到下一代的概率就越大,相反,被遗传到下一代的概率就越小。在进化过程中,遗传算法除适应度外不再需要其它信息,也不需要适应度函数满足连续可微,唯一要求是针对输入可计算出能加以比较的结果。遗传算法实现函数拟合中,可选适应度函数,其中收稿日期:2009-04-22作者简介:范小勤(1966-),男,湖北黄冈人,副教授,硕士,主要研究方向:大学数学教学,综合评价,遗传算法;汪小红(1969-),女,湖北黄冈人,高级技师,研究方向:机械故障诊断。4768软件设计开发本栏目责任编辑:谢媛媛第5卷第18期(2009年6月)ComputerKnowledgeandTechnology电脑知识与技术Cmax为一个足够大的正数,。2Matlab遗传算法工具箱概述及使用2.1遗传算法工具箱简介遗传算法工具函数可以通过命令行和图形用户界面两种方式来实现。使用图形用户界面时,通过相应窗格中的参数的设置,快速定义问题,设置算法选项进行运算。在通过命令进行遗传算法运算时,通过Matlab程序调用遗传算法函数,设置选项进行计算。遗传算法参数主要有以下几种。1)图形参数。图形参数工作时可从遗传算法中得到图形的数据。包括:最佳函数值与代数对(bestfitnness);每一代中最佳适应度个体的向量值(bestin-dividual);每一代中个体间的平局距离(distance);个体谱系(Genealogy);每一代最大、最小、平均适应度函数值(Range);多样性值(Scorediversity);每一代中个体的得分(Score);双亲直方图(Selection);停止条件(Stoping)等。2)种群参数。种群参数用于确定遗传算法所用种群的参数。包括:指定适应度函数的输入类型(PopulationType);每一代中的个体数(populationSize);GA创建初始种群的函数(CreationFcn);初始种群(Initialpopulationg);初始种群的初始值(Initialscore);初始种群的向量范围(Initialrange)等。3)适应度比例参数。它是把适应度函数值转换为适合选择函数的范围值。在GUI的fitnnessscaling中可供选取的函数参数有:排列(Ranking);比率(Proportional);最佳比例(Top);线性转换(Shiftlinear)等。4)选择参数。它是规定遗传算法怎么为下一代挑选双亲。通过GUI中的Selectionfunction窗格可指定如下算法函数:随机均匀分布(Stochasticnuiform);剩余(Remainder);均匀(Uniform);轮盘赌(Roulette);锦标赛(Tournament)等。5)再生参数。它说明怎样为下一代创建子个体。6)变异参数。它说明怎样怎样通过小的随机数改变种群的个体面创建变异子辈。可选函数有:高斯(Gaussian);均匀(Uniform);自定义变异函数(Custom)等。7)交叉参数(Crossoverfunction)。它说明如何两个个体或双亲为下一代形成交叉子个体,可选择如下函数:Scattered;singlepoint;Twopoint;Intermediate等。8)迁移参数(Migration)。它指明个体在子群中怎样移动。9)混合函数参数。它是运行在遗传算法终止后的另一个最小化函数。可在Hybirdfunction中指定混合参数。10)停止条件参数。停止条件决定什么引起算法终止,可指明的参数有:Gen-eration;Timelimit;Fitnesslimit;Stallgenerations;Stalltime等。还有输出函数参数,先是到命令窗口参数,向量参数等。2.2通过GUI使用遗传算法在Matlab工作窗口键入下列命令>>gatool,或通过Start打开其下子菜单GeneticAlgorithmTool,如图1。只要在相应的窗格选择相应的选项便可进行遗传算法的计算。其中fitnessfun窗格为适应度函数,填写形式为@fitnessfun,Numberofvariable窗格为变量个数。其它窗格参数根据情况填入。填好各窗格内容,单击Start按钮,便可运行遗传算法。3应用实例已知某一生物的总量y(单位:万个)与时间t(月)之间的关系为y=k0(1-e-k1t),统计十个月得到数据见表1,试求关系式中的k0,k1。先编写目标函数,并以文件名myfung.m存盘。图1遗传算法的GUI界面表1functiony=myfung(x)TOT=[2.05673.69044.98816.01896.83717.48818.00478.41518.74119.0000];t=[1:10],[r,s]=size(TOT);y=0fori=1:sy=y+(TOT(i)-x(:,1)*(1-exp(-x(:,2)*t(i))))^2%最小估计原则end打开遗传算法的GUI,在Fitnessfunction窗格中输入@myfung,在Numberofvariables窗格中输入数字2,在Stoppingcriteria选项中设置generations为300,fitnesslimit为0.001,stallgenerations为100,其它参数为缺省值,然后单击Start运行遗传算法得到k0=9.99559,k1=0.23018,即y=9099559(1-e-0.23018t)。4结束语Matlab作为一个一个功能强大的软件和工具,已经广泛应用众多工程领域。本文利用Matlab遗传算法工具箱有效地进行了曲线的拟合,其精度也很高,它为遗传算法工具箱的实际应用与实验模拟提供了另一种途径。参考文献:[1][2][3][4]王小平,曹立明.遗传算法理论、应用与软件实现[M].西安:西安交通大学出版社,2002.梁芳,王卫华,祝庆.改进的遗传算法在Logistic曲线拟合中的应用[J].武汉理工大学学报:信息与管理工程版,2008(4):544-548.阮永芬,黄兴周,李仕胜,等.遗传算法拟合变异函数的参数[J].云南大学学报:自然科学版,2009,31(2):140-145.雷英杰.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学出版社,2005.本栏目责任编辑:谢媛媛软件设计开发4769

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689583338a268157.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信