好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

智能优化算法实验报告.doc

16页
  • 卖家[上传人]:公****
  • 文档编号:469453203
  • 上传时间:2024-02-02
  • 文档格式:DOC
  • 文档大小:472.50KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 智能优化算法实验报告用遗传算法求解函数优化问题SC07010062晏晓辉智能优化算法晏晓辉SC07010062目录1. 实验目的31.1了解并掌握遗传算法的原理,流程和编码策略;31.2利用遗传算法goat工具箱测进行30维的多变量函数寻优;31.3自编遗传算法程序对2维变量函数进行寻优并测试主要参数对结果的影响32. 实验条件32.1硬件环境:32.2软件环境:33. 实验原理33.1遗传算法简介:33.2遗传算法流程:4(1) 编码4(2) 生成初始种群4(3) 适应度评估4(4) 选择4(5) 交叉4(6) 变异44. 实验步骤和结果分析54.1实验一:利用遗传算法goat工具箱测进行30维的多变量函数寻优54.1.1goat工具箱说明54.1.2优化函数的选择64.1.3实验结果分析64.2实验二:自编遗传算法程序对2维变量函数进行寻优并测试主要参数对结果的影响74.2.1编码策略74.2.2结果分析85. 附件9f(x)5.1利用gaot工具箱对丿10丿寻优执行9次结果轨迹收敛图95.2自编遗传算法代码:14#智能优化算法晏晓辉SC070100621. 实验目的1.1了解并掌握遗传算法的原理,流程和编码策略;1.2利用遗传算法goat工具箱进行30维的多变量函数寻优;1.3自编遗传算法程序对2维变量函数进行寻优并测试主要参数对结果的影响。

      2. 实验条件2.1硬件环境:AMDSempron(tm)Processor3600+1.99GHz,1.5G内存2.2软件环境:MicrosoftWindowsXP,MATLAB7.0,goat工具箱3. 实验原理3.1遗传算法简介:遗传算法(GeneticAlgorithm)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它是有美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《AdaptationinNaturalandArtificialSystems》,GA这个名称才逐渐为人所知,J.Hilland教授所提出的GA通常为简单遗传算法(SGA)遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成每个个体实际上是染色体(chromosome滞有特征的实体染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现因此,在一开始需要实现从表现型到基因型的映射即编码工作。

      由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初始种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(geneticoperators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding),可以作为问题近似最优解3.2遗传算法流程:(1)编码遗传算法先将解空间的解数据表示成遗传空间的基因型串结构数据,他们的不同组合就构成了不同的点2) 生成初始种群采用随机的方法产生若干个初始串结构数据,每个串结构数据代表一个个体,全体初始串结构数据构了初始种群种群的大小一般是20〜100,这样既可以提高遗传算法的稳定型,又能够保证种群的多样性,容易获得全局最优解3) 适应度评估对于不同的优化问题,采用不同的适应度函数来评价个体的优劣性通常有一些常用的带欺骗性的函数用于测试4) 选择按照适者生存的目的,从当前的种群中选择出适应度强的优良个体,使它们有机会作为父代产生下一代,适应度强的个体被选择的概率大。

      5) 交叉交叉算子根据交叉率将种群中两个个体随机的交换某些基因,从而产生新一代个体新个体组合了父辈个体的特性交叉率根据具体问题确定,一般取0.25〜0.75,这样既可以得到高适应度的结构,又可以保证搜索效率6) 变异变异算子根据交叉率随机地在当前种群中选择一个个体,对其以一定的概率随机地改变串结构数据中的某个串的数值,从而产生新一代个体变异率不宜取得过高,一般取0.005〜0.204. 实验步骤和结果分析4.1实验一:利用遗传算法goat工具箱进行30维的多变量函数寻优4.1.1goat工具箱说明goat工具箱主要有两个主文件:initializega.m和ga.m,两函数的调用格式及参数意义如下:initializega・m的调用格式为:Function[Pop]=initializega(num,bounds,eevalFN,eevalOps,opts)输出参数:Pop:初始种群输入参数:num:种群中的个体数目;bounds:变量上下限矩阵;eevalFN:适应度函数;eevalOps:传递给适应度函数的参数,默认值为口;opts:选择编码形式的参数,即浮点编码(默认值为口)或是二进制编码。

      ga.m的调用格式为:[xf,endPop,bPop,trace]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)输出参数:xf:优化解;endPop:最终种群;bPop:最终种群的一个轨迹;trace:每一代种群中的最好个体和平均结果矩阵输入参数:bounds:变量上下限矩阵;evalFN:适应度函数;evalOps:适应度函数的输入选项,默认为[];startPop:初始种群;opts:向量[epsilonprob_opsdisplay],其中epsilon表示两代之间的差距,prob_ops取0时为二进制编码,取1时为浮点编码(计算精度较高),display表示运行时是否显示当前个体和最好结果默认值为[1e-610];termFN:终止函数,默认值为[‘maxGenterm'];termOps:向终止函数输入的参数,默认值为[100];selectFN:选择函数;selectOps:选择参数;xOverFNs:一个包含空格字符串的xOver.m文件;xOverOps:xOver.m文件的输入参数矩阵;mutFNs:—个包含空格字符串的mutation.m文件;mutOps:mutation.m文件的输入参数矩阵。

      4.1.2优化函数的选择在本实验中,我们选取常用测试函数中的f(x)进行优化,适应度也用这个10函数来评价此函数变量个数为30,每个变量的取值范围为[-32,32],函数最优值fmin=0minf(x)=—20exp(—0.210丄工x2)一exp(丄乞cos2nx)30i30i,i=1i=1n=30,SD=[-32,32]30,f=0min4.1.3实验结果分析实行自编M文件boundss.m得到初始区间bounds再依次执行以下语句得到结果:pop=initializega(100,bounds,'minf',[],[1e-61])[xf,endPop,beestSols,trace]=ga(bounds,'minf',[],pop,[1e-610],'maxGenTerm',300,'normGeomSelect',[0.08],['simpleXover'],[2],'nonUnifMutation',[22003])次数1次数2次数3次数4次数5次数6次数7次数8次数9基本180180180180180180180180180收敛代数完全277230192198188195269191192收敛代数最优---------值0.6710.6620.7110.6480.6050.6440.6300.6910.699719971901表1:goat工具箱进行30变量函数寻优结果实验结果表明,大约再180代左右结果就能较好的收敛于最优点,9次运行结果每代最个体的迹如附件中图5-1到5-9所示。

      再增大代数对函数优化基本无用结果离所给最小点尚有一定差距,但已无法改进,说明对此函数该算法还有待改进4.2实验二:自编遗传算法程序对2维变量函数进行寻优并测试主要参数对结果的影响4.2.1编码策略1本文米用所给第16个函数f(x)=4x2-2.1x4+_x6+xx-4x2+4x4作为1611311222优化函数,维数为2,取值区间为[-5,5;-5,5]最小值fmin=-1.0316285min编码策略:(1) 对给定上下界和求解精度,利用函数length=ceil(log2((up-low)/prec+1)求得单个变量的编码长度,在此题中2个变量的上下界一样,故编码长度也一样(2) 用encode函数随机产生n个长度为2Xlength的二进制代码作为初始种群的个体(3) 用decode函数将个体的二进制代码解码得出x1,x2,代入fun函数求得函数值,根据函数值到本代所有函数值中最大值的距离与所有个体距离和的比值作为适应度,累加适应度构成一个赌轮,即在面积为一的赌轮中,函数值越小的个体被选中的概率越大4) 执行select函数利用赌轮选择n个新个体作为新的种群5) 执行crossover函数,当产生的随机数小于交叉概率时,选择一个个体,对选择的两个个体随机产生一个位置作为交叉点,将其后面的代码进行交换。

      6) 执行mutation函数,当产生的随机数小于变异概率时,选择一个个体,随机产生一个位置作为变异点,将该点的编码置1(若原来为0)或置0(若原来为1)7) 重复执行解码,求适应度,选择,交叉,变异几个步骤直到完成N代演化8) 在最终种群中选择函数值最小个体作为最终个体,函数值为最终优化值针对本寻优问题,最终编码如附件所示:一共7个文件:ga.m:主函数fun.m:待优化函数encode.m:编码函数,生成二进制代码以产生初始种群decode.m:解码函数,将二进制代码变回十进制select.m:选择函数,在原种群中选择个体产生新种群crossover.m:交叉函数,对被选择的两个个体进行交叉操作mutation.m:变异函数,对被选择的两个个体进行变异操作4.2.2结果分析执行ga(N,pcro,pmut)(1)N=300,pcro=0.2,pmut=0.05时执行6次所得的结果,结果如下表所示,最后一行为6次所求最小值的平均数次数1次数2次数3次数4次数5次数6平均(x1,x2)-0.0977-0.0784-0.07810.1563-0.08790.08920.71310.62500.7813-0.70310.7031-0.7078fmin-1.0314-0.9766-0.9879-1.0133-1.0309-1.0314-1.0119min表2:N=300,pcro=0.2,pmut=0.05结果从这个表中可以看出,所求的最小值与给定的最小值非常接近了,最优点有两个点,关于原点对称。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.