下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一遗传算法的基本原理遗传算法是模拟生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的一种重要形式。其搜索过程是从问题解的一个随机产生的集合开始的,而不是从单个个体开始的,具有隐含并行搜索特性,也就大大减少可陷入局部极小值的可能。在解决可能在求解过程中产生组合爆炸的问题时会产生很好的效果。遗传算法需选择一种合适的编码方式表示解,并选择一种评价函数用来每个解的适应值,适应值高的解更容易被选中并进行交叉和变异,然后产生新的子代。选择、交叉和变异的过程一直循环,直到求得满意解或满足其他终止条件为止。本例运用遗传算法求解函数f(x)=x^2,x∈[0,31]上的整数,的最大值。首先随机选择五位二进制编码,设定初始种群个数为4,产生初始种群。随后确定适配度,本例就是目标值。然后根据适配值的大小,按照一定的概率进行复制。连续10代最大值结果保持一致,则遗传算法结束运行。二Matlab程序运行结果:由运行结果可以看出,经过2代以后,遗传算法的结果达到最优。Matlab程序如下:%****遗传算法主程序*******clearclctotal=1;%总的进化代数Num=0;MaN1=0;MaN2=0;flag=0;N1=initialize();N2=initialize();N3=initialize();N4=initialize();%复制while1while1DecN1=BinToDec(N1);%计算适配度DecN2=BinToDec(N2);DecN3=BinToDec(N3);DecN4=BinToDec(N4);f1=DecN1^2;f2=DecN2^2;f3=DecN3^2;f4=DecN4^2;ttt=[f1,f2,f3,f4];ifflag==0MaN1=max(ttt);elseMaN2=max(ttt);endifMaN1==MaN2Num=Num+1;elseNum=0;endsum=f1+f2+f3+f4;aver=sum/4;n1=round(f1/aver);%实际得到的复制个数n2=round(f2/aver);n3=round(f3/aver);n4=round(f4/aver);N=n1+n2+n3+n4;%总的复制个数ifN~=4N1=initialize();N2=initialize();N3=initialize();N4=initialize();total=1;Num=0;MaN1=0;MaN2=0;flag=0;continue;elsebreak;endendtemp1=cal(N1,n1);temp2=cal(N2,n2);temp3=cal(N3,n3);temp4=cal(N4,n4);M=[temp1;temp2;temp3;temp4];N1=M(1,:);N2=M(2,:);N3=M(3,:);N4=M(4,:);%交叉while1p=floor(1000*rand);ifp>1break;elsecontinue;endendk=mod(p,3);switchkcase0[N1,N2,N3,N4,ps]=crossover(N1,N2,N3,N4);case1[N1,N2,N3,N4,ps]=crossover(N1,N3,N2,N4);case2[N1,N2,N3,N4,ps]=crossover(N1,N4,N2,N3);end%变异U=[N1,N2,N3,N4]pos=mod(floor(1000*rand),20)+1;ifU(1,pos)==0U(1,pos)=1;elseU(1,pos)=0;endN1=U(1,1:5);N2=U(1,6:10);N3=U(1,11:15);N4=U(1,16:20);%遗传算法结束条件:连续10代最大值均保持一致ifNum==10disp('进化代数:')total-10disp('现在的种群:')N1N2N3N4disp('最大值:')MaN1break;endflag=mod(flag+1,2);total=total+1;end子程序1:initialize.mfunction[X]=initialize()X=zeros(1,5);forj=1:5X(1,j)=round(rand);end子程序2:BinToDec.mfunctionsum=BinToDec(X)sum=0;fori=5:-1:1sum=sum+X(1,i)*2^(5-i);end子程序3:cal.mfunction[temp]=cal(X,n)temp=zeros(n,5);fori=1:ntemp(i,:)=X;子程序4:crossover.mfunction[A1,A2,A3,A4,position]=crossover(t1,t2,t3,t4)while1p=floor(1000*rand);ifp>1break;elsecontinue;endendpo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装定制简单版的合同
- 三下第五单元作文课件教学课件教学
- 二零二四年度工程人力资源居间合同2篇
- 专业工程分包协议书范本2篇
- 煤炭委托采购协议
- 中考函数专题课件
- 建筑行业劳动合同
- 拎包入住租房合同模板
- 2024年度供应链金融反担保合同3篇
- 神经系统脑血管病
- 广东省佛山市顺德区普通高中2024-2025学年高三上学期教学质量检测(一)英语试题(解析版)
- 教师资格考试初中生物面试试题与参考答案
- 露天矿山安全培训课件经典
- 企业资产管理培训
- 公文写作课件教学课件
- 2024年巴西医疗健康产业发展趋势
- 药品经营使用和质量监督管理办法2024年宣贯培训课件
- 自然辩证法学习通超星期末考试答案章节答案2024年
- 2024年6月浙江省高考地理试卷真题(含答案逐题解析)
- 中考语文专项必刷题之名著阅读专题(天津版)
- 2024版合伙经营运输车辆合同范本
评论
0/150
提交评论