遗传算法综述_第1页
遗传算法综述_第2页
遗传算法综述_第3页
遗传算法综述_第4页
遗传算法综述_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.①中的变异点位置,改变其对应的基因座上的基因值,变异后"1"变为"0"或"0"变为"1"。优化结果输出经过一次次的迭代进化,当满足迭代终止条件时,输出的末代种群对应的便是问题的最优解或最近解,即筛选出的最具代表性的输入自变量组合。优化BP模型建立根据优化计算得到的结果,将选出的参与建模的输入自变量对应的训练集和测试集数据提取出来,利用BP神经网络重新建立模型进行仿真测试,从而进行结果的分析。MATLAB程序如下,程序运行结果如下图3所示:%%遗传算法的优化计算——输入自变量降维%%清空环境变量clearallclcwarningoff%%声明全局变量globalP_trainT_trainP_testT_testmintmaxtSs1S=30;s1=50;%%导入数据loaddata。mata=randperm<569>;Train=data<a<1:500>,:>;Test=data<a<501:end>,:>;%训练数据P_train=Train<:,3:end>';T_train=Train<:,2>';%测试数据P_test=Test<:,3:end>';T_test=Test<:,2>';%显示实验条件total_B=length<find<data<:,2>==1>>;total_M=length<find<data<:,2>==2>>;count_B=length<find<T_train==1>>;count_M=length<find<T_train==2>>;number_B=length<find<T_test==1>>;number_M=length<find<T_test==2>>;disp<'实验条件为:'>;disp<['病例总数:'num2str<569>。。。'良性:'num2str<total_B>。。。'恶性:'num2str<total_M>]>;disp<['训练集病例总数:'num2str<500>。。。'良性:'num2str<count_B>。。。'恶性:'num2str<count_M>]>;disp<['测试集病例总数:'num2str<69>。。。'良性:'num2str<number_B>。。。'恶性:'num2str<number_M>]>;%%数据归一化[P_train,minp,maxp,T_train,mint,maxt]=premnmx<P_train,T_train>;P_test=tramnmx<P_test,minp,maxp>;%%创建单BP网络t=cputime;net_bp=newff<minmax<P_train>,[s1,1],{'tansig','purelin'},'trainlm'>;%设置训练参数net_bp。trainParam。epochs=1000;net_bp。trainParam。show=10;net_bp。trainParam。goal=0。1;net_bp。trainParam。lr=0。1;net_bp。trainParam。showwindow=0;%%训练单BP网络net_bp=train<net_bp,P_train,T_train>;%%仿真测试单BP网络tn_bp_sim=sim<net_bp,P_test>;%反归一化T_bp_sim=postmnmx<tn_bp_sim,mint,maxt>;e=cputime-t;T_bp_sim<T_bp_sim>1。5>=2;T_bp_sim<T_bp_sim<1。5>=1;result_bp=[T_bp_sim'T_test'];%%结果显示〔单BP网络number_B_sim=length<find<T_bp_sim==1&T_test==1>>;number_M_sim=length<find<T_bp_sim==2&T_test==2>>;disp<'<1>BP网络的测试结果为:'>;disp<['良性乳腺肿瘤确诊:'num2str<number_B_sim>。。。'误诊:'num2str<number_B-number_B_sim>。。。'确诊率p1='num2str<number_B_sim/number_B*100>'%']>;disp<['恶性乳腺肿瘤确诊:'num2str<number_M_sim>。。。'误诊:'num2str<number_M-number_M_sim>。。。'确诊率p2='num2str<number_M_sim/number_M*100>'%']>;disp<['建模时间为:'num2str<e>'s']>;%%遗传算法优化popu=20;bounds=ones<S,1>*[0,1];%产生初始种群%initPop=crtbp<popu,S>;initPop=randint<popu,S,[01]>;%计算初始种群适应度initFit=zeros<popu,1>;fori=1:size<initPop,1>initFit<i>=de_code<initPop<i,:>>;endinitPop=[initPopinitFit];gen=100;%优化计算[X,EndPop,BPop,Trace]=ga<bounds,'fitness',[],initPop,[1e-610],'maxGenTerm',。。。gen,'normGeomSelect',0。09,'simpleXover',2,'boundaryMutation',[2gen3]>;[m,n]=find<X==1>;disp<['优化筛选后的输入自变量编号为:'num2str<n>]>;%绘制适应度函数进化曲线figureplot<Trace<:,1>,Trace<:,3>,'r:'>holdonplot<Trace<:,1>,Trace<:,2>,'b'>xlabel<'进化代数'>ylabel<'适应度函数'>title<'适应度函数进化曲线'>legend<'平均适应度函数','最佳适应度函数'>xlim<[1gen]>%%新训练集/测试集数据提取p_train=zeros<size<n,2>,size<T_train,2>>;p_test=zeros<size<n,2>,size<T_test,2>>;fori=1:length<n>p_train<i,:>=P_train<n<i>,:>;p_test<i,:>=P_test<n<i>,:>;endt_train=T_train;%%创建优化BP网络t=cputime;net_ga=newff<minmax<p_train>,[s1,1],{'tansig','purelin'},'trainlm'>;%训练参数设置net_ga。trainParam。epochs=1000;net_ga。trainParam。show=10;net_ga。trainParam。goal=0。1;net_ga。trainParam。lr=0。1;net_ga。trainParam。showwindow=0;%%训练优化BP网络net_ga=train<net_ga,p_train,t_train>;%%仿真测试优化BP网络tn_ga_sim=sim<net_ga,p_test>;%反归一化T_ga_sim=postmnmx<tn_ga_sim,mint,maxt>;e=cputime-t;T_ga_sim<T_ga_sim>1。5>=2;T_ga_sim<T_ga_sim<1。5>=1;result_ga=[T_ga_sim'T_test'];%%结果显示〔优化BP网络number_b_sim=length<find<T_ga_sim==1&T_test==1>>;number_m_sim=length<find<T_ga_sim==2&T_test==2>>;disp<'<2>优化BP网络的测试结果为:'>;disp<['良性乳腺肿瘤确诊:'num2str<number_b_sim>。。。'误诊:'num2str<number_B-number_b_sim>。。。'确诊率p1='num2str<number_b_sim/number_B*100>'%']>;disp<['恶性乳腺肿瘤确诊:'num2str<number_m_sim>。。。'误诊:'num2str<number_M-number_m_sim>。。。'确诊率p2='num2str<number_m_sim/number_M*100>'%']>;disp<['建模时间为:'num2str<e>'s']>;图3程序结果图由此可得到结论:遗传算法优化BP神经网络的识别率比单纯的BP神经网络高,而且识别速度较快。遗传算法的改进与未来6.1遗传算法的改进虽然遗传算法已经取得了广泛的应用,但存在着收敛速度慢及算法稳定性差等缺陷。用遗传算法进行路径规划时,随机产生初始种群,为了避免陷入局部极值点,种群数量要达到一定的规模。但种群规模大会导致搜索空间较大,删除冗余个体的能力较差,大大影响路径规划的速度。特别在环境较为复杂的情形下,这种缺点就更加明显。针对标准遗传算法的不足,在吸收前人研究成果的基础上,对于遗传算法的求解过程,我们提出了如下改进措施与步骤:<1>人工方法产生初始群体先将优化问题的初始解转化为个体,然后在问题的解空间中用人工方法产生初始种群的其它个体,使初始群体的个体模式阶次较高、模式数目较大,具有多样性。这样通过适当选择字符串长度和群体规模,可以在开始的几代内找到各极值点所在的区域,加快搜索速度。<2>上代群体的处理对于上代群体,计算其个体的适应度,判别其是否满足终止条件。如果满足终止条件,停止遗传操作,输出最优解。否则,将上代群体全部放入中间群体,并对上代群体独立进行优选父代交换和大突变操作。<3>优选父代交换优选父代交换的主要思想是指在进行交换操作时,提高父代的质量,即选择较优的父代个体参与交换。具体过程是:从上代群体中随机选取两个个体,然后比较其适应度,保留适应度大的个体,再从上代群体中随机选取两个个体,同样保留适应度大的个体,以保留下来的两个个体作为父代个体。产生[0,1]之间均匀分布的随机数s,如果s<Pc,则两者进行交换,将交换后的两个新个体加入到中间群体,否则直接将保留下来的两个个体加入到中间群体。<4>大突变操作理论上,遗传算法的突变操作可以产生新个使算法跳出"早熟"。但为了保持算法的稳定性,突变操作的突变率通常取得很小,单靠传统的突变操作需要很多代才能变异出一个不同于其它个体的新个体。大突变操作的思想是:对上代群体,以一个远大于通常的突变概率的概率进行一次突变操作,并将突变后产生的新个体加入到中间群体。大突变操作能够随机、独立地产生许多新个体,从而能始终保持群体的多样性,使群体脱离"早熟"。<5>基于Metropolis判别准则的复制策略对于中间群体,运用基于Metropolis判别准则的复制策略,产生下一代群体。基于Metropolis判别准则的复制策略分为两步:a.实施最优保留策略将中间群体中性能最好的个体无条件地复制到下一代群体中,这样就会保留中间群体中的最好解,使遗传算法可以以概率1收敛到全局最优解,保证了算法的收敛。b.实施Metropolis判别准则的复制策略在中间群体中随机选取个体i和j,i和j竞争进入下一代群体的准则采用Metropolis判别准则:产生[0,1]之间均匀分布的随机数s,如果s<=min<1,exp<-<f<i>-f<j>>/T>><式中,f<i>,f<j>分别为个体i和j的适应度,T为控制参数>,则个体i复制到下一代群体,否则个体j复制到下一代群体。改进后遗传算法的基本流程如图4所示。图4改进的遗传算法6.2遗传算法的未来遗传算法的未来发展还有很大的空间,我们可以探索研究以下几个方面:<1>基于遗传算法的机器学习:这一新的研究方向把遗传算法从历史离散的搜索空间的优化搜索算法扩展到具有独特的规则生产功能崭新的机器学习算法。<2>遗传算法与其他计算智能方法的相互渗透和结合:遗传算法正日益和神经网络、模糊推理以及混沌理论等其他职能计算方法相互渗透和结合,以到达取长补短的作用。<3>并行处理遗传算法:并行处理的遗传算法的研究不仅是遗传算法本身的发展,而且对于新一代智能计算机体系结构的研究都是十分重要的,遗传算法在操作上具有高度的并行性。<4>遗传算法与人工生命的渗透:基于遗传算法的进化模型是研究人工生命现象的基础。参考文献[1]席裕庚,柴天佑,恽为民.遗传算法综述[J].控制理论与应用.1996<13>06:697-708[2]常洪江.遗传算法综述[J].电脑学习.2010<06>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论